]> git.sesse.net Git - casparcg/blobdiff - modules/ffmpeg/producer/muxer/frame_muxer.cpp
2.0.2: Renamed PARAM to CAll. Added CALL based alternative syntax to CG commands...
[casparcg] / modules / ffmpeg / producer / muxer / frame_muxer.cpp
index d850e4343a2d2d71ba8ad57dbe5a0bde82af06b9..3f5deef5cbe15d10fed8e4f6962ce2278acee82a 100644 (file)
@@ -66,7 +66,7 @@ struct frame_muxer::implementation : boost::noncopyable
                : display_mode_(display_mode::invalid)\r
                , in_fps_(in_fps)\r
                , format_desc_(frame_factory->get_video_format_desc())\r
-               , auto_transcode_(env::properties().get("configuration.producers.auto-transcode", false))\r
+               , auto_transcode_(env::properties().get("configuration.auto-transcode", true))\r
                , audio_sample_count_(0)\r
                , video_frame_count_(0)\r
                , frame_factory_(frame_factory)\r
@@ -108,7 +108,9 @@ struct frame_muxer::implementation : boost::noncopyable
                        filter_.push(video_frame);\r
                        BOOST_FOREACH(auto& av_frame, filter_.poll_all())\r
                        {\r
-                               av_frame->format = format;\r
+                               if(video_frame->format == PIX_FMT_GRAY8 && format == CASPAR_PIX_FMT_LUMA)\r
+                                       av_frame->format = format;\r
+\r
                                video_streams_.back().push(make_write_frame(this, av_frame, frame_factory_, hints));\r
                                ++video_frame_count_;\r
                        }\r
@@ -278,9 +280,13 @@ struct frame_muxer::implementation : boost::noncopyable
                        \r
                        display_mode_ = get_display_mode(mode, fps, format_desc_.field_mode, format_desc_.fps);\r
                        \r
-                       if(display_mode_ == display_mode::simple && mode != core::field_mode::progressive && format_desc_.field_mode != core::field_mode::progressive && frame.height != static_cast<int>(format_desc_.height))\r
+                       if((frame.height != 480 || format_desc_.height != 486) && \r
+                               display_mode_ == display_mode::simple && mode != core::field_mode::progressive && format_desc_.field_mode != core::field_mode::progressive && \r
+                               frame.height != static_cast<int>(format_desc_.height))\r
+                       {\r
                                display_mode_ = display_mode::deinterlace_bob_reinterlace; // The frame will most likely be scaled, we need to deinterlace->reinterlace \r
-                               \r
+                       }\r
+\r
                        if(display_mode_ == display_mode::deinterlace)\r
                                filter_str_ = append_filter(filter_str_, L"YADIF=0:-1");\r
                        else if(display_mode_ == display_mode::deinterlace_bob || display_mode_ == display_mode::deinterlace_bob_reinterlace)\r