diff options
author | James Almer <jamrial@gmail.com> | 2020-07-25 00:10:38 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2020-07-30 19:33:09 -0300 |
commit | 134a48a88023a02f941afdd7d21c34897ade4d08 (patch) | |
tree | b3b4089e8e02cc813acbdfd33326789c443d6bcc /libavutil/tests | |
parent | be3c10d5517824318254a99007c7b1c07559c264 (diff) | |
download | ffmpeg-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.c | 38 |
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; } |