]> git.sesse.net Git - casparcg/blob - modules/ffmpeg/producer/input.h
2.0.0.2: Mayor solution reconfiguration.
[casparcg] / modules / ffmpeg / producer / input.h
1 #pragma once\r
2 \r
3 #include <common/diagnostics/graph.h>\r
4 #include <common/utility/printer.h>\r
5 \r
6 #include <tbb/cache_aligned_allocator.h>\r
7 \r
8 #include <memory>\r
9 #include <string>\r
10 \r
11 struct AVCodecContext;\r
12 \r
13 namespace caspar {\r
14         \r
15 typedef std::vector<unsigned char, tbb::cache_aligned_allocator<unsigned char>> aligned_buffer;\r
16 \r
17 class input : boost::noncopyable\r
18 {\r
19 public:\r
20         explicit input(const safe_ptr<diagnostics::graph>& graph, const std::wstring& filename, bool loop, const printer& parent_printer);\r
21         const std::shared_ptr<AVCodecContext>& get_video_codec_context() const;\r
22         const std::shared_ptr<AVCodecContext>& get_audio_codec_context() const;\r
23 \r
24         aligned_buffer get_video_packet();\r
25         aligned_buffer get_audio_packet();\r
26 \r
27         bool is_eof() const;\r
28         double fps() const;\r
29 private:\r
30         struct implementation;\r
31         std::shared_ptr<implementation> impl_;\r
32 };\r
33 \r
34         \r
35 }\r