]> git.sesse.net Git - bmusb/blobdiff - bmusb.cpp
Add a stride field to VideoFormat.
[bmusb] / bmusb.cpp
index 0c3fb551570188ba74e674d9e181f5ca3514b66b..4d524422f944d4a8957a1046e4489a997a571f46 100644 (file)
--- a/bmusb.cpp
+++ b/bmusb.cpp
@@ -112,6 +112,7 @@ bool decode_video_format(uint16_t video_format, VideoFormat *decoded_video_forma
                // It's a strange thing, but what can you do.
                decoded_video_format->width = 720;
                decoded_video_format->height = 525;
+               decoded_video_format->stride = 720 * 2;
                decoded_video_format->extra_lines_top = 0;
                decoded_video_format->extra_lines_bottom = 0;
                decoded_video_format->frame_rate_nom = 3013;
@@ -124,6 +125,7 @@ bool decode_video_format(uint16_t video_format, VideoFormat *decoded_video_forma
                        video_format);
                decoded_video_format->width = 0;
                decoded_video_format->height = 0;
+               decoded_video_format->stride = 0;
                decoded_video_format->extra_lines_top = 0;
                decoded_video_format->extra_lines_bottom = 0;
                decoded_video_format->frame_rate_nom = 60;
@@ -138,6 +140,7 @@ bool decode_video_format(uint16_t video_format, VideoFormat *decoded_video_forma
        if (video_format == 0xe901 || video_format == 0xe9c1 || video_format == 0xe801) {
                decoded_video_format->width = 720;
                decoded_video_format->height = 480;
+               decoded_video_format->stride = 720 * 2;
                decoded_video_format->extra_lines_top = 17;
                decoded_video_format->extra_lines_bottom = 28;
                decoded_video_format->frame_rate_nom = 30000;
@@ -151,6 +154,7 @@ bool decode_video_format(uint16_t video_format, VideoFormat *decoded_video_forma
        if (video_format == 0xe909 || video_format == 0xe9c9 || video_format == 0xe809 || video_format == 0xebe9 || video_format == 0xebe1) {
                decoded_video_format->width = 720;
                decoded_video_format->height = 576;
+               decoded_video_format->stride = 720 * 2;
                decoded_video_format->extra_lines_top = 22;
                decoded_video_format->extra_lines_bottom = 27;
                decoded_video_format->frame_rate_nom = 25;
@@ -188,6 +192,7 @@ bool decode_video_format(uint16_t video_format, VideoFormat *decoded_video_forma
                if (normalized_video_format == entry.normalized_video_format) {
                        decoded_video_format->width = entry.width;
                        decoded_video_format->height = entry.height;
+                       decoded_video_format->stride = entry.width * 2;
                        decoded_video_format->second_field_start = entry.second_field_start;
                        decoded_video_format->extra_lines_top = entry.extra_lines_top;
                        decoded_video_format->extra_lines_bottom = entry.extra_lines_bottom;
@@ -201,6 +206,7 @@ bool decode_video_format(uint16_t video_format, VideoFormat *decoded_video_forma
        printf("Unknown video format 0x%04x (normalized 0x%04x). Assuming 720p60.\n", video_format, normalized_video_format);
        decoded_video_format->width = 1280;
        decoded_video_format->height = 720;
+       decoded_video_format->stride = 1280 * 2;
        decoded_video_format->frame_rate_nom = 60;
        decoded_video_format->frame_rate_den = 1;
        return false;