]> git.sesse.net Git - casparcg/blob - modules/ffmpeg/producer/packet.h
2e2e08346adacea224c2875355e51fae882ac55c
[casparcg] / modules / ffmpeg / producer / packet.h
1 #pragma once\r
2 \r
3 #include <vector>\r
4 #include <tbb/cache_aligned_allocator.h>\r
5 \r
6 namespace caspar {\r
7         \r
8 enum packet_type\r
9 {\r
10         data_packet,\r
11         flush_packet,\r
12         empty_packet\r
13 };\r
14 \r
15 struct packet\r
16 {\r
17         typedef std::vector<unsigned char, tbb::cache_aligned_allocator<unsigned char>> aligned_buffer;\r
18 \r
19         packet_type type;\r
20         std::shared_ptr<aligned_buffer> data;\r
21 \r
22         packet(packet_type t = empty_packet) \r
23                 : type(t){}\r
24 \r
25         template<typename T>\r
26         packet(T first, T last) \r
27                 : type(data_packet)\r
28                 , data(new aligned_buffer(first, last)){}\r
29 };\r
30 \r
31 }