]> git.sesse.net Git - casparcg/blob - core/processor/pixel_format.h
2.0.0.2: decklink_consumer: Ensured com init and uninit is on same thread.
[casparcg] / core / processor / pixel_format.h
1 #pragma once\r
2 \r
3 #include <vector>\r
4 \r
5 namespace caspar { namespace core {\r
6                 \r
7 struct pixel_format\r
8 {\r
9         enum type\r
10         {\r
11                 bgra,\r
12                 rgba,\r
13                 argb,\r
14                 abgr,\r
15                 ycbcr,\r
16                 ycbcra,\r
17                 count,\r
18                 invalid\r
19         };\r
20 };\r
21 \r
22 struct pixel_format_desc\r
23 {\r
24         struct plane\r
25         {\r
26                 size_t linesize;\r
27                 size_t width;\r
28                 size_t height;\r
29                 size_t size;\r
30                 size_t channels;\r
31 \r
32                 plane() \r
33                         : linesize(0)\r
34                         , width(0)\r
35                         , height(0)\r
36                         , size(0)\r
37                         , channels(0){}\r
38 \r
39                 plane(size_t width, size_t height, size_t channels)\r
40                         : linesize(width*channels)\r
41                         , width(width)\r
42                         , height(height)\r
43                         , size(width*height*channels)\r
44                         , channels(channels){}\r
45         };\r
46 \r
47         pixel_format_desc() : pix_fmt(pixel_format::invalid){}\r
48         \r
49         pixel_format::type pix_fmt;\r
50         std::vector<plane> planes;\r
51 };\r
52 \r
53 }}