[FFmpeg-devel] [PATCH] Fix for ogg timestamps when packets span multiple ogg pages

Michael Niedermayer michaelni
Tue Nov 11 11:07:21 CET 2008


On Tue, Nov 11, 2008 at 04:22:38AM -0500, David Conrad wrote:
> 
> On Nov 9, 2008, at 3:58 AM, Michael Niedermayer wrote:
> 
> > On Sun, Nov 09, 2008 at 09:49:00AM +0100, Michael Niedermayer wrote:
> >> On Sun, Nov 09, 2008 at 02:48:01AM -0500, David Conrad wrote:
> >>> On Nov 6, 2008, at 5:51 PM, David Conrad wrote:
> >>>
> >>>> Hi,
> >>>>
> >>>> The problem with the current code comes from how an ogg page with  
> >>>> only a
> >>>> partial packet uses the special granulepos of -1. The granulepos  
> >>>> needs to
> >>>> be saved from the last page that completed a packet until the  
> >>>> next page
> >>>> that completes a packet, where it is the timestamp of the first  
> >>>> complete
> >>>> packet.
> >>>
> >>>
> >>> After looking at ogg granule_position some more, there's another  
> >>> problem in
> >>> that Dirac and ogm both assume that the timestamp is the beginning  
> >>> of the
> >>> associated packet, wheras Xiph codecs define the granule as the  
> >>> time after
> >>> the associated packet is fully decoded (I'm assuming, I've only  
> >>> found
> >>> Vorbis and Theora to do so explicitly.)
> >>
> >> older versions of theora also use the ogm variant IIRC
> >> also see the (non working AFAIK) hack in theora_gptopts() about that
> 
> Are you sure r15785 isn't not working? Or were you thinking of  
> something else?
> And you're right, Theora < 3.2.1 does use the granule as frame start.

I was thinking of 15785 but i did not test it, so maybe iam wrong, its a
while since ive looked at theora in ogg. But i think the current code is
not guraneed to produce correct timestamps for some ways of distributing
theora packets in ogg pages.
Also i suspect the keyframe flags will be wrong, this could be checked
easily by printing demuxer and vp3_parser.c found keyframe flags.
But again, this is just foggy memory and gut feeling ...

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

> ... defining _GNU_SOURCE...
For the love of all that is holy, and some that is not, don't do that.
-- Luca & Mans
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20081111/8a21a0b3/attachment.pgp>



More information about the ffmpeg-devel mailing list