]> 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>
Thu, 20 Jan 2011 12:31:03 +0000 (12:31 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Thu, 20 Jan 2011 12:31:03 +0000 (12:31 +0000)
core/producer/flash/flash_producer.cpp
protocol/media.cpp
shell/caspar.config
shell/main.cpp

index 48391d9f656abe0f296f3003d8d6552973636e41..ded6794f4eec347e2fa15eead9964780a8ece887 100644 (file)
@@ -204,26 +204,28 @@ struct flash_producer::implementation
        {               \r
                if(!frame_buffer_.try_pop(tail_))\r
                        CASPAR_LOG(trace) << print() << " underflow";\r
-               else\r
+\r
+               if(executor_.size() > 8) // Limit the call queue in-case of underflow\r
+                       return tail_;\r
+\r
+               executor_.begin_invoke([=]\r
                {\r
-                       executor_.begin_invoke([=]\r
+                       if(!renderer_)\r
+                               return;\r
+\r
+                       try\r
                        {\r
-                               if(!renderer_)\r
-                                       return;\r
-\r
-                               try\r
-                               {\r
-                                       auto frame = draw_frame::empty();\r
-                                       do{frame = renderer_->render_frame();}\r
-                                       while(frame_buffer_.try_push(frame) && frame == draw_frame::empty());\r
-                               }\r
-                               catch(...)\r
-                               {\r
-                                       CASPAR_LOG_CURRENT_EXCEPTION();\r
-                                       renderer_ = nullptr;\r
-                               }\r
-                       });     \r
-               }                               \r
+                               auto frame = draw_frame::empty();\r
+                               do{frame = renderer_->render_frame();}\r
+                               while(frame_buffer_.try_push(frame) && frame == draw_frame::empty());\r
+                       }\r
+                       catch(...)\r
+                       {\r
+                               CASPAR_LOG_CURRENT_EXCEPTION();\r
+                               renderer_ = nullptr;\r
+                       }\r
+               });     \r
+\r
                return tail_;\r
        }\r
        \r
index a700209e9fe8abfbcbdc33648e2725a96775a126..6c8b015daf92c519bf113fc94afc379c3bbad89b 100644 (file)
@@ -32,9 +32,9 @@ safe_ptr<core::frame_producer> create_producer(const std::vector<std::wstring>&
 \r
        const auto factories = list_of<factory_t>\r
                (&core::flash::create_ct_producer)\r
-               (&core::image::create_image_producer)\r
        //      (&image::create_image_scroll_producer)\r
                (&core::ffmpeg::create_ffmpeg_producer)\r
+               (&core::image::create_image_producer)\r
                (&core::create_decklink_producer)\r
                (&core::create_color_producer);\r
 \r
index 69d159b2673a5872325990061d874a70a07cc777..c762927a660db21e04a9593c2f8c537ca22a80a5 100644 (file)
@@ -12,7 +12,7 @@
       <videomode>PAL</videomode>\r
       <consumers>\r
         <ogl>\r
-          <device>1</device>\r
+          <device>0</device>\r
           <stretch>uniform</stretch>\r
           <windowed>true</windowed>\r
         </ogl>\r
         </bluefish-->\r
       </consumers>\r
     </channel>\r
-    <channel>\r
-    <videomode>PAL</videomode>\r
-    <consumers>\r
-      <ogl>\r
-        <device>1</device>\r
-        <stretch>uniform</stretch>\r
-        <windowed>true</windowed>\r
-      </ogl>\r
-      <audio/>\r
-      <!--decklink>\r
-          <device>1</device>\r
-          <embedded-audio>true</embedded-audio>\r
-        </decklink-->\r
-      <!--bluefish>\r
-          <device>1</device> \r
-          <embedded-audio>true</embedded-audio>\r
-        </bluefish-->\r
-    </consumers>\r
-    </channel>\r
   </channels>\r
   <controllers>\r
     <tcpcontroller>\r
index 01ddc0ee724a2399d10e4259c2af5c68e93d6ef1..734d1e59b1d44a7bc30f05f0ffb3e2ea8114face 100644 (file)
@@ -53,6 +53,10 @@ public:
                CASPAR_LOG(debug) << L"Started TBB Worker Thread.";\r
                win32_exception::install_handler();\r
        }\r
+       void on_scheduler_exit()\r
+       {\r
+               CASPAR_LOG(debug) << L"Stopped TBB Worker Thread.";\r
+       }\r
 };\r
  \r
 int main(int argc, wchar_t* argv[])\r