On Sun, 23 Oct 2011, Justin Ruggles wrote:

It is broken because an AVCodecContext can be opened/closed multiple
times, and sample_rate is getting divided by 2 each time that happens.

This removes the only use of lowres for audio.
---
avconv.c             |    5 +----
libavcodec/g722dec.c |   18 +++++-------------
2 files changed, 6 insertions(+), 17 deletions(-)

Hmm, I'm wondering, just out of curiosity, if this feature still could be supported in some other way (e.g. enabled via a private avoption or so).

The sample rate can't be set explicitly in the decoder (according to the spec, this is only used for 16 kHz audio, but there's of course nothing limiting its use to that in practice) but gets set by the container. Would it work better if the originally set sample_rate was restored by the close function, or is that just piling more mess on all it for no good reason? And would that work without avconv knowing anything about it beforehand, just reading the sample_rate is set after avcodec_open() is called? (Currently there's the sample_rate >>= lowres part in avconv.c that this patch removes...) Then it should, more or less, work like any decoder that sets the sample_rate during avcodec_open().

If this just makes things more complicated or is too messy, I'm ok with the change in this patch - it's not a necessary feature for the decoder anyway.

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

Reply via email to