]> git.sesse.net Git - casparcg/blobdiff - core/producer/flash/flash_producer.cpp
2.0.0.2:
[casparcg] / core / producer / flash / flash_producer.cpp
index 440f15199a91b7cb3270ad80547050ac6e5506bf..887c4ffb3a1dbda085f73b96e241f649f645e90d 100644 (file)
@@ -49,7 +49,7 @@
 \r
 #include <type_traits>\r
 \r
-namespace caspar { namespace flash {\r
+namespace caspar { namespace core { namespace flash {\r
 \r
 using namespace boost::assign;\r
 \r
@@ -225,29 +225,17 @@ struct flash_producer::implementation
                                return;\r
                        }\r
 \r
-                       bool isProgressive = format_desc_.mode == video_mode::progressive || (flashax_container_->GetFPS() - format_desc_.fps/2 == 0);\r
+                       bool is_progressive = format_desc_.mode == video_mode::progressive || (flashax_container_->GetFPS() - format_desc_.fps/2 == 0);\r
 \r
                        gpu_frame_ptr result;\r
 \r
-                       if(isProgressive)                                                       \r
+                       if(is_progressive)                                                      \r
                                result = render_frame();                \r
                        else\r
                        {\r
-                               auto result = std::make_shared<composite_gpu_frame>(format_desc_.width, format_desc_.height);\r
-                               auto frame1 = render_frame();\r
-                               auto frame2 = render_frame();\r
-                               result->add(frame1);\r
-                               result->add(frame2);\r
-                               if(format_desc_.mode == video_mode::upper)\r
-                               {\r
-                                       frame1->mode(video_mode::upper);\r
-                                       frame2->mode(video_mode::lower);\r
-                               }\r
-                               else\r
-                               {\r
-                                       frame1->mode(video_mode::lower);\r
-                                       frame2->mode(video_mode::upper);\r
-                               }\r
+                               gpu_frame_ptr frame1 = render_frame();\r
+                               gpu_frame_ptr frame2 = render_frame();\r
+                               result = composite_gpu_frame::interlace(frame1, frame2, format_desc_.mode);\r
                        }\r
 \r
                        frame_buffer_.push(result);\r
@@ -273,11 +261,8 @@ struct flash_producer::implementation
                        auto pool = bitmap_pool_;\r
                        current_frame_.reset(frame.get(), [=](bitmap*)\r
                        {\r
-                               common::function_task::enqueue([=]\r
-                               {\r
-                                       if(pool->try_push(frame))\r
-                                               common::clear(frame->data(), frame->size());\r
-                               });\r
+                               if(pool->try_push(frame))\r
+                                       common::clear(frame->data(), frame->size());\r
                        });\r
                }       \r
 \r
@@ -304,7 +289,7 @@ struct flash_producer::implementation
        std::shared_ptr<bitmap_pool> bitmap_pool_;\r
        frame_format_desc format_desc_;\r
 \r
-       CComObject<caspar::flash::FlashAxContainer>* flashax_container_;\r
+       CComObject<flash::FlashAxContainer>* flashax_container_;\r
                \r
        tbb::concurrent_bounded_queue<gpu_frame_ptr> frame_buffer_;\r
        gpu_frame_ptr last_frame_;\r
@@ -347,4 +332,4 @@ flash_producer_ptr create_flash_producer(const std::vector<std::wstring>& params
        return result_filename.empty() ? nullptr : std::make_shared<flash_producer>(result_filename, format_desc);\r
 }\r
 \r
-}}
\ No newline at end of file
+}}}
\ No newline at end of file