\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
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
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
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
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