#include <core/mixer/image/blend_modes.h>
#include <core/mixer/image/image_mixer.h>
+#include <core/fwd.h>
#include <core/frame/frame.h>
#include <core/frame/frame_visitor.h>
#include <core/video_format.h>
-FORWARD1(boost, template<typename> class shared_future);
-FORWARD1(boost, template<typename> class iterator_range);
-FORWARD2(caspar, core, class frame);
-FORWARD2(caspar, core, struct pixel_format_desc);
-FORWARD2(caspar, core, struct video_format_desc);
-FORWARD2(caspar, core, class mutable_frame);
-FORWARD2(caspar, core, struct frame_transform);
-
namespace caspar { namespace accelerator { namespace cpu {
typedef cache_aligned_vector<uint8_t> buffer;
#include <core/mixer/image/blend_modes.h>
#include <core/mixer/image/image_mixer.h>
+#include <core/fwd.h>
#include <core/frame/frame_visitor.h>
#include <core/video_format.h>
-FORWARD2(caspar, core, class frame);
-FORWARD2(caspar, core, struct pixel_format_desc);
-FORWARD2(caspar, core, struct video_format_desc);
-FORWARD2(caspar, core, class mutable_frame);
-FORWARD2(caspar, core, struct frame_transform);
-
namespace caspar { namespace accelerator { namespace ogl {
class image_mixer final : public core::image_mixer
producer/stage.h
producer/variable.h
+ fwd.h
module_dependencies.h
system_info_provider.h
StdAfx.h
}
std::future<bool> send(const_frame frame) override {return consumer_->send(std::move(frame));}
- virtual void initialize(const struct video_format_desc& format_desc, int channel_index) override {return consumer_->initialize(format_desc, channel_index);}
+ virtual void initialize(const video_format_desc& format_desc, int channel_index) override {return consumer_->initialize(format_desc, channel_index);}
std::wstring print() const override {return consumer_->print();}
std::wstring name() const override {return consumer_->name();}
boost::property_tree::wptree info() const override {return consumer_->info();}
}
std::future<bool> send(const_frame frame) override {return consumer_->send(std::move(frame));}
- virtual void initialize(const struct video_format_desc& format_desc, int channel_index) override {return consumer_->initialize(format_desc, channel_index);}
+ virtual void initialize(const video_format_desc& format_desc, int channel_index) override {return consumer_->initialize(format_desc, channel_index);}
std::wstring print() const override {return consumer_->print();}
std::wstring name() const override {return consumer_->name();}
boost::property_tree::wptree info() const override {return consumer_->info();}
}
}
- virtual void initialize(const struct video_format_desc& format_desc, int channel_index)
+ virtual void initialize(const video_format_desc& format_desc, int channel_index)
{
format_desc_ = format_desc;
channel_index_ = channel_index;
#pragma once
#include "../monitor/monitor.h"
+#include "../fwd.h"
#include <common/memory.h>
#include <common/future_fwd.h>
namespace caspar { namespace core {
-struct interaction_sink;
-
// Interface
class frame_consumer
{
// Methods
- virtual std::future<bool> send(class const_frame frame) = 0;
- virtual void initialize(const struct video_format_desc& format_desc, int channel_index) = 0;
+ virtual std::future<bool> send(const_frame frame) = 0;
+ virtual void initialize(const video_format_desc& format_desc, int channel_index) = 0;
// monitor::observable
#pragma once
#include "../monitor/monitor.h"
+#include "../fwd.h"
#include <common/forward.h>
#include <common/future_fwd.h>
// Constructors
- explicit output(spl::shared_ptr<diagnostics::graph> graph, const struct video_format_desc& format_desc, int channel_index);
+ explicit output(spl::shared_ptr<diagnostics::graph> graph, const video_format_desc& format_desc, int channel_index);
// Methods
- void operator()(class const_frame frame, const struct video_format_desc& format_desc);
+ void operator()(const_frame frame, const video_format_desc& format_desc);
- void add(const spl::shared_ptr<class frame_consumer>& consumer);
- void add(int index, const spl::shared_ptr<class frame_consumer>& consumer);
- void remove(const spl::shared_ptr<class frame_consumer>& consumer);
+ void add(const spl::shared_ptr<frame_consumer>& consumer);
+ void add(int index, const spl::shared_ptr<frame_consumer>& consumer);
+ void remove(const spl::shared_ptr<frame_consumer>& consumer);
void remove(int index);
monitor::subject& monitor_output();
consumer_->monitor_output().attach_parent(monitor_subject_);
}
- void video_format_desc(const struct video_format_desc& format_desc)
+ void video_format_desc(const core::video_format_desc& format_desc)
{
consumer_->initialize(format_desc, channel_index_);
}
port& port::operator=(port&& other){impl_ = std::move(other.impl_); return *this;}
std::future<bool> port::send(const_frame frame){return impl_->send(std::move(frame));}
monitor::subject& port::monitor_output() {return *impl_->monitor_subject_;}
-void port::video_format_desc(const struct video_format_desc& format_desc){impl_->video_format_desc(format_desc);}
+void port::video_format_desc(const core::video_format_desc& format_desc){impl_->video_format_desc(format_desc);}
int port::buffer_depth() const{return impl_->buffer_depth();}
std::wstring port::print() const{ return impl_->print();}
bool port::has_synchronization_clock() const{return impl_->has_synchronization_clock();}
#pragma once
#include "../monitor/monitor.h"
+#include "../fwd.h"
#include <common/memory.h>
#include <common/future_fwd.h>
// Constructors
- port(int index, int channel_index, spl::shared_ptr<class frame_consumer> consumer);
+ port(int index, int channel_index, spl::shared_ptr<frame_consumer> consumer);
port(port&& other);
~port();
port& operator=(port&& other);
- std::future<bool> send(class const_frame frame);
+ std::future<bool> send(const_frame frame);
monitor::subject& monitor_output();
// Properties
- void video_format_desc(const struct video_format_desc& format_desc);
+ void video_format_desc(const video_format_desc& format_desc);
std::wstring print() const;
int buffer_depth() const;
bool has_synchronization_clock() const;
#pragma once
#include "frame_visitor.h"
-
-#include <core/video_format.h>
+#include "../fwd.h"
#include <common/memory.h>
namespace caspar { namespace core {
-struct frame_transform;
-
class draw_frame final
{
public:
draw_frame();
draw_frame(const draw_frame& other);
draw_frame(draw_frame&& other);
- explicit draw_frame(class const_frame&& frame);
- explicit draw_frame(class mutable_frame&& frame);
+ explicit draw_frame(const_frame&& frame);
+ explicit draw_frame(mutable_frame&& frame);
explicit draw_frame(std::vector<draw_frame> frames);
~draw_frame();
#undef BOOST_PARAMETER_MAX_ARITY
#define BOOST_PARAMETER_MAX_ARITY 7
-#include "../video_format.h"
+#include "../fwd.h"
#include <common/memory.h>
#include <common/forward.h>
explicit mutable_frame(std::vector<array<std::uint8_t>> image_buffers,
audio_buffer audio_buffer,
const void* tag,
- const struct pixel_format_desc& desc);
+ const pixel_format_desc& desc);
~mutable_frame();
// Methods
// Properties
- const struct pixel_format_desc& pixel_format_desc() const;
+ const pixel_format_desc& pixel_format_desc() const;
const array<std::uint8_t>& image_data(std::size_t index = 0) const;
const core::audio_buffer& audio_data() const;
explicit const_frame(std::shared_future<array<const std::uint8_t>> image,
audio_buffer audio_buffer,
const void* tag,
- const struct pixel_format_desc& desc);
+ const pixel_format_desc& desc);
const_frame(mutable_frame&& other);
~const_frame();
// Properties
- const struct pixel_format_desc& pixel_format_desc() const;
+ const pixel_format_desc& pixel_format_desc() const;
array<const std::uint8_t> image_data(int index = 0) const;
const core::audio_buffer& audio_data() const;
#pragma once
#include "frame.h"
+#include "../fwd.h"
#include <common/memory.h>
// Methods
- virtual class mutable_frame create_frame(const void* video_stream_tag, const struct pixel_format_desc& desc) = 0;
+ virtual mutable_frame create_frame(const void* video_stream_tag, const pixel_format_desc& desc) = 0;
// Properties
};
#pragma once
+#include "../fwd.h"
+
namespace caspar { namespace core {
class frame_visitor
// Methods
- virtual void push(const struct frame_transform& transform) = 0;
- virtual void visit(const class const_frame& frame) = 0;
+ virtual void push(const frame_transform& transform) = 0;
+ virtual void visit(const const_frame& frame) = 0;
virtual void pop() = 0;
// Properties
--- /dev/null
+/*
+* Copyright 2013 Sveriges Television AB http://casparcg.com/
+*
+* This file is part of CasparCG (www.casparcg.com).
+*
+* CasparCG is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* CasparCG is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with CasparCG. If not, see <http://www.gnu.org/licenses/>.
+*
+* Author: Robert Nagy, ronag89@gmail.com
+*/
+#pragma once
+
+#include <common/forward.h>
+
+FORWARD3(caspar, core, ogl, class accelerator);
+
+FORWARD2(caspar, core, class stage);
+FORWARD2(caspar, core, class mixer);
+FORWARD2(caspar, core, class output);
+FORWARD2(caspar, core, class image_mixer);
+FORWARD2(caspar, core, struct video_format_desc);
+FORWARD2(caspar, core, class frame_factory);
+FORWARD2(caspar, core, class frame_producer);
+FORWARD2(caspar, core, class frame_consumer);
+FORWARD2(caspar, core, struct interaction_sink);
+FORWARD2(caspar, core, class draw_frame);
+FORWARD2(caspar, core, class mutable_frame);
+FORWARD2(caspar, core, class const_frame);
+FORWARD2(caspar, core, class video_channel);
+FORWARD2(caspar, core, struct pixel_format_desc);
+FORWARD2(caspar, core, struct media_info_repository);
+FORWARD2(caspar, core, enum class field_mode);
+FORWARD2(caspar, core, class thumbnail_generator);
+FORWARD2(caspar, core, class system_info_provider_repository);
+FORWARD2(caspar, core, class cg_producer_registry);
+FORWARD2(caspar, core, struct frame_transform);
+
void mixer::set_master_volume(float volume) { impl_->set_master_volume(volume); }
float mixer::get_master_volume() { return impl_->get_master_volume(); }
std::future<boost::property_tree::wptree> mixer::info() const{return impl_->info();}
-const_frame mixer::operator()(std::map<int, draw_frame> frames, const struct video_format_desc& format_desc){return (*impl_)(std::move(frames), format_desc);}
+const_frame mixer::operator()(std::map<int, draw_frame> frames, const video_format_desc& format_desc){return (*impl_)(std::move(frames), format_desc);}
mutable_frame mixer::create_frame(const void* tag, const core::pixel_format_desc& desc) {return impl_->image_mixer_->create_frame(tag, desc);}
}}
#include <common/memory.h>
#include <common/reactive.h>
-#include <core/video_format.h>
+#include <core/fwd.h>
#include <boost/property_tree/ptree_fwd.hpp>
// Constructors
- explicit mixer(spl::shared_ptr<diagnostics::graph> graph, spl::shared_ptr<class image_mixer> image_mixer);
+ explicit mixer(spl::shared_ptr<diagnostics::graph> graph, spl::shared_ptr<image_mixer> image_mixer);
// Methods
- class const_frame operator()(std::map<int, class draw_frame> frames, const struct video_format_desc& format_desc);
+ const_frame operator()(std::map<int, draw_frame> frames, const video_format_desc& format_desc);
void set_master_volume(float volume);
float get_master_volume();
- class mutable_frame create_frame(const void* tag, const struct pixel_format_desc& desc);
+ mutable_frame create_frame(const void* tag, const pixel_format_desc& desc);
// Properties
}
spl::shared_ptr<cg_proxy> get_proxy(
- const spl::shared_ptr<class video_channel>& video_channel,
+ const spl::shared_ptr<video_channel>& video_channel,
int render_layer) const
{
auto producer = spl::make_shared_ptr(video_channel->stage().foreground(render_layer).get());
}
spl::shared_ptr<cg_proxy> get_or_create_proxy(
- const spl::shared_ptr<class video_channel>& video_channel,
+ const spl::shared_ptr<video_channel>& video_channel,
int render_layer,
const std::wstring& filename) const
{
const spl::shared_ptr<frame_producer>& producer
)> cg_proxy_factory;
typedef std::function<spl::shared_ptr<frame_producer>(
- const spl::shared_ptr<class frame_factory>& factory,
+ const spl::shared_ptr<frame_factory>& factory,
const video_format_desc& format_desc,
const std::wstring& filename
)> cg_producer_factory;
bool reusable_producer_instance);
spl::shared_ptr<frame_producer> create_producer(
- const spl::shared_ptr<class video_channel>& video_channel,
+ const spl::shared_ptr<video_channel>& video_channel,
const std::wstring& filename) const;
spl::shared_ptr<cg_proxy> get_proxy(
const spl::shared_ptr<frame_producer>& producer) const;
spl::shared_ptr<cg_proxy> get_proxy(
- const spl::shared_ptr<class video_channel>& video_channel,
+ const spl::shared_ptr<video_channel>& video_channel,
int render_layer) const;
spl::shared_ptr<cg_proxy> get_or_create_proxy(
- const spl::shared_ptr<class video_channel>& video_channel,
+ const spl::shared_ptr<video_channel>& video_channel,
int render_layer,
const std::wstring& filename) const;
std::string read_meta_info(const std::wstring& filename) const;
#include <common/memory.h>
+#include <core/fwd.h>
+
#include <string>
#include <vector>
#include <cstdint>
bool try_get_color(const std::wstring& str, uint32_t& value);
-spl::shared_ptr<class frame_producer> create_color_producer(const spl::shared_ptr<class frame_factory>& frame_factory, uint32_t value);
-spl::shared_ptr<class frame_producer> create_color_producer(const spl::shared_ptr<class frame_factory>& frame_factory, const std::vector<std::wstring>& params);
-class draw_frame create_color_frame(void* tag, const spl::shared_ptr<frame_factory>& frame_factory, uint32_t value);
-class draw_frame create_color_frame(void* tag, const spl::shared_ptr<class frame_factory>& frame_factory, const std::wstring& color);
+spl::shared_ptr<frame_producer> create_color_producer(const spl::shared_ptr<frame_factory>& frame_factory, uint32_t value);
+spl::shared_ptr<frame_producer> create_color_producer(const spl::shared_ptr<frame_factory>& frame_factory, const std::vector<std::wstring>& params);
+draw_frame create_color_frame(void* tag, const spl::shared_ptr<frame_factory>& frame_factory, uint32_t value);
+draw_frame create_color_frame(void* tag, const spl::shared_ptr<frame_factory>& frame_factory, const std::wstring& color);
}}
#include <common/memory.h>
+#include <core/fwd.h>
+
#include <string>
#include <vector>
namespace caspar { namespace core {
-spl::shared_ptr<class frame_producer> create_freehand_producer(const spl::shared_ptr<class frame_factory>& frame_factory, const std::vector<std::wstring>& params);
+spl::shared_ptr<frame_producer> create_freehand_producer(const spl::shared_ptr<frame_factory>& frame_factory, const std::vector<std::wstring>& params);
}}
const std::vector<std::wstring>& get_variables() const override {return producer_->get_variables();}
void leading_producer(const spl::shared_ptr<frame_producer>& producer) override {return producer_->leading_producer(producer);}
uint32_t nb_frames() const override {return producer_->nb_frames();}
- class draw_frame last_frame() {return producer_->last_frame();}
+ draw_frame last_frame() {return producer_->last_frame();}
draw_frame create_thumbnail_frame() {return producer_->create_thumbnail_frame();}
monitor::subject& monitor_output() override {return producer_->monitor_output();}
bool collides(double x, double y) const override {return producer_->collides(x, y);}
#pragma once
#include "../monitor/monitor.h"
-#include "../video_format.h"
+#include "../fwd.h"
#include "../interaction/interaction_sink.h"
#include "binding.h"
// Methods
- virtual class draw_frame receive() = 0;
+ virtual draw_frame receive() = 0;
virtual std::future<std::wstring> call(const std::vector<std::wstring>& params) = 0;
virtual variable& get_variable(const std::wstring& name) = 0;
virtual const std::vector<std::wstring>& get_variables() const = 0;
virtual boost::property_tree::wptree info() const = 0;
virtual uint32_t nb_frames() const = 0;
virtual uint32_t frame_number() const = 0;
- virtual class draw_frame last_frame() = 0;
- virtual class draw_frame create_thumbnail_frame() = 0;
+ virtual draw_frame last_frame() = 0;
+ virtual draw_frame create_thumbnail_frame() = 0;
virtual constraints& pixel_constraints() = 0;
virtual void leading_producer(const spl::shared_ptr<frame_producer>&) {}
};
void paused(bool value) override;
uint32_t nb_frames() const override;
uint32_t frame_number() const override;
- virtual class draw_frame last_frame() override;
- virtual class draw_frame create_thumbnail_frame() override;
+ virtual draw_frame last_frame() override;
+ virtual draw_frame create_thumbnail_frame() override;
private:
- virtual class draw_frame receive() override;
- virtual class draw_frame receive_impl() = 0;
+ virtual draw_frame receive() override;
+ virtual draw_frame receive_impl() = 0;
struct impl;
friend struct impl;
#include "../monitor/monitor.h"
#include "../interaction/interaction_sink.h"
+#include "../fwd.h"
#include <common/forward.h>
#include <common/future_fwd.h>
void swap(layer& other);
- void load(spl::shared_ptr<class frame_producer> producer, bool preview, const boost::optional<int32_t>& auto_play_delta = nullptr);
+ void load(spl::shared_ptr<frame_producer> producer, bool preview, const boost::optional<int32_t>& auto_play_delta = nullptr);
void play();
void pause();
void stop();
- class draw_frame receive(const struct video_format_desc& format_desc);
+ draw_frame receive(const video_format_desc& format_desc);
// monitor::observable
// Properties
- spl::shared_ptr<class frame_producer> foreground() const;
- spl::shared_ptr<class frame_producer> background() const;
+ spl::shared_ptr<frame_producer> foreground() const;
+ spl::shared_ptr<frame_producer> background() const;
- boost::property_tree::wptree info() const;
+ boost::property_tree::wptree info() const;
private:
struct impl;
}
};
-spl::shared_ptr<class frame_producer> create_const_producer(
- const class draw_frame& frame, int width, int height)
+spl::shared_ptr<frame_producer> create_const_producer(
+ const draw_frame& frame, int width, int height)
{
return spl::make_shared<const_producer>(frame, width, height);
}
-spl::shared_ptr<class frame_producer> create_const_producer(
- std::vector<class draw_frame>&& frames, int width, int height)
+spl::shared_ptr<frame_producer> create_const_producer(
+ std::vector<draw_frame>&& frames, int width, int height)
{
return spl::make_shared<const_producer>(std::move(frames), width, height);
}
#include <common/memory.h>
+#include <core/fwd.h>
+
#include <string>
#include <vector>
namespace caspar { namespace core {
-spl::shared_ptr<class frame_producer> create_const_producer(
- const class draw_frame& frame, int width, int height);
-spl::shared_ptr<class frame_producer> create_const_producer(
- std::vector<class draw_frame>&& frames, int width, int height);
+spl::shared_ptr<frame_producer> create_const_producer(
+ const draw_frame& frame, int width, int height);
+spl::shared_ptr<frame_producer> create_const_producer(
+ std::vector<draw_frame>&& frames, int width, int height);
}}
#include <common/log.h>
#include "../frame_producer.h"
+#include "../../fwd.h"
#include "../binding.h"
#include "../variable.h"
-namespace caspar { namespace core {
-
-class frame_factory;
-
-namespace scene {
+namespace caspar { namespace core { namespace scene {
struct coord
{
scene_producer(int width, int height, const video_format_desc& format_desc);
~scene_producer();
- class draw_frame receive_impl() override;
+ draw_frame receive_impl() override;
constraints& pixel_constraints() override;
void on_interaction(const interaction_event::ptr& event) override;
bool collides(double x, double y) const override;
{
spl::shared_ptr<diagnostics::graph> graph_;
spl::shared_ptr<monitor::subject> monitor_subject_;
- //reactive::basic_subject<std::map<int, class draw_frame>> frames_subject_;
+ //reactive::basic_subject<std::map<int, draw_frame>> frames_subject_;
std::map<int, layer> layers_;
std::map<int, tweened_transform> tweens_;
interaction_aggregator aggregator_;
graph_->set_color("produce-time", diagnostics::color(0.0f, 1.0f, 0.0f));
}
- std::map<int, draw_frame> operator()(const struct video_format_desc& format_desc)
+ std::map<int, draw_frame> operator()(const video_format_desc& format_desc)
{
caspar::timer frame_timer;
auto frames = executor_.invoke([=]() -> std::map<int, draw_frame>
{
- std::map<int, class draw_frame> frames;
+ std::map<int, draw_frame> frames;
try
{
std::future<std::shared_ptr<frame_producer>> stage::background(int index) { return impl_->background(index); }
std::future<boost::property_tree::wptree> stage::info() const{ return impl_->info(); }
std::future<boost::property_tree::wptree> stage::info(int index) const{ return impl_->info(index); }
-std::map<int, class draw_frame> stage::operator()(const video_format_desc& format_desc){return (*impl_)(format_desc);}
+std::map<int, draw_frame> stage::operator()(const video_format_desc& format_desc){return (*impl_)(format_desc);}
monitor::subject& stage::monitor_output(){return *impl_->monitor_subject_;}
//void stage::subscribe(const frame_observable::observer_ptr& o) {impl_->frames_subject_.subscribe(o);}
//void stage::unsubscribe(const frame_observable::observer_ptr& o) {impl_->frames_subject_.unsubscribe(o);}
// Methods
- std::map<int, class draw_frame> operator()(const struct video_format_desc& format_desc);
+ std::map<int, draw_frame> operator()(const video_format_desc& format_desc);
std::future<void> apply_transforms(const std::vector<transform_tuple_t>& transforms);
std::future<void> apply_transform(int index, const transform_func_t& transform, unsigned int mix_duration = 0, const tweener& tween = L"linear");
std::future<void> clear_transforms(int index);
std::future<void> clear_transforms();
std::future<frame_transform> get_current_transform(int index);
- std::future<void> load(int index, const spl::shared_ptr<class frame_producer>& producer, bool preview = false, const boost::optional<int32_t>& auto_play_delta = nullptr);
+ std::future<void> load(int index, const spl::shared_ptr<frame_producer>& producer, bool preview = false, const boost::optional<int32_t>& auto_play_delta = nullptr);
std::future<void> pause(int index);
std::future<void> play(int index);
std::future<void> stop(int index);
// Properties
- std::future<std::shared_ptr<class frame_producer>> foreground(int index);
- std::future<std::shared_ptr<class frame_producer>> background(int index);
+ std::future<std::shared_ptr<frame_producer>> foreground(int index);
+ std::future<std::shared_ptr<frame_producer>> background(int index);
- std::future<boost::property_tree::wptree> info() const;
- std::future<boost::property_tree::wptree> info(int index) const;
+ std::future<boost::property_tree::wptree> info() const;
+ std::future<boost::property_tree::wptree> info(int index) const;
private:
struct impl;
#pragma once
#include "../frame_producer.h"
+#include "../../fwd.h"
#include <common/memory.h>
{
public:
text_producer(const spl::shared_ptr<frame_factory>& frame_factory, int x, int y, const std::wstring& str, text::text_info& text_info, long parent_width, long parent_height, bool standalone);
- static spl::shared_ptr<text_producer> create(const spl::shared_ptr<class frame_factory>& frame_factory, int x, int y, const std::wstring& str, text::text_info& text_info, long parent_width, long parent_height, bool standalone = false);
+ static spl::shared_ptr<text_producer> create(const spl::shared_ptr<frame_factory>& frame_factory, int x, int y, const std::wstring& str, text::text_info& text_info, long parent_width, long parent_height, bool standalone = false);
draw_frame receive_impl() override;
std::future<std::wstring> call(const std::vector<std::wstring>& param) override;
spl::unique_ptr<impl> impl_;
};
-spl::shared_ptr<frame_producer> create_text_producer(const spl::shared_ptr<class frame_factory>& frame_factory, const video_format_desc& format_desc, const std::vector<std::wstring>& params);
+spl::shared_ptr<frame_producer> create_text_producer(const spl::shared_ptr<frame_factory>& frame_factory, const video_format_desc& format_desc, const std::vector<std::wstring>& params);
}}
#pragma once
#include "../../video_format.h"
+#include "../../fwd.h"
#include <common/memory.h>
#include <common/tweener.h>
caspar::tweener tweener { L"linear" };
};
-spl::shared_ptr<class frame_producer> create_transition_producer(const field_mode& mode, const spl::shared_ptr<class frame_producer>& destination, const transition_info& info);
+spl::shared_ptr<frame_producer> create_transition_producer(const field_mode& mode, const spl::shared_ptr<frame_producer>& destination, const transition_info& info);
}}
#include <common/memory.h>
#include <common/filesystem_monitor.h>
-namespace caspar { namespace core {
+#include "fwd.h"
-class ogl_device;
-class read_frame;
-struct video_format_desc;
-struct media_info_repository;
+namespace caspar { namespace core {
typedef std::function<void (
- const class const_frame& frame,
+ const const_frame& frame,
const video_format_desc& format_desc,
const boost::filesystem::path& output_file,
int width,
int width,
int height,
const video_format_desc& render_video_mode,
- std::unique_ptr<class image_mixer> image_mixer,
+ std::unique_ptr<image_mixer> image_mixer,
int generate_delay_millis,
const thumbnail_creator& thumbnail_creator,
spl::shared_ptr<media_info_repository> media_info_repo,
#include <common/reactive.h>
#include <common/forward.h>
+#include "fwd.h"
+
#include "monitor/monitor.h"
#include <boost/property_tree/ptree_fwd.hpp>
-FORWARD3(caspar, core, ogl, class accelerator);
-FORWARD2(caspar, core, class stage);
-FORWARD2(caspar, core, class mixer);
-FORWARD2(caspar, core, class output);
-FORWARD2(caspar, core, class image_mixer);
-FORWARD2(caspar, core, struct video_format_desc);
-FORWARD2(caspar, core, class frame_factory);
-
namespace caspar { namespace core {
class video_channel final
#include <common/memory.h>
-#include <boost/property_tree/ptree.hpp>
+#include <core/fwd.h>
-#include <string>
+#include <boost/property_tree/ptree_fwd.hpp>
-namespace caspar {
+#include <string>
-namespace core {
- class frame_consumer;
- struct interaction_sink;
-}
-
-namespace bluefish {
+namespace caspar { namespace bluefish {
spl::shared_ptr<core::frame_consumer> create_consumer(
const std::vector<std::wstring>& params, core::interaction_sink*);
#include <common/memory.h>
#include <common/except.h>
-namespace caspar {
+#include <core/fwd.h>
-namespace core {
-
-struct video_format_desc;
-
-}
-
-namespace bluefish {
+namespace caspar { namespace bluefish {
extern const char* (*BlueVelvetVersion)();
extern BLUE_UINT32 (*encode_hanc_frame)(struct hanc_stream_info_struct * hanc_stream_ptr, void * audio_pcm_ptr,BLUE_UINT32 no_audio_ch,BLUE_UINT32 no_audio_samples,BLUE_UINT32 nTypeOfSample,BLUE_UINT32 emb_audio_flag);
#include <common/memory.h>
-#include <core/video_format.h>
+#include <core/fwd.h>
-#include <boost/property_tree/ptree.hpp>
+#include <boost/property_tree/ptree_fwd.hpp>
#include <string>
#include <vector>
-namespace caspar {
-
-namespace core {
- class frame_consumer;
- struct interaction_sink;
-}
-
-namespace decklink {
+namespace caspar { namespace decklink {
spl::shared_ptr<core::frame_consumer> create_consumer(
const std::vector<std::wstring>& params, core::interaction_sink*);
#include <common/memory.h>
+#include <core/fwd.h>
+
#include <boost/property_tree/ptree_fwd.hpp>
#include <string>
#include <vector>
-namespace caspar {
-
-namespace core {
- class frame_consumer;
- struct interaction_sink;
-}
-
-namespace ffmpeg {
+namespace caspar { namespace ffmpeg {
spl::shared_ptr<core::frame_consumer> create_consumer(const std::vector<std::wstring>& params, core::interaction_sink*);
spl::shared_ptr<core::frame_consumer> create_preconfigured_consumer(const boost::property_tree::wptree& ptree, core::interaction_sink*);
struct AVPacket;
struct AVFormatContext;
-namespace caspar {
-
-namespace core {
-
-struct video_format_desc;
-
-}
-
-namespace ffmpeg {
+namespace caspar { namespace ffmpeg {
class audio_decoder : public boost::noncopyable
{
#include <common/memory.h>
-#include <core/producer/frame_producer.h>
+#include <core/fwd.h>
#include <core/video_format.h>
#include <string>
#include <vector>
-namespace caspar {
-
-namespace core {
-
-class frame_producer;
-class frame_factory;
-
-}
-
-namespace ffmpeg {
+namespace caspar { namespace ffmpeg {
spl::shared_ptr<core::frame_producer> create_producer(const spl::shared_ptr<core::frame_factory>& frame_factory, const core::video_format_desc& format_desc, const std::vector<std::wstring>& params);
#include <common/memory.h>
#include <core/mixer/audio/audio_mixer.h>
-#include <core/video_format.h>
+#include <core/fwd.h>
#include <boost/noncopyable.hpp>
struct AVFrame;
-FORWARD2(caspar, core, struct pixel_format_desc);
-FORWARD2(caspar, core, class frame);
-FORWARD2(caspar, core, class frame_factory);
-FORWARD2(caspar, core, class draw_frame);
-
namespace caspar { namespace ffmpeg {
class frame_muxer : boost::noncopyable
#include <core/video_format.h>
#include <core/frame/pixel_format.h>
#include <core/mixer/audio/audio_mixer.h>
+#include <core/fwd.h>
#include <boost/rational.hpp>
struct AVRational;
struct AVCodecContext;
-FORWARD2(caspar, core, struct pixel_format_desc);
-FORWARD2(caspar, core, class mutable_frame);
-FORWARD2(caspar, core, class frame_factory);
-
namespace caspar { namespace ffmpeg {
// Utils
#include <common/memory.h>
-#include <core/producer/frame_producer.h>
-#include <core/video_format.h>
+#include <core/fwd.h>
#include <string>
#include <vector>
-namespace caspar {
-
-namespace core {
-
-class frame_producer;
-class frame_factory;
-
-}
-
-namespace html {
+namespace caspar { namespace html {
spl::shared_ptr<core::frame_producer> create_producer(
const spl::shared_ptr<core::frame_factory>& frame_factory,
#include <common/memory.h>
+#include <core/fwd.h>
+
#include <boost/property_tree/ptree_fwd.hpp>
#include <string>
-namespace caspar {
-
-namespace core {
- class frame_consumer;
- struct interaction_sink;
-}
-
-namespace newtek {
+namespace caspar { namespace newtek {
spl::shared_ptr<core::frame_consumer> create_ivga_consumer(const std::vector<std::wstring>& params, core::interaction_sink*);
spl::shared_ptr<core::frame_consumer> create_preconfigured_ivga_consumer(const boost::property_tree::wptree& ptree, core::interaction_sink*);
#include <common/memory.h>
-#include <core/video_format.h>
+#include <core/fwd.h>
#include <vector>
#include <boost/property_tree/ptree_fwd.hpp>
-namespace caspar {
-
-namespace core {
- class frame_consumer;
- struct interaction_sink;
-}
-
-namespace oal {
+namespace caspar { namespace oal {
spl::shared_ptr<core::frame_consumer> create_consumer(
const std::vector<std::wstring>& params, core::interaction_sink*);
#pragma once
#include <common/memory.h>
-#include <common/forward.h>
-#include <common/reactive.h>
-FORWARD2(caspar, core, class video_channel);
-FORWARD2(caspar, core, class frame_producer);
+#include <core/fwd.h>
namespace caspar { namespace reroute {
#include <common/memory.h>
+#include <core/fwd.h>
+
#include <vector>
#include <boost/property_tree/ptree.hpp>
-namespace caspar {
-
-namespace core {
- class frame_consumer;
- struct interaction_sink;
-}
-
-namespace screen {
-
+namespace caspar { namespace screen {
spl::shared_ptr<core::frame_consumer> create_consumer(
const std::vector<std::wstring>& params,
#include <common/future_fwd.h>
#include <core/monitor/monitor.h>
+#include <core/fwd.h>
#include <boost/noncopyable.hpp>
namespace caspar {
-namespace core {
- class video_channel;
- class thumbnail_generator;
- struct media_info_repository;
- class system_info_provider_repository;
- class cg_producer_registry;
-}
-
class server final : public boost::noncopyable
{
public: