diff options
author | Anton Khirnov <anton@khirnov.net> | 2011-06-15 10:00:03 +0400 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2011-06-16 22:24:55 +0400 |
commit | 0b7ccad6bf79cebe5cd8392105276a4ba19d19f9 (patch) | |
tree | b7c47681e31e3af054b19b8d266223003f17a157 /ffmpeg.c | |
parent | 10de86b882f980a7e856a903bcb45a8fa7816cfd (diff) |
ffmpeg: don't abuse a global for passing frame size from input to output
It's broken with multiple files or video streams.
Diffstat (limited to 'ffmpeg.c')
-rw-r--r-- | ffmpeg.c | 16 |
1 files changed, 10 insertions, 6 deletions
@@ -2226,6 +2226,10 @@ static int transcode(AVFormatContext **output_files, #endif codec->bits_per_raw_sample= 0; } + if (!codec->width || !codec->height) { + codec->width = icodec->width; + codec->height = icodec->height; + } ost->resample_height = icodec->height; ost->resample_width = icodec->width; ost->resample_pix_fmt= icodec->pix_fmt; @@ -3297,16 +3301,12 @@ static int opt_input_file(const char *opt, const char *filename) case AVMEDIA_TYPE_VIDEO: input_codecs[nb_input_codecs-1] = avcodec_find_decoder_by_name(video_codec_name); set_context_opts(dec, avcodec_opts[AVMEDIA_TYPE_VIDEO], AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM, input_codecs[nb_input_codecs-1]); - frame_height = dec->height; - frame_width = dec->width; rfps = ic->streams[i]->r_frame_rate.num; rfps_base = ic->streams[i]->r_frame_rate.den; if (dec->lowres) { dec->flags |= CODEC_FLAG_EMU_EDGE; - frame_height >>= dec->lowres; - frame_width >>= dec->lowres; - dec->height = frame_height; - dec->width = frame_width; + dec->height >>= dec->lowres; + dec->width >>= dec->lowres; } if(me_threshold) dec->debug |= FF_DEBUG_MV; @@ -3352,6 +3352,8 @@ static int opt_input_file(const char *opt, const char *filename) video_channel = 0; frame_rate = (AVRational){0, 0}; frame_pix_fmt = PIX_FMT_NONE; + frame_height = 0; + frame_width = 0; audio_sample_rate = 0; audio_channels = 0; @@ -3893,6 +3895,8 @@ static void opt_output_file(const char *filename) set_context_opts(oc, avformat_opts, AV_OPT_FLAG_ENCODING_PARAM, NULL); frame_rate = (AVRational){0, 0}; + frame_width = 0; + frame_height = 0; audio_sample_rate = 0; audio_channels = 0; |