]> git.sesse.net Git - casparcg/commitdiff
2.1.0: Fixed auto-play.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sun, 5 Feb 2012 00:22:18 +0000 (00:22 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sun, 5 Feb 2012 00:22:18 +0000 (00:22 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.1.0@2250 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

core/frame/draw_frame.cpp
core/mixer/audio/audio_mixer.cpp
core/producer/layer.cpp

index 7fb4d08ef7f8c96da5921795715cc1ea37993d32..1737d72448779e8ac78c2dfc92b55185c360bea5 100644 (file)
@@ -90,7 +90,7 @@ spl::shared_ptr<draw_frame> draw_frame::interlace(const spl::shared_ptr<draw_fra
                return frame2;\r
 \r
        auto my_frame1 = spl::make_shared<draw_frame>(frame1);\r
-       auto my_frame2 = spl::make_shared<draw_frame>(frame2);\r
+       auto my_frame2 = draw_frame::silence(spl::make_shared<draw_frame>(frame2));\r
        if(mode == field_mode::upper)\r
        {\r
                my_frame1->get_frame_transform().field_mode = field_mode::upper;        \r
index 928a691e76277249b752a4cb1c4eab603570c856..fced349553ef351b295d5a1f8263a1d1b076a06a 100644 (file)
@@ -86,7 +86,7 @@ public:
                audio_item item;\r
                item.tag                = frame.tag();\r
                item.transform  = transform_stack_.top();\r
-               item.audio_data = std::move(frame.audio_data()); // Note: We don't need to care about upper/lower since audio_data is removed/moved from the last field.\r
+               item.audio_data = frame.audio_data();\r
                \r
                items_.push_back(std::move(item));              \r
        }\r
index af9609a353c8aec0f3476b67f9aa71a1ee1ed063..8037a13aaf38ed92ce167b039b04a10b8926c270 100644 (file)
@@ -102,10 +102,12 @@ public:
                        auto frame = receive_and_follow(foreground_, flags.value());\r
                        if(frame == core::draw_frame::late())\r
                                return draw_frame::silence(foreground_->last_frame());\r
+                       \r
+                       ++frame_number_;\r
 \r
                        if(auto_play_delta_)\r
                        {\r
-                               auto frames_left = static_cast<int64_t>(foreground_->nb_frames()) - static_cast<int64_t>(++frame_number_) - static_cast<int64_t>(*auto_play_delta_);\r
+                               auto frames_left = static_cast<int64_t>(foreground_->nb_frames()) - frame_number_ - static_cast<int64_t>(*auto_play_delta_);\r
                                if(frames_left < 1)\r
                                {\r
                                        play();\r