@@ -303,6 +303,7 @@ struct video_desc get_video_desc_from_string(const char *string)
303303 // / NTSC with 6 lines overscan (486 lines), compatible with BMD
304304 {" ntos" , { 720 , 486 , UYVY, 29.97 , INTERLACED_MERGED, 1 }},
305305 {" pal" , { 720 , 576 , UYVY, 25 , INTERLACED_MERGED, 1 }},
306+ {" sd" , { 720 , 540 , UYVY, 25 , PROGRESSIVE, 1 }},
306307 {" cga" , { 320 , 200 , UYVY, 60 , PROGRESSIVE, 1 }},
307308 {" vga" , { 640 , 480 , UYVY, 60 , PROGRESSIVE, 1 }},
308309 {" svga" , { 800 , 600 , UYVY, 60 , PROGRESSIVE, 1 }},
@@ -321,14 +322,25 @@ struct video_desc get_video_desc_from_string(const char *string)
321322 {" dci" , { 2048 , 1080 , UYVY, 23.98 , PROGRESSIVE, 1 }},
322323 {" dci4" , { 4096 , 2160 , UYVY, 23.98 , PROGRESSIVE, 1 }},
323324 };
324- if (strcasecmp (string, " help" ) == 0 ) {
325- printf (" Recognized video formats: " );
325+ if (strcasecmp (string, " help" ) == 0 ||
326+ strcasecmp (string, " fullhelp" ) == 0 ) {
327+ const bool full = strcasecmp (string, " fullhelp" ) == 0 ;
328+ printf (" Recognized video formats: %s" , full ? " \n " : " " );
326329 for (unsigned i = 0 ; i < sizeof map / sizeof map[0 ]; ++i) {
327- color_printf (TBOLD (" %s" ) " , " , map[i].name );
330+ if (full) {
331+ color_printf (" - " TBOLD (" %s" ) " : %s\n " ,
332+ map[i].name ,
333+ video_desc_to_string (map[i].desc ));
334+ } else {
335+ color_printf (TBOLD (" %s" ) " , " , map[i].name );
336+ }
337+ }
338+ if (full) {
339+ color_printf (" Further formats with (optional) direct "
340+ " FPS spec: " );
328341 }
329342 color_printf (TBOLD (" {Hp,Hi,hp,2d,4k,4d,1080i,1080p,720p,2160p}{23,24,25,29,30,59,60}" ) " \n " );
330343 return {};
331-
332344 }
333345 for (unsigned i = 0 ; i < sizeof map / sizeof map[0 ]; ++i) {
334346 if (strcasecmp (map[i].name , string) == 0 || (strlen (string) == 4 && string[3 ] == ' ' && strncasecmp (map[i].name , string, 3 ) == 0 )) {
0 commit comments