]> git.sesse.net Git - casparcg/commitdiff
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 18 Nov 2011 10:22:17 +0000 (10:22 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 18 Nov 2011 10:22:17 +0000 (10:22 +0000)
modules/bluefish/consumer/bluefish_consumer.cpp

index dac2072ab66d97ec26a54f1ed6253a9b6185a0de..315e8cc336a7189469ad9761a0d1ad03e282b4bc 100644 (file)
@@ -208,11 +208,14 @@ public:
        }\r
        \r
        void schedule_next_video(const safe_ptr<core::read_frame>& frame)\r
-       {               \r
+       {\r
+               static std::vector<int16_t> silence(MAX_HANC_BUFFER_SIZE, 0);\r
+               \r
                executor_.begin_invoke([=]\r
                {\r
                        try\r
                        {\r
+                               const size_t audio_samples       = format_desc_.audio_samples_per_frame;\r
                                const size_t audio_nchannels = format_desc_.audio_channels;\r
 \r
                                frame_timer_.restart();\r
@@ -241,8 +244,9 @@ public:
                                if(embedded_audio_)\r
                                {               \r
                                        auto frame_audio          = core::audio_32_to_16_sse(frame->audio_data());\r
+                                       auto frame_audio_data = frame_audio.size() != audio_samples ? silence.data() : frame_audio.data();      \r
 \r
-                                       encode_hanc(reinterpret_cast<BLUE_UINT32*>(reserved_frames_.front()->hanc_data()), frame_audio.data(), frame_audio.size(), audio_nchannels);\r
+                                       encode_hanc(reinterpret_cast<BLUE_UINT32*>(reserved_frames_.front()->hanc_data()), frame_audio_data, audio_samples, audio_nchannels);\r
                                                                \r
                                        blue_->system_buffer_write_async(const_cast<uint8_t*>(reserved_frames_.front()->image_data()), \r
                                                                                                        reserved_frames_.front()->image_size(), \r