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

David Conrad lessen42
Tue Nov 11 10:22:38 CET 2008


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.

> and "[PATCH] issue251, xvid within .ogm will not remux to .avi try2"

This does seem to fix .ogm remuxing to avi for me; at least I'm not  
aware of any problems.




More information about the ffmpeg-devel mailing list