3 #include <common/memory/safe_ptr.h>
\r
4 #include <common/concurrency/governor.h>
\r
6 #include <core/mixer/audio/audio_mixer.h>
\r
8 #include <boost/noncopyable.hpp>
\r
22 struct frame_factory;
\r
28 class frame_muxer2 : boost::noncopyable
\r
32 typedef safe_ptr<AVFrame> video_source_element_t;
\r
33 typedef safe_ptr<core::audio_buffer> audio_source_element_t;
\r
34 typedef std::pair<safe_ptr<core::basic_frame>, ticket_t> target_element_t;
\r
36 typedef Concurrency::ISource<video_source_element_t> video_source_t;
\r
37 typedef Concurrency::ISource<audio_source_element_t> audio_source_t;
\r
38 typedef Concurrency::ITarget<target_element_t> target_t;
\r
40 frame_muxer2(video_source_t* video_source,
\r
41 audio_source_t* audio_source,
\r
44 const safe_ptr<core::frame_factory>& frame_factory,
\r
45 const std::wstring& filter = L"");
\r
47 int64_t calc_nb_frames(int64_t nb_frames) const;
\r
49 struct implementation;
\r
50 safe_ptr<implementation> impl_;
\r