]> git.sesse.net Git - casparcg/blobdiff - modules/ffmpeg/consumer/ffmpeg_consumer.cpp
2.1.0: -ffmpeg_consumer: Use tbb_avcodec.
[casparcg] / modules / ffmpeg / consumer / ffmpeg_consumer.cpp
index 89986df40bf0dbaca0bc11dd6531bc8a008258f6..12ff965892fdc78d6ff72818d852070032f24b42 100644 (file)
@@ -26,6 +26,7 @@
 #include "ffmpeg_consumer.h"\r
 \r
 #include "../producer/audio/audio_resampler.h"\r
+#include "../producer/tbb_avcodec.h"\r
 \r
 #include <core/frame/frame.h>\r
 #include <core/mixer/audio/audio_util.h>\r
@@ -407,16 +408,12 @@ public:
                if(output_format_.format->flags & AVFMT_GLOBALHEADER)\r
                        c->flags |= CODEC_FLAG_GLOBAL_HEADER;\r
                \r
-               c->thread_count = boost::thread::hardware_concurrency();\r
-               if(avcodec_open(c, encoder) < 0)\r
-               {\r
-                       c->thread_count = 1;\r
-                       THROW_ON_ERROR2(avcodec_open(c, encoder), "[ffmpeg_consumer]");\r
-               }\r
+               //c->thread_count = boost::thread::hardware_concurrency();\r
+               THROW_ON_ERROR2(tbb_avcodec_open(c, encoder), "[ffmpeg_consumer]");\r
 \r
                return std::shared_ptr<AVStream>(st, [](AVStream* st)\r
                {\r
-                       LOG_ON_ERROR2(avcodec_close(st->codec), "[ffmpeg_consumer]");\r
+                       LOG_ON_ERROR2(tbb_avcodec_close(st->codec), "[ffmpeg_consumer]");\r
                        av_freep(&st->codec);\r
                        av_freep(&st);\r
                });\r
@@ -669,23 +666,23 @@ public:
                consumer_.reset(new ffmpeg_consumer(u8(filename_), format_desc, options_));\r
        }\r
        \r
-       virtual bool send(core::const_frame frame) override\r
+       bool send(core::const_frame frame) override\r
        {\r
                consumer_->send(frame);\r
                return true;\r
        }\r
        \r
-       virtual std::wstring print() const override\r
+       std::wstring print() const override\r
        {\r
                return consumer_ ? consumer_->print() : L"[ffmpeg_consumer]";\r
        }\r
 \r
-       virtual std::wstring name() const override\r
+       std::wstring name() const override\r
        {\r
                return L"file";\r
        }\r
 \r
-       virtual boost::property_tree::wptree info() const override\r
+       boost::property_tree::wptree info() const override\r
        {\r
                boost::property_tree::wptree info;\r
                info.add(L"type", L"file");\r
@@ -693,17 +690,17 @@ public:
                return info;\r
        }\r
                \r
-       virtual bool has_synchronization_clock() const override\r
+       bool has_synchronization_clock() const override\r
        {\r
                return false;\r
        }\r
 \r
-       virtual int buffer_depth() const override\r
+       int buffer_depth() const override\r
        {\r
                return 1;\r
        }\r
 \r
-       virtual int index() const override\r
+       int index() const override\r
        {\r
                return 200;\r
        }\r