Log in

View Full Version : Is there a 64bit version of SubtitleEx?


Pages : 1 [2]

StainlessS
28th February 2020, 17:26
Anybody know if SubtitleEx was issued under GPL, or not ?
(Should I add it to the source)

StainlessS
28th February 2020, 18:12
It looks like some of the Anti-alias code was taken from avisynth source, so I'll add GPL.

EDIT:
Original SubtitleEx contained same subtitle engine as DvTimeStamp, and Kai's version was also based on DvTimestamp.
Internal.h is defo Avisynth, and as DvTimeStamp source subs engine also uses Internal.h so both original SubtitleEx and Kai version must also both be GPL.

Reel.Deel
29th February 2020, 02:27
EDIT:
RD, some additional docs and nifty examples in DVUtilities CHM (Compressed HTML help file, search DVUtilities):- http://www.avisynth.nl/users/warpenterprises/
Or Direct link Here:- http://www.avisynth.nl/users/warpenterprises/files/dvutilities_20050717.zip

Thanks, some time ago I added SubtitleEx to the wiki (http://www.avisynth.nl/index.php/SubtitleEx), all of taken from the original archived homepage which is more or less the same as the CHM doc.


Edit:
Anybody know if SubtitleEx was issued under GPL, or not ?
(Should I add it to the source)

Take a look here: https://forum.doom9.org/showthread.php?t=77148

StainlessS
29th February 2020, 10:17
RD, I did not find that thread, expected name in thread title, and did not examine all Search For Posts threads.
Note, last frame in Kai does not display subs ("<" vs "<=" error).

I think I'm gonna try use avs v2.60 Std Subs Anit-alias substitution, maybe get 2.60 colorspaces available, dont know if I will be successful,
I feel there is just something wrong with the original code (both Basilik and Kai versions), both only use TA_BASELINE relative, not
TA_TOP or TA_BOTTOM relative, anyway gonna give it a try, and if not succeed then go back to original source again.

@G24K, way to go, dumping this on me, "StainlessS might be more used to device contexts" (or words to tha effect), I aint no windows progger and only really had
limited experience with DC in the Clipboard plugin. You knows when to back out of it and lump it on to somebody stupid enough to have a go. :)

Groucho2004
29th February 2020, 11:18
...I aint no windows progger and only really had
limited experience with DC in the Clipboard plugin.Limited experience is still better than no experience. :) I always hated GDI stuff and steered clear of it.

...You knows when to back out of it and lump it on to somebody stupid enough to have a go.You could have refused but the goodness of your heart made you do the right thing. :)

StainlessS
29th February 2020, 12:12
Soft soap and flannel, blowing smoke up my ass, swivel on this. https://www.cosgan.de/images/smilie/frech/m045.gif

Groucho2004
29th February 2020, 14:32
swivel on this. https://www.cosgan.de/images/smilie/frech/m045.gifHorizontally or vertically?

StainlessS
3rd March 2020, 00:44
Horizontally or vertically?
Well you could try all 3 X, Y, and Z axis, and choose the one of most resistance.

Would anybody like to try a test version, not sure that it is all as it should be, in particular YV24 saturation (ie ApplyYV24)
Guinea pigs required.

From Antialiaser.cpp

// ssS: Added. Called only by Apply
void Antialiaser::ApplyYV24(BYTE* buf, int pitch, int textcolor, int halocolor, int pitchUV, BYTE* bufU, BYTE* bufV)
{
if (dirty)
GetAlphaRect();
int Ytext = ((textcolor >> 16) & 255), Utext = ((textcolor >> 8) & 255), Vtext = (textcolor & 255);
int Yhalo = ((halocolor >> 16) & 255), Uhalo = ((halocolor >> 8) & 255), Vhalo = (halocolor & 255);
int textTransparancy = (textcolor >> 24) & 255;
int haloTransparancy = (halocolor >> 24) & 255;
char* alpha = alpha_bits + validRectangle.top * w * 2;
// buf += pitch * ((h - 1) - validRectangle.bottom);
buf += pitch * validRectangle.top;
bufU += pitchUV * validRectangle.top;
bufV += pitchUV * validRectangle.top;
for (int y = validRectangle.bottom; y >= validRectangle.top; --y)
{
for (int x = validRectangle.left; x <= validRectangle.right; ++x)
{
char tr0, tr1;
tr0 = div255to64[textTransparancy][alpha[x * 2 + 0]];
// tr1 = div255to64[haloTransparancy][alpha[x * 2 + 1]];
tr1 = (alpha[x * 2 + 0] >= 64)?0:div255to64[haloTransparancy][alpha[x * 2 + 1]];

buf[x] = (buf[x] * (64 - tr0 - tr1) + Ytext * tr0 + Yhalo * tr1) >> 6;

bufU[x] = (bufU[x] * (64 - tr0 - tr1) + Utext * tr0 + Uhalo * tr1) >> 6;
bufV[x] = (bufV[x] * (64 - tr0 - tr1) + Vtext * tr0 + Vhalo * tr1) >> 6;

// ssS: Alternative test
// bufU[x] = (bufU[x] * (128 - tr0 - tr1) + Utext * tr0 + Uhalo * tr1) >> 7;
// bufV[x] = (bufV[x] * (128 - tr0 - tr1) + Vtext * tr0 + Vhalo * tr1) >> 7;

// ssS: Alternative test
// bufU[x] = (bufU[x] * (128 - tr0*2 - tr1*2) + Utext * tr0*2 + Uhalo * tr1*2) >> 7;
// bufV[x] = (bufV[x] * (128 - tr0*2 - tr1*2) + Vtext * tr0*2 + Vhalo * tr1*2) >> 7;

}
buf += pitch;
bufU += pitchUV;
bufV += pitchUV;
alpha += w * 2;
}
}



v1.50Beta mod StainlessS.

Given version number of v1.50Beta
Made output same as original SubtitleEx for y=0 and Y=-1. (Y=0, Baseline of first line of text is at YCoord 0, Y=-1, BaseLine of Last line of text is at YCoord Height-1).
Where "|" inserts a NewLine in text, "||" will now print a single Pipe "|" character, without NewLine.
Add support for all v2.60 Std Colorspaces except YV411.


Decided to go with plan D, ie revert back to original KAI with mods.

It only became obvious what original SubtitleEx intended when rendering multiline where Y=0, and Y=-1 were viewed simultaneously, have implemented as original.

YV24

#LoadPlugin(".\SubtitleEx.dll") # Original SubtitleEx
#LoadPlugin(".\SubtitleExKai.dll") # Kai

#BlankClip(pixel_type="RGB24")
#BlankClip(pixel_type="RGB32")
#BlankClip(pixel_type="YUY2")
#BlankClip(pixel_type="YV12")
#BlankClip(pixel_type="YV16")
BlankClip(pixel_type="YV24")
#BlankClip(pixel_type="Y8")
TColor=$FF00FF
HColor=$00FF00
SubtitleEx(TextColor=TColor,HaloColor=HColor,"First line111111 11111g|Second line 2222 222 222g|Third lineg",effects="bc", size=48,x=width/2,y=0)
SubtitleEx(TextColor=TColor,HaloColor=HColor,"First line111111 11111g|Second line 2222 222 222g|Third lineg",effects="bec",size=48,x=width/2,y=-1)
#info
return convertToRGB32

YV24
https://i.postimg.cc/J0FQPx5b/CSTEST-00.jpg (https://postimages.org/)
YV12
https://i.postimg.cc/N03b1RJR/CSTEST-01.jpg (https://postimages.org/)
Actually, looks like I got it right, YV24 and YV12 look similar-ish on D9 post, I had not seen them side by side.

G2K4, for compile to x64, need define both "WIN32" and "_WIN64". [EDIT: Ensure version resource shows x64, "_WIN64" for resource compiler]

dll + source + VS2008 project files via SendSpace beneath this post, "SubtitleEx_a26_x86_v1.50_Beta01_20200302.7z".

EDIT: Bottom/top baseline relative stuff

const char *s=m_Info.text;
char *p;
int currLine;
for(currLine=0; currLine < LineCount; ++currLine) {
p=buf;
while(*s) {
if(s[1]!='\0') {
if(IsDBCSLeadByte(s[0]) == TRUE) {
*p++ = *s++; // Lead multi-byte
*p++ = *s++; // trail multi-byte
continue;
}
if(s[0]=='|' && s[1]=='|') {
++s; // Skip escape char
*p++ = *s++; // copy escaped pipe
continue;
}
}
if(s[0]=='|') {
++s; // skip n/l pipe
break; // End of current line
}
*p++ = *s++; // copy normal char
}
*p='\0';
if (m_Info.org_y >= 0) {
// ssS: linemargin Takes effect only where currline > 0
m_pAnti->AntialiserTextOut(buf, x, y + m_Info.linemargin * currLine, currLine);
} else {
// ssS: ie for 3 lines then from top, (currLine - LineCount + 1) = -2, -1, 0.
m_pAnti->AntialiserTextOut(buf, x, y + m_Info.linemargin * (currLine - LineCount + 1), currLine - LineCount + 1);
}
}


EDIT: Have not tested multi-byte Japanese type stuff. [have all that weird foreign stuff switched off on my machines]

Reel.Deel
3rd March 2020, 16:55
StainlessS, thank you very much for taking the time to do this! Great job, I will test the plugin :)

StainlessS
3rd March 2020, 17:12
Thanks RD, think I did/may_have gotten ApplyYV24() wrong, convert YV24 to YV12 and subtract from YV12 version produces visible difference in chroma, I'll try again.

StainlessS
5th March 2020, 15:01
OK, I think that maybe I did YV24 correct after all, If no bug reports prior to about Saturday, I'll release v1.50 without beta,
perhaps G2K4 finds it within his good self to add an x64 dll.

I was absolutely knackered when I was doing this plug, up until yesterday I had hardly slept a single wink for about 10 days,
for about 3 or 4 days I was shagged out, but after that it sort of became the norm and did not feel so much tired.
One day last week I had 5 pints of ale, no effect at all, not a wink slept, but last night about 10 pints did the trick, finally got some sleep. https://www.cosgan.de/images/smilie/muede/a015.gif

Groucho2004
5th March 2020, 17:14
If no bug reports prior to about Saturday, I'll release v1.50 without beta,
perhaps G2K4 finds it within his good self to add an x64 dll.Will do. Just let me know where the modified source is.

StainlessS
5th March 2020, 19:18
Modded source on my SendSpace below this post. [ SubtitleEx_a25_a26_x86_v1.50_20200305.zip ]

I've made Version resource v1.50, and added x64 code into AntiAliaser.cpp as so [switched via '_WIN64' define)


// ssS:
#ifdef _WIN64
unsigned __int64 tmp;
__asm
{ // test if the whole area isn't just plain black
mov edx, srcpitch


Define both WIN32 and _WIN64 for x64 build.

zip contains Avs v2.60/+ x86 and v2.58 dll's.

I'm more than happy for you to host in your repository.

Groucho2004
5th March 2020, 19:40
Modded source on my SendSpaceI keep getting 'bad gateway" on Sendspace. Can you upload to mediafire?

StainlessS
5th March 2020, 19:56
I've re-uploaded to SendSpace [I had problems uploading the first time, real slow connection], and here on MediaFire:- http://www.mediafire.com/file/c4lmehfy431dfwm/SubtitleEx_a25_a26_x86_v1.50_20200305.zip/file

Groucho2004
5th March 2020, 20:18
here on MediaFire:- http://www.mediafire.com/file/c4lmehfy431dfwm/SubtitleEx_a25_a26_x86_v1.50_20200305.zip/fileGot it, thanks.

Groucho2004
10th March 2020, 12:37
Modded source on my SendSpace below this post. [ SubtitleEx_a25_a26_x86_v1.50_20200305.zip ]

I've made Version resource v1.50, and added x64 code into AntiAliaser.cpp as so [switched via '_WIN64' define)


// ssS:
#ifdef _WIN64
unsigned __int64 tmp;
__asm
{ // test if the whole area isn't just plain black
mov edx, srcpitch


Define both WIN32 and _WIN64 for x64 build.

zip contains Avs v2.60/+ x86 and v2.58 dll's.


I finally had some time to build a 64 bit version with your modifications. All good except that the top y coords are now shifted, see here:

Script:
colorbars(width = 640, height = 480, pixel_type = "yv12").killaudio()
converttorgb32()
SubTitleEx(x=0, y=0, font="Arial", size=50, "First line (x=0, y=0)")


Result:
https://i.postimg.cc/jd51LPQy/test00-00.png

Result with the first version I made:
https://i.postimg.cc/t4RFXN3H/test00-01.png

pinterf
10th March 2020, 15:03
// ssS:
#ifdef _WIN64
unsigned __int64 tmp;
__asm
{ // test if the whole area isn't just plain black
mov edx, srcpitch


That asm part can safely be replaced by
const BYTE* src2 = src - 8 * srcpitch - 1;
unsigned int tmp = 0;
for (int i = 0; i < 24; i++) {
tmp |= *(unsigned int*)(src2);
src2 += srcpitch;
}
tmp &= 0x00ffffff;

Checked, compiler generates the same or better asm code for that part. No need for special 64 bit tmp, 32 bit is enough.

StainlessS
10th March 2020, 18:13
WOW thanks P, smashing.

G2K4,
Yeah, I decded to revert to original SubtitleEx method, before the Kai version.
from post 58

v1.50Beta mod StainlessS.

Given version number of v1.50Beta
Made output same as original SubtitleEx for y=0 and Y=-1. (Y=0, Baseline of first line of text is at YCoord 0, Y=-1, BaseLine of Last line of text is at YCoord Height-1).
Where "|" inserts a NewLine in text, "||" will now print a single Pipe "|" character, without NewLine.
Add support for all v2.60 Std Colorspaces except YV411.

It only became obvious what original SubtitleEx intended when rendering multiline where Y=0, and Y=-1 were viewed simultaneously, have implemented as original.


YV24
https://i.postimg.cc/J0FQPx5b/CSTEST-00.jpg (https://postimages.org/)
YV12
https://i.postimg.cc/N03b1RJR/CSTEST-01.jpg (https://postimages.org/)
Actually, looks like I got it right, YV24 and YV12 look similar-ish on D9 post, I had not seen them side by side.

EDIT: Bottom/top baseline relative stuff

const char *s=m_Info.text;
char *p;
int currLine;
for(currLine=0; currLine < LineCount; ++currLine) {
p=buf;
while(*s) {
if(s[1]!='\0') {
if(IsDBCSLeadByte(s[0]) == TRUE) {
*p++ = *s++; // Lead multi-byte
*p++ = *s++; // trail multi-byte
continue;
}
if(s[0]=='|' && s[1]=='|') {
++s; // Skip escape char
*p++ = *s++; // copy escaped pipe
continue;
}
}
if(s[0]=='|') {
++s; // skip n/l pipe
break; // End of current line
}
*p++ = *s++; // copy normal char
}
*p='\0';
if (m_Info.org_y >= 0) {
// ssS: linemargin Takes effect only where currline > 0
m_pAnti->AntialiserTextOut(buf, x, y + m_Info.linemargin * currLine, currLine);
} else {
// ssS: ie for 3 lines then from top, (currLine - LineCount + 1) = -2, -1, 0.
m_pAnti->AntialiserTextOut(buf, x, y + m_Info.linemargin * (currLine - LineCount + 1), currLine - LineCount + 1);
}
}



Original pre Kai version always positioned at baseline(otherwise cannot go upwards and partially off frame because of the Y= -1 thing).
I'm happy to leave as the author intended.

Groucho2004
10th March 2020, 18:39
Original pre Kai version always positioned at baseline(otherwise cannot go upwards and partially off frame because of the Y= -1 thing).
I'm happy to leave as the author intended.OK, fair enough.

I forgot to mention, the x86 / x64 distinction in the version resource does not work. It always shows 'x86'. I had a quick look but could not find any error in the conditional logic in version.h. And yes, I did define "WIN32" and "_WIN64".

Edit - With a temporary workaround the version in the x64 DLL is now OK. Here (http://www.mediafire.com/file/eogfo29xl3txvfv/SubTitleEx_x64.7z/file) is the plugin.

StainlessS
10th March 2020, 19:35
Thanks g, [no you cant have big G, thats Gavino's moniker].

I would have preferred if implemented with say optonal keypad base align arg, and forget x=-1 type stuff, maybe separate eg Vcent arg (for real centering, rather than print downwards from center), and where
Align defined then x and y relative to alignment, else relative 0,0. [EDIT: And maybe separate args for justification, eg right aligned, left justified. I think RT_subtitle can do that but forgot how]

The the command line for resource compiler whatsit on VS2008,

/d "_WIN64" /d "_UNICODE" /d "UNICODE" /fo"x64\Debug/DDigitTest.res"

Although I undefine UNICODE type stuff in "Compiler.h" (for the plug code)

#ifndef __COMPILER_H__
#define __COMPILER_H__

#ifdef UNICODE
#undef UNICODE // Avoid default wide character stuff
#endif
#ifdef _UNICODE
#undef _UNICODE // Avoid default wide character stuff
#endif
#ifdef MBCS
#undef MBCS
#endif
#ifdef _MBCS
#undef _MBCS
#endif

#define _CRT_SECURE_NO_WARNINGS

// Compile for minimum supported system. MUST be defined before includes.
// NEED to use SDK for updated headers, TK3 will give error messages/Warnings about Beta versions.
#ifdef _WIN64
#define WINVER 0x0502 // XP 64 Bit or Server 2003
#define _WIN32_WINNT 0x0502 // XP 64 Bit or Server 2003
#define NTDDI_VERSION 0x05020000 // Server 2003 SP0
#define _WIN32_IE 0x0700 // 0x0700=IE 7 SP0
#else
#define WINVER 0x0501 // XP 32 bit
#define _WIN32_WINNT 0x0501 // XP 32 bit
#define NTDDI_VERSION 0x05010300 // XP SP3
#define _WIN32_IE 0x0603 // 0x0603=IE 6 SP2
#endif


EDIT: Arh, I dont define WIN32 for resource compiler, maybe that was it.
When compile for v2.58, I also add AVISYNTH_PLUGIN_25 to Resource and CPP Preprocessor definitions.

EDIT:
Linker command line

/OUT:"M:\SJ\SOURCE ARCHIVE\VC\AVISYNTH FILTERS\2K8x64\DDigitTest\x64\Release\DDigitTest_x64.dll"
/INCREMENTAL:NO /NOLOGO /DLL /MANIFEST /MANIFESTFILE:"x64\Release\DDigitTest_x64.dll.intermediate.manifest"
/MANIFESTUAC:"level='asInvoker' uiAccess='false'"
/DEBUG /PDB:"M:\SJ\SOURCE ARCHIVE\VC\AVISYNTH FILTERS\2K8x64\DDigitTest\x64\Release\DDigitTest_x64.pdb"
/SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG /DYNAMICBASE /NXCOMPAT /MACHINE:X64 /ERRORREPORT:PROMPT kernel32.lib
user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib


CPP command line

/O2 /Ob2 /Oi /Ot /GL /D "_WIN64" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "DDIGITTEST_EXPORTS" /D "_WINDLL"
/D "_UNICODE" /D "UNICODE" /FD /EHsc /MD /Gy /Fo"x64\Release\\" /Fd"x64\Release\vc90.pdb" /W3 /nologo /c /Zi /TP /errorReport:prompt

EDIT: For line breaks. EDIT: Above looks like for debug version. FIXED.

EDIT: Does it work proper with that there squiggly writin' ?

StainlessS
12th March 2020, 00:35
SubtitleEx() v1.51. See Mediafire in my sig below this post. In the HOSTED folder.
Also availabe for 30 days from my Sendspace, also below this post.
Or direct link to MediaFire here:- http://www.mediafire.com/file/amek5sms7fz7csf/SubtitleEx_a25_a26_x86%2526x64_v1.51_20200311.zip/file

Dll's for avs v2.58, avs/+ x86 and x64.
+ source and project files for VS 2008.
Requires CPP runtimes 2008.

Removed ASM as suggested by Pinterf several posts ahead, no need for Intel compiler for x64 anymore.

Reel.Deel
15th March 2020, 19:16
StainlessS, thank you very much for taking the time to update this plugin! I've tried it out for a few things and all seems to be well :).
I've updated the wiki also: http://avisynth.nl/index.php/SubtitleEx

StainlessS
29th March 2020, 16:01
User fieliapm (not on-site since Oct 2018)

Has posted a few SubtitleEx() related script functions on Github:- https://github.com/fieliapm/avsi4comp
Go up 1 directory to see other available fieliapm stuff.

One of the available items is also posted in devs forum, (VideoInputSource - grab video frame from video capture card or webcam in real-time):- https://forum.doom9.org/showthread.php?t=170311
EDIT: Also here in Avs Usage (OP post only):- https://forum.doom9.org/showthread.php?t=174514&highlight=VideoInputSource

I posted this some time ago in that thread (cant remember what I did though, was simple I think):-
Thank you, I've just got it up working on remote machine, and serving to local machine via TcpServer(), Tcpsource(), pair, works fine. :)

Reel.Deel
23rd August 2021, 19:42
Hi StainlessS,

I think I found a bug when anti-aliasing is disabled and the colorspace is YUV. The problem can be most easily seen when the input is YV16 but is is also noticeable with YV24 and YV12. With YV12 is seems the halo color disappears.

ColorBars
ConvertToYV16()
SubtitleEx("TEST", x=240, y=240, effects="n", size=72, textcolor=$00FF0199, halocolor=$0047982F)

StainlessS
23rd August 2021, 20:54
Crap, I hated trying to fix that one.
If it aint been fixed after some reasonable amount of time, bug me again.
(busy)

EDIT: I dont think I touched anything like that, maybe bug in original too.
Maybe can you check in original 32 bit, or maybe bug even in AVS itself [or windows],
think maybe it uses AVS for text rendering incl anti-alias, I only touched print coords and the like,
would not have ani idea about text rendering itself.

StainlessS
23rd August 2021, 21:30
For anyone interested


#ColorBars
blankclip
# TOP Image in RGB
SubtitleEx("TEST", x=240, y=320 -64, effects="n", size=72, textcolor=$00FF0199, halocolor=$0047982F)
ConvertToYV16()
# BOT image in YV16
SubtitleEx("TEST", x=240, y=320, effects="n", size=72, textcolor=$00FF0199, halocolor=$0047982F)


https://i.postimg.cc/HcH24B6C/RD-00.png (https://postimg.cc/HcH24B6C)

EDIT:

#ColorBars
blankclip
# TOP Image in RGB
SubtitleEx("TEST", x=64, y=400 -180, effects="n", size=240, textcolor=$00FF0199, halocolor=$0047982F)
ConvertToYV16(Matrix="rec601")
# BOT image in YV16
SubtitleEx("TEST", x=64, y=400, effects="n", size=240, textcolor=$00FF0199, halocolor=$0047982F)

Spline36Resize(Width*2,Height*2)

https://i.postimg.cc/mDVtbdsf/RD-01.png (https://postimg.cc/JDD1x50P)

RD, is the disappearing halo only because its on colorbars.
Seem to be halo on blankclip so maybe just interference due to subsampling and colorbars colors.

EDIT: Previous script, changed to colorbars. Top RGB32 Bot YV16
https://i.postimg.cc/fyKFq9mv/RD-02.png (https://postimg.cc/GT4qH9MB)
Halo seems to be sorta transparent, presume that its not supposed to be.

Swapped Top YV16, Bot RGB32

ColorBars
#blankclip
SubtitleEx("TEST", x=64, y=400, effects="n", size=240, textcolor=$00FF0199, halocolor=$0047982F) # BOT Image RGB32
ConvertToYV16(Matrix="rec601")
SubtitleEx("TEST", x=64, y=400 -180, effects="n", size=240, textcolor=$00FF0199, halocolor=$0047982F) # TOP Image in YV16
Spline36Resize(Width*2,Height*2)

https://i.postimg.cc/fyKFq9mv/RD-02.png (https://postimg.cc/GT4qH9MB)

Sorta transparent halo there too, dont know if is supposed to be.

Reel.Deel
23rd August 2021, 21:43
The original SubtitleEx by Basilik seems to be fine. I could only test in YV12 and YUY2. Although in RGB the results are different, in the case of anti-aliasing I would think the output of the original is more correct.

ColorBars
ConvertToYUY2()
o = SubtitleEx_o86_SubtitleEx("TEST", x=240, y=240, effects="n", size=72, textcolor=$00FF0199, halocolor=$0047982F)
n = SubtitleEx_x86_SubtitleEx("TEST", x=240, y=240, effects="n", size=72, textcolor=$00FF0199, halocolor=$0047982F)

Interleave(o,n)

StainlessS
23rd August 2021, 22:14
OK, Ill take a look when i get time.
Maybe just Halo Alpha wrong somewhere.

Reel.Deel
23rd August 2021, 22:18
OK, Ill take a look when i get time.
Maybe just Halo Alpha wrong.

Thank you StainlessS. I was trying to make a script to allow overlaying the subtitles onto HBD colorspaces without having to convert the video to 8-bit but could not get the same output as using SubtitleEX by itself. I will wait :)