\r
struct image_mixer::implementation : boost::noncopyable\r
{ \r
+ static const size_t LOCAL_KEY_INDEX = 3;\r
+ static const size_t LAYER_KEY_INDEX = 4;\r
+\r
struct render_item\r
{\r
core::pixel_format_desc desc;\r
\r
if(local_key_)\r
{\r
- local_key_buffer_->bind(3);\r
+ local_key_buffer_->bind(LOCAL_KEY_INDEX);\r
draw_buffer_->attach(); \r
local_key_ = false;\r
} \r
\r
if(layer_key_)\r
- layer_key_buffer_->bind(4);\r
+ layer_key_buffer_->bind(LAYER_KEY_INDEX);\r
} \r
\r
// Draw\r
auto decoded_linesize = decoded_frame->linesize[n];\r
\r
// Copy line by line since ffmpeg sometimes pads each line.\r
- tbb::parallel_for(0, static_cast<int>(desc_.planes[n].height), 1, [&](int y)\r
+ tbb::parallel_for(tbb::blocked_range<size_t>(0, static_cast<int>(desc_.planes[n].height)), [&](const tbb::blocked_range<size_t>& r)\r
{\r
- fast_memcpy(result + y*plane.linesize, decoded + y*decoded_linesize, plane.linesize);\r
+ for(size_t y = r.begin(); y != r.end(); ++y)\r
+ memcpy(result + y*plane.linesize, decoded + y*decoded_linesize, plane.linesize);\r
});\r
});\r
}\r
<key>external</key>\r
<output>default</output>\r
</decklink>\r
- <ogl>\r
+ <!--<ogl>\r
<device>1</device>\r
<stretch>uniform</stretch>\r
<windowed>true</windowed>\r
<output>key_only</output>\r
- </ogl>\r
- <file>\r
- <filename>TESTING</filename>\r
- </file>\r
+ </ogl>-->\r
<!--<audio/>-->\r
<!--<bluefish>\r
<device>1</device>\r