]> git.sesse.net Git - casparcg/blob - core/producer/ffmpeg/input.h
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
[casparcg] / core / producer / ffmpeg / input.h
1 #pragma once\r
2 \r
3 #include "packet.h"\r
4 \r
5 #include <system_error>\r
6 \r
7 namespace caspar{ namespace ffmpeg{     \r
8         \r
9 typedef std::shared_ptr<AVFormatContext> AVFormatContextPtr;\r
10 \r
11 class input : boost::noncopyable\r
12 {\r
13 public:\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
18 \r
19         video_packet_ptr get_video_packet();\r
20         audio_packet_ptr get_audio_packet();\r
21 \r
22         bool is_eof() const;\r
23         void set_loop(bool value);\r
24 private:\r
25         struct implementation;\r
26         std::shared_ptr<implementation> impl_;\r
27 };\r
28 typedef std::shared_ptr<input> input_ptr;\r
29 typedef std::unique_ptr<input> input_uptr;\r
30 \r
31         }\r
32 }\r