X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fffmpeg%2Fproducer%2Fmuxer%2Fframe_muxer.h;h=1a5e5578b6358fa9c368a1448018de03f7b9a5a5;hb=435cf4b385c5099270bee44f89c3e2615af30521;hp=af0d9aa5cbf53e4a98dc86589ba5153958218e73;hpb=7714da3705a5a74f92d751182cc90dbf889182a8;p=casparcg diff --git a/modules/ffmpeg/producer/muxer/frame_muxer.h b/modules/ffmpeg/producer/muxer/frame_muxer.h index af0d9aa5c..1a5e5578b 100644 --- a/modules/ffmpeg/producer/muxer/frame_muxer.h +++ b/modules/ffmpeg/producer/muxer/frame_muxer.h @@ -23,9 +23,11 @@ #include "display_mode.h" -#include +#include +#include #include +#include #include @@ -33,22 +35,17 @@ struct AVFrame; -namespace caspar { - -namespace core { - -class device_frame; -class basic_frame; -struct frame_factory; - -} +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 ffmpeg { +namespace caspar { namespace ffmpeg { class frame_muxer : boost::noncopyable { public: - frame_muxer(double in_fps, const safe_ptr& frame_factory, const std::wstring& filter = L""); + frame_muxer(double in_fps, const spl::shared_ptr& frame_factory, const core::video_format_desc& format_desc, const std::wstring& filter = L""); void push(const std::shared_ptr& video_frame, int flags = 0); void push(const std::shared_ptr& audio_samples); @@ -56,12 +53,12 @@ public: bool video_ready() const; bool audio_ready() const; - std::shared_ptr poll(); + bool try_pop(core::draw_frame& result); uint32_t calc_nb_frames(uint32_t nb_frames) const; private: struct impl; - safe_ptr impl_; + spl::shared_ptr impl_; }; }} \ No newline at end of file