X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=core%2Fmixer%2Fread_frame.h;h=976ca39f90d42517d52a2af045cc87470fe21267;hb=ffcb75eabba1d77eab8d83447136261462e3e088;hp=5bfbef5c69f92a6860b4193557fe2426db704298;hpb=e97fa545b50dec099fe1f56990524b56936e255e;p=casparcg diff --git a/core/mixer/read_frame.h b/core/mixer/read_frame.h index 5bfbef5c6..976ca39f9 100644 --- a/core/mixer/read_frame.h +++ b/core/mixer/read_frame.h @@ -19,39 +19,33 @@ */ #pragma once -#include "gpu/host_buffer.h" - #include +#include + #include #include -#include +#include #include #include namespace caspar { namespace core { +class host_buffer; +class ogl_device; + class read_frame : boost::noncopyable { - read_frame(){} public: - read_frame(boost::unique_future>&& image_data, std::vector&& audio_data); - read_frame(safe_ptr&& image_data, std::vector&& audio_data); + read_frame(); + read_frame(ogl_device& ogl, size_t size, safe_ptr&& image_data, audio_buffer&& audio_data); - virtual const boost::iterator_range image_data() const; - virtual const boost::iterator_range audio_data() const; - - static safe_ptr empty() - { - struct empty : public read_frame - { - virtual const boost::iterator_range image_data() const {return boost::iterator_range();} - virtual const boost::iterator_range audio_data() const {return boost::iterator_range();} - }; - static safe_ptr frame; - return frame; - } + virtual const boost::iterator_range image_data(); + virtual const boost::iterator_range audio_data(); + + virtual size_t image_size() const; + private: struct implementation; std::shared_ptr impl_;