test/repack: test draw_bmp at some uneven sizes

intended to discover bugs like f3c1dcf7a1
This commit is contained in:
sfan5 committed 2026-02-08 11:51:26 +01:00
1 parent 272404533e
commit e01165d3db
4 files changed
+47 -9

No files matched your search

+8
View File
@@ -247,3 +247,11 @@ yuvj422p = align=2:1 ov=yuva422p, ov_f=yuva422pf, v_f=yuv422pf, a=gray, ca=gr
yuvj440p = no
yuyv422 = align=2:1 ov=yuva422p, ov_f=yuva422pf, v_f=yuv422pf, a=gray, ca=gray, ca_f=grayf32
yvyu422 = align=2:1 ov=yuva422p, ov_f=yuva422pf, v_f=yuv422pf, a=gray, ca=gray, ca_f=grayf32
1920x1080= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
78x63= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
63x11= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
78x64= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
64x11= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
78x65= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
65x11= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
+8
View File
@@ -247,3 +247,11 @@ yuvj422p = align=2:1 ov=yuva422p, ov_f=yuva422pf, v_f=yuv422pf, a=gray, ca=gr
yuvj440p = no
yuyv422 = align=2:1 ov=yuva422p, ov_f=yuva422pf, v_f=yuv422pf, a=gray, ca=gray, ca_f=grayf32
yvyu422 = align=2:1 ov=yuva422p, ov_f=yuva422pf, v_f=yuv422pf, a=gray, ca=gray, ca_f=grayf32
1920x1080= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
78x63= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
63x11= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
78x64= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
64x11= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
78x65= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
65x11= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
+8
View File
@@ -286,3 +286,11 @@ yuvj422p = align=2:1 ov=yuva422p, ov_f=yuva422pf, v_f=yuv422pf, a=gray, ca=gr
yuvj440p = no
yuyv422 = align=2:1 ov=yuva422p, ov_f=yuva422pf, v_f=yuv422pf, a=gray, ca=gray, ca_f=grayf32
yvyu422 = align=2:1 ov=yuva422p, ov_f=yuva422pf, v_f=yuv422pf, a=gray, ca=gray, ca_f=grayf32
1920x1080= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
78x63= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
63x11= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
78x64= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
64x11= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
78x65= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
65x11= align=1:1 ov=unknown, ov_f=gbrap, v_f=gbrp, a=unknown, ca=unknown, ca_f=unknown
+23 -9
View File
@@ -437,21 +437,21 @@ static void check_float_repack(int imgfmt, enum pl_color_system csp,
talloc_free(from_f);
}
static bool try_draw_bmp(FILE *f, int imgfmt)
static bool try_draw_bmp(FILE *f, int imgfmt, int w, int h)
{
bool ok = false;
struct mp_image *dst = mp_image_alloc(imgfmt, 64, 64);
struct mp_image *dst = mp_image_alloc(imgfmt, w, h);
if (!dst)
goto done;
struct sub_bitmap sb = {
.bitmap = &(uint8_t[]){123},
.stride = 1,
.x = 1,
.y = 1,
.w = 1, .dw = 1,
.h = 1, .dh = 1,
.bitmap = &(uint8_t[]){0x55, 0xaa, 0x55, 0xaa},
.stride = 2,
.x = w - 2,
.y = h - 2,
.w = 2, .dw = 2,
.h = 2, .dh = 2,
.libass = { .color = 0xDEDEDEDE },
};
@@ -525,7 +525,21 @@ int main(int argc, char *argv[])
int imgfmt = imgfmts[n];
fprintf(f, "%-12s= ", mp_imgfmt_to_name(imgfmt));
try_draw_bmp(f, imgfmt);
try_draw_bmp(f, imgfmt, 64, 64);
}
fprintf(f, "\n");
{ // try it at a few sizes
const int imgfmt = IMGFMT_RGB0;
fprintf(f, "1920x1080= ");
try_draw_bmp(f, imgfmt, 1920, 1080);
for(int off = -1; off <= 1; off++) {
fprintf(f, "78x%d= ", 64+off);
try_draw_bmp(f, imgfmt, 78, 64+off);
fprintf(f, "%dx11= ", 64+off);
try_draw_bmp(f, imgfmt, 64+off, 11);
}
}
fclose(f);