5 #include <system_error>
\r
7 namespace caspar{ namespace ffmpeg{
\r
9 typedef std::shared_ptr<AVFormatContext> AVFormatContextPtr;
\r
11 class input : boost::noncopyable
\r
14 input(const frame_format_desc& format_desc);
\r
15 void load(const std::string& filename);
\r
16 const std::shared_ptr<AVCodecContext>& get_video_codec_context() const;
\r
17 const std::shared_ptr<AVCodecContext>& get_audio_codec_context() const;
\r
19 video_packet_ptr get_video_packet();
\r
20 audio_packet_ptr get_audio_packet();
\r
22 bool is_eof() const;
\r
23 void set_loop(bool value);
\r
25 struct implementation;
\r
26 std::shared_ptr<implementation> impl_;
\r
28 typedef std::shared_ptr<input> input_ptr;
\r
29 typedef std::unique_ptr<input> input_uptr;
\r