[FFmpeg-devel] [PATCH] Incorrect Ogg Theora duration

Baptiste Coudurier baptiste.coudurier
Fri Apr 18 09:45:37 CEST 2008


Henrik Gulbrandsen wrote:
> This problem showed up when I was getting ready to deliver my next patch
> yesterday. In effect, the duration calculation for Ogg streams seems to
> drop the first and last frame. This would be true for all Ogg data, but
> it's only noticeable for video at a low frame rate.
> 
> The attached examples show the result of
> 
>     ffmpeg -i video.mp4 -vcodec libtheora -f ogg video.ogv
>     ffplay -stats video.ogv > report.txt 2>&1
> 
> before and after the patch. Here, video.mp4 is exactly 24 seconds long,
> at 10 fps. Notice the "Duration: 00:00:23.80, start: 0.100000" part in
> the stats given with current code!
> 
> /Henrik
> 
> P.S. The "granule + 1" part of the patch is not technically correct, but
> should work for Theora, Vorbis, FLAC, and Speex, since none of them use
> overly complex semantics for the granule position. A more correct way of
> handling it would require extra code in each of the supported codecs...
> 

I think the "start" value is incorrect. According to specs, ogg granule 
stores the pts plus the duration of the ogg packet, so last packet 
granule is the stream duration.

-- 
Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
SMARTJOG SAS                                     http://www.smartjog.com
Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
Phone: +33 1 49966312




More information about the ffmpeg-devel mailing list