]> git.sesse.net Git - casparcg/blobdiff - core/mixer/read_frame.h
2.0. audio: Audio pipeline is now in 32 bit.
[casparcg] / core / mixer / read_frame.h
index 73fc15045c3c60b22d2f2dc3d7f52da777e2f593..a3afc36cd14b22d255008618067635d818aa2b17 100644 (file)
 */\r
 #pragma once\r
 \r
-#include "gpu/host_buffer.h"   \r
-\r
 #include <common/memory/safe_ptr.h>\r
 \r
 #include <boost/noncopyable.hpp>\r
 #include <boost/range/iterator_range.hpp>\r
 \r
+#include <cstdint>\r
 #include <memory>\r
 #include <vector>\r
 \r
 namespace caspar { namespace core {\r
        \r
+class host_buffer;\r
+class ogl_device;\r
+\r
 class read_frame : boost::noncopyable\r
 {\r
-       read_frame(){}\r
 public:\r
-       read_frame(safe_ptr<const host_buffer>&& image_data, std::vector<short>&& audio_data);\r
+       read_frame();\r
+       read_frame(ogl_device& ogl, size_t size, safe_ptr<host_buffer>&& image_data, std::vector<int32_t>&& audio_data);\r
 \r
-       virtual const boost::iterator_range<const unsigned char*> image_data() const;\r
-       virtual const boost::iterator_range<const short*> audio_data() const;\r
-       \r
-       static safe_ptr<const read_frame> empty()\r
-       {\r
-               struct empty : public read_frame\r
-               {                       \r
-                       virtual const boost::iterator_range<const unsigned char*> image_data() const {return boost::iterator_range<const unsigned char*>();}\r
-                       virtual const boost::iterator_range<const short*> audio_data() const {return boost::iterator_range<const short*>();}\r
-               };\r
-               static safe_ptr<const empty> frame;\r
-               return frame;\r
-       }\r
+       virtual const boost::iterator_range<const uint8_t*> image_data();\r
+       virtual const boost::iterator_range<const int32_t*> audio_data();\r
+\r
+       virtual size_t image_size() const;\r
+               \r
 private:\r
        struct implementation;\r
        std::shared_ptr<implementation> impl_;\r