[vlc-commits] [Git][videolan/vlc][master] codec: libass: pass storage size to libass

Jean-Baptiste Kempf (@jbk) gitlab at videolan.org
Thu Apr 7 20:37:16 UTC 2022



Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC


Commits:
2608eb5c by Oneric at 2022-04-07T20:22:24+00:00
codec: libass: pass storage size to libass

Due to a quirk in the ASS format some tags do depend on the exact
storage size of the video not just the pixel aspect ratio, so tell
libass via ass_set_storage_size to achieve correct rendering.

For ASS, storage size refers to the size the video is encoded in (stored
at) with codec-level crop applied; further transforms like e.g.
anamorphic de-squeezing or container-level crop must not be applied.
This matches the used fmt_src values despite them being named
visible_{width,height} and the existing PAR calculation already relies
on this.

Fixes https://code.videolan.org/videolan/vlc/-/issues/26634

- - - - -


1 changed file:

- modules/codec/libass.c


Changes:

=====================================
modules/codec/libass.c
=====================================
@@ -436,6 +436,9 @@ static int SubpictureValidate( subpicture_t *p_subpic,
     if( b_fmt_src || b_fmt_dst )
     {
         ass_set_frame_size( p_sys->p_renderer, fmt.i_visible_width, fmt.i_visible_height );
+#if LIBASS_VERSION > 0x01010000
+        ass_set_storage_size( p_sys->p_renderer, p_fmt_src->i_visible_width, p_fmt_src->i_visible_height );
+#endif
         const double src_ratio = (double)p_fmt_src->i_visible_width / p_fmt_src->i_visible_height;
         const double dst_ratio = (double)p_fmt_dst->i_visible_width / p_fmt_dst->i_visible_height;
         ass_set_aspect_ratio( p_sys->p_renderer, dst_ratio / src_ratio, 1 );



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/2608eb5c82d82c209126d5d1af0dcfe48b6b9cee

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/2608eb5c82d82c209126d5d1af0dcfe48b6b9cee
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list