\r
#include <functional>\r
\r
-namespace caspar { \r
+namespace caspar { namespace decklink {\r
\r
class decklink_producer : boost::noncopyable, public IDeckLinkInputCallback\r
{ \r
tbb::concurrent_bounded_queue<safe_ptr<core::basic_frame>> frame_buffer_;\r
\r
std::exception_ptr exception_;\r
- filter filter_;\r
+ ffmpeg::filter filter_;\r
\r
- frame_muxer muxer_;\r
+ ffmpeg::frame_muxer muxer_;\r
\r
public:\r
decklink_producer(const core::video_format_desc& format_desc, size_t device_index, const safe_ptr<core::frame_factory>& frame_factory, const std::wstring& filter)\r
, device_index_(device_index)\r
, frame_factory_(frame_factory)\r
, filter_(filter)\r
- , muxer_(double_rate(filter) ? format_desc.fps * 2.0 : format_desc.fps, frame_factory)\r
+ , muxer_(ffmpeg::double_rate(filter) ? format_desc.fps * 2.0 : format_desc.fps, frame_factory)\r
{\r
frame_buffer_.set_capacity(2);\r
\r
}\r
};\r
\r
-safe_ptr<core::frame_producer> create_decklink_producer(const safe_ptr<core::frame_factory>& frame_factory, const std::vector<std::wstring>& params)\r
+safe_ptr<core::frame_producer> create_producer(const safe_ptr<core::frame_factory>& frame_factory, const std::vector<std::wstring>& params)\r
{\r
if(params.empty() || !boost::iequals(params[0], "decklink"))\r
return core::frame_producer::empty();\r
return make_safe<decklink_producer_proxy>(frame_factory, format_desc, device_index, filter_str, length);\r
}\r
\r
-}
\ No newline at end of file
+}}
\ No newline at end of file