ganzhijie / libass

Automatically exported from code.google.com/p/libass
0 stars 0 forks source link

VSFilter "fixes" reversed start/end time in \move #90

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Given a tag like \move(0,0,100,100,3000,2000), VSFilter swaps the start and end 
time and treats it like \move(0,0,100,100,2000,3000), while libass treats it as 
\move(0,0,100,100,3000,3000). This is pretty unimportant, but should be easy to 
fix.

AFAICT no other tags which take time arguments work in the same way.

Original issue reported on code.google.com by Plorkye...@gmail.com on 19 Feb 2013 at 2:08

GoogleCodeExporter commented 9 years ago
If Libass is going to implement the rule for reversed start/end times, VSFilter 
contains another rule of interest when both values are 0.

if(t1 <= 0 && t2 <= 0) {t1 = 0; t2 = m_delay;}

Aegisub's docs describe this as:
Specifying both t1 and t2 as 0 (zero) is the same as using the first version of 
\move, ie. the movement will occur from the start time of the line to the end 
time of the line.

If for example you have:
\move(600,400,400,300,0,0)

VSFilter treats it as:
\move(600,400,400,300)

Libass treats it as:
\pos{400,300}

Original comment by cyber.sp...@gmail.com on 22 Feb 2013 at 5:24

GoogleCodeExporter commented 9 years ago
Attempt to fix both issues. Can anyone confirm whether this is correct?

Original comment by nfxjfg@googlemail.com on 20 Mar 2013 at 1:12

Attachments:

GoogleCodeExporter commented 9 years ago
Not tested, but looks good to me.

Original comment by g...@chown.ath.cx on 29 Mar 2013 at 1:04

GoogleCodeExporter commented 9 years ago
Done.

Original comment by nfxjfg@googlemail.com on 29 Mar 2013 at 10:11