summaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
authorOneric <oneric@oneric.stub>2024-01-19 22:53:53 +0100
committerOneric <oneric@oneric.stub>2024-02-24 18:11:40 +0100
commite012cb2211325752d0f1f0a2ef01b22855321413 (patch)
tree16afd32233f32e6d12b46671b2b81fb8cd39d801 /configure.ac
parentdd8e1546d2ebd571cfc5680a188394ec7b007673 (diff)
downloadlibass-e012cb2211325752d0f1f0a2ef01b22855321413.tar.bz2
libass-e012cb2211325752d0f1f0a2ef01b22855321413.tar.xz
drawing: tokenise vector drawings like VSFilter
Our old code deviated from VSFilter in many ways, though the tokenisation differences only affected nonsensical or technically invalid drawing command sequences. While it is possible to retrofit the existing tokenisation loop to emulate VSFilter’s logic, the result is not as readable as just directly using greedy point aggregation and a search for the next valid command similar to VSFilter. Unfortunately, this has the downside of making the individual compatibility changes/issues less visible in the diff. Instead they are spelled out below: - VSFilter ignores invalid commands together with their coordinates. Prior to this, libass ignored invalid commands itself but appended their coordinates to the preceding valid command. This was even intentionally exploited to (not-)implement p, resulting in different behaviour if p was following something other than s. - VSFilter will accept n as the first node if an _invalid_ m command appeared before - VSFilter drops points from b which are not part of a triplet. - VSFilter ignores s commands with less than three points. - VSFilter ignores p commands if there aren’t at least 3 nodes yet. (The last one strictly speaking only holds for xy-VSFilter and MPC-HC ISR — but guliverkli2 VSFilter just crashes on such input) Furthermore, until now libass recognised q for conic bezier in the tokeniser. This does not exist in VSFilters and was also never implemented in libass’ token-to-outline parser. Other than the lack of distinction between spline start and extension nodes (which also requires support in the parser) our tokenisation result should now exactly match modern VSFilters.
Diffstat (limited to 'configure.ac')
0 files changed, 0 insertions, 0 deletions