}\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
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