[FFmpeg-devel] [PATCH] avformat/mov: mov_build_index: pick the bigger sample_size of the 2

Alex Sukhanov alx.sukhanov at gmail.com
Fri May 24 03:09:06 CEST 2013


On Thu, May 23, 2013 at 3:48 PM, Michael Niedermayer <michaelni at gmx.at>wrote:

> On Thu, May 23, 2013 at 02:23:18PM -0700, Alex Sukhanov wrote:
> > On Thu, May 23, 2013 at 1:13 PM, Michael Niedermayer <michaelni at gmx.at
> >wrote:
> >
> > > Fixes Ticket2605
> > >
> > > Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> > > ---
> > >  libavformat/mov.c |    2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/libavformat/mov.c b/libavformat/mov.c
> > > index d5e1f89..9497884 100644
> > > --- a/libavformat/mov.c
> > > +++ b/libavformat/mov.c
> > > @@ -2018,7 +2018,7 @@ static void mov_build_index(MOVContext *mov,
> > > AVStream *st)
> > >                  }
> > >                  if (keyframe)
> > >                      distance = 0;
> > > -                sample_size = sc->alt_sample_size > 0 ?
> > > sc->alt_sample_size : sc->sample_sizes[current_sample];
> > > +                sample_size = sc->alt_sample_size > 0 ?
> > > FFMAX(sc->alt_sample_size, sc->sample_size) :
> > > sc->sample_sizes[current_sample];
> > >                  if (sc->pseudo_stream_id == -1 ||
> > >                     sc->stsc_data[stsc_index].id - 1 ==
> > > sc->pseudo_stream_id) {
> > >                      AVIndexEntry *e =
> > > &st->index_entries[st->nb_index_entries++];
> > > --
> > > 1.7.9.5
> > >
> > > _______________________________________________
> > > ffmpeg-devel mailing list
> > > ffmpeg-devel at ffmpeg.org
> > > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > >
> >
> >
> > Hi Michael,
> >
> > Thanks for looking on this problem. I just think that your fix
> potentially
> > doesn't cover all cases.
> > With your fix now we able to extract audio if STSZ sample_size < real
> > sample_size, as we have it in my sample file:
> > STSZ::sample_size = 1
> > real sample size = 4
> >
>
> > But what if STSZ::sample_size = 100
> > real sample size = 4?
>
> then the value 100 will be used
>
>
> >
> > Don't you think that we should revert
> >
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=50059bde77674977d9134f3c1151a63cb7a2391c
>
> If you revert the Fix for #522 then the sample from #522 will fail
>
>
>
Well, I'm looking on noaudio.mp4 (from #522) and see that
- Audio pcm_mulaw
- Track Timescale 8000
- num_channels 1
- bits_per_sample 8
- Sample duration is variable: 639, 640 640, 641, 648
- Sample size (STSZ) = 640 for each sample, what is incorrect. As long as
sample size should be equal to sample duration in this configuration.

BTW, I found that $mplayer -demuxer mov plays both (noaudio.mp4 and my
sample) correctly.

So I guess that PCM audio recovering should be implemented in different way.

Thank you


> [...]
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> If a bugfix only changes things apparently unrelated to the bug with no
> further explanation, that is a good sign that the bugfix is wrong.
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
>


More information about the ffmpeg-devel mailing list