3 #include "../monitor/monitor.h"
5 #include <common/memory.h>
7 #include <boost/property_tree/ptree_fwd.hpp>
8 #include <boost/thread/future.hpp>
10 namespace caspar { namespace core {
12 class port : public monitor::observable
15 port& operator=(const port&);
22 port(int index, int channel_index, spl::shared_ptr<class frame_consumer> consumer);
28 port& operator=(port&& other);
30 boost::unique_future<bool> send(class const_frame frame);
32 // monitor::observable
34 void subscribe(const monitor::observable::observer_ptr& o) override;
35 void unsubscribe(const monitor::observable::observer_ptr& o) override;
39 void video_format_desc(const struct video_format_desc& format_desc);
40 int buffer_depth() const;
41 bool has_synchronization_clock() const;
42 boost::property_tree::wptree info() const;
45 std::unique_ptr<impl> impl_;