]> git.sesse.net Git - casparcg/commitdiff
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sat, 12 Mar 2011 12:52:09 +0000 (12:52 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sat, 12 Mar 2011 12:52:09 +0000 (12:52 +0000)
core/producer/layer.cpp
modules/ffmpeg/producer/ffmpeg_producer.cpp

index 6966c6a3f5130f58ae7c97f847409875528e0d26..1f30234320af91da7b17893c9aa7b90c01bcab98 100644 (file)
@@ -35,7 +35,8 @@ public:
 \r
        void remove(safe_ptr<frame_producer>&& producer)\r
        {\r
-               CASPAR_VERIFY(producer == frame_producer::empty() || producer.unique());\r
+               if(producer != frame_producer::empty() && !producer.unique())\r
+                       CASPAR_LOG(debug) << producer->print() << L" was not destroyed on dedicated destruction thread.";\r
                executor_.begin_invoke(std::bind(&frame_producer_remover::do_remove, this, std::move(producer)));\r
        }\r
 };\r
index ea732513128996c8688509998984e7cc90275c1d..de14220969eb0ff641378e650c5048d213a7ebb7 100644 (file)
@@ -63,6 +63,12 @@ public:
                input_.reset(new input(safe_ptr<diagnostics::graph>(graph_), filename_, loop_, std::bind(&ffmpeg_producer::print, this)));\r
                video_decoder_.reset(input_->get_video_codec_context().get() ? new video_decoder(input_->get_video_codec_context().get(), frame_factory) : nullptr);\r
                audio_decoder_.reset(input_->get_audio_codec_context().get() ? new audio_decoder(input_->get_audio_codec_context().get(), frame_factory->get_video_format_desc().fps) : nullptr);\r
+\r
+               double frame_time = 1.0f/input_->fps();\r
+               double format_frame_time = 1.0/frame_factory->get_video_format_desc().fps;\r
+               if(abs(frame_time - format_frame_time) > 0.0001)\r
+                       CASPAR_LOG(warning) << print() << L" Invalid framerate detected. This may cause distorted audio during playback.";\r
+\r
        }\r
                \r
        virtual void set_parent_printer(const printer& parent_printer) \r