[Ffmpeg-cvslog] r8334 - trunk/libavformat/matroska.c

Aurelien Jacobs aurel
Wed Mar 14 01:27:18 CET 2007

On Tue, 13 Mar 2007 21:06:47 +0100
Michael Niedermayer <michaelni at gmx.at> wrote:

> Hi
> On Tue, Mar 13, 2007 at 03:35:27PM +0200, Uoti Urpala wrote:
> > On Tue, 2007-03-13 at 13:53 +0100, Michael Niedermayer wrote:
> > > the pts->dts code fails if EVERY of the following assumtations is true
> > >     codec is h.264
> > >     complex frame reordering is used (like b pyramid)
> > >     pts are available
> > >     dts are not available
> > >     dts are equal to sorted pts
> > 
> > The code also seems to use pkt->duration, which cannot be known
> > correctly based on pts without demuxing further. Does it always work
> > right with simpler frame reordering but VFR? Also with the Matroska
> ive already said that the code works, if you have found a case where
> it fails (except h.264 stuff), then  please submit a bugreport
> > sample I tested even the incorrect dts calculation logic was not
> > triggered at all, but dts was always set equal to pts.
> well id guess the matroska demuxer or parser forgot to set some things
> correctly, maybe has_b_frames or the frame type, or maybe theres no
> parser at all initalized ...

Now that I read this, this seems so simple !
I wonder why I didn't thought about setting st->need_parsing myself...
See quick and dirty attached patch. It disable my custom pts reordering
code and set st->need_parsing. And this indeed gives a smooth playback
for soraya.mkv.
Wait... That's not so simple. With the attached patch, planet.earth.mkv
don't play at all ! It gives only sound, no video. Probably another
small stupid mistake, but I'm too tired right now. I will look at
this tomorrow, and hopefully, we can get ride of my ugly pts reordering

-------------- next part --------------
A non-text attachment was scrubbed...
Name: mkv_parsing.diff
Type: text/x-diff
Size: 1186 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/attachments/20070314/583a2507/attachment.diff>

More information about the ffmpeg-cvslog mailing list