]> git.sesse.net Git - casparcg/commitdiff
2.0.0.2: Another ffmpeg loop fix.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Tue, 26 Apr 2011 07:11:23 +0000 (07:11 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Tue, 26 Apr 2011 07:11:23 +0000 (07:11 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@646 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

modules/ffmpeg/producer/ffmpeg_producer.cpp
modules/ffmpeg/producer/input.cpp
modules/ffmpeg/producer/input.h
shell/caspar.config

index c0fac8964c598b780f595296eadd8c67cad1468a..5581a066c63790fec2dad9933316a0cccb7544bd 100644 (file)
@@ -153,7 +153,7 @@ public:
                auto result = last_frame_;\r
                if(!ouput_channel_.empty())             \r
                        result = get_frame(); // TODO: Support 50p              \r
-               else if(input_->is_eof())\r
+               else if(!input_->is_running())\r
                        result = core::basic_frame::eof();\r
                else\r
                        graph_->add_tag("lag");\r
index a2a0a50cc44690511359f5df001fa9c39f16872f..bd10d58431bb1ea967521fadca9d09819387f8ab 100644 (file)
@@ -159,7 +159,10 @@ public:
                                audio_packet_buffer_.try_push(std::move(packet));               \r
                }\r
                else if(!loop_ || av_seek_frame(format_context_.get(), -1, 0, AVSEEK_FLAG_BACKWARD) < 0) // TODO: av_seek_frame does not work for all formats\r
+               {\r
                        executor_.stop();\r
+                       CASPAR_LOG(info) << print() << " eof";\r
+               }       \r
                else\r
                        graph_->add_tag("seek");                \r
                                        \r
@@ -208,6 +211,7 @@ input::input(const safe_ptr<diagnostics::graph>& graph, const std::wstring& file
 const std::shared_ptr<AVCodecContext>& input::get_video_codec_context() const{return impl_->video_codec_context_;}\r
 const std::shared_ptr<AVCodecContext>& input::get_audio_codec_context() const{return impl_->audio_codex_context_;}\r
 bool input::is_eof() const{return impl_->is_eof();}\r
+bool input::is_running() const {return impl_->executor_.is_running();}\r
 aligned_buffer input::get_video_packet(){return impl_->get_video_packet();}\r
 aligned_buffer input::get_audio_packet(){return impl_->get_audio_packet();}\r
 double input::fps() const { return impl_->fps(); }\r
index 11c318ce70e033e7e5235b72705f593ceb4bdfc3..29f1e186348d3e7cead73e6911ffcef0fb3bf27f 100644 (file)
@@ -24,6 +24,7 @@ public:
        aligned_buffer get_audio_packet();\r
 \r
        bool is_eof() const;\r
+       bool is_running() const;\r
        double fps() const;\r
 private:\r
        struct implementation;\r
index b1b63dce58978a556ec30aa6ffae9da99a727b0a..351bd8e31ec4d8d71c7ed2a690de73f8a2f17564 100644 (file)
@@ -12,7 +12,7 @@
   </diagnostics>\r
   <channels>\r
     <channel>\r
-      <videomode>1080i5000</videomode>\r
+      <videomode>PAL</videomode>\r
       <consumers>\r
         <!--<decklink>\r
           <device>1</device>\r