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