]> git.sesse.net Git - casparcg/commitdiff
2.0.0.2: ogl_device: Improved ogl GC.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 13 Jun 2011 07:35:53 +0000 (07:35 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 13 Jun 2011 07:35:53 +0000 (07:35 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@878 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

core/mixer/audio/audio_mixer.cpp
core/mixer/gpu/ogl_device.cpp

index 5a40844f83bb5e83e890e1755cc44c75f1fc3031..7360e5021bfce976d4f6009e40224ea545eeaac4 100644 (file)
@@ -38,7 +38,7 @@ public:
        implementation()\r
        {\r
                transform_stack_.push(core::audio_transform());\r
-               audio_data_.push_back(std::vector<int16_t>());\r
+               audio_data_.push_back(std::vector<int16_t>()); // One frame delay\r
        }\r
        \r
        void begin(const core::basic_frame& frame)\r
index 84acd9564487449aaf5583b78572238c8f5c41ae..5100cd68f5a34287c34112660922e4ec1704dcd5 100644 (file)
@@ -134,17 +134,23 @@ void ogl_device::yield()
 }\r
 \r
 boost::unique_future<void> ogl_device::gc()\r
-{\r
-       CASPAR_LOG(info) << " ogl: Running GC.";\r
-\r
+{      \r
        return begin_invoke([=]\r
-       {               \r
+       {\r
+               CASPAR_LOG(info) << " ogl: Running GC.";                \r
+       \r
                try\r
                {\r
-                       BOOST_FOREACH(auto& pool, device_pools_)\r
-                               pool.clear();\r
-                       BOOST_FOREACH(auto& pool, host_pools_)\r
-                               pool.clear();\r
+                       BOOST_FOREACH(auto& pools, device_pools_)\r
+                       {\r
+                               BOOST_FOREACH(auto& pool, pools)\r
+                                       pool.second->clear();\r
+                       }\r
+                       BOOST_FOREACH(auto& pools, host_pools_)\r
+                       {\r
+                               BOOST_FOREACH(auto& pool, pools)\r
+                                       pool.second->clear();\r
+                       }\r
                }\r
                catch(...)\r
                {\r