]> git.sesse.net Git - casparcg/commitdiff
2.0: ffmpeg_producer: Fixed error handling.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Thu, 23 Jun 2011 08:32:02 +0000 (08:32 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Thu, 23 Jun 2011 08:32:02 +0000 (08:32 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@943 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

modules/ffmpeg/producer/ffmpeg_producer.cpp

index 15717ce2f17f6b9d74b29c2648d0bc5e5010935a..4d46513007aaadad47f28bb1997e559b62383389 100644 (file)
@@ -110,13 +110,29 @@ public:
                (\r
                        [&]\r
                        {\r
-                               if(video_decoder_ && video_frames_.size() < 3)\r
-                                       boost::range::push_back(video_frames_, video_decoder_->receive());              \r
+                               try\r
+                               {\r
+                                       if(video_decoder_ && video_frames_.size() < 3)\r
+                                               boost::range::push_back(video_frames_, video_decoder_->receive());              \r
+                               }\r
+                               catch(...)\r
+                               {\r
+                                       CASPAR_LOG_CURRENT_EXCEPTION();\r
+                                       video_decoder_.reset();\r
+                               }\r
                        }, \r
                        [&]\r
                        {\r
-                               if(audio_decoder_ && audio_chunks_.size() < 3)\r
-                                       boost::range::push_back(audio_chunks_, audio_decoder_->receive());                              \r
+                               try\r
+                               {\r
+                                       if(audio_decoder_ && audio_chunks_.size() < 3)\r
+                                               boost::range::push_back(audio_chunks_, audio_decoder_->receive());              \r
+                               }\r
+                               catch(...)\r
+                               {\r
+                                       CASPAR_LOG_CURRENT_EXCEPTION();\r
+                                       audio_decoder_.reset();\r
+                               }\r
                        }\r
                );\r
                \r