sub: pass preferred OSD format to subtitle renderers

The intention is to let mp_ass_packer_pack() produce different output
for the RGBA and LIBASS formats. VOs (or whatever generates the OSD)
currently do not signal a preferred format, and this mechanism just
exists to switch between RGBA and LIBASS formats correctly, preferring
LIBASS if the VO supports it.
This commit is contained in:
wm4
2016-07-03 18:33:28 +02:00
parent 315e2e3da8
commit f110552898
9 changed files with 22 additions and 18 deletions

View File

@@ -420,8 +420,8 @@ static long long find_timestamp(struct sd *sd, double pts)
#undef END
static void get_bitmaps(struct sd *sd, struct mp_osd_res dim, double pts,
struct sub_bitmaps *res)
static void get_bitmaps(struct sd *sd, struct mp_osd_res dim, int format,
double pts, struct sub_bitmaps *res)
{
struct sd_ass_priv *ctx = sd->priv;
struct MPOpts *opts = sd->opts;
@@ -464,7 +464,7 @@ static void get_bitmaps(struct sd *sd, struct mp_osd_res dim, double pts,
int changed;
ASS_Image *imgs = ass_render_frame(renderer, track, ts, &changed);
mp_ass_packer_pack(ctx->packer, &imgs, 1, changed, SUBBITMAP_LIBASS, res);
mp_ass_packer_pack(ctx->packer, &imgs, 1, changed, format, res);
if (!converted && res->num_parts > 0) {
// mangle_colors() modifies the color field, so copy the thing.