]> git.sesse.net Git - bmusb/blobdiff - bmusb/bmusb.h
Add a stride field to VideoFormat.
[bmusb] / bmusb / bmusb.h
index 6aabd51fcc39f68c1b0780e24d5451319083b317..ed106a688e842d99ac631c4539b676a3b19d27d5 100644 (file)
@@ -102,14 +102,17 @@ struct VideoMode {
 
 // Represents the format of an actual frame coming in.
 // Note: Frame rate is _frame_ rate, not field rate. So 1080i60 gets 30/1, _not_ 60/1.
-// "second_field_start" is only valid for interlaced modes; it signifies
-// how many lines from the very top of the frame there are before the second field
+// "second_field_start" is only valid for interlaced modes. If it is 1,
+// the two fields are actually stored interlaced (ie., every other line).
+// If not, each field is stored consecutively, and it signifies how many lines
+// from the very top of the frame there are before the second field
 // starts (so it will always be >= height/2 + extra_lines_top).
 struct VideoFormat {
        uint16_t id = 0;  // For debugging/logging only.
        unsigned width = 0, height = 0, second_field_start = 0;
        unsigned extra_lines_top = 0, extra_lines_bottom = 0;
        unsigned frame_rate_nom = 0, frame_rate_den = 0;
+       unsigned stride = 0;  // In bytes, assuming no interleaving.
        bool interlaced = false;
        bool has_signal = false;
        bool is_connected = true;  // If false, then has_signal makes no sense.