On Mon, Sep 24, 2012 at 7:25 PM, Nathan Caldwell <[email protected]> wrote:
> On Mon, Sep 24, 2012 at 5:02 PM, Justin Ruggles
> <[email protected]> wrote:
>> On 09/24/2012 05:56 PM, Nathan Caldwell wrote:
>> [...]
>>> +    /* FIXME: When DTX is enabled, opus_multistream_encode will return 1 if
>>> +     * a packet does not need to be transmitted.
>>> +     */
>>
>> If the encoder only uses 1 frame-per-packet, a 0-size frame payload will
>> result in a 1-byte packet for the TOC. Does libopus actually write that
>> TOC byte to the output packet? If so, I don't think there is any need
>> for a FIXME. If not, we could probably just reuse the TOC from the last
>> packet.
>>
>> Also, can it return > 1 if it's using multiple frames-per-packet? And if
>> so, does it also write the appropriate packet header?
>
> I'm actually not sure if this applies to the multistream encoder, it
> may only apply to the individual stream API. I'll ask about it.
>
> FWIW, the relavent sentence is "opus_encode() and opus_encode_float()
> return the number of bytes actually written to the packet. The return
> value can be negative, which indicates that an error has occurred. If
> the return value is 1 byte, then the packet does not need to be
> transmitted (DTX)."

The official word is 1 byte per stream for multistream. For Ogg
encapsulation, this byte(s) do get transmitted. For RTP (there is no
defined mapping for multi-stream RTP yet), this byte does not get
transmitted.

I guess I'll remove the comment.


-- 
-Nathan Caldwell
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to