]> git.sesse.net Git - casparcg/blobdiff - modules/ffmpeg/producer/muxer/frame_muxer.h
[ffmpeg] Ported 2.0.7 ffmpeg producer to 2.1.0 while still keeping the usage of the...
[casparcg] / modules / ffmpeg / producer / muxer / frame_muxer.h
index 0a78863635f688fdefc212c37198bbc1c52f634c..651cbb4412cf4987c132133d9a87ee5c8150ece4 100644 (file)
 #include <common/forward.h>
 #include <common/memory.h>
 
+#include <core/frame/frame.h>
 #include <core/mixer/audio/audio_mixer.h>
 #include <core/fwd.h>
 
 #include <boost/noncopyable.hpp>
+#include <boost/rational.hpp>
 
 #include <vector>
 
@@ -41,23 +43,22 @@ class frame_muxer : boost::noncopyable
 {
 public:
        frame_muxer(
-                       double in_fps,
+                       boost::rational<int> in_framerate,
                        const spl::shared_ptr<core::frame_factory>& frame_factory,
                        const core::video_format_desc& format_desc,
                        const core::audio_channel_layout& channel_layout,
-                       const std::wstring& filter);
+                       const std::wstring& filter,
+                       bool multithreaded_filter);
        
-       void push_video(const std::shared_ptr<AVFrame>& frame);
-       void push_audio(const std::shared_ptr<AVFrame>& frame);
+       void push(const std::shared_ptr<AVFrame>& video_frame);
+       void push(const std::shared_ptr<core::mutable_audio_buffer>& audio_samples);
        
        bool video_ready() const;
        bool audio_ready() const;
 
-       void clear();
+       core::draw_frame poll();
 
-       bool empty() const;
-       core::draw_frame front() const;
-       void pop();
+       boost::rational<int> out_framerate() const;
 
        uint32_t calc_nb_frames(uint32_t nb_frames) const;
 private: