return safe_ptr<T>(std::make_shared<T>(std::forward<P0>(p0), std::forward<P1>(p1), std::forward<P2>(p2), std::forward<P3>(p3), std::forward<P4>(p4), std::forward<P5>(p5)));\r
}\r
\r
+template<typename T, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6>\r
+safe_ptr<T> make_safe(P0&& p0, P1&& p1, P2&& p2, P3&& p3, P4&& p4, P5&& p5, P6&& p6)\r
+{\r
+ return safe_ptr<T>(std::make_shared<T>(std::forward<P0>(p0), std::forward<P1>(p1), std::forward<P2>(p2), std::forward<P3>(p3), std::forward<P4>(p4), std::forward<P5>(p5), std::forward<P6>(p6)));\r
+}\r
+\r
template<typename T>\r
safe_ptr<T>::safe_ptr() \r
: p_(make_safe<T>())\r
\r
int start_offset_x_;\r
int start_offset_y_;\r
+ bool progressive_;\r
\r
safe_ptr<core::basic_frame> last_frame_;\r
\r
double speed,\r
double duration,\r
int motion_blur_px = 0,\r
- bool premultiply_with_alpha = false) \r
+ bool premultiply_with_alpha = false,\r
+ bool progressive = false) \r
: filename_(filename)\r
, delta_(0)\r
, format_desc_(frame_factory->get_video_format_desc())\r
, speed_(speed)\r
+ , progressive_(progressive)\r
, last_frame_(core::basic_frame::empty())\r
{\r
start_offset_x_ = 0;\r
\r
virtual safe_ptr<core::basic_frame> receive(int) override\r
{\r
- if (format_desc_.field_mode == core::field_mode::progressive)\r
+ if (format_desc_.field_mode == core::field_mode::progressive || progressive_)\r
{\r
return last_frame_ = render_frame(true, true);\r
}\r
}\r
\r
bool premultiply_with_alpha = std::find(params.begin(), params.end(), L"PREMULTIPLY") != params.end();\r
+ bool progressive = std::find(params.begin(), params.end(), L"PROGRESSIVE") != params.end();\r
\r
return create_producer_print_proxy(make_safe<image_scroll_producer>(\r
frame_factory, \r
-speed, \r
-duration, \r
motion_blur_px, \r
- premultiply_with_alpha));\r
+ premultiply_with_alpha,\r
+ progressive));\r
}\r
\r
}}
\ No newline at end of file