strcpy_s(oc_->filename, filename_.c_str());\r
\r
// Add the audio and video streams using the default format codecs and initialize the codecs.\r
- auto options2 = options;\r
- video_st_ = add_video_stream(options2);\r
+ video_st_ = add_video_stream(options);\r
audio_st_ = add_audio_stream(options);\r
\r
av_dump_format(oc_.get(), 0, filename_.c_str(), 1);\r
\r
boost::range::remove_erase_if(options, [&](const option& o)\r
{\r
- return ffmpeg::av_opt_set(c, o.name.c_str(), o.value.c_str(), AV_OPT_SEARCH_CHILDREN) > -1;\r
+ return o.name.at(0) != 'a' && ffmpeg::av_opt_set(c, o.name.c_str(), o.value.c_str(), AV_OPT_SEARCH_CHILDREN) > -1;\r
});\r
\r
if(output_format_.format->flags & AVFMT_GLOBALHEADER)\r
consumer_.reset(new ffmpeg_consumer(u8(filename_), format_desc, options_));\r
}\r
\r
- virtual bool send(core::const_frame frame) override\r
+ bool send(core::const_frame frame) override\r
{\r
consumer_->send(frame);\r
return true;\r
}\r
\r
- virtual std::wstring print() const override\r
+ std::wstring print() const override\r
{\r
return consumer_ ? consumer_->print() : L"[ffmpeg_consumer]";\r
}\r
\r
- virtual std::wstring name() const override\r
+ std::wstring name() const override\r
{\r
return L"file";\r
}\r
\r
- virtual boost::property_tree::wptree info() const override\r
+ boost::property_tree::wptree info() const override\r
{\r
boost::property_tree::wptree info;\r
info.add(L"type", L"file");\r
return info;\r
}\r
\r
- virtual bool has_synchronization_clock() const override\r
+ bool has_synchronization_clock() const override\r
{\r
return false;\r
}\r
\r
- virtual int buffer_depth() const override\r
+ int buffer_depth() const override\r
{\r
return 1;\r
}\r
\r
- virtual int index() const override\r
+ int index() const override\r
{\r
return 200;\r
}\r