]> git.sesse.net Git - casparcg/blobdiff - modules/ffmpeg/producer/frame_muxer.h
2.0. Updated namespaces.
[casparcg] / modules / ffmpeg / producer / frame_muxer.h
index 065ef8695e74cb744194660f39fd5355d222ebb5..8aa79834c0ce2f081d1ec9f8289bd440591e8ceb 100644 (file)
@@ -2,12 +2,14 @@
 \r
 #include <common/memory/safe_ptr.h>\r
 \r
-#include <core/video_format.h>\r
+#include <core/mixer/audio/audio_mixer.h>\r
 \r
 #include <boost/noncopyable.hpp>\r
 \r
 #include <vector>\r
 \r
+struct AVFrame;\r
+\r
 namespace caspar { \r
        \r
 namespace core {\r
@@ -18,24 +20,30 @@ struct frame_factory;
 \r
 }\r
 \r
+namespace ffmpeg {\r
+\r
 class frame_muxer : boost::noncopyable\r
 {\r
 public:\r
        frame_muxer(double in_fps, const safe_ptr<core::frame_factory>& frame_factory);\r
        \r
-       void push(const std::shared_ptr<AVFrame>& video_frame);\r
-       void push(const std::shared_ptr<std::vector<int16_t>>& audio_samples);\r
+       void push(const std::shared_ptr<AVFrame>& video_frame, int hints = 0);\r
+       void push(const std::shared_ptr<core::audio_buffer>& audio_samples);\r
        \r
+       void commit();\r
+\r
        bool video_ready() const;\r
        bool audio_ready() const;\r
 \r
        size_t size() const;\r
        bool empty() const;\r
 \r
+       int64_t calc_nb_frames(int64_t nb_frames) const;\r
+\r
        safe_ptr<core::basic_frame> pop();\r
 private:\r
        struct implementation;\r
        safe_ptr<implementation> impl_;\r
 };\r
 \r
-}
\ No newline at end of file
+}}
\ No newline at end of file