From 9de0be61bec565c8ad7ea48c169aed4d55144b5c Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 26 Dec 2007 22:28:22 +0000 Subject: Do not force fps unless the user actually specified one. fixes issue309 Originally committed as revision 11322 to svn://svn.ffmpeg.org/ffmpeg/trunk --- ffmpeg.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'ffmpeg.c') diff --git a/ffmpeg.c b/ffmpeg.c index 9a990a382f..6d7dfef2e7 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -115,7 +115,7 @@ static int frame_bottomBand = 0; static int frame_leftBand = 0; static int frame_rightBand = 0; static int max_frames[4] = {INT_MAX, INT_MAX, INT_MAX, INT_MAX}; -static AVRational frame_rate = (AVRational) {25,1}; +static AVRational frame_rate = (AVRational) {0,0}; static float video_qscale = 0; static int video_qdiff = 3; static uint16_t *intra_matrix = NULL; @@ -2869,6 +2869,7 @@ static void new_video_stream(AVFormatContext *oc) char *p; int i; AVCodec *codec; + AVRational fps= frame_rate.num ? frame_rate : (AVRational){25,1}; codec_id = av_guess_codec(oc->oformat, NULL, oc->filename, NULL, CODEC_TYPE_VIDEO); if (video_codec_name) @@ -2885,15 +2886,14 @@ static void new_video_stream(AVFormatContext *oc) av_set_string(video_enc, opt_names[i], str); } - video_enc->time_base.den = frame_rate.num; - video_enc->time_base.num = frame_rate.den; + video_enc->time_base.den = fps.num; + video_enc->time_base.num = fps.den; if(codec && codec->supported_framerates){ const AVRational *p= codec->supported_framerates; - AVRational req= (AVRational){frame_rate.num, frame_rate.den}; const AVRational *best=NULL; AVRational best_error= (AVRational){INT_MAX, 1}; for(; p->den!=0; p++){ - AVRational error= av_sub_q(req, *p); + AVRational error= av_sub_q(fps, *p); if(error.num <0) error.num *= -1; if(av_cmp_q(error, best_error) < 0){ best_error= error; -- cgit v1.2.3