]> 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 16:50:55 +0000 (16:50 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sun, 18 Mar 2012 16:50:55 +0000 (16:50 +0000)
modules/ffmpeg/producer/audio/audio_decoder.cpp
modules/ffmpeg/producer/input/input.cpp
modules/ffmpeg/producer/video/video_decoder.cpp

index 64c0d483e1c8b3539c17985130151ce34c2ead12..0c21baedc7161663a36cdcc2b66f459c3a5dcff5 100644 (file)
@@ -112,7 +112,6 @@ public:
                        if(packet->data == nullptr)\r
                        {\r
                                packets_.pop();\r
-                               file_frame_number_ = static_cast<uint32_t>(packet->pts);\r
                                avcodec_flush_buffers(codec_context_.get());\r
                                return flush_audio();\r
                        }\r
@@ -156,7 +155,7 @@ public:
 \r
        bool ready() const\r
        {\r
-               return !codec_context_ || !packets_.empty();\r
+               return !packets_.empty();\r
        }\r
        \r
        void clear()\r
index f8f018077080e324e53d8cb7f9ab5af6d2dad895..7af517547fdb9fee7856921669bdf0b5ffde49b0 100644 (file)
@@ -159,14 +159,12 @@ struct input::impl : boost::noncopyable
                        auto flush_packet       = create_packet();\r
                        flush_packet->data      = nullptr;\r
                        flush_packet->size      = 0;\r
-                       flush_packet->pts       = target;\r
-\r
                        buffer_.push(flush_packet);\r
                        \r
                        tick();\r
                }, task_priority::high_priority);\r
        }\r
-       \r
+               \r
        std::wstring print() const\r
        {\r
                return L"ffmpeg_input[" + filename_ + L")]";\r
@@ -204,7 +202,14 @@ struct input::impl : boost::noncopyable
                                                CASPAR_LOG(trace) << print() << " Looping.";    \r
                                        }\r
                                        else\r
+                                       {\r
+                                               auto flush_packet       = create_packet();\r
+                                               flush_packet->data      = nullptr;\r
+                                               flush_packet->size      = 0;\r
+                                               buffer_.push(flush_packet);\r
+\r
                                                eof_ = true;\r
+                                       }\r
                                }\r
                                else\r
                                {               \r
index f5238bcbd8e8ea9377a3519384b76340059e4700..444300689e9df8500da6148ea3527d15103bf840 100644 (file)
@@ -120,9 +120,7 @@ public:
                                }\r
                                        \r
                                packets_.pop();\r
-                               file_frame_number_ = static_cast<uint32_t>(packet->pts);\r
-                               avcodec_flush_buffers(codec_context_.get());\r
-                               \r
+                               avcodec_flush_buffers(codec_context_.get());                            \r
                                return flush_video();   \r
                        }\r
                        \r
@@ -165,7 +163,7 @@ public:
        \r
        bool ready() const\r
        {\r
-               return !codec_context_ || !packets_.empty();\r
+               return !packets_.empty();\r
        }\r
 \r
        void clear()\r