o FFmpeg: Upgraded to master and adapted CasparCG to FFmpeg API changes\r
(Robert Nagy sponsored by SVT)\r
o FFmpeg: Fixed problem with frame count calculation (Thomas Kaltz III)\r
- o FFmpeg: Disable audio decoding if no audio is decoded (Thomas Kaltz III)\r
\r
Producers\r
---------\r
\r
int64_t frame_number_;\r
uint32_t file_frame_number_;\r
-\r
- uint32_t audio_poll_tries_;\r
\r
public:\r
explicit ffmpeg_producer(const safe_ptr<core::frame_factory>& frame_factory, const std::wstring& filename, FFMPEG_Resource resource_type, const std::wstring& filter, bool loop, uint32_t start, uint32_t length, bool thumbnail_mode, const std::wstring& custom_channel_order, const ffmpeg_producer_params& vid_params)\r
, thumbnail_mode_(thumbnail_mode)\r
, last_frame_(core::basic_frame::empty())\r
, frame_number_(0)\r
- , audio_poll_tries_(0)\r
{\r
graph_->set_color("frame-time", diagnostics::color(0.1f, 1.0f, 0.1f));\r
graph_->set_color("underflow", diagnostics::color(0.6f, 0.3f, 0.9f)); \r
[&]\r
{ \r
if(!muxer_->audio_ready() && audio_decoder_)\r
- {\r
audio = audio_decoder_->poll();\r
- if(audio == nullptr)\r
- audio_poll_tries_++;\r
- }\r
});\r
\r
- if(audio_decoder_ && audio_poll_tries_ > 7)\r
- {\r
- CASPAR_LOG(warning) << print() << "Failed to get valid packets from audio stream. Removing audio decoder.";\r
- audio_decoder_.reset(nullptr);\r
- }\r
- \r
muxer_->push(video, hints);\r
muxer_->push(audio);\r
\r