]> git.sesse.net Git - casparcg/blob - core/producer/ffmpeg/video/video_decoder.h
2.0.0.2: Renamed "processor" to "mixer".
[casparcg] / core / producer / ffmpeg / video / video_decoder.h
1 #pragma once\r
2 \r
3 #include "../../../mixer/frame_mixer_device.h"\r
4 \r
5 #include <memory>\r
6 \r
7 struct AVCodecContext;\r
8 \r
9 namespace caspar { namespace core { namespace ffmpeg {\r
10         \r
11 typedef std::vector<unsigned char, tbb::cache_aligned_allocator<unsigned char>> aligned_buffer;\r
12 \r
13 class video_decoder : boost::noncopyable\r
14 {\r
15 public:\r
16         explicit video_decoder(AVCodecContext* codec_context);\r
17         safe_ptr<write_frame> execute(const aligned_buffer& video_packet);      \r
18         void initialize(const safe_ptr<frame_mixer_device>& frame_mixer);\r
19 private:\r
20         struct implementation;\r
21         std::shared_ptr<implementation> impl_;\r
22 };\r
23 \r
24 }}}