--- /dev/null
+#pragma once\r
+\r
+#include <vector>\r
+\r
+namespace caspar { namespace core {\r
+ \r
+struct pixel_format\r
+{\r
+ enum type\r
+ {\r
+ bgra,\r
+ rgba,\r
+ argb,\r
+ abgr,\r
+ ycbcr,\r
+ ycbcra,\r
+ count,\r
+ invalid\r
+ };\r
+};\r
+\r
+struct pixel_format_desc\r
+{\r
+ struct plane\r
+ {\r
+ plane() : linesize(0), width(0), height(0), size(0), channels(0){}\r
+ plane(size_t width, size_t height, size_t channels)\r
+ : linesize(width*channels), width(width), height(height), size(width*height*channels), channels(channels){}\r
+ size_t linesize;\r
+ size_t width;\r
+ size_t height;\r
+ size_t size;\r
+ size_t channels;\r
+ };\r
+\r
+ pixel_format_desc() : pix_fmt(pixel_format::invalid){}\r
+ \r
+ pixel_format::type pix_fmt;\r
+ std::vector<plane> planes;\r
+};\r
+\r
+}}
\ No newline at end of file