]> 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>
Sun, 18 Mar 2012 19:31:33 +0000 (19:31 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sun, 18 Mar 2012 19:31:33 +0000 (19:31 +0000)
modules/ffmpeg/producer/ffmpeg_producer.cpp

index 4b91b047e07267fc794455c65faab6599f04b521..12e13010c61b63c5f68c85852008ce701d7f38e0 100644 (file)
@@ -186,12 +186,13 @@ public:
                                                << monitor::event("file/path")                  % filename_\r
                                                << monitor::event("loop")                               % input_.loop();\r
                \r
-               if(frame == core::draw_frame::late())\r
-                       return frame;\r
-               else if(input_.eof())\r
-                       return last_frame();\r
-               else\r
-                       return last_frame_ = frame;\r
+               if(frame == core::draw_frame::late() && input_.eof())\r
+                               return last_frame();\r
+               \r
+               if(frame != core::draw_frame::late())\r
+                       last_frame_ = frame;\r
+               \r
+               return frame;\r
        }\r
 \r
        core::draw_frame last_frame() const override\r
@@ -355,13 +356,12 @@ public:
                video_decoder_.clear();\r
                audio_decoder_.clear();\r
                        \r
-               target = std::min(target, file_nb_frames()-3);\r
+               //target = std::min(target, file_nb_frames()-8);\r
 \r
                input_.seek(target);\r
                                \r
                decode_next_frame();\r
-\r
-               for(int n = 0; n < 25 && video_decoder_.file_frame_number() != target+2 && !muxer_.empty(); ++n) // TODO: +2 since a frame can be stuck inside yadif filter.\r
+               for(int n = 0; n < 8 && !muxer_.empty(); ++n) // TODO: +2 since a frame can be stuck inside yadif filter.\r
                {\r
                        muxer_.pop();\r
                        decode_next_frame();\r