예제 #1
0
	explicit separated_producer(const safe_ptr<frame_producer>& fill, const safe_ptr<frame_producer>& key) 
		: monitor_subject_("")
		, key_monitor_subject_("/keyer")
		, fill_producer_(fill)
		, key_producer_(key)
		, fill_(core::basic_frame::late())
		, key_(core::basic_frame::late())
		, last_frame_(core::basic_frame::empty())
	{
		key_monitor_subject_.link_target(&monitor_subject_);

		key_producer_->monitor_output().link_target(&key_monitor_subject_);
		fill_producer_->monitor_output().link_target(&monitor_subject_);
	}
예제 #2
0
	explicit transition_producer(const field_mode::type& mode, const safe_ptr<frame_producer>& dest, const transition_info& info) 
		: mode_(mode)
		, current_frame_(0)
		, info_(info)
		, dest_producer_(dest)
		, source_producer_(frame_producer::empty())
		, last_frame_(basic_frame::empty())
	{
		dest->monitor_output().link_target(&monitor_subject_);
	}
예제 #3
0
	implementation(video_channel& self, int index, const video_format_desc& format_desc, const safe_ptr<ogl_device>& ogl, const channel_layout& audio_channel_layout)  
		: self_(self)
		, index_(index)
		, format_desc_(format_desc)
		, ogl_(ogl)
		, output_(new caspar::core::output(graph_, format_desc, audio_channel_layout, index))
		, mixer_(new caspar::core::mixer(graph_, output_, format_desc, ogl, audio_channel_layout, index))
		, stage_(new caspar::core::stage(graph_, mixer_, format_desc, index))
		, monitor_subject_(make_safe<monitor::subject>("/channel/" + boost::lexical_cast<std::string>(index)))
	{
		graph_->set_text(print());
		diagnostics::register_graph(graph_);

		for(int n = 0; n < std::max(1, env::properties().get(L"configuration.pipeline-tokens", 2)); ++n)
			stage_->spawn_token();

		stage_->monitor_output().attach_parent(monitor_subject_);
		mixer_->monitor_output().attach_parent(monitor_subject_);
		output_->monitor_output().attach_parent(monitor_subject_);

		CASPAR_LOG(info) << print() << " Successfully Initialized.";
	}
예제 #4
0
파일: layer.cpp 프로젝트: AronVietti/Server
	void set_foreground(safe_ptr<core::frame_producer> producer)
	{
		foreground_->monitor_output().unlink_target(&monitor_subject_);
		foreground_			= producer;
		foreground_->monitor_output().link_target(&monitor_subject_);
	}