On Fri, 16 Dec 2011, Kostya Shishkov wrote:

On Fri, Dec 16, 2011 at 09:05:31AM -0500, Justin Ruggles wrote:
On 12/16/2011 07:36 AM, Martin Storsjö wrote:

Should this be handled generically in avcodec_decode_audio4 like
this, or only within the decode function for those codecs that
are ready to handle a change. The latter variant avoids issues
if there are codecs that screw up if e.g. sample_rate/channels
are changed on the fly, but means a call to the parameter change
function has to be added to all functions. Currently, this is
tested to work fine with nellymoser.

A third approach would be to add a codec flag for this, and only
apply the side data packet for those codecs.


I like the idea of adding a codec capability. At least until we know
that all decoders will be able to handle such mid-stream parameter
changes without blowing up.

What's the difference from what we have now? Parameter changes can still
happen mid-stream and decoder still have to deal with it even without knowing.
The advantage of side data is that it can be ignored by unsuspecting decoder.

Parameter changes can happen yeah, but in most cases, we don't alter e.g. width/height/sample_rate/channels without the decoder knowing (currently, we'd just pass the new payload data to them).

The advantage of side data is that it can be ignored, I agree about that, but with the suggested param change side data type, the decoder doesn't need to do anything about the side data, the avcodec_decode_audio4 function can apply the changes without having to have code in each decoder for it - but then we might want to know that the decoder is capable of handling it. That's what the three new patches I just sent addresses.

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

Reply via email to