]> git.sesse.net Git - casparcg/blobdiff - modules/ffmpeg/producer/util/util.cpp
### Mayor refactoring. Simplified frame handling and image_mixer. Separated video...
[casparcg] / modules / ffmpeg / producer / util / util.cpp
index 8be19c0b8273204a551dce2c74233fa32529522d..82f5e661ea81e9dc48a3950e2404ac91df2fa730 100644 (file)
@@ -33,7 +33,7 @@
 \r
 #include <core/frame/frame_transform.h>\r
 #include <core/frame/frame_factory.h>\r
-#include <core/frame/data_frame.h>\r
+#include <core/frame/frame.h>\r
 #include <core/producer/frame_producer.h>\r
 \r
 #include <common/except.h>\r
@@ -171,7 +171,7 @@ int make_alpha_format(int format)
        }\r
 }\r
 \r
-spl::unique_ptr<core::data_frame> make_data_frame(const void* tag, const spl::shared_ptr<AVFrame>& decoded_frame, double fps, const spl::shared_ptr<core::frame_factory>& frame_factory, int flags)\r
+core::mutable_frame make_frame(const void* tag, const spl::shared_ptr<AVFrame>& decoded_frame, double fps, const spl::shared_ptr<core::frame_factory>& frame_factory, int flags)\r
 {                      \r
        static tbb::concurrent_unordered_map<int, tbb::concurrent_queue<std::shared_ptr<SwsContext>>> sws_contexts_;\r
        \r
@@ -231,8 +231,8 @@ spl::unique_ptr<core::data_frame> make_data_frame(const void* tag, const spl::sh
                avcodec_get_frame_defaults(av_frame.get());                     \r
                if(target_pix_fmt == PIX_FMT_BGRA)\r
                {\r
-                       auto size = avpicture_fill(reinterpret_cast<AVPicture*>(av_frame.get()), write->image_data(0).begin(), PIX_FMT_BGRA, width, height);\r
-                       CASPAR_VERIFY(size == write->image_data(0).size()); \r
+                       auto size = avpicture_fill(reinterpret_cast<AVPicture*>(av_frame.get()), write.image_data(0).begin(), PIX_FMT_BGRA, width, height);\r
+                       CASPAR_VERIFY(size == write.image_data(0).size()); \r
                }\r
                else\r
                {\r
@@ -240,7 +240,7 @@ spl::unique_ptr<core::data_frame> make_data_frame(const void* tag, const spl::sh
                        av_frame->height = height;\r
                        for(int n = 0; n < target_desc.planes.size(); ++n)\r
                        {\r
-                               av_frame->data[n]               = write->image_data(n).begin();\r
+                               av_frame->data[n]               = write.image_data(n).begin();\r
                                av_frame->linesize[n]   = target_desc.planes[n].linesize;\r
                        }\r
                }\r
@@ -257,12 +257,12 @@ spl::unique_ptr<core::data_frame> make_data_frame(const void* tag, const spl::sh
                for(int n = 0; n < static_cast<int>(desc.planes.size()); ++n)\r
                {\r
                        auto plane            = desc.planes[n];\r
-                       auto result           = write->image_data(n).begin();\r
+                       auto result           = write.image_data(n).begin();\r
                        auto decoded          = decoded_frame->data[n];\r
                        auto decoded_linesize = decoded_frame->linesize[n];\r
                        \r
                        CASPAR_ASSERT(decoded);\r
-                       CASPAR_ASSERT(write->image_data(n).begin());\r
+                       CASPAR_ASSERT(write.image_data(n).begin());\r
 \r
                        // Copy line by line since ffmpeg sometimes pads each line.\r
                        tbb::affinity_partitioner ap;\r
@@ -277,7 +277,7 @@ spl::unique_ptr<core::data_frame> make_data_frame(const void* tag, const spl::sh
        }\r
 }\r
 \r
-spl::shared_ptr<AVFrame> make_av_frame(caspar::core::data_frame& frame)\r
+spl::shared_ptr<AVFrame> make_av_frame(core::mutable_frame& frame)\r
 {\r
        std::array<uint8_t*, 4> data = {};\r
        for(int n = 0; n < frame.pixel_format_desc().planes.size(); ++n)\r