]> git.sesse.net Git - casparcg/blob - modules/ffmpeg/producer/input.h
2.0.0.2: Another ffmpeg loop fix.
[casparcg] / modules / ffmpeg / producer / input.h
1 #pragma once\r
2 \r
3 #include <common/diagnostics/graph.h>\r
4 \r
5 #include <tbb/cache_aligned_allocator.h>\r
6 \r
7 #include <memory>\r
8 #include <string>\r
9 \r
10 struct AVCodecContext;\r
11 \r
12 namespace caspar {\r
13         \r
14 typedef std::vector<unsigned char, tbb::cache_aligned_allocator<unsigned char>> aligned_buffer;\r
15 \r
16 class input : boost::noncopyable\r
17 {\r
18 public:\r
19         explicit input(const safe_ptr<diagnostics::graph>& graph, const std::wstring& filename, bool loop);\r
20         const std::shared_ptr<AVCodecContext>& get_video_codec_context() const;\r
21         const std::shared_ptr<AVCodecContext>& get_audio_codec_context() const;\r
22 \r
23         aligned_buffer get_video_packet();\r
24         aligned_buffer get_audio_packet();\r
25 \r
26         bool is_eof() const;\r
27         bool is_running() 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