]> git.sesse.net Git - casparcg/commitdiff
Added PROGRESSIVE parameter to image_scroll_producer to output the image scroll progr...
authorhellgore <hellgore@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 17 Aug 2012 12:52:44 +0000 (12:52 +0000)
committerhellgore <hellgore@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 17 Aug 2012 12:52:44 +0000 (12:52 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/trunk@3209 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

common/memory/safe_ptr.h
modules/image/producer/image_scroll_producer.cpp

index c30fbf9de02210a52f5cd593d04381d955c6d6c7..227af65a7d9d2ad654a5db088271e071084d859d 100644 (file)
@@ -415,6 +415,12 @@ safe_ptr<T> make_safe(P0&& p0, P1&& p1, P2&& p2, P3&& p3, P4&& p4, P5&& p5)
     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
index 37dbf115971f3e7695805a2f6f250ca7158ba448..558900e739d060be17179129ba9e697a8b34de02 100644 (file)
@@ -68,6 +68,7 @@ struct image_scroll_producer : public core::frame_producer
 \r
        int                                                                                     start_offset_x_;\r
        int                                                                                     start_offset_y_;\r
+       bool                                                                            progressive_;\r
 \r
        safe_ptr<core::basic_frame>                                     last_frame_;\r
        \r
@@ -77,11 +78,13 @@ struct image_scroll_producer : public core::frame_producer
                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
@@ -323,7 +326,7 @@ struct image_scroll_producer : public core::frame_producer
 \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
@@ -423,6 +426,7 @@ safe_ptr<core::frame_producer> create_scroll_producer(const safe_ptr<core::frame
        }\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
@@ -430,7 +434,8 @@ safe_ptr<core::frame_producer> create_scroll_producer(const safe_ptr<core::frame
                -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