]> git.sesse.net Git - casparcg/blobdiff - modules/ffmpeg/producer/audio/audio_decoder.h
2.0.1: ffmpeg: Replaced TBB implementation with better Concurrency Runtime based...
[casparcg] / modules / ffmpeg / producer / audio / audio_decoder.h
index e446bd20f882e84e60c3b9fb00f7c9aea342eddf..b70a307b30d519875ed8c4620cd3221d144de64a 100644 (file)
@@ -25,6 +25,7 @@
 \r
 #include <boost/noncopyable.hpp>\r
 \r
+#include <agents.h>\r
 #include <vector>\r
 \r
 struct AVPacket;\r
@@ -43,15 +44,21 @@ namespace ffmpeg {
 class audio_decoder : boost::noncopyable\r
 {\r
 public:\r
-       explicit audio_decoder(const safe_ptr<AVFormatContext>& context, const core::video_format_desc& format_desc);\r
-       \r
-       void push(const std::shared_ptr<AVPacket>& packet);\r
-       bool ready() const;\r
-       std::vector<std::shared_ptr<core::audio_buffer>> poll();\r
 \r
+       typedef Concurrency::ISource<bool>                                                                      token_t;\r
+       typedef Concurrency::ISource<std::shared_ptr<AVPacket>>                         source_t;\r
+       typedef Concurrency::ITarget<std::shared_ptr<core::audio_buffer>>       target_t;\r
+\r
+       explicit audio_decoder(token_t& active_token,\r
+                                                  source_t& source,\r
+                                                  target_t& target,\r
+                                                  const safe_ptr<AVFormatContext>& context, \r
+                                                  const core::video_format_desc& format_desc);\r
+       \r
        int64_t nb_frames() const;\r
 \r
 private:\r
+       \r
        struct implementation;\r
        safe_ptr<implementation> impl_;\r
 };\r