]> git.sesse.net Git - casparcg/blobdiff - core/video_format.h
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
[casparcg] / core / video_format.h
index 54409a00f7fe2faf0fcbd5cd5dd28a8c576f0371..fdbe1bd3ee49fff95159360fd029fa9a0d5eaaaa 100644 (file)
@@ -45,21 +45,36 @@ struct video_format
                x1080p2500,\r
                x1080p2997,\r
                x1080p3000,\r
+               x1080p5000,\r
                invalid,\r
                count\r
        };\r
 };\r
 \r
-struct video_mode \r
+struct field_mode \r
 { \r
        enum type\r
        {\r
-               progressive,\r
-               lower,\r
-               upper,\r
-               count,\r
-               invalid\r
+               empty           = 0,\r
+               lower           = 1,\r
+               upper           = 2,\r
+               progressive = 3 // NOTE: progressive == lower | upper;\r
        };\r
+\r
+       static std::wstring print(field_mode::type value)\r
+       {\r
+               switch(value)\r
+               {\r
+                       case progressive:\r
+                               return L"progressive"; \r
+                       case lower:\r
+                               return L"lower";\r
+                       case upper:\r
+                               return L"upper";\r
+                       default:\r
+                               return L"invalid";\r
+               }\r
+       }\r
 };\r
 \r
 struct video_format_desc\r
@@ -68,12 +83,21 @@ struct video_format_desc
 \r
        size_t                                  width;          // output frame width\r
        size_t                                  height;         // output frame height\r
-       video_mode::type                mode;           // progressive, interlaced upper field first, interlaced lower field first\r
+       size_t                                  square_width;\r
+       size_t                                  square_height;\r
+       field_mode::type                field_mode;     // progressive, interlaced upper field first, interlaced lower field first\r
        double                                  fps;            // actual framerate, e.g. i50 = 25 fps, p50 = 50 fps\r
-       double                                  interval;       // time between frames\r
+       size_t                                  time_scale;\r
+       size_t                                  duration;\r
+       size_t                                  field_count;\r
        size_t                                  size;           // output frame size in bytes \r
        std::wstring                    name;           // name of output format\r
 \r
+       size_t                                  audio_bytes_per_sample;\r
+       size_t                                  audio_sample_rate;\r
+       size_t                                  audio_channels;\r
+       size_t                                  audio_samples_per_frame;\r
+\r
        static const video_format_desc& get(video_format::type format);\r
        static const video_format_desc& get(const std::wstring& name);\r
 };\r