From 9099dbd7f402ebda32da88a94a360a3385f84bb0 Mon Sep 17 00:00:00 2001 From: hellgore Date: Wed, 26 Sep 2012 15:10:55 +0000 Subject: [PATCH] Merged new video mode support from trunk git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.1.0@3369 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d --- core/video_format.cpp | 32 ++++++++++++++++----------- core/video_format.h | 16 +++++++++----- modules/bluefish/util/blue_velvet.cpp | 8 ++++++- modules/decklink/util/util.h | 20 ++++++++++++----- shell/casparcg.config | 4 ++-- 5 files changed, 53 insertions(+), 27 deletions(-) diff --git a/core/video_format.cpp b/core/video_format.cpp index 146a574c2..d16b3b1e9 100644 --- a/core/video_format.cpp +++ b/core/video_format.cpp @@ -29,23 +29,29 @@ namespace caspar { namespace core { const std::vector format_descs = boost::assign::list_of - (video_format_desc(video_format::pal, 720, 576, 1024, 576, field_mode::upper, 25, 1, L"PAL", boost::assign::list_of(3840))) + (video_format_desc(video_format::pal, 720, 576, 1024, 576, field_mode::upper, 25, 1, L"PAL", boost::assign::list_of(3840) )) (video_format_desc(video_format::ntsc, 720, 486, 720, 540, field_mode::lower, 30000, 1001, L"NTSC", boost::assign::list_of(3204)(3202)(3204)(3202)(3204))) - (video_format_desc(video_format::x576p2500, 720, 576, 720, 576, field_mode::progressive, 25, 1, L"576p2500", boost::assign::list_of(3840) )) - (video_format_desc(video_format::x720p2500, 1280, 720, 1280, 720, field_mode::progressive, 25, 1, L"720p2500", boost::assign::list_of(3840) )) - (video_format_desc(video_format::x720p5000, 1280, 720, 1280, 720, field_mode::progressive, 50, 1, L"720p5000", boost::assign::list_of(1920) )) + (video_format_desc(video_format::x576p2500, 720, 576, 720, 576, field_mode::progressive, 25, 1, L"576p2500", boost::assign::list_of(3840) )) + (video_format_desc(video_format::x720p2398, 1280, 720, 1280, 720, field_mode::progressive, 24000, 1001, L"720p2398", boost::assign::list_of(4004) )) + (video_format_desc(video_format::x720p2400, 1280, 720, 1280, 720, field_mode::progressive, 24, 1, L"720p2400", boost::assign::list_of(4000) )) + (video_format_desc(video_format::x720p2500, 1280, 720, 1280, 720, field_mode::progressive, 25, 1, L"720p2500", boost::assign::list_of(3840) )) + (video_format_desc(video_format::x720p5000, 1280, 720, 1280, 720, field_mode::progressive, 50, 1, L"720p5000", boost::assign::list_of(1920) )) + (video_format_desc(video_format::x720p2997, 1280, 720, 1280, 720, field_mode::progressive, 30000, 1001, L"720p2997", boost::assign::list_of(3204)(3202)(3204)(3202)(3204))) (video_format_desc(video_format::x720p5994, 1280, 720, 1280, 720, field_mode::progressive, 60000, 1001, L"720p5994", boost::assign::list_of(1602)(1601)(1602)(1601)(1602))) - (video_format_desc(video_format::x720p6000, 1280, 720, 1280, 720, field_mode::progressive, 60, 1, L"720p6000", boost::assign::list_of(1600) )) - (video_format_desc(video_format::x1080p2397, 1920, 1080, 1920, 1080, field_mode::progressive, 24000, 1001, L"1080p2398", boost::assign::list_of(4004) )) - (video_format_desc(video_format::x1080p2400, 1920, 1080, 1920, 1080, field_mode::progressive, 24, 1, L"1080p2400", boost::assign::list_of(4000) )) - (video_format_desc(video_format::x1080i5000, 1920, 1080, 1920, 1080, field_mode::upper, 25, 1, L"1080i5000", boost::assign::list_of(3840) )) + (video_format_desc(video_format::x720p3000, 1280, 720, 1280, 720, field_mode::progressive, 30, 1, L"720p3000", boost::assign::list_of(3200) )) + (video_format_desc(video_format::x720p6000, 1280, 720, 1280, 720, field_mode::progressive, 60, 1, L"720p6000", boost::assign::list_of(1600) )) + (video_format_desc(video_format::x1080p2398, 1920, 1080, 1920, 1080, field_mode::progressive, 24000, 1001, L"1080p2398", boost::assign::list_of(4004) )) + (video_format_desc(video_format::x1080p2400, 1920, 1080, 1920, 1080, field_mode::progressive, 24, 1, L"1080p2400", boost::assign::list_of(4000) )) + (video_format_desc(video_format::x1080i5000, 1920, 1080, 1920, 1080, field_mode::upper, 25, 1, L"1080i5000", boost::assign::list_of(3840) )) (video_format_desc(video_format::x1080i5994, 1920, 1080, 1920, 1080, field_mode::upper, 30000, 1001, L"1080i5994", boost::assign::list_of(3204)(3202)(3204)(3202)(3204))) - (video_format_desc(video_format::x1080i6000, 1920, 1080, 1920, 1080, field_mode::upper, 30, 1, L"1080i6000", boost::assign::list_of(3200) )) - (video_format_desc(video_format::x1080p2500, 1920, 1080, 1920, 1080, field_mode::progressive, 25, 1, L"1080p2500", boost::assign::list_of(3840) )) + (video_format_desc(video_format::x1080i6000, 1920, 1080, 1920, 1080, field_mode::upper, 30, 1, L"1080i6000", boost::assign::list_of(3200) )) + (video_format_desc(video_format::x1080p2500, 1920, 1080, 1920, 1080, field_mode::progressive, 25, 1, L"1080p2500", boost::assign::list_of(3840) )) (video_format_desc(video_format::x1080p2997, 1920, 1080, 1920, 1080, field_mode::progressive, 30000, 1001, L"1080p2997", boost::assign::list_of(3204)(3202)(3204)(3202)(3204))) - (video_format_desc(video_format::x1080p3000, 1920, 1080, 1920, 1080, field_mode::progressive, 30, 1, L"1080p3000", boost::assign::list_of(3200) )) - (video_format_desc(video_format::x1080p5000, 1920, 1080, 1920, 1080, field_mode::progressive, 50, 1, L"1080p5000", boost::assign::list_of(1920) )) - (video_format_desc(video_format::invalid, 0, 0, 0, 0, field_mode::progressive, 1, 1, L"invalid", boost::assign::list_of(1) )); + (video_format_desc(video_format::x1080p3000, 1920, 1080, 1920, 1080, field_mode::progressive, 30, 1, L"1080p3000", boost::assign::list_of(3200) )) + (video_format_desc(video_format::x1080p5000, 1920, 1080, 1920, 1080, field_mode::progressive, 50, 1, L"1080p5000", boost::assign::list_of(1920) )) + (video_format_desc(video_format::x1080p5994, 1920, 1080, 1920, 1080, field_mode::progressive, 60000, 1001, L"1080p5994", boost::assign::list_of(1602)(1601)(1602)(1601)(1602))) + (video_format_desc(video_format::x1080p6000, 1920, 1080, 1920, 1080, field_mode::progressive, 60, 1, L"1080p6000", boost::assign::list_of(1600) )) + (video_format_desc(video_format::invalid, 0, 0, 0, 0, field_mode::progressive, 1, 1, L"invalid", boost::assign::list_of(1) )); video_format_desc::video_format_desc(video_format format, int width, diff --git a/core/video_format.h b/core/video_format.h index 713ae6cc3..377309f91 100644 --- a/core/video_format.h +++ b/core/video_format.h @@ -37,10 +37,14 @@ struct video_format_def ntsc, x576p2500, x720p2500, - x720p5000, - x720p5994, - x720p6000, - x1080p2397, + x720p5000, + x720p2398, + x720p2400, + x720p2997, + x720p5994, + x720p3000, + x720p6000, + x1080p2398, x1080p2400, x1080i5000, x1080i5994, @@ -48,7 +52,9 @@ struct video_format_def x1080p2500, x1080p2997, x1080p3000, - x1080p5000, + x1080p5000, + x1080p5994, + x1080p6000, invalid, count }; diff --git a/modules/bluefish/util/blue_velvet.cpp b/modules/bluefish/util/blue_velvet.cpp index b5f45d511..3bb516aaa 100644 --- a/modules/bluefish/util/blue_velvet.cpp +++ b/modules/bluefish/util/blue_velvet.cpp @@ -89,11 +89,15 @@ EVideoMode vid_fmt_from_video_format(const core::video_format& fmt) case core::video_format::pal: return VID_FMT_PAL; case core::video_format::ntsc: return VID_FMT_NTSC; case core::video_format::x576p2500: return VID_FMT_INVALID; //not supported + case core::video_format::x720p2398: return VID_FMT_720P_2398; + case core::video_format::x720p2400: return VID_FMT_720P_2400; case core::video_format::x720p2500: return VID_FMT_720P_2500; case core::video_format::x720p5000: return VID_FMT_720P_5000; + case core::video_format::x720p2997: return VID_FMT_720P_2997; case core::video_format::x720p5994: return VID_FMT_720P_5994; + case core::video_format::x720p3000: return VID_FMT_720P_3000; case core::video_format::x720p6000: return VID_FMT_720P_6000; - case core::video_format::x1080p2397: return VID_FMT_1080P_2397; + case core::video_format::x1080p2398: return VID_FMT_1080P_2397; case core::video_format::x1080p2400: return VID_FMT_1080P_2400; case core::video_format::x1080i5000: return VID_FMT_1080I_5000; case core::video_format::x1080i5994: return VID_FMT_1080I_5994; @@ -102,6 +106,8 @@ EVideoMode vid_fmt_from_video_format(const core::video_format& fmt) case core::video_format::x1080p2997: return VID_FMT_1080P_2997; case core::video_format::x1080p3000: return VID_FMT_1080P_3000; case core::video_format::x1080p5000: return VID_FMT_1080P_5000; + case core::video_format::x1080p5994: return VID_FMT_1080P_5994; + case core::video_format::x1080p6000: return VID_FMT_1080P_6000; default: return VID_FMT_INVALID; } } diff --git a/modules/decklink/util/util.h b/modules/decklink/util/util.h index 9e3b5b27a..182f372c7 100644 --- a/modules/decklink/util/util.h +++ b/modules/decklink/util/util.h @@ -42,11 +42,15 @@ static BMDDisplayMode get_decklink_video_format(core::video_format fmt) case core::video_format::pal: return bmdModePAL; case core::video_format::ntsc: return bmdModeNTSC; case core::video_format::x576p2500: return (BMDDisplayMode)ULONG_MAX; + case core::video_format::x720p2398: return (BMDDisplayMode)ULONG_MAX; + case core::video_format::x720p2400: return (BMDDisplayMode)ULONG_MAX; case core::video_format::x720p2500: return (BMDDisplayMode)ULONG_MAX; case core::video_format::x720p5000: return bmdModeHD720p50; + case core::video_format::x720p2997: return (BMDDisplayMode)ULONG_MAX; case core::video_format::x720p5994: return bmdModeHD720p5994; + case core::video_format::x720p3000: return (BMDDisplayMode)ULONG_MAX; case core::video_format::x720p6000: return bmdModeHD720p60; - case core::video_format::x1080p2397: return bmdModeHD1080p2398; + case core::video_format::x1080p2398: return bmdModeHD1080p2398; case core::video_format::x1080p2400: return bmdModeHD1080p24; case core::video_format::x1080i5000: return bmdModeHD1080i50; case core::video_format::x1080i5994: return bmdModeHD1080i5994; @@ -55,6 +59,8 @@ static BMDDisplayMode get_decklink_video_format(core::video_format fmt) case core::video_format::x1080p2997: return bmdModeHD1080p2997; case core::video_format::x1080p3000: return bmdModeHD1080p30; case core::video_format::x1080p5000: return bmdModeHD1080p50; + case core::video_format::x1080p5994: return bmdModeHD1080p5994; + case core::video_format::x1080p6000: return bmdModeHD1080p6000; default: return (BMDDisplayMode)ULONG_MAX; } } @@ -68,15 +74,17 @@ static core::video_format get_caspar_video_format(BMDDisplayMode fmt) case bmdModeHD720p50: return core::video_format::x720p5000; case bmdModeHD720p5994: return core::video_format::x720p5994; case bmdModeHD720p60: return core::video_format::x720p6000; - case bmdModeHD1080p2398: return core::video_format::x1080p2397; + case bmdModeHD1080p2398: return core::video_format::x1080p2398; case bmdModeHD1080p24: return core::video_format::x1080p2400; case bmdModeHD1080i50: return core::video_format::x1080i5000; case bmdModeHD1080i5994: return core::video_format::x1080i5994; case bmdModeHD1080i6000: return core::video_format::x1080i6000; - case bmdModeHD1080p25: return core::video_format::x1080p2500; - case bmdModeHD1080p2997: return core::video_format::x1080p2997; - case bmdModeHD1080p30: return core::video_format::x1080p3000; - case bmdModeHD1080p50: return core::video_format::x1080p5000; + case bmdModeHD1080p25: return core::video_format::x1080p2500; + case bmdModeHD1080p2997: return core::video_format::x1080p2997; + case bmdModeHD1080p30: return core::video_format::x1080p3000; + case bmdModeHD1080p50: return core::video_format::x1080p5000; + case bmdModeHD1080p5994: return core::video_format::x1080p5994; + case bmdModeHD1080p6000: return core::video_format::x1080p6000; default: return core::video_format::invalid; } } diff --git a/shell/casparcg.config b/shell/casparcg.config index 2d895b952..e031a2916 100644 --- a/shell/casparcg.config +++ b/shell/casparcg.config @@ -49,7 +49,7 @@ - PAL [PAL|NTSC|1080i5000|576p2500|720p2500|720p5000|720p5994|720p6000|1080i5000|1080i5994|1080i6000|1080p2500|1080p2997|1080p3000|1080p5000] + PAL [PAL|NTSC|576p2500|720p2398|720p2400|720p2500|720p5000|720p2997|720p5994|720p3000|720p6000|1080p2398|1080p2400|1080i5000|1080i5994|1080i6000|1080p2500|1080p2997|1080p3000|1080p5000|1080p5994|1080p6000] [1..] @@ -72,7 +72,7 @@ false [true|false] false [true|false] true [true|false] - fasle [true|false] + false [true|false] -- 2.39.2