3 #include <common/memory/safe_ptr.h>
\r
5 #include <core/mixer/audio/audio_mixer.h>
\r
7 #include <boost/noncopyable.hpp>
\r
19 struct frame_factory;
\r
25 class frame_muxer : boost::noncopyable
\r
28 frame_muxer(double in_fps, const safe_ptr<core::frame_factory>& frame_factory, const std::wstring& filter = L"");
\r
30 void push(const std::shared_ptr<AVFrame>& video_frame, int hints = 0);
\r
31 void push(const std::shared_ptr<core::audio_buffer>& audio_samples);
\r
33 bool video_ready() const;
\r
34 bool audio_ready() const;
\r
36 std::shared_ptr<core::basic_frame> poll();
\r
38 int64_t calc_nb_frames(int64_t nb_frames) const;
\r
41 struct implementation;
\r
42 safe_ptr<implementation> impl_;
\r