]> git.sesse.net Git - casparcg/commitdiff
2.0. mixer: Do audio and image frame visiting through tbb.
authorRonag <Ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sun, 31 Jul 2011 11:06:38 +0000 (11:06 +0000)
committerRonag <Ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sun, 31 Jul 2011 11:06:38 +0000 (11:06 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@1029 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

core/mixer/mixer.cpp

index acabe5994e0cec0d1b5ed33e179ca356a4511256..c43f415caa02e31ec28f8f1e44e84c2b250d1657 100644 (file)
@@ -46,6 +46,8 @@
 #include <boost/fusion/container/map.hpp>\r
 #include <boost/fusion/include/at_key.hpp>\r
 \r
+#include <tbb/parallel_invoke.h>\r
+\r
 #include <unordered_map>\r
 \r
 namespace caspar { namespace core {\r
@@ -108,8 +110,12 @@ public:
        {                       \r
                try\r
                {\r
-                       auto image = mix_image(frames);\r
-                       auto audio = mix_audio(frames);\r
+                       decltype(mix_image(frames)) image;\r
+                       decltype(mix_audio(frames)) audio;\r
+\r
+                       tbb::parallel_invoke(\r
+                                       [&]{image = mix_image(frames);}, \r
+                                       [&]{audio = mix_audio(frames);});\r
                        \r
                        return make_safe<read_frame>(channel_.ogl(), std::move(image.get()), std::move(audio));\r
                }\r