Log in

View Full Version : Matroska Embedded Font Playback Problems...splitter?


Nicholi
25th May 2004, 21:03
And a howdy dudey to you all.

Well the problem starts with a non-Windows font being muxed into an MKV. This font (ArtificeSSK (http://www.ultimatebadass.org/~xclan/lonewolf/fonts/ARTIS___.TTF)) however unlike others is not completely defined, and certain characters such as ' " @ and so forth are left undefined. Originally I had no idea that this font had certain undefined characters, it wasn't until I tried using it in a Word Document and noticed that the undefined characters were being defaulted to Word's default font, Times New Roman.

Now in the interest of softsubbed SSA's in matroska this is very important to be able to use non-standard fonts in an MKV file and have them properly playback. Everything works perfectly fine, of course until the undefined characters come onto the screen.

Here I present a picture using the non-standard font actually installed on the system. All characters are shown perfectly.
http://www.ultimatebadass.org/~xclan/lonewolf/fonts/installed%20fontv2.PNG

In this picture the font has been removed from the system and is being loaded from the matroska file, as you can see the undefined characters are now...undefined.
http://www.ultimatebadass.org/~xclan/lonewolf/fonts/not%20installed.PNG

Now it seems that with the font installed, the undefined characters are Defaulted to VSFilter's default font, Arial. However with the font removed it does not perform this default function.

I present next a side by side comparison of Arial and ArtificeSSK in an MKV. Note the undefined characters will be entered in as Arial as soon as you install ArtificeSSK, here (http://www.ultimatebadass.org/~xclan/lonewolf/fonts/font%20tests.mkv). Here as well is the SSA (http://www.ultimatebadass.org/~xclan/lonewolf/fonts/font%20comparison.ssa) being tested.

Question being, can this problem with the splitter (if that so is the problem) be fixed so that it will default to Arial on undefined characters when the font has been muxed into the MKV? Of course the common quick now is to simply force those characters in the SSA to be Arial in the first place, however this can become quite cumbersome using more and more fonts and checking how complete they are. The problem foremost stems from the fact that as the person making the SSA, and checking timing/positioning/so forth while playing back on my own machine, I cannot notice the sutttle inconsistencies unless I uninstall all the font's I just used the current script.

I tried similar tests on other fonts, as well as fonts from the same author as ArtificeSSK, and actually to no avail I could not reproduce the "defaulting" behavior. They all still contained the big undefined BLOCK characters after installing each font. So it may just in fact be certain krayzie font's themselves, though I have no idea myself. This has all been tested using Gabest's MKV splitter 1.0.2.3 and VSFilter 2.33.

Hopefully some light may be shed on the subject? Where are you font guru's?

gizmotech
1st June 2004, 22:15
Bumping up.

Gizmo.

PS::: has anyone seen gabest recently?

SirCanealot
3rd June 2004, 14:35
What method are you using to embed the fonts into the MKV?
The way I've been doing it so far, is to simply embed the fonts into the SSA file, but this doesn't seem to work for a lot of people :/

[Toff]
3rd June 2004, 17:26
Looks like a Windows feature :D
MatroskaSplitter is currently using AddFontMemResourceEx (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/fontext_23zs.asp), I don't see anything about missing characters font mapping.
The good thing with this function is that it loads the font from memory and keeps it private to the application loading it. So nothing to write on disk, no write access needed.

I just made a quick try with this other function AddFontResourceEx (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/fontext_214o.asp) it's nearly the same but you need to write the font on the disk first.
And this one works as expected :rolleyes:

Nicholi
3rd June 2004, 19:09
Yes I was thinking it would be something Windows related, but really I have no idea whats going on myself.

The fonts are of course muxed with mkvmerge.

[Toff]
4th June 2004, 12:33
Here is a binary to test
>> click me << (http://christophe.paris.free.fr/matroska/MatroskaSplitter_(1023-Unicode)_Font_Mapping_Fix_Test.zip)

[Toff]
4th June 2004, 12:49
Originally posted by SirCanealot
What method are you using to embed the fonts into the MKV?
You just have to attach the font file with mkvmerge when you mux your file. The MIME type to use is "application/x-truetype-font".

The MatroskaSplitter DirectShow filter will extract all attached fonts and install them temporarily to make them accessible by the application.

Nicholi
5th June 2004, 04:07
We have a winner!

Awesome [Toff] it seems to work :)
Now if we can just locate Gabest and get him to implement it...

I believe he's hiding in some central/south american village being worshipped as a god....

SirCanealot
8th June 2004, 21:51
Originally posted by [Toff]
You just have to attach the font file with mkvmerge when you mux your file. The MIME type to use is "application/x-truetype-font".



Sorry, but can this be done with the command line only?
I don't seem to be having much success with the gui, and I have no idea how to work the command line...

Edit: Found the attachments tab, I assume this is what I'm looking for?
*goes to try* ^_^