X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=bmusb.cpp;h=8787f8b51ce4dfa017dd742ef5baa9babb9053b9;hb=e7d3ce1cdb423c5ba33f098f97383f099055d621;hp=fa409c0d431882443d54b4ab7de66831c7117b4e;hpb=9ada4d5213c6935c3dc2fdeb34938a375f817428;p=bmusb diff --git a/bmusb.cpp b/bmusb.cpp index fa409c0..8787f8b 100644 --- a/bmusb.cpp +++ b/bmusb.cpp @@ -1153,24 +1153,26 @@ bool decode_video_format(uint16_t video_format, unsigned *width, unsigned *heigh // NTSC (480i59.94, I suppose). A special case, see below. if (video_format == 0xe901 || video_format == 0xe9c1 || video_format == 0xe801) { - *width = 640; + *width = 720; *height = 480; + *extra_lines_top = 17; + *extra_lines_bottom = 28; *frame_rate_nom = 30000; *frame_rate_den = 1001; - *second_field_start = *height / 2; // TODO + *second_field_start = 280; *interlaced = true; return true; } // PAL (576i50, I suppose). A special case, see below. - if (video_format == 0xe909 || video_format == 0xe9c9) { + if (video_format == 0xe909 || video_format == 0xe9c9 || video_format == 0xe809 || video_format == 0xebe9) { *width = 720; *height = 576; *extra_lines_top = 22; *extra_lines_bottom = 27; *frame_rate_nom = 25; *frame_rate_den = 1; - *second_field_start = 334; + *second_field_start = 335; *interlaced = true; return true; } @@ -1181,13 +1183,14 @@ bool decode_video_format(uint16_t video_format, unsigned *width, unsigned *heigh // usually it doesn't mean anything. uint16_t normalized_video_format = video_format & ~0xe808; constexpr VideoFormatEntry entries[] = { + { 0x0011, 720, 576, 0, 44, 5, 50, 1, false }, // 576p50 (5:4) { 0x0143, 1280, 720, 0, 25, 5, 50, 1, false }, // 720p50. { 0x0103, 1280, 720, 0, 25, 5, 60, 1, false }, // 720p60. { 0x0121, 1280, 720, 0, 25, 5, 60000, 1001, false }, // 720p59.94. { 0x01c3, 1920, 1080, 0, 0, 0, 30, 1, false }, // 1080p30. - { 0x0003, 1920, 1080, 582, 20, 25, 30, 1, true }, // 1080i60. + { 0x0003, 1920, 1080, 583, 20, 25, 30, 1, true }, // 1080i60. { 0x01e1, 1920, 1080, 0, 0, 0, 30000, 1001, false }, // 1080p29.97. - { 0x0021, 1920, 1080, 582, 20, 25, 30000, 1001, true }, // 1080i59.94. + { 0x0021, 1920, 1080, 583, 20, 25, 30000, 1001, true }, // 1080i59.94. { 0x0063, 1920, 1080, 0, 0, 0, 25, 1, false }, // 1080p25. { 0x0043, 1920, 1080, 0, 0, 0, 25, 1, true }, // 1080p50. { 0x008e, 1920, 1080, 0, 0, 0, 24, 1, false }, // 1080p24.