video: remove RGB32/BGR32 aliases

They are sort of confusing, and they hide the fact that they have an
alpha component. Using the actual formats directly is no problem, sicne
these were useful only for big endian systems, something we can't test
anyway.
This commit is contained in:
wm4 2020-05-11 19:37:16 +02:00
parent b5284a6829
commit 6db890ebab
5 changed files with 9 additions and 18 deletions

View File

@ -408,13 +408,13 @@ static bool render_rgba(struct mp_draw_sub_cache *p, struct part *part,
if (!scaled) {
struct mp_image src_img = {0};
mp_image_setfmt(&src_img, IMGFMT_BGR32);
mp_image_setfmt(&src_img, IMGFMT_BGRA);
mp_image_set_size(&src_img, sw, sh);
src_img.planes[0] = s_ptr;
src_img.stride[0] = s_stride;
src_img.params.alpha = MP_ALPHA_PREMUL;
scaled = mp_image_alloc(IMGFMT_BGR32, dw, dh);
scaled = mp_image_alloc(IMGFMT_BGRA, dw, dh);
if (!scaled)
return false;
part->imgs[i] = talloc_steal(p, scaled);
@ -457,7 +457,7 @@ static bool render_sb(struct mp_draw_sub_cache *p, struct sub_bitmaps *sb)
static void clear_rgba_overlay(struct mp_draw_sub_cache *p)
{
assert(p->rgba_overlay->imgfmt == IMGFMT_BGR32);
assert(p->rgba_overlay->imgfmt == IMGFMT_BGRA);
for (int y = 0; y < p->rgba_overlay->h; y++) {
uint32_t *px = mp_image_pixel_ptr(p->rgba_overlay, 0, 0, y);
@ -519,7 +519,7 @@ static bool reinit(struct mp_draw_sub_cache *p, struct mp_image_params *params)
int overlay_fmt = 0;
if (params->color.space == MP_CSP_RGB && vfdesc.num_planes >= 3) {
// No point in doing anything fancy.
overlay_fmt = IMGFMT_BGR32;
overlay_fmt = IMGFMT_BGRA;
p->scale_in_tiles = false;
} else {
struct mp_regular_imgfmt odesc = vfdesc;
@ -586,7 +586,7 @@ static bool reinit(struct mp_draw_sub_cache *p, struct mp_image_params *params)
h = MP_ALIGN_UP(h, TILE_H);
}
p->rgba_overlay = talloc_steal(p, mp_image_alloc(IMGFMT_BGR32, w, h));
p->rgba_overlay = talloc_steal(p, mp_image_alloc(IMGFMT_BGRA, w, h));
p->overlay_tmp = talloc_steal(p, mp_image_alloc(render_fmt, SLICE_W, slice_h));
p->video_tmp = talloc_steal(p, mp_image_alloc(vid_f32_fmt, SLICE_W, slice_h));
if (!p->rgba_overlay || !p->overlay_tmp || !p->video_tmp)

View File

@ -28,7 +28,7 @@
enum sub_bitmap_format {
SUBBITMAP_EMPTY = 0,// no bitmaps; always has num_parts==0
SUBBITMAP_LIBASS, // A8, with a per-surface blend color (libass.color)
SUBBITMAP_RGBA, // B8G8R8A8 (MSB=A, LSB=B), scaled, premultiplied alpha
SUBBITMAP_RGBA, // IMGFMT_BGRA (MSB=A, LSB=B), scaled, premultiplied alpha
SUBBITMAP_COUNT
};

View File

@ -251,15 +251,6 @@ enum mp_imgfmt {
IMGFMT_AVPIXFMT_END = IMGFMT_AVPIXFMT_START + 500,
IMGFMT_END,
// Redundant format aliases for native endian access
// The IMGFMT_RGB32 and IMGFMT_BGR32 formats provide bit-shift access to
// normally byte-accessed formats:
// IMGFMT_RGB32 = r | (g << 8) | (b << 16) | (a << 24)
// IMGFMT_BGR32 = b | (g << 8) | (r << 16) | (a << 24)
IMGFMT_RGB32 = MP_SELECT_LE_BE(IMGFMT_RGBA, IMGFMT_ABGR),
IMGFMT_BGR32 = MP_SELECT_LE_BE(IMGFMT_BGRA, IMGFMT_ARGB),
};
static inline bool IMGFMT_IS_RGB(int fmt)

View File

@ -211,8 +211,8 @@ static const struct fmt_entry fmt_table[] = {
// packed YUV
{IMGFMT_UYVY, D3DFMT_UYVY},
// packed RGB
{IMGFMT_BGR32, D3DFMT_X8R8G8B8},
{IMGFMT_RGB32, D3DFMT_X8B8G8R8},
{IMGFMT_BGR0, D3DFMT_X8R8G8B8},
{IMGFMT_RGB0, D3DFMT_X8B8G8R8},
{IMGFMT_BGR24, D3DFMT_R8G8B8}, //untested
{IMGFMT_RGB565, D3DFMT_R5G6B5},
// grayscale (can be considered both packed and planar)

View File

@ -456,7 +456,7 @@ bool mp_vdpau_get_rgb_format(int imgfmt, VdpRGBAFormat *out_rgba_format)
VdpRGBAFormat format = (VdpRGBAFormat)-1;
switch (imgfmt) {
case IMGFMT_BGR32:
case IMGFMT_BGRA:
format = VDP_RGBA_FORMAT_B8G8R8A8; break;
default:
return false;