X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=bmusb%2Fbmusb.h;h=ed106a688e842d99ac631c4539b676a3b19d27d5;hb=bc7e5f5b6d908914c023bda51f840c3304c9c3cd;hp=6aabd51fcc39f68c1b0780e24d5451319083b317;hpb=c7466ef67f76efdd9e8a151e8d0f38281199c2a9;p=bmusb diff --git a/bmusb/bmusb.h b/bmusb/bmusb.h index 6aabd51..ed106a6 100644 --- a/bmusb/bmusb.h +++ b/bmusb/bmusb.h @@ -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.