]> git.sesse.net Git - casparcg/blobdiff - core/producer/frame/basic_frame.cpp
2.0. video_format: Renamed video_mode to field_mode. image_mixer: Refactored field...
[casparcg] / core / producer / frame / basic_frame.cpp
index 1eed000ac3b5eb87e21fd685f06ec0eaae70a4e7..c2669c0f909965bedb81a44d8ce1d0429c5f5675 100644 (file)
@@ -35,25 +35,19 @@ struct basic_frame::implementation
 \r
        image_transform image_transform_;       \r
        audio_transform audio_transform_;\r
-\r
-       core::video_mode::type mode_;\r
        \r
 public:\r
-       implementation(const std::vector<safe_ptr<basic_frame>>& frames) \r
-               : mode_(core::video_mode::progressive), frames_(frames) \r
+       implementation(const std::vector<safe_ptr<basic_frame>>& frames) : frames_(frames) \r
        {\r
        }\r
-       implementation(std::vector<safe_ptr<basic_frame>>&& frames) \r
-               : mode_(core::video_mode::progressive), frames_(std::move(frames))\r
+       implementation(std::vector<safe_ptr<basic_frame>>&& frames) : frames_(std::move(frames))\r
        {\r
        }\r
        implementation(safe_ptr<basic_frame>&& frame) \r
-               : mode_(core::video_mode::progressive)\r
        {\r
                frames_.push_back(std::move(frame));\r
        }\r
-       implementation(const safe_ptr<basic_frame>& frame) \r
-               : mode_(core::video_mode::progressive)          \r
+       implementation(const safe_ptr<basic_frame>& frame)              \r
        { \r
                frames_.push_back(frame);\r
        }\r
@@ -97,7 +91,6 @@ basic_frame& basic_frame::operator=(basic_frame&& other)
 }\r
 void basic_frame::swap(basic_frame& other){impl_.swap(other.impl_);}\r
 \r
-core::video_mode::type basic_frame::get_mode() const{return impl_->mode_;}\r
 const image_transform& basic_frame::get_image_transform() const { return impl_->image_transform_;}\r
 image_transform& basic_frame::get_image_transform() { return impl_->image_transform_;}\r
 const audio_transform& basic_frame::get_audio_transform() const { return impl_->audio_transform_;}\r
@@ -106,7 +99,7 @@ audio_transform& basic_frame::get_audio_transform() { return impl_->audio_transf
 std::wstring basic_frame::print() const{return impl_->print();}\r
 void basic_frame::accept(frame_visitor& visitor){impl_->accept(*this, visitor);}\r
 \r
-safe_ptr<basic_frame> basic_frame::interlace(const safe_ptr<basic_frame>& frame1, const safe_ptr<basic_frame>& frame2, video_mode::type mode)\r
+safe_ptr<basic_frame> basic_frame::interlace(const safe_ptr<basic_frame>& frame1, const safe_ptr<basic_frame>& frame2, field_mode::type mode)\r
 {                              \r
        if(frame1 == basic_frame::eof() || frame2 == basic_frame::eof())\r
                return basic_frame::eof();\r
@@ -114,20 +107,20 @@ safe_ptr<basic_frame> basic_frame::interlace(const safe_ptr<basic_frame>& frame1
        if(frame1 == basic_frame::empty() && frame2 == basic_frame::empty())\r
                return basic_frame::empty();\r
        \r
-       if(frame1 == frame2 || mode == video_mode::progressive)\r
+       if(frame1 == frame2 || mode == field_mode::progressive)\r
                return frame2;\r
 \r
        auto my_frame1 = make_safe<basic_frame>(frame1);\r
        auto my_frame2 = make_safe<basic_frame>(frame2);\r
-       if(mode == video_mode::upper)\r
+       if(mode == field_mode::upper)\r
        {\r
-               my_frame1->impl_->mode_ = video_mode::upper;    \r
-               my_frame2->impl_->mode_ = video_mode::lower;    \r
+               my_frame1->get_image_transform().set_field_mode(field_mode::upper);     \r
+               my_frame2->get_image_transform().set_field_mode(field_mode::lower);     \r
        }                                                                                        \r
        else                                                                             \r
        {                                                                                        \r
-               my_frame1->impl_->mode_ = video_mode::lower;    \r
-               my_frame2->impl_->mode_ = video_mode::upper;    \r
+               my_frame1->get_image_transform().set_field_mode(field_mode::lower);     \r
+               my_frame2->get_image_transform().set_field_mode(field_mode::upper);     \r
        }\r
 \r
        std::vector<safe_ptr<basic_frame>> frames;\r