summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOneric <oneric@oneric.de>2022-03-14 20:06:39 +0100
committerJames Almer <jamrial@gmail.com>2022-03-23 09:08:49 -0300
commit66901ce16271d1e36726af53f35cb5cd88b0b773 (patch)
tree9993a07b4bee28b85af93ade07c8143c2dac51a3
parent1728ad829342cb9a1121dd066d335eccdd32e4d6 (diff)
downloadffmpeg-66901ce16271d1e36726af53f35cb5cd88b0b773.tar.gz
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. Reviewed-by: Soft Works <softworkz@hotmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r--libavfilter/vf_subtitles.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libavfilter/vf_subtitles.c b/libavfilter/vf_subtitles.c
index 84ba4c7196..989bd89334 100644
--- a/libavfilter/vf_subtitles.c
+++ b/libavfilter/vf_subtitles.c
@@ -147,9 +147,13 @@ 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_pixel_aspect(ass->renderer, (double)inlink->w / inlink->h /
((double)ass->original_w / ass->original_h));
+ ass_set_storage_size(ass->renderer, ass->original_w, ass->original_h);
+ } else
+ ass_set_storage_size(ass->renderer, inlink->w, inlink->h);
+
if (ass->shaping != -1)
ass_set_shaper(ass->renderer, ass->shaping);