[FFmpeg-devel] [PATCH] dca_parser: don't overwrite the sample rate, it may not be correct

wm4 nfxjfg at googlemail.com
Wed Sep 30 14:35:57 CEST 2015


On Wed, 30 Sep 2015 13:55:26 +0200
Hendrik Leppkes <h.leppkes at gmail.com> wrote:

> On Wed, Sep 30, 2015 at 1:16 PM, wm4 <nfxjfg at googlemail.com> wrote:
> > On Wed, 30 Sep 2015 13:09:01 +0200
> > Hendrik Leppkes <h.leppkes at gmail.com> wrote:
> >
> >> The parser only reads the dca core sample rate, which is limited to a
> >> maximum of 48000 Hz, while X96 and HD extensions can increase the sample
> >> rate up to 192000 Hz.
> >>
> >> This change prevents the parser and decoder fighting over the sample rate,
> >> potentially confusing user applications. This also fixes sample rate
> >> display of >48000Hz files with ffmpeg/ffprobe when using libdcadec.
> >> ---
> >>  libavcodec/dca_parser.c | 1 -
> >>  1 file changed, 1 deletion(-)
> >>
> >> diff --git a/libavcodec/dca_parser.c b/libavcodec/dca_parser.c
> >> index 337a99d..70e64a8 100644
> >> --- a/libavcodec/dca_parser.c
> >> +++ b/libavcodec/dca_parser.c
> >> @@ -166,7 +166,6 @@ static int dca_parse(AVCodecParserContext *s, AVCodecContext *avctx,
> >>      /* read the duration and sample rate from the frame header */
> >>      if (!dca_parse_params(buf, buf_size, &duration, &sample_rate, &pc1->framesize)) {
> >>          s->duration        = duration;
> >> -        avctx->sample_rate = sample_rate;
> >>      } else
> >>          s->duration = 0;
> >>
> >
> > So in which situations do decoder and parser share the AVCodecContext
> > at all? In libavformat?
> 
> Yes, and it results in probing reporting the wrong sample rate right now.

That's scary (running the decoder in libavformat I mean), but I suppose
there's no better fix for now.


More information about the ffmpeg-devel mailing list