# HG changeset patch # User reimar # Date 1167939701 0 # Node ID 924da043b8cec6bb6ae8ef60e146f7191bd64e96 # Parent 1796373d7925ddd1647a4fe0590b7316e02eccf0 Use av_d2q to produce the fps fraction, this usually produces more sane fractions and works right also for extreme values that otherwise would over- or underflow. diff -r 1796373d7925 -r 924da043b8ce libvo/vo_yuv4mpeg.c --- a/libvo/vo_yuv4mpeg.c Thu Jan 04 19:33:03 2007 +0000 +++ b/libvo/vo_yuv4mpeg.c Thu Jan 04 19:41:41 2007 +0000 @@ -27,6 +27,7 @@ #include #include #include +#include #include "config.h" #include "subopt-helper.h" @@ -86,6 +87,7 @@ { AVRational pixelaspect = av_div_q((AVRational){d_width, d_height}, (AVRational){width, height}); + AVRational fps_frac = av_d2q(vo_fps, INT_MAX); if (image_width == width && image_height == height && image_fps == vo_fps && vo_config_count) return 0; @@ -157,9 +159,9 @@ image_u = image_y + image_width * image_height; image_v = image_u + image_width * image_height / 4; - fprintf(yuv_out, "YUV4MPEG2 W%d H%d F%ld:%ld I%c A%d:%d\n", - image_width, image_height, (long)(image_fps * 1000000.0), - (long)1000000, config_interlace, + fprintf(yuv_out, "YUV4MPEG2 W%d H%d F%d:%d I%c A%d:%d\n", + image_width, image_height, fps_frac.num, fps_frac.den, + config_interlace, pixelaspect.num, pixelaspect.den); fflush(yuv_out);