[XviD-devel] [BUG] Segfault with large fincr/fbase values

Christoph Lampert chl at math.uni-bonn.de
Wed Jul 14 16:28:38 CEST 2004


On Wed, 14 Jul 2004, Adam Thayer wrote:
> On Jul 14, 2004, at 12:27 AM, Christoph Lampert wrote:
> 
> > Btw, your values should be swapped, right? fbase is supposed to be 
> > larger
> > than fincr, because fps = fbase/fincr.
> 
> Well, either direction, XviD produced valid data with the right 
> framerate. Since there wasn't enough documentation on how the frame 
> rate fractional was supposed to be represented in either ffmpeg or XviD 
> (without delving beyond headers), I went with ffmpeg's layout where fps 
> = frame_rate/frame_rate_base. It produced an MP4 file that would be 
> noticed with the proper frame rate. Although your method does the same. 
> In this situation, a file setup so that fps = fbase/fincr causes 
> mpeg4ip's tools to crash, while fps = fincr/fbase results in files 
> mpeg4ip's tools read just fine. Curious.

In the standard (section 6.3.3?) they are called, 

vop_time_increment_resolution which is an unsigned 16bit integer, 
specifying the number of "ticks" per seconds,

and 

fixed_vop_time_increment taking values between 0 and 
vop_time_increment_resolution (not included), and which is the number of 
"ticks" per frame. 

In XviD fbase should be vop_time_increment_resolution and fincr should be 
fixed_vop_time_increment, because that's how I planned it to be, 
and also it wouldn't be logical any other way. This also seems to be the 
case, since the default is  fincr=1, fbase=25  (encoder.c)

I don't know the ffmpeg method, but if you see it in XviD done anywhere in 
any other way, please send us a bugreport or even better, directly a 
patch. 

chl



More information about the XviD-devel mailing list