3 #include <common/memory/safe_ptr.h>
\r
5 #include <core/video_format.h>
\r
7 #include <boost/noncopyable.hpp>
\r
17 struct frame_factory;
\r
21 class frame_muxer : boost::noncopyable
\r
24 frame_muxer(double in_fps, const safe_ptr<core::frame_factory>& frame_factory);
\r
26 void push(const std::shared_ptr<AVFrame>& video_frame);
\r
27 void push(const std::shared_ptr<std::vector<int16_t>>& audio_samples);
\r
29 bool video_ready() const;
\r
30 bool audio_ready() const;
\r
32 size_t size() const;
\r
35 safe_ptr<core::basic_frame> pop();
\r
37 struct implementation;
\r
38 safe_ptr<implementation> impl_;
\r