]> git.sesse.net Git - casparcg/commitdiff
2.0.0.2: Fixed problem with SET MODE which would cause crash when consumer failed...
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 10 Jun 2011 12:54:43 +0000 (12:54 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 10 Jun 2011 12:54:43 +0000 (12:54 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@874 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

core/consumer/output.cpp
core/mixer/gpu/ogl_device.cpp
modules/bluefish/consumer/bluefish_consumer.cpp

index 24360919e8f6aa4aa32705103b9c7a8c9c3ac475..23661e09fdd5b05014e97077767d2056f7282dbb 100644 (file)
@@ -108,8 +108,8 @@ public:
                                catch(...)\r
                                {\r
                                        CASPAR_LOG_CURRENT_EXCEPTION();\r
-                                       consumers_.erase(it++);\r
                                        CASPAR_LOG(error) << print() << L" " << it->second->print() << L" Removed.";\r
+                                       consumers_.erase(it++);\r
                                }\r
                        }\r
                }\r
index b4a6844245b2cc317b9d5ca654bcfb8fecd60823..121b9e59a61cf77c97797b49ca28cc133b817cd4 100644 (file)
@@ -127,15 +127,16 @@ void ogl_device::yield()
 \r
 boost::unique_future<void> ogl_device::gc()\r
 {\r
-       CASPAR_LOG(info) << " ogl: Running GC.";\r
+       //CASPAR_LOG(info) << " ogl: Running GC.";\r
 \r
-       return begin_invoke([=]\r
-       {               \r
-               BOOST_FOREACH(auto& pool, device_pools_)\r
-                       pool.clear();\r
-               BOOST_FOREACH(auto& pool, host_pools_)\r
-                       pool.clear();\r
-       }, high_priority);\r
+       //return begin_invoke([=]\r
+       //{             \r
+       //      BOOST_FOREACH(auto& pool, device_pools_)\r
+       //              pool.clear();\r
+       //      BOOST_FOREACH(auto& pool, host_pools_)\r
+       //              pool.clear();\r
+       //}, high_priority);\r
+       return begin_invoke([=]{});\r
 }\r
 \r
 std::wstring ogl_device::get_version()\r
index 4b488468d3fe561ba005227d7aa4eea6916f1eb3..ca87f509249c48a46248e50149ea499e0ab65643 100644 (file)
@@ -156,11 +156,18 @@ public:
 \r
        ~bluefish_consumer()\r
        {\r
-               executor_.invoke([&]\r
-               {\r
-                       disable_video_output();\r
-                       blue_->device_detach();         \r
-               });\r
+               //try\r
+               //{\r
+               //      executor_.invoke([&]\r
+               //      {\r
+               //              disable_video_output();\r
+               //              blue_->device_detach();         \r
+               //      });\r
+               //}\r
+               //catch(...)\r
+               //{\r
+               //      CASPAR_LOG_CURRENT_EXCEPTION();\r
+               //}\r
                \r
                CASPAR_LOG(info) << print() << L" Shutting down.";      \r
        }\r
@@ -310,6 +317,7 @@ public:
        \r
        virtual void initialize(const core::video_format_desc& format_desc)\r
        {\r
+               consumer_.reset();\r
                consumer_.reset(new bluefish_consumer(format_desc, device_index_, embedded_audio_));\r
        }\r
        \r
@@ -325,7 +333,10 @@ public:
        \r
        virtual std::wstring print() const\r
        {\r
-               return consumer_->print();\r
+               if(consumer_)\r
+                       consumer_->print();\r
+\r
+               return L"bluefish [" + boost::lexical_cast<std::wstring>(device_index_) + L"]";\r
        }\r
 \r
        virtual bool key_only() const\r