\r
#include <common/memory/safe_ptr.h>\r
\r
+#include <core/mixer/audio/audio_mixer.h>\r
+\r
#include <boost/noncopyable.hpp>\r
#include <boost/range/iterator_range.hpp>\r
-#include <boost/thread/future.hpp>\r
\r
+#include <cstdint>\r
#include <memory>\r
#include <vector>\r
\r
\r
class read_frame : boost::noncopyable\r
{\r
- read_frame(){}\r
public:\r
- read_frame(safe_ptr<host_buffer>&& image_data, std::vector<int16_t>&& audio_data, int frame_number);\r
+ read_frame();\r
+ read_frame(ogl_device& ogl, size_t size, safe_ptr<host_buffer>&& image_data, audio_buffer&& audio_data);\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 const boost::iterator_range<const uint8_t*> image_data() const;\r
- virtual const boost::iterator_range<const int16_t*> audio_data() const;\r
+ virtual size_t image_size() const;\r
\r
- virtual int number() 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 uint8_t*> image_data() const {return boost::iterator_range<const uint8_t*>();}\r
- virtual const boost::iterator_range<const int16_t*> audio_data() const {return boost::iterator_range<const int16_t*>();}\r
- virtual int number() const{return -1;}\r
- };\r
- static safe_ptr<const empty> frame;\r
- return frame;\r
- }\r
private:\r
struct implementation;\r
std::shared_ptr<implementation> impl_;\r