[FFmpeg-devel] [PATCH] avformat/mp3dec: Adjust returned timestamp in the CBR seeking case

Michael Niedermayer michaelni at gmx.at
Tue Apr 21 02:02:28 CEST 2015


On Mon, Apr 20, 2015 at 09:54:22PM +0200, wm4 wrote:
> On Mon, 20 Apr 2015 21:25:44 +0200
> Michael Niedermayer <michaelni at gmx.at> wrote:
> 
> > With this the returned timestamp should match the packet instead of
> > the requested timestamp, which may lay between  packets
> > 
> > Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> > ---
> >  libavformat/mp3dec.c             |    6 ++++++
> >  tests/ref/fate/gapless-mp3-notoc |    2 +-
> >  2 files changed, 7 insertions(+), 1 deletion(-)
> > 
> > diff --git a/libavformat/mp3dec.c b/libavformat/mp3dec.c
> > index 06bc1d0..89990ec 100644
> > --- a/libavformat/mp3dec.c
> > +++ b/libavformat/mp3dec.c
> > @@ -489,6 +489,12 @@ static int mp3_seek(AVFormatContext *s, int stream_index, int64_t timestamp,
> >      ret = avio_seek(s->pb, best_pos, SEEK_SET);
> >      if (ret < 0)
> >          return ret;
> > +
> > +    if (mp3->is_cbr && ie == &ie1) {
> > +        int frame_duration = av_rescale(st->duration, 1, mp3->frames);
> > +        ie1.timestamp = frame_duration * (av_rescale(best_pos - s->internal->data_offset, mp3->frames, mp3->header_filesize));
> > +    }
> > +
> >      ff_update_cur_dts(s, st, ie->timestamp);
> >      st->skip_samples = ie->timestamp <= 0 ? mp3->start_pad + 528 + 1 : 0;
> >      return 0;
> > diff --git a/tests/ref/fate/gapless-mp3-notoc b/tests/ref/fate/gapless-mp3-notoc
> > index f52efff..936d0ba 100644
> > --- a/tests/ref/fate/gapless-mp3-notoc
> > +++ b/tests/ref/fate/gapless-mp3-notoc
> > @@ -2,4 +2,4 @@ d5c88cf38416329a052a9b0cb140fb4c *tests/data/fate/gapless-mp3-notoc.out-1
> >  c96c3ae7bd3300fd2f4debac222de5b7
> >  3386bc2009b31b7ef39247918cbb02a5 *tests/data/fate/gapless-mp3-notoc.out-2
> >  c96c3ae7bd3300fd2f4debac222de5b7
> > -e82eaed507ce3f7f6199918159e1ddd7 *tests/data/fate/gapless-mp3-notoc.out-3
> > +92e37f050ad4fc817730c8af17ee6d1b *tests/data/fate/gapless-mp3-notoc.out-3
> 
> I checked myself, and the output looks and sounds potentially good.
> (But I'm rather bad at spotting the "gap".) So I'd suggest applying
> this.

ok, applied

thanks

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Republics decline into democracies and democracies degenerate into
despotisms. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150421/709fced1/attachment.asc>


More information about the ffmpeg-devel mailing list