]> git.sesse.net Git - casparcg/blobdiff - core/video_format.h
2.0. audio: Audio pipeline is now in 32 bit.
[casparcg] / core / video_format.h
index 2c7ba699ababac0cdfa910f48b0a8339438579dc..58634a827ba742f361900a434051e3ab9fde9418 100644 (file)
@@ -51,16 +51,30 @@ struct video_format
        };\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
@@ -69,7 +83,9 @@ 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
        size_t                                  time_scale;\r
        size_t                                  duration;\r
@@ -77,6 +93,10 @@ struct video_format_desc
        size_t                                  size;           // output frame size in bytes \r
        std::wstring                    name;           // name of output format\r
 \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