+ unsigned sample_rate = 48000;
+};
+
+enum PixelFormat {
+ // 8-bit 4:2:2 in the standard Cb Y Cr Y order (UYVY).
+ // This is the default.
+ PixelFormat_8BitYCbCr,
+
+ // 10-bit 4:2:2 in v210 order. Six pixels (six Y', three Cb,
+ // three Cr) are packed into four 32-bit little-endian ints
+ // in the following pattern (see e.g. the DeckLink documentation
+ // for reference):
+ //
+ // A B G R
+ // -----------------
+ // X Cr0 Y0 Cb0
+ // X Y2 Cb2 Y1
+ // X Cb4 Y3 Cr2
+ // X Y5 Cr4 Y4
+ //
+ // If you read in RGB order and ignore the unused top bits,
+ // this is essentially Cb Y Cr Y order, just like UYVY is.
+ //
+ // Note that unlike true v210, there is no guarantee about
+ // 128-byte line alignment (or lack thereof); you should check
+ // the stride member of VideoFormat.
+ PixelFormat_10BitYCbCr,
+
+ // 8-bit 4:4:4:4 BGRA (in that order). bmusb itself doesn't
+ // produce this, but it is useful to represent e.g. synthetic inputs.
+ PixelFormat_8BitBGRA,
+
+ // 8-bit 4:2:0, 4:2:2, 4:4:4 or really anything else, planar
+ // (ie., first all Y', then all Cb, then all Cr). bmusb doesn't
+ // produce this, nor does it specify a mechanism to describe
+ // the precise details of the format.
+ PixelFormat_8BitYCbCrPlanar,
+
+ // These exist only so that the type is guaranteed wide enough
+ // to contain values up to 127. CaptureInterface instances
+ // are free to use them as they see fit for private uses.
+ PixelFormat_Unused100 = 100,
+ PixelFormat_Unused127 = 127