]> git.sesse.net Git - casparcg/commitdiff
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/trunk@1829...
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Wed, 7 Dec 2011 20:09:24 +0000 (20:09 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Wed, 7 Dec 2011 20:09:24 +0000 (20:09 +0000)
core/consumer/frame_consumer.cpp
modules/decklink/producer/decklink_producer.cpp

index 04496ef6ecdfaad0d473853a9df15fc36f51c668..3bfd5c8ac06d8b72b4c6a589e5e36f05c2f74f9a 100644 (file)
@@ -86,16 +86,18 @@ public:
 \r
        virtual bool send(const safe_ptr<read_frame>& frame) override\r
        {               \r
+               bool result = true;\r
+\r
+               if(boost::range::equal(sync_buffer_, audio_cadence_))\r
+                       result = consumer_->send(frame);\r
+               else\r
+                       CASPAR_LOG(debug) << print() << L" Syncing audio.";\r
+\r
                sync_buffer_.push_back(static_cast<size_t>(frame->audio_data().size()));\r
-               if(!boost::range::equal(sync_buffer_, audio_cadence_))\r
-               {\r
-                       CASPAR_LOG(trace) << L"[cadence_guard] Audio cadence unsynced. Skipping frame.";\r
-                       return true;\r
-               }\r
 \r
                boost::range::rotate(audio_cadence_, std::begin(audio_cadence_)+1);\r
 \r
-               return consumer_->send(frame);\r
+               return result;\r
        }\r
 \r
        virtual std::wstring print() const override\r
index 2bc09893074464561a10e82a46f6397516f6481f..e00ccc28cbd8d1a5a8a56e741d95192b33eef97b 100644 (file)
@@ -211,6 +211,8 @@ public:
                        else                    \r
                                audio_buffer = std::make_shared<core::audio_buffer>(audio_cadence_.front(), 0);\r
                        \r
+                       // Note: Uses the following cadence (1602, 1602, 1601, 1602, 1601) in order to fill mixer as much as possible.\r
+\r
                        sync_buffer_.push_back(audio_buffer->size());           \r
                        if(!boost::range::equal(sync_buffer_, audio_cadence_))\r
                        {\r