On 10/24/2011 04:22 AM, Martin Storsjö wrote: > 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.
My original plan was to make it a private option, but it didn't work properly. I didn't think of restoring the original sample_rate in close() though. I'll try it out. Thanks, Justin _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
