]> 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>
Wed, 8 Jun 2011 11:29:56 +0000 (11:29 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Wed, 8 Jun 2011 11:29:56 +0000 (11:29 +0000)
modules/decklink/consumer/decklink_consumer.cpp
modules/ffmpeg/producer/input.cpp

index 55df8d2ae59056b01cf4eced1ba79db91d966f67..68e2d6948f8aa4dc4ee27e333f1398acb162e1f2 100644 (file)
@@ -277,7 +277,10 @@ public:
                        else if(result == bmdOutputFrameFlushed)\r
                                graph_->add_tag("flushed-frame");\r
 \r
-                       frame_container_.erase(std::find_if(frame_container_.begin(), frame_container_.end(), completed_frame));\r
+                       frame_container_.erase(std::find_if(frame_container_.begin(), frame_container_.end(), [&](const std::shared_ptr<IDeckLinkVideoFrame>& frame)\r
+                       {\r
+                               return frame.get() == completed_frame;\r
+                       }));\r
 \r
                        std::shared_ptr<const core::read_frame> frame;  \r
                        video_frame_buffer_.pop(frame);                                 \r
index b19c9794fbc96ca230faa9404498020d3cce4308..662f3a39727634bf430c734870a0fce1d0f2200b 100644 (file)
@@ -80,14 +80,15 @@ public:
                index_ = (*it)->index;\r
 \r
                int errn = tbb_avcodec_open((*it)->codec, codec);\r
-               if(errn >= 0)\r
-               {\r
-                       ctx_.reset((*it)->codec, tbb_avcodec_close);\r
+               if(errn < 0)\r
+                       return errn;\r
+                               \r
+               ctx_.reset((*it)->codec, tbb_avcodec_close);\r
 \r
-                       // Some files give an invalid time_base numerator, try to fix it.\r
-                       if(ctx_ && ctx_->time_base.num == 1)\r
-                               ctx_->time_base.num = static_cast<int>(std::pow(10.0, static_cast<int>(std::log10(static_cast<float>(ctx_->time_base.den)))-1));\r
-               }\r
+               // Some files give an invalid time_base numerator, try to fix it.\r
+               if(ctx_ && ctx_->time_base.num == 1)\r
+                       ctx_->time_base.num = static_cast<int>(std::pow(10.0, static_cast<int>(std::log10(static_cast<float>(ctx_->time_base.den)))-1));\r
+               \r
                return errn;    \r
        }\r
 \r
@@ -257,7 +258,7 @@ private:
        {               \r
                try\r
                {\r
-                       std::shared_ptr<AVPacket> read_packet(new AVPacket(), [](AVPacket* p)\r
+                       std::shared_ptr<AVPacket> read_packet(new AVPacket, [](AVPacket* p)\r
                        {\r
                                av_free_packet(p);\r
                                delete p;\r