aboutsummaryrefslogtreecommitdiffstats
path: root/libavutil/tests
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2020-07-25 00:10:38 -0300
committerJames Almer <jamrial@gmail.com>2020-07-30 19:33:09 -0300
commit134a48a88023a02f941afdd7d21c34897ade4d08 (patch)
treeb3b4089e8e02cc813acbdfd33326789c443d6bcc /libavutil/tests
parentbe3c10d5517824318254a99007c7b1c07559c264 (diff)
downloadffmpeg-134a48a88023a02f941afdd7d21c34897ade4d08.tar.gz
tests/imgutils: test the output of av_image_fill_* functions
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavutil/tests')
-rw-r--r--libavutil/tests/imgutils.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/libavutil/tests/imgutils.c b/libavutil/tests/imgutils.c
index 571045c857..748bd6c9d2 100644
--- a/libavutil/tests/imgutils.c
+++ b/libavutil/tests/imgutils.c
@@ -22,6 +22,7 @@
int main(void)
{
+ const AVPixFmtDescriptor *desc = NULL;
int64_t x, y;
for (y = -1; y<UINT_MAX; y+= y/2 + 1) {
@@ -31,6 +32,43 @@ int main(void)
}
printf("\n");
}
+ printf("\n");
+
+ while (desc = av_pix_fmt_desc_next(desc)) {
+ uint8_t *data[4];
+ size_t sizes[4];
+ ptrdiff_t linesizes1[4], offsets[3] = { 0 };
+ int i, total_size, w = 64, h = 48, linesizes[4];
+ enum AVPixelFormat pix_fmt = av_pix_fmt_desc_get_id(desc);
+
+ if (av_image_fill_linesizes(linesizes, pix_fmt, w) < 0)
+ continue;
+ for (i = 0; i < 4; i++)
+ linesizes1[i] = linesizes[i];
+ if (av_image_fill_plane_sizes(sizes, pix_fmt, h, linesizes1) < 0)
+ continue;
+ total_size = av_image_fill_pointers(data, pix_fmt, h, (void *)1, linesizes);
+ if (total_size < 0)
+ continue;
+ printf("%-16s", desc->name);
+ for (i = 0; i < 4 && data[i]; i++);
+ printf("planes: %d", i);
+ // Test the output of av_image_fill_linesizes()
+ printf(", linesizes:");
+ for (i = 0; i < 4; i++)
+ printf(" %3d", linesizes[i]);
+ // Test the output of av_image_fill_plane_sizes()
+ printf(", plane_sizes:");
+ for (i = 0; i < 4; i++)
+ printf(" %5"SIZE_SPECIFIER, sizes[i]);
+ // Test the output of av_image_fill_pointers()
+ for (i = 0; i < 3 && data[i + 1]; i++)
+ offsets[i] = data[i + 1] - data[i];
+ printf(", plane_offsets:");
+ for (i = 0; i < 3; i++)
+ printf(" %5"PTRDIFF_SPECIFIER, offsets[i]);
+ printf(", total_size: %d\n", total_size);
+ }
return 0;
}