diff options
author | wm4 <wm4@nowhere> | 2020-05-17 14:57:13 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2020-05-18 01:54:59 +0200 |
commit | caee8748da5c25b928f699bfa9f1ac4a5f3ae0ce (patch) | |
tree | 492d46f6ab40eee4c5b3e17b3666d21843db4166 /test/repack.c | |
parent | 00ac63c37b18ef3e7fbe5c227eb10073b264a26a (diff) | |
download | mpv-caee8748da5c25b928f699bfa9f1ac4a5f3ae0ce.tar.bz2 mpv-caee8748da5c25b928f699bfa9f1ac4a5f3ae0ce.tar.xz |
video: clean up some imgfmt related stuff
Remove the vaguely defined plane_bits and component_bits fields from
struct mp_imgfmt_desc. Add weird replacements for existing uses. Remove
the bytes[] field, replace uses with bpp[].
Fix some potential alignment issues in existing code. As a compromise,
split mp_image_pixel_ptr() into 2 functions, because I think it's a bad
idea to implicitly round, but for some callers being slightly less
strict is convenient.
This shouldn't really change anything. In fact, it's a 100% useless
change. I'm just cleaning up what I started almost 8 years ago (see
commit 00653a3eb052). With this I've decided to keep mp_imgfmt_desc,
just removing the weird parts, and keeping the saner parts.
Diffstat (limited to 'test/repack.c')
-rw-r--r-- | test/repack.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/test/repack.c b/test/repack.c index 4506233be1..00ff0cdc8b 100644 --- a/test/repack.c +++ b/test/repack.c @@ -283,8 +283,7 @@ static int try_repack(struct test_ctx *ctx, FILE *f, int imgfmt, int flags, for (int p = 0; p < srci->num_planes; p++) { uint8_t *ptr = mp_image_pixel_ptr(srci, p, sx, sy); for (int y = 0; y < e->h >> srci->fmt.ys[p]; y++) { - int w = e->w >> srci->fmt.xs[p]; - int wb = (w * srci->fmt.bpp[p] + 7) / 8; + int wb = mp_image_plane_bytes(srci, p, 0, e->w); const void *cptr = (uint8_t *)srcd[p] + wb * y; memcpy(ptr + srci->stride[p] * y, cptr, wb); } @@ -295,8 +294,7 @@ static int try_repack(struct test_ctx *ctx, FILE *f, int imgfmt, int flags, for (int p = 0; p < dsti->num_planes; p++) { uint8_t *ptr = mp_image_pixel_ptr(dsti, p, dx, dy); for (int y = 0; y < e->h >> dsti->fmt.ys[p]; y++) { - int w = e->w >> dsti->fmt.xs[p]; - int wb = (w * dsti->fmt.bpp[p] + 7) / 8; + int wb = mp_image_plane_bytes(dsti, p, 0, e->w); const void *cptr = (uint8_t *)dstd[p] + wb * y; assert_memcmp(ptr + dsti->stride[p] * y, cptr, wb); } |