avfilter/vf_subtitles: pass storage size to libass

Due to a quirk of the ASS format some tags depend on the exact storage
resolution of the video, so tell libass via ass_set_storage_size.
This commit is contained in:
Oneric 2022-03-23 20:43:54 +01:00 committed by Michael Niedermayer
parent 86c204addf
commit 1c73b96c21

View File

@ -145,9 +145,16 @@ static int config_input(AVFilterLink *inlink)
ff_draw_init(&ass->draw, inlink->format, ass->alpha ? FF_DRAW_PROCESS_ALPHA : 0);
ass_set_frame_size (ass->renderer, inlink->w, inlink->h);
if (ass->original_w && ass->original_h)
if (ass->original_w && ass->original_h) {
ass_set_aspect_ratio(ass->renderer, (double)inlink->w / inlink->h,
(double)ass->original_w / ass->original_h);
#if LIBASS_VERSION > 0x01010000
ass_set_storage_size(ass->renderer, ass->original_w, ass->original_h);
} else {
ass_set_storage_size(ass->renderer, inlink->w, inlink->h);
#endif
}
if (ass->shaping != -1)
ass_set_shaper(ass->renderer, ass->shaping);