From 51507e23566192b0dd5c36b6e76d633b06cda144 Mon Sep 17 00:00:00 2001 From: ronag Date: Thu, 1 Dec 2011 17:26:15 +0000 Subject: [PATCH] git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.2@1751 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d --- modules/ffmpeg/consumer/ffmpeg_consumer.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/modules/ffmpeg/consumer/ffmpeg_consumer.cpp b/modules/ffmpeg/consumer/ffmpeg_consumer.cpp index cee3bb83b..8a5fc7d6d 100644 --- a/modules/ffmpeg/consumer/ffmpeg_consumer.cpp +++ b/modules/ffmpeg/consumer/ffmpeg_consumer.cpp @@ -182,7 +182,7 @@ public: if(c->codec_id == CODEC_ID_PRORES) { - c->bit_rate = c->bit_rate > 0 ? c->bit_rate : format_desc_.width < 1280 ? 42*1000000 : 147*1000000; + c->bit_rate = format_desc_.width < 1280 ? 63*1000000 : 220*1000000; c->pix_fmt = PIX_FMT_YUV422P10; THROW_ON_ERROR2(av_set_options_string(c->priv_data, options.c_str(), "=", ":"), "[ffmpeg_consumer]"); } @@ -191,16 +191,23 @@ public: if(format_desc_.width < 1280 || format_desc_.height < 720) BOOST_THROW_EXCEPTION(caspar_exception() << msg_info("unsupported dimension")); - c->bit_rate = c->bit_rate > 0 ? c->bit_rate : 220*1000000; + c->bit_rate = 220*1000000; c->pix_fmt = PIX_FMT_YUV422P; THROW_ON_ERROR2(av_set_options_string(c->priv_data, options.c_str(), "=", ":"), "[ffmpeg_consumer]"); } else if(c->codec_id == CODEC_ID_DVVIDEO) { - c->bit_rate = c->bit_rate > 0 ? c->bit_rate : format_desc_.width < 1280 ? 50*1000000 : 100*1000000; + c->bit_rate = format_desc_.width < 1280 ? 50*1000000 : 100*1000000; c->pix_fmt = PIX_FMT_YUV422P; + c->width = format_desc_.height == 1280 ? 960 : c->width; + + if(format_desc_.duration == 1001) + c->width = format_desc_.height == 1080 ? 1280 : c->width; + else + c->width = format_desc_.height == 1080 ? 1440 : c->width; + THROW_ON_ERROR2(av_set_options_string(c->priv_data, options.c_str(), "=", ":"), "[ffmpeg_consumer]"); } else if(c->codec_id == CODEC_ID_H264) @@ -426,14 +433,17 @@ safe_ptr create_ffmpeg_consumer(const std::vector