file_write_executor_.stop();\r
file_write_executor_.join();\r
\r
- try\r
- {\r
- THROW_ON_ERROR2(av_write_trailer(oc_.get()), "[ffmpeg_consumer]");\r
+ LOG_ON_ERROR2(av_write_trailer(oc_.get()), "[ffmpeg_consumer]");\r
\r
- audio_st_.reset();\r
- video_st_.reset();\r
+ audio_st_.reset();\r
+ video_st_.reset();\r
\r
- if (!(oc_->oformat->flags & AVFMT_NOFILE)) \r
- THROW_ON_ERROR2(avio_close(oc_->pb), "[ffmpeg_consumer]"); // Close the output ffmpeg.\r
+ if (!(oc_->oformat->flags & AVFMT_NOFILE)) \r
+ LOG_ON_ERROR2(avio_close(oc_->pb), "[ffmpeg_consumer]"); // Close the output ffmpeg.\r
\r
- CASPAR_LOG(info) << print() << L" Successfully Uninitialized."; \r
- }\r
- catch(...)\r
- {\r
- CASPAR_LOG_CURRENT_EXCEPTION();\r
- }\r
+ CASPAR_LOG(info) << print() << L" Successfully Uninitialized."; \r
}\r
\r
std::wstring print() const\r
c->pix_fmt = PIX_FMT_YUV420P; \r
av_opt_set(c->priv_data, "preset", "ultrafast", 0);\r
av_opt_set(c->priv_data, "tune", "film", 0);\r
- av_opt_set(c->priv_data, "crf", "10", 0);\r
+ av_opt_set(c->priv_data, "crf", "5", 0);\r
\r
THROW_ON_ERROR2(av_set_options_string(c->priv_data, options.c_str(), "=", ":"), "[ffmpeg_consumer]");\r
}\r
CASPAR_LOG(warning) << " Potentially unsupported output parameters.";\r
}\r
\r
- c->max_b_frames = 0; // b-franes bit supported.\r
+ c->max_b_frames = 0; // b-franes not supported.\r
\r
if(oc_->oformat->flags & AVFMT_GLOBALHEADER)\r
c->flags |= CODEC_FLAG_GLOBAL_HEADER;\r
\r
return std::shared_ptr<AVStream>(st, [](AVStream* st)\r
{\r
- avcodec_close(st->codec);\r
+ LOG_ON_ERROR2(avcodec_close(st->codec), "[ffmpeg_consumer]");\r
av_freep(&st->codec);\r
av_freep(&st);\r
});\r
\r
return std::shared_ptr<AVStream>(st, [](AVStream* st)\r
{\r
- avcodec_close(st->codec);\r
+ LOG_ON_ERROR2(avcodec_close(st->codec), "[ffmpeg_consumer]");;\r
av_freep(&st->codec);\r
av_freep(&st);\r
});\r