\r
#include <boost/noncopyable.hpp>\r
\r
+#include <agents.h>\r
#include <vector>\r
\r
struct AVPacket;\r
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