void bluefish_consumer::set_parent_printer(const printer& parent_printer){impl_->set_parent_printer(parent_printer);}\r
void bluefish_consumer::send(const safe_ptr<const read_frame>& frame){impl_->send(frame);}\r
size_t bluefish_consumer::buffer_depth() const{return impl_->buffer_depth();}\r
- \r
+std::wstring bluefish_consumer::print() const {return impl_->print();} \r
+\r
safe_ptr<frame_consumer> create_bluefish_consumer(const std::vector<std::wstring>& params)\r
{\r
if(params.size() < 1 || params[0] != L"BLUEFISH")\r
virtual void set_parent_printer(const printer& parent_printer);\r
virtual void send(const safe_ptr<const read_frame>&);\r
virtual size_t buffer_depth() const;\r
+ virtual std::wstring print() const;\r
private:\r
struct implementation;\r
std::shared_ptr<implementation> impl_;\r
{\r
return 1;\r
}\r
+\r
+ std::wstring print() const\r
+ {\r
+ return input_->print();\r
+ }\r
};\r
\r
decklink_consumer::decklink_consumer(size_t device_index, bool embed_audio, bool internalKey) : impl_(new implementation(device_index, embed_audio, internalKey)){}\r
void decklink_consumer::set_parent_printer(const printer& parent_printer){impl_->set_parent_printer(parent_printer);}\r
void decklink_consumer::send(const safe_ptr<const read_frame>& frame){impl_->send(frame);}\r
size_t decklink_consumer::buffer_depth() const{return impl_->buffer_depth();}\r
+std::wstring decklink_consumer::print() const{return impl_->print();}\r
\r
safe_ptr<frame_consumer> create_decklink_consumer(const std::vector<std::wstring>& params)\r
{\r
virtual void set_parent_printer(const printer& parent_printer);\r
virtual void send(const safe_ptr<const read_frame>&);\r
virtual size_t buffer_depth() const;\r
+ virtual std::wstring print() const;\r
private:\r
struct implementation;\r
std::tr1::shared_ptr<implementation> impl_;\r
size_t ffmpeg_consumer::buffer_depth() const{return impl_->buffer_depth();}\r
void ffmpeg_consumer::initialize(const video_format_desc& format_desc) {impl_->initialize(format_desc);}\r
void ffmpeg_consumer::set_parent_printer(const printer& parent_printer){impl_->set_parent_printer(parent_printer);}\r
+std::wstring ffmpeg_consumer::print() const {return impl_->print();}\r
\r
safe_ptr<frame_consumer> create_ffmpeg_consumer(const std::vector<std::wstring>& params)\r
{\r
virtual void set_parent_printer(const printer& parent_printer);\r
virtual void send(const safe_ptr<const read_frame>&);\r
virtual size_t buffer_depth() const;\r
+ virtual std::wstring print() const;\r
private:\r
struct implementation;\r
std::shared_ptr<implementation> impl_;\r
#pragma once\r
\r
#include <common/memory/safe_ptr.h>\r
+#include <common/utility/printer.h>\r
\r
#include <boost/noncopyable.hpp>\r
\r
-#include <common/utility/printer.h>\r
+#include <string>\r
\r
namespace caspar { namespace core {\r
\r
virtual size_t buffer_depth() const = 0;\r
virtual void initialize(const video_format_desc& format_desc) = 0;\r
virtual void set_parent_printer(const printer& parent_printer) = 0;\r
+ virtual std::wstring print() const = 0;\r
\r
static const safe_ptr<frame_consumer>& empty()\r
{\r
{\r
virtual void send(const safe_ptr<const read_frame>&){}\r
virtual size_t buffer_depth() const{return 0;}\r
- void initialize(const video_format_desc&){}\r
- void set_parent_printer(const printer&){}\r
+ virtual void initialize(const video_format_desc&){}\r
+ virtual void set_parent_printer(const printer&){}\r
+ virtual std::wstring print() const {return L"empty";}\r
};\r
static safe_ptr<frame_consumer> consumer = make_safe<empty_frame_consumer>();\r
return consumer;\r
{\r
auto it = consumers_.find(index);\r
if(it != consumers_.end())\r
+ {\r
+ CASPAR_LOG(info) << it->second->print() << L" Removed.";\r
consumers_.erase(it);\r
+ }\r
});\r
}\r
\r
size_t oal_consumer::buffer_depth() const{return impl_->buffer_depth();}\r
void oal_consumer::initialize(const video_format_desc& format_desc){impl_->initialize(format_desc);}\r
void oal_consumer::set_parent_printer(const printer& parent_printer){impl_->set_parent_printer(parent_printer);}\r
+std::wstring oal_consumer::print() const { return impl_->print(); }\r
\r
safe_ptr<frame_consumer> create_oal_consumer(const std::vector<std::wstring>& params)\r
{\r
\r
virtual void send(const safe_ptr<const read_frame>&);\r
virtual size_t buffer_depth() const;\r
+ virtual std::wstring print() const;\r
private:\r
struct implementation;\r
std::shared_ptr<implementation> impl_;\r
-/*\r
+/*\r
* copyright (c) 2010 Sveriges Television AB <info@casparcg.com>\r
*\r
* This file is part of CasparCG.\r
size_t ogl_consumer::buffer_depth() const{return impl_->buffer_depth();}\r
void ogl_consumer::initialize(const video_format_desc& format_desc){impl_->initialize(format_desc);}\r
void ogl_consumer::set_parent_printer(const printer& parent_printer){impl_->set_parent_printer(parent_printer);}\r
+std::wstring ogl_consumer::print() const {return impl_->print();}\r
\r
safe_ptr<frame_consumer> create_ogl_consumer(const std::vector<std::wstring>& params)\r
{\r
virtual void set_parent_printer(const printer& parent_printer);\r
virtual void send(const safe_ptr<const read_frame>&);\r
virtual size_t buffer_depth() const;\r
+ virtual std::wstring print() const;\r
private:\r
struct implementation;\r
std::shared_ptr<implementation> impl_;\r