]> git.sesse.net Git - casparcg/blobdiff - core/producer/color/color_producer.cpp
2.0.0.2:
[casparcg] / core / producer / color / color_producer.cpp
index 58d2fd5315d1f7ab3e5d3cfdc8f7905ecc29e44e..d6a48a9ebe4324d02d4e49a0f3b075d9f5449119 100644 (file)
@@ -35,18 +35,27 @@ public:
        explicit color_producer(unsigned int color_value, const frame_format_desc& format_desc) \r
                : color_value_(color_value), format_desc_(format_desc){}\r
 \r
+       ~color_producer()\r
+       {\r
+               if(factory_)\r
+                       factory_->release_frames(this);\r
+       }\r
+\r
        gpu_frame_ptr get_frame()\r
        { \r
                return frame_;\r
        }\r
+\r
        const frame_format_desc& get_frame_format_desc() const { return format_desc_; }\r
        \r
        void initialize(const frame_factory_ptr& factory)\r
        {\r
-               frame_ = factory->create_frame(format_desc_);\r
+               factory_ = factory;\r
+               frame_ = factory->create_frame(format_desc_, this);\r
                __stosd(reinterpret_cast<unsigned long*>(frame_->data()), color_value_, frame_->size() / sizeof(unsigned long));\r
        }\r
 \r
+       frame_factory_ptr factory_;\r
        frame_format_desc format_desc_;\r
        gpu_frame_ptr frame_;\r
        unsigned int color_value_;\r