[FFmpeg-devel] [PATCH 3/3] avcodec/ass: specify a permissive encoding

Oneric oneric at oneric.de
Sun Nov 13 21:07:04 EET 2022


The Encoding field (and the \fe tag) allows to limit font selection to
only those fonts declaring support for the specified codepage in their
OS/2's table "Code Page Character Range" field.
Particularly, Encoding=0 means only font's declaring support for "ANSI",
or rather "Latin (Western European)", are allowed to be selected.
Specifying Encoding=1 allows all fonts to be considered.
We do not want to limit font selection, so specify Encoding=1.

NB: at the time of writing libass only partially supports this field,
thus hiding the issue in any libass-based renderer. A VSFilter-based
DirectShow filter or XySubFilter will reveal the issue when a font not
declaring support for latin characters is specified in a style.
---
 libavcodec/ass.c                 |   2 +-
 tests/ref/fate/sub-aqtitle       | Bin 3233 -> 3233 bytes
 tests/ref/fate/sub-cc            | Bin 859 -> 859 bytes
 tests/ref/fate/sub-cc-realtime   | Bin 1544 -> 1544 bytes
 tests/ref/fate/sub-cc-scte20     | Bin 965 -> 965 bytes
 tests/ref/fate/sub-charenc       | Bin 6028 -> 6028 bytes
 tests/ref/fate/sub-jacosub       | Bin 1803 -> 1803 bytes
 tests/ref/fate/sub-microdvd      | Bin 1395 -> 1395 bytes
 tests/ref/fate/sub-movtext       | Bin 803 -> 803 bytes
 tests/ref/fate/sub-mpl2          | Bin 890 -> 890 bytes
 tests/ref/fate/sub-mpsub         | Bin 2537 -> 2537 bytes
 tests/ref/fate/sub-mpsub-frames  | Bin 756 -> 756 bytes
 tests/ref/fate/sub-pjs           | Bin 880 -> 880 bytes
 tests/ref/fate/sub-realtext      | Bin 959 -> 959 bytes
 tests/ref/fate/sub-sami          | Bin 2001 -> 2001 bytes
 tests/ref/fate/sub-sami2         | Bin 9990 -> 9990 bytes
 tests/ref/fate/sub-scc           |   2 +-
 tests/ref/fate/sub-srt           | Bin 6321 -> 6321 bytes
 tests/ref/fate/sub-srt-badsyntax | Bin 1581 -> 1581 bytes
 tests/ref/fate/sub-stl           | Bin 2261 -> 2261 bytes
 tests/ref/fate/sub-subviewer     | Bin 800 -> 800 bytes
 tests/ref/fate/sub-subviewer1    | Bin 1514 -> 1514 bytes
 tests/ref/fate/sub-vplayer       | Bin 762 -> 762 bytes
 tests/ref/fate/sub-webvtt        | Bin 2005 -> 2005 bytes
 tests/ref/fate/sub-webvtt2       | Bin 1668 -> 1668 bytes
 25 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/ass.c b/libavcodec/ass.c
index d2ea4c62c3..5058dc8337 100644
--- a/libavcodec/ass.c
+++ b/libavcodec/ass.c
@@ -65,7 +65,7 @@ int ff_ass_subtitle_header_full(AVCodecContext *avctx,
              "0,0,"                 /* Spacing, Angle */
              "%d,1,0,"              /* BorderStyle, Outline, Shadow */
              "%d,10,10,10,"         /* Alignment, Margin[LRV] */
-             "0\r\n"                /* Encoding */
+             "1\r\n"                /* Encoding */
 
              "\r\n"
              "[Events]\r\n"
diff --git a/tests/ref/fate/sub-aqtitle b/tests/ref/fate/sub-aqtitle
index ae5edcd9abe039d33dd3e2da496fd991dcbe8490..2980d394278644f0a1b8361833ed2bb4bd2a506b 100644
GIT binary patch
delta 14
WcmZ1|xlnS$D at I1c&951^aRC4;vjw35

delta 14
WcmZ1|xlnS$D at I0x&951^aRC4;tp%U}

diff --git a/tests/ref/fate/sub-cc b/tests/ref/fate/sub-cc
index 516d26af9ab09613f939d004826e44c80b3b1054..5e4f5ff7fcdeb665d7de42a3d8856474e9ee2765 100644
GIT binary patch
delta 14
Vcmcc3cAIU(J4Qys&F>j=7y&P41*8A~

delta 14
Vcmcc3cAIU(J4Qx>&F>j=7y&O}1)~4}

diff --git a/tests/ref/fate/sub-cc-realtime b/tests/ref/fate/sub-cc-realtime
index 98dfef55019719911d6c5d9faa0c057cc324f227..22f09d5cddbf7181760a9db32cc4aa21f83574cb 100644
GIT binary patch
delta 14
VcmeC+>EPM$j*-!D^Ls`~762yY1iAnK

delta 14
VcmeC+>EPM$j*-z|^Ls`~762yS1i1hJ

diff --git a/tests/ref/fate/sub-cc-scte20 b/tests/ref/fate/sub-cc-scte20
index a97d29f70ba1d3984887eacb6e833abb8a406902..cded979cb874371943ce5eb0648b472fec9d5d1b 100644
GIT binary patch
delta 14
WcmX at gew2N~J4Qys&F>knF#-TC76s%0

delta 14
WcmX at gew2N~J4Qx>&F>knF#-TC5C!7^

diff --git a/tests/ref/fate/sub-charenc b/tests/ref/fate/sub-charenc
index 339137ae0b5485c4c954f859316cf8b413b01505..67e209856fccd5e1aebbacbe4c966ec769aebcd2 100644
GIT binary patch
delta 14
VcmeCt at 6q4zijmQ9^J~V1q5vy`1(^T<

delta 14
VcmeCt at 6q4zijmP^^J~V1q5vy=1(*N;

diff --git a/tests/ref/fate/sub-jacosub b/tests/ref/fate/sub-jacosub
index 32086d9365399ae3a968f9f61c6e3fa83a35ff65..9f555fb7470fa81d30e7668ede0fa883b105d729 100644
GIT binary patch
delta 14
VcmeC?>*m|=ijmQ9^J_*0RsbhH1jGOU

delta 14
VcmeC?>*m|=ijmP^^J_*0RsbhB1j7IT

diff --git a/tests/ref/fate/sub-microdvd b/tests/ref/fate/sub-microdvd
index 11440c28243f00cf99f07ff91ab2eb1c23dc2cc1..fa418f53db612e33dd6839b9ed1ce5ba8985e82f 100644
GIT binary patch
delta 14
Vcmey&^_gqKCq_oY&7T<?m;o}B1^NI0

delta 14
Vcmey&^_gqKCq_nt&7T<?m;o}51^EB~

diff --git a/tests/ref/fate/sub-movtext b/tests/ref/fate/sub-movtext
index 973e9f16457906c4bf9bd95d7053b2c4e405e68a..f96af3f8cfeab191fd2386219fa05352b9348fc9 100644
GIT binary patch
delta 14
VcmZ3?wwP_h4 at O4A%|98n7y&7?1qJ{B

delta 14
VcmZ3?wwP_h4 at O3V%|98n7y&7+1qA>A

diff --git a/tests/ref/fate/sub-mpl2 b/tests/ref/fate/sub-mpl2
index d740fbc365460187e6b4edcf3faa00bdb5638196..f4e46e48e98bca0002f7cdfe4c78e02fa7dd436a 100644
GIT binary patch
delta 14
Vcmeyx_KR)9D at I1c&952z838h$1^oa3

delta 14
Vcmeyx_KR)9D at I0x&952z838hw1^fU2

diff --git a/tests/ref/fate/sub-mpsub b/tests/ref/fate/sub-mpsub
index 4c3d37fa42206d262e221b1d0b81312289329143..28c36ea40ca5bfb08e30c2ae7add905a9135c398 100644
GIT binary patch
delta 14
WcmaDU{8D(sD at I1c&952%u>$}z00wFR

delta 14
WcmaDU{8D(sD at I0x&952%u>$}y`UYtL

diff --git a/tests/ref/fate/sub-mpsub-frames b/tests/ref/fate/sub-mpsub-frames
index 4f69e68948d66530152459e31f60883b528532f5..44a23b273ac88ef7181122fd35148d8e6ce5daca 100644
GIT binary patch
delta 14
Vcmeyu`h|7FD at I1c&950b838cf1!({P

delta 14
Vcmeyu`h|7FD at I0x&950b838cZ1!w>O

diff --git a/tests/ref/fate/sub-pjs b/tests/ref/fate/sub-pjs
index a32720514305771ae40b9182a9c469e098b6b1aa..0eb6880a14681ca8bbf0247b2c77bd866c50e601 100644
GIT binary patch
delta 14
Vcmeys_JM7~D at I1c&950-838ed1>XPw

delta 14
Vcmeys_JM7~D at I0x&950-838eX1>OJv

diff --git a/tests/ref/fate/sub-realtext b/tests/ref/fate/sub-realtext
index d80db64dafcc51c0536b968eb0416444bbdb2a21..347a8c0eabcb1037a837d3514e820a3fbdac9b96 100644
GIT binary patch
delta 14
WcmdnbzMp-=D at I1c&951+FaiKALIutM

delta 14
WcmdnbzMp-=D at I0x&951+FaiKAJO#}F

diff --git a/tests/ref/fate/sub-sami b/tests/ref/fate/sub-sami
index 3f194bdd0253eff13af8df85876f656e9fca8658..7c1eff3bccc134dc3b81b0d166ebe83872007046 100644
GIT binary patch
delta 14
Wcmcb}f02K~D at I1c&951su>t at u{stHT

delta 14
Wcmcb}f02K~D at I0x&951su>t at u_y!jM

diff --git a/tests/ref/fate/sub-sami2 b/tests/ref/fate/sub-sami2
index bab07e4c0709cb420c1c248782e95bbf015b844f..9b5dcbe7a2c185c1e3ea0f559bcf0ba289d261e1 100644
GIT binary patch
delta 14
VcmZqkYxCRiijmQ9^J_+FRRAo~1yuk5

delta 14
VcmZqkYxCRiijmP^^J_+FRRAo^1yle4

diff --git a/tests/ref/fate/sub-scc b/tests/ref/fate/sub-scc
index ff667eb4ec..a9ff3676be 100644
--- a/tests/ref/fate/sub-scc
+++ b/tests/ref/fate/sub-scc
@@ -8,7 +8,7 @@ YCbCr Matrix: None
 
 [V4+ Styles]
 Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
-Style: Default,Monospace,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,0,100,100,0,0,3,1,0,2,10,10,10,0
+Style: Default,Monospace,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,0,100,100,0,0,3,1,0,2,10,10,10,1
 
 [Events]
 Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
diff --git a/tests/ref/fate/sub-srt b/tests/ref/fate/sub-srt
index a6ed4f31df47709db51272dff3bd889cb9ffc317..7449090fd063f5a8b7e948568db736f47d4c7832 100644
GIT binary patch
delta 14
WcmdmJxY2OKD at I1c&951ci2(pFzXlBe

delta 14
WcmdmJxY2OKD at I0x&951ci2(pFxdsdX

diff --git a/tests/ref/fate/sub-srt-badsyntax b/tests/ref/fate/sub-srt-badsyntax
index 27bdd48c404370d047697c06b710e44aaa371b74..b77cada3f5710ff27d0d7dacc7d56119fd23700c 100644
GIT binary patch
delta 14
VcmZ3>vzBMWD at I1c&951qSO6-;1tkCg

delta 14
VcmZ3>vzBMWD at I0x&951qSO6-&1tb6f

diff --git a/tests/ref/fate/sub-stl b/tests/ref/fate/sub-stl
index 3e847a68beb5d6cfca08ea4612027d72eda9958a..3bf1f0d43fa614c4354348c2fc28946caa554ed3 100644
GIT binary patch
delta 14
WcmcaAcvW!2D at I1c&950>u>k-up9U!a

delta 14
WcmcaAcvW!2D at I0x&950>u>k-unFc5T

diff --git a/tests/ref/fate/sub-subviewer b/tests/ref/fate/sub-subviewer
index e910e154ba6203eca72f994d2f3cfd40d50f5ebc..b3d69bfd1f3983aba6ee76718778b31decf0b1a1 100644
GIT binary patch
delta 14
VcmZ3$wt#KJD at I1c&950v838E91n&R<

delta 14
VcmZ3$wt#KJD at I0x&950v838E31nvL;

diff --git a/tests/ref/fate/sub-subviewer1 b/tests/ref/fate/sub-subviewer1
index 2d253288e1db9f2c2061512b6c85ebaefc5c51b0..4c19890ff143fad91649ec2e89d0f22c71b0fbfc 100644
GIT binary patch
delta 14
WcmaFG{fc|TD at I1c&952%GXnrJSO!@D

delta 14
WcmaFG{fc|TD at I0x&952%GXnrJQU+K6

diff --git a/tests/ref/fate/sub-vplayer b/tests/ref/fate/sub-vplayer
index ef9cb2d9e5eec004f9d1ae70112bf4fee6a0bbfb..3949a2be89c06a43407fd324432ff4272d09ac7b 100644
GIT binary patch
delta 14
Vcmeyx`iphLD at I1c&952x838ed1$zJh

delta 14
Vcmeyx`iphLD at I0x&952x838eX1$qDg

diff --git a/tests/ref/fate/sub-webvtt b/tests/ref/fate/sub-webvtt
index 091cfb5d3f73c97c82146d67bb0447f3fd8bebe7..2317c7d5a0500c4fc576db99e8c074d74e43c821 100644
GIT binary patch
delta 14
Wcmcc0f0cj3D at I1c&950>u>t at vZU!U(

delta 14
Wcmcc0f0cj3D at I0x&950>u>t at vXa*wy

diff --git a/tests/ref/fate/sub-webvtt2 b/tests/ref/fate/sub-webvtt2
index 56afed8944071d465eba2a8c0308af88863e54b6..1d236eabdcef44467ff14d3e7b6fd1445283c111 100644
GIT binary patch
delta 14
VcmZqSZQ<SUijmQ9^J~VLEC45A1uOsn

delta 14
VcmZqSZQ<SUijmP^^J~VLEC4541uFmm

-- 
2.30.2



More information about the ffmpeg-devel mailing list