diff --git a/player/command.c b/player/command.c index 809e3ed4d6..4f2eb4741d 100644 --- a/player/command.c +++ b/player/command.c @@ -4188,7 +4188,7 @@ static void recreate_overlays(struct MPContext *mpctx) struct command_ctx *cmd = mpctx->command_ctx; int overlay_next = !cmd->overlay_osd_current; struct sub_bitmaps *new = &cmd->overlay_osd[overlay_next]; - new->format = SUBBITMAP_RGBA; + new->format = SUBBITMAP_BGRA; new->change_id = 1; bool valid = false; diff --git a/sub/ass_mp.c b/sub/ass_mp.c index 45328fb920..8d0ab96e7d 100644 --- a/sub/ass_mp.c +++ b/sub/ass_mp.c @@ -285,7 +285,7 @@ static bool pack_rgba(struct mp_ass_packer *p, struct sub_bitmaps *res) struct sub_bitmaps imgs = { .change_id = res->change_id, - .format = SUBBITMAP_RGBA, + .format = SUBBITMAP_BGRA, .parts = p->rgba_imgs, .num_parts = num_bb, }; @@ -341,7 +341,7 @@ void mp_ass_packer_pack(struct mp_ass_packer *p, ASS_Image **image_lists, int num_image_lists, bool image_lists_changed, int preferred_osd_format, struct sub_bitmaps *out) { - int format = preferred_osd_format == SUBBITMAP_RGBA ? SUBBITMAP_RGBA + int format = preferred_osd_format == SUBBITMAP_BGRA ? SUBBITMAP_BGRA : SUBBITMAP_LIBASS; if (p->cached_subs_valid && !image_lists_changed && @@ -379,7 +379,7 @@ void mp_ass_packer_pack(struct mp_ass_packer *p, ASS_Image **image_lists, } bool r = false; - if (format == SUBBITMAP_RGBA) { + if (format == SUBBITMAP_BGRA) { r = pack_rgba(p, &res); } else { r = pack_libass(p, &res); diff --git a/sub/draw_bmp.c b/sub/draw_bmp.c index f7f8982051..37e57a1991 100644 --- a/sub/draw_bmp.c +++ b/sub/draw_bmp.c @@ -32,7 +32,7 @@ const bool mp_draw_sub_formats[SUBBITMAP_COUNT] = { [SUBBITMAP_LIBASS] = true, - [SUBBITMAP_RGBA] = true, + [SUBBITMAP_BGRA] = true, }; struct part { @@ -84,7 +84,7 @@ struct mp_draw_sub_cache struct mp_sws_context *alpha_to_calpha; // scaler for overlay -> calpha bool scale_in_tiles; - struct mp_sws_context *sub_scale; // scaler for SUBBITMAP_RGBA + struct mp_sws_context *sub_scale; // scaler for SUBBITMAP_BGRA struct mp_repack *overlay_to_f32; // convert video_overlay to float struct mp_image *overlay_tmp; // slice in float32 @@ -363,7 +363,7 @@ static void draw_rgba(uint8_t *dst, ptrdiff_t dst_stride, static bool render_rgba(struct mp_draw_sub_cache *p, struct part *part, struct sub_bitmaps *sb) { - assert(sb->format == SUBBITMAP_RGBA); + assert(sb->format == SUBBITMAP_BGRA); if (part->change_id != sb->change_id) { for (int n = 0; n < part->num_imgs; n++) @@ -462,7 +462,7 @@ static bool render_sb(struct mp_draw_sub_cache *p, struct sub_bitmaps *sb) case SUBBITMAP_LIBASS: render_ass(p, sb); return true; - case SUBBITMAP_RGBA: + case SUBBITMAP_BGRA: return render_rgba(p, part, sb); } diff --git a/sub/osd.c b/sub/osd.c index b06fd242a3..e422716ada 100644 --- a/sub/osd.c +++ b/sub/osd.c @@ -284,7 +284,7 @@ static struct sub_bitmaps *render_object(struct osd_state *osd, { int format = SUBBITMAP_LIBASS; if (!sub_formats[format] || osd->opts->force_rgba_osd) - format = SUBBITMAP_RGBA; + format = SUBBITMAP_BGRA; struct sub_bitmaps *res = NULL; diff --git a/sub/osd.h b/sub/osd.h index 9b680b8bf8..168f86320e 100644 --- a/sub/osd.h +++ b/sub/osd.h @@ -24,11 +24,11 @@ #include "options/m_option.h" -// NOTE: VOs must support at least SUBBITMAP_RGBA. +// NOTE: VOs must support at least SUBBITMAP_BGRA. 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, // IMGFMT_BGRA (MSB=A, LSB=B), scaled, premultiplied alpha + SUBBITMAP_BGRA, // IMGFMT_BGRA (MSB=A, LSB=B), scaled, premultiplied alpha SUBBITMAP_COUNT }; @@ -64,7 +64,7 @@ struct sub_bitmaps { // Packed representation of the bitmap data. If non-NULL, then the // parts[].bitmap pointer points into the image data here (and stride will // correspond to packed->stride[0]). - // SUBBITMAP_RGBA: IMGFMT_BGRA (exact match) + // SUBBITMAP_BGRA: IMGFMT_BGRA (exact match) // SUBBITMAP_LIBASS: IMGFMT_Y8 (not the same, but compatible layout) // Other formats have this set to NULL. struct mp_image *packed; @@ -82,7 +82,7 @@ struct sub_bitmap_list { int64_t change_id; // Bounding box for rendering. It's notable that SUBBITMAP_LIBASS images are - // always within these bounds, while SUBBITMAP_RGBA is not necessarily. + // always within these bounds, while SUBBITMAP_BGRA is not necessarily. int w, h; // Sorted by sub_bitmaps.render_index. Unused parts are not in the array, diff --git a/sub/sd_lavc.c b/sub/sd_lavc.c index e8da942a76..ce0ef11a0a 100644 --- a/sub/sd_lavc.c +++ b/sub/sd_lavc.c @@ -433,7 +433,7 @@ static struct sub_bitmaps *get_bitmaps(struct sd *sd, struct mp_osd_res d, res->packed = current->data; res->packed_w = current->bound_w; res->packed_h = current->bound_h; - res->format = SUBBITMAP_RGBA; + res->format = SUBBITMAP_BGRA; double video_par = 0; if (priv->avctx->codec_id == AV_CODEC_ID_DVD_SUBTITLE && diff --git a/video/out/gpu/osd.c b/video/out/gpu/osd.c index 63a04481d2..75538dbdf4 100644 --- a/video/out/gpu/osd.c +++ b/video/out/gpu/osd.c @@ -31,7 +31,7 @@ static const int blend_factors[SUBBITMAP_COUNT][4] = { [SUBBITMAP_LIBASS] = {RA_BLEND_SRC_ALPHA, RA_BLEND_ONE_MINUS_SRC_ALPHA, RA_BLEND_ONE, RA_BLEND_ONE_MINUS_SRC_ALPHA}, - [SUBBITMAP_RGBA] = {RA_BLEND_ONE, RA_BLEND_ONE_MINUS_SRC_ALPHA, + [SUBBITMAP_BGRA] = {RA_BLEND_ONE, RA_BLEND_ONE_MINUS_SRC_ALPHA, RA_BLEND_ONE, RA_BLEND_ONE_MINUS_SRC_ALPHA}, }; @@ -86,7 +86,7 @@ struct mpgl_osd *mpgl_osd_init(struct ra *ra, struct mp_log *log, }; ctx->fmt_table[SUBBITMAP_LIBASS] = ra_find_unorm_format(ra, 1, 1); - ctx->fmt_table[SUBBITMAP_RGBA] = ra_find_unorm_format(ra, 1, 4); + ctx->fmt_table[SUBBITMAP_BGRA] = ra_find_unorm_format(ra, 1, 4); for (int n = 0; n < MAX_OSD_PARTS; n++) ctx->parts[n] = talloc_zero(ctx, struct mpgl_osd_part); @@ -215,7 +215,7 @@ bool mpgl_osd_draw_prepare(struct mpgl_osd *ctx, int index, gl_sc_uniform_texture(sc, "osdtex", part->texture); switch (fmt) { - case SUBBITMAP_RGBA: { + case SUBBITMAP_BGRA: { GLSL(color = texture(osdtex, texcoord).bgra;) break; } diff --git a/video/out/vo_gpu_next.c b/video/out/vo_gpu_next.c index 98c673eb57..40b142bc50 100644 --- a/video/out/vo_gpu_next.c +++ b/video/out/vo_gpu_next.c @@ -215,7 +215,7 @@ static void write_overlays(struct vo *vo, struct mp_osd_res res, double pts, struct priv *p = vo->priv; static const bool subfmt_all[SUBBITMAP_COUNT] = { [SUBBITMAP_LIBASS] = true, - [SUBBITMAP_RGBA] = true, + [SUBBITMAP_BGRA] = true, }; struct sub_bitmap_list *subs = osd_render(vo->osd, res, pts, flags, subfmt_all); @@ -283,7 +283,7 @@ static void write_overlays(struct vo *vo, struct mp_osd_res res, double pts, }; switch (item->format) { - case SUBBITMAP_RGBA: + case SUBBITMAP_BGRA: ol->mode = PL_OVERLAY_NORMAL; ol->repr.alpha = PL_ALPHA_PREMULTIPLIED; break; @@ -1153,7 +1153,7 @@ static int preinit(struct vo *vo) p->rr = pl_renderer_create(p->pllog, p->gpu); p->queue = pl_queue_create(p->gpu); p->osd_fmt[SUBBITMAP_LIBASS] = pl_find_named_fmt(p->gpu, "r8"); - p->osd_fmt[SUBBITMAP_RGBA] = pl_find_named_fmt(p->gpu, "rgba8"); + p->osd_fmt[SUBBITMAP_BGRA] = pl_find_named_fmt(p->gpu, "rgba8"); char *cache_file = get_cache_file(p); if (cache_file) { diff --git a/video/out/vo_sdl.c b/video/out/vo_sdl.c index b50fc6d94c..adfcfb43d8 100644 --- a/video/out/vo_sdl.c +++ b/video/out/vo_sdl.c @@ -62,7 +62,7 @@ const struct formatmap_entry formats[] = { {SDL_PIXELFORMAT_RGBX8888, IMGFMT_RGB0, 0}, // has no alpha -> bad for OSD {SDL_PIXELFORMAT_BGR888, IMGFMT_0BGR, 0}, // BGR888 means XBGR8888 {SDL_PIXELFORMAT_BGRX8888, IMGFMT_BGR0, 0}, // has no alpha -> bad for OSD - {SDL_PIXELFORMAT_ARGB8888, IMGFMT_ARGB, 1}, // matches SUBBITMAP_RGBA + {SDL_PIXELFORMAT_ARGB8888, IMGFMT_ARGB, 1}, // matches SUBBITMAP_BGRA {SDL_PIXELFORMAT_RGBA8888, IMGFMT_RGBA, 1}, {SDL_PIXELFORMAT_ABGR8888, IMGFMT_ABGR, 1}, {SDL_PIXELFORMAT_BGRA8888, IMGFMT_BGRA, 1}, @@ -71,7 +71,7 @@ const struct formatmap_entry formats[] = { {SDL_PIXELFORMAT_RGBX8888, IMGFMT_0BGR, 0}, // has no alpha -> bad for OSD {SDL_PIXELFORMAT_BGR888, IMGFMT_RGB0, 0}, // BGR888 means XBGR8888 {SDL_PIXELFORMAT_BGRX8888, IMGFMT_0RGB, 0}, // has no alpha -> bad for OSD - {SDL_PIXELFORMAT_ARGB8888, IMGFMT_BGRA, 1}, // matches SUBBITMAP_RGBA + {SDL_PIXELFORMAT_ARGB8888, IMGFMT_BGRA, 1}, // matches SUBBITMAP_BGRA {SDL_PIXELFORMAT_RGBA8888, IMGFMT_ABGR, 1}, {SDL_PIXELFORMAT_ABGR8888, IMGFMT_RGBA, 1}, {SDL_PIXELFORMAT_BGRA8888, IMGFMT_ARGB, 1}, @@ -800,7 +800,7 @@ static void draw_osd(struct vo *vo) struct priv *vc = vo->priv; static const bool osdformats[SUBBITMAP_COUNT] = { - [SUBBITMAP_RGBA] = true, + [SUBBITMAP_BGRA] = true, }; osd_draw(vo->osd, vc->osd_res, vc->osd_pts, 0, osdformats, draw_osd_cb, vo); diff --git a/video/out/vo_vdpau.c b/video/out/vo_vdpau.c index cae28cdd84..a9e115c8fa 100644 --- a/video/out/vo_vdpau.c +++ b/video/out/vo_vdpau.c @@ -596,7 +596,7 @@ static void generate_osd_part(struct vo *vo, struct sub_bitmaps *imgs) case SUBBITMAP_LIBASS: format = VDP_RGBA_FORMAT_A8; break; - case SUBBITMAP_RGBA: + case SUBBITMAP_BGRA: format = VDP_RGBA_FORMAT_B8G8R8A8; break; default: @@ -687,7 +687,7 @@ static void draw_osd(struct vo *vo) bool formats[SUBBITMAP_COUNT] = { [SUBBITMAP_LIBASS] = vc->supports_a8, - [SUBBITMAP_RGBA] = true, + [SUBBITMAP_BGRA] = true, }; double pts = vc->current_image ? vc->current_image->pts : 0;