View Full Version : Media Player Classic supports Matroska v2, *.mp4, *.mov, and MPEG-4 Timed Text
Liisachan
28th December 2006, 06:44
Probably it has a name for windows, something like this
ITCFranklinGothic LT BookCn
12345678901234567890123456789012
0---------1---------2--------3-*
I think it's just that you are using a wrong name (i.e. not for Windows), while it's Gabest's fault that he copies the fontname without checking the length.
clsid
28th December 2006, 14:28
You can also try using the 8.3 filename. Every file in Windows is also accessable via a short filename.
Isochroma
28th December 2006, 21:00
Well, all other applications have no problem handling fonts with facenames >31 characters.
I found a solution to the problem: using TransType Pro, the fontname (and other metadata) may be changed as an option in the conversion process.
This process sucessfully worked around the problem, however, it is my opinion that the issue is with vsfilter, not the Windows in general, since no other applications crash on fonts with >31-char. fontnames.
Liisachan
29th December 2006, 01:11
Your solution may be not proper. You can just use the right font name for Windows, which should be <= 31 char. What you need to do first is, to check the correct internal font name. Did you do that?
The fontname you are supposed to write in SSA/ASS's style is not necessarily equal to the name that is commonly known as the name of that font, nor file name (never. clisid :).. A font file has a many names, like Postscript name or a name for Windows. You just need to use the name for Windows. If you upload the font file, I can check the correct font name within a few seconds, unless it's broken. Alternatively you can check it yourself by using the tool I mentioned.
Like we are repeating, if you copy longer string when the buffer length is 32, obviously it causes crashes; but just to preventing that wouldn't fix the problem. Gabest could copy the first 31 characters only, and there were no crash, but then the font mapper wouldn't recognize the font name either.
- The name font mapper needs to know is, NOT the first 31 characters, NOT the long name (postscript name?) you are trying to use, BUT the name for Windows. Its internal name.
- What you need to do is, simply to use the correct internal name. First check the correct internal name. Even if the font may be commonly knows as "ITC Franklin Gothic LT Book Condensed" it's not the correct internal name you can use in your SSA/ASS script. It's a general name, name for common people. An advanced typesetter needs to know how to check the correct internal font name, because that is the only name SSA/ASS will recognize. And I alreaady told you how.
foxyshadis
29th December 2006, 03:51
The obvious solution is to use comic sans and arial on all your subs, of course.
:p
Here's the patch to fix the crash:
Index: filters/transform/vsfilter/DirectVobSub.cpp
===================================================================
--- filters/transform/vsfilter/DirectVobSub.cpp (revision 611)
+++ filters/transform/vsfilter/DirectVobSub.cpp (working copy)
@@ -231,9 +231,9 @@
if(lf)
{
if(lflen == sizeof(LOGFONTA))
- strcpy(((LOGFONTA*)lf)->lfFaceName, CStringA(m_defStyle.fontName));
+ strncpy_s(((LOGFONTA*)lf)->lfFaceName, LF_FACESIZE, CStringA(m_defStyle.fontName), _TRUNCATE);
else if(lflen == sizeof(LOGFONTW))
- wcscpy(((LOGFONTW*)lf)->lfFaceName, CStringW(m_defStyle.fontName));
+ wcsncpy_s(((LOGFONTW*)lf)->lfFaceName, LF_FACESIZE, CStringW(m_defStyle.fontName), _TRUNCATE);
else
return E_INVALIDARG;
Index: subtitles/STS.cpp
===================================================================
--- subtitles/STS.cpp (revision 611)
+++ subtitles/STS.cpp (working copy)
@@ -2957,7 +2957,7 @@
LOGFONTA& operator <<= (LOGFONTA& lfa, STSStyle& s)
{
lfa.lfCharSet = s.charSet;
- strcpy_s(lfa.lfFaceName, CStringA(s.fontName));
+ strncpy_s(lfa.lfFaceName, LF_FACESIZE, CStringA(s.fontName), _TRUNCATE);
HDC hDC = GetDC(0);
lfa.lfHeight = -MulDiv((int)(s.fontSize+0.5), GetDeviceCaps(hDC, LOGPIXELSY), 72);
ReleaseDC(0, hDC);
@@ -2971,7 +2971,7 @@
LOGFONTW& operator <<= (LOGFONTW& lfw, STSStyle& s)
{
lfw.lfCharSet = s.charSet;
- wcscpy_s(lfw.lfFaceName, CStringW(s.fontName));
+ wcsncpy_s(lfw.lfFaceName, LF_FACESIZE, CStringW(s.fontName), _TRUNCATE);
HDC hDC = GetDC(0);
lfw.lfHeight = -MulDiv((int)(s.fontSize+0.5), GetDeviceCaps(hDC, LOGPIXELSY), 72);
ReleaseDC(0, hDC);
The problem came down to Microsoft's new "secure" strcpy functions not actually working the way Microsoft tells everyone they should. So they got replaced with MS's reimplementation of strlcpy, instead.
Good news! GDI is smart enough to figure out the correct font, even if the name gets truncated. (Unless you have multiple fonts that start with the same 31 letters, of course.) It's quite possible that in the meantime, you can just chop everything after 31 letters off and it won't crash, if you don't want to bother finding the internal GDI name. Try it!
Isochroma
29th December 2006, 03:57
@foxyshadis: wow you're fast! I'll try it ASAP when a new build comes out (sorry I'm not set up to do building from source code :()
Liisachan
29th December 2006, 05:54
Thanks for sending me the font as PM. This is what the font mapper on my win 2k recognizes:
Full Name=ITC Franklin Gothic LT Book Condensed: CharSet=0 (Western): lfFaceName=ITCFranklinGothic LT BookCn
Full Name=ITC Franklin Gothic LT Book Condensed: CharSet=161 (Greek): lfFaceName=ITCFranklinGothic LT BookCn
I think you can just use lfFaceName, without doing any hack.
http://ffdshow.faireal.net/tmp/sometext.png
Style: SomeStyle,ITCFranklinGothic LT BookCn,36,&H00ffffff,0,0,0,0,0,0,0,100,100,0,0.00,1,1,1,2,20,20,15,0
Dialogue: 0,0:00:01.00,0:00:06.00,SomeStyle,Someone,0000,0000,0000,,Some text goes here. Is this what you want?
Some of info directly taken from the font file, not via win api:
Font Family name : ITCFranklinGothic LT BookCn
Postscript name : FranklinGothicLT-BookCnd
Unique font identifier : Linotype Library GmbH: ITC Franklin Gothic LT Book Condensed: 2002
Full font name : ITC Franklin Gothic LT Book Condensed
The windows font mapper happens to say CharSet=0 or 161, but actually the version of the OS/2 table is 0, not having CharSet info. In such a situation, I'd recommend encoding=1 (DEFAULT_CHARSET) instead of 0 (ANSI_CHARSET) even if the actual CharSet is 0.
Style: SomeStyle,ITCFranklinGothic LT BookCn,36,&H00ffffff,0,0,0,0,0,0,0,100,100,0,0.00,1,1,1,2,20,20,15,0
Style: SomeStyle,ITCFranklinGothic LT BookCn,36,&H00ffffff,0,0,0,0,0,0,0,100,100,0,0.00,1,1,1,2,20,20,15,1
Isochroma
29th December 2006, 05:57
Thanks!
MoFoQ
30th December 2006, 03:26
man this thread's huge....
if only there was a separate category/forum for MPC stuff...
found a bug in 6.4.9.0 in XP (SP2-Pro).
It seems to happen when I set the "change full screen resolution" setting and have the deinterlace shader on.
When it changes the mode with the shader enabled, MPC will crash.
Also, is there a command-line switch to enable specific shaders by default?
Keepitsimple
22nd January 2007, 00:09
Hi, Is there any way to set lanczos resizing within mpc? Its possible with ffdshow. But sometimes I want to use a different decoder than ffdshow but still resize with lanczos.
Goras
2nd February 2007, 12:57
What's the "VMR 9 mixer mode" option for? If I have that option set, mpc drops a lot of frames / second in some vids.
I'm using VMR-9, on a AMD64 X2 4200+, 7900gt
Could it be my video drivers?
foxyshadis
2nd February 2007, 13:24
Drivers tend to be the source of such a problem, but it's hard to say. All the option does is reduce cpu/memory usage on the system and the card by doing some things in-place (and in yuv mode if chosen), normally improving performance to sacrifice a few features, but apparently not in your case.
Goras
2nd February 2007, 13:37
As I said, the system performance is more than enough, cpu is as high as 5% when playing those files.
Px
3rd February 2007, 03:20
Feature request - could you add ability to log displayed statistics (Ctrl+4) to external file?
*Bump*
aydc
9th February 2007, 17:00
Bug Report: When playing full screen, if user switches to another application using Alt+Tab, fullscreen status is lost.
This irritates me because sometimes I want to check something out in another program quickly and come back to MPC, but because of this bug I have to go fullscreen again manually everytime.
Liisachan
9th February 2007, 17:32
An application in the full-screen mode once has to exit from the full-screen mode in order for another app to be foreground. So that behavior is inevitable, and I assume that yours is a feature request "When another app gets focus when MPC is in the full-screen mode, I'd like MPC automatically to re-enter into the full-screen mode when it regains the focus." I'm not sure if that is really a good idea, but I understand your needs as well.
Clammerz
11th February 2007, 16:08
Not always.
When you change focus by clicking on a second (or third, etc) monitor sometimes MPC doesn't lose focus.
Also, there are many applications that do not exit full screen status when alt-tabbed. I am another who thinks this would be a neat idea.
Lastly, I didn't realise it when I posted a couple of days ago, but this seems to be a 'generic' MPC bug report thread?
If so, I hope it's not too much trouble for me to link to my 'problem' thread: http://forum.doom9.org/showthread.php?t=122032
Regarding the inbult MPEG splitter, and subtitle stream handling.
Thanks for your time.
celtic_druid
11th February 2007, 19:23
People should be aware that there is basically no one to implement all this stuff.
clsid
2nd March 2007, 19:53
The last change to MPC was 9 months ago. So it is possible there will never be a next version.
_xxl
2nd March 2007, 20:16
Maybe a new mpc fork is needed.
Any volunteers?
tekNerd
2nd March 2007, 20:37
If I had the skills...
God, I hope my next life You don't forget me.
chros
3rd March 2007, 10:47
If I had the skills...
God, I hope my next life You don't forget me.
Me, too ... :)
And it's a shame, that here is one of the best DS player (if not the best), AND it's opensource, and there isn't anybody who want to help Gabest in the whole world ... :(
There was somebody: shultz, but it seems to finish his work too...
HeadBangeR77
3rd March 2007, 14:09
And it's a shame, that here is one of the best DS player (if not the best), AND it's opensource, and there isn't anybody who want to help Gabest in the whole world ... :(
There was somebody: shultz, but it seems to finish his work too...
The problem is that Gabest has dropped the development completely, AFAIK, so someone would have to take the whole project, instead of just helping.
The latest compilation:
http://forum.doom9.org/showthread.php?p=965213#post965213
:D
Netuser
3rd March 2007, 21:05
Hello,
I am using Vista and with MPC i am having a problem (smae as one perosn posted 4 page back) MPC is not disabling screensaver (display screen off) while in Full screen mode. It is very annoying as I am on a laptop and i have to all the time change power settings. Dose anyone know how to fix this ?
thanks for your help
Hans Ohlo
4th March 2007, 10:55
i am sad to hear that mpc is basicly dead. with vista there are some issues i thought would be fixed but now i think i have to look out for another media player.
p.s. does anyone have a clue why vista media center opens avis with ac3 sound and stays at the first frame (i.e. does not play them, but opens them). i installed the latest avisplitter, avi2ac3filter and use ffdshow for audio decoding. strange thing is that in mpc these files play fine with the same filters used?
Elias
13th April 2007, 02:54
The problem is that Gabest has dropped the development completely, AFAIK, so someone would have to take the whole project, instead of just helping.Why did he drop development? Why not just keep it on hold for a while?
anonymez
13th April 2007, 03:18
It's not dead, just my current work does't really let me to continue it.
http://sourceforge.net/forum/forum.php?thread_id=1690818&forum_id=281014
Elias
13th April 2007, 12:11
It's not dead, just my current work does't really let me to continue it.Well that's a relief.
mariner
25th April 2007, 16:36
EVR support in XP
Tried the Enhanced Video Renderer (EVR) in KMPlayer recently, and to my surprise it actually worked under XP SP2. 1920x1080 60fps clips ran smoothly, although support for DXVA may be lacking.
EVR worked in Graphedit as well, but not in MPC. There was no video when EVR filter was selected as preferred external filter.
Celtic druid posted a patched version with EVR support some time ago, but the link no longer works. Not sure if it was for Vista, but would appreciate if anyone could repost, or look into doing a new version that runs under XP.
Thank you.
clsid
25th April 2007, 21:47
That patched version didn't work afaik.
KoD
26th April 2007, 09:59
And how does one get EVR under XP ? Are you sure the system hasn't simply build the graph with something else instead of EVR under XP ?
iron2000
26th April 2007, 15:11
Is it possible to change the seek bar, volume button icon and volume slider?
Tried to find them using Resource Hacker but it doesn't seem editable with it.
jffulcrum
5th May 2007, 11:02
Bsplayer also support EVR in XP. Processor usage lower by 5% compared to Overlay Mixer even on SD content in my 4 years old system. But both KMPlayer and BSPlayer use some "secret" for getting EVR work, since in graphedit no picture shown, as in MPC. It`s not depend on colour space type, changes in decoders result nothing.
@jffulcrum and @KoD
EVR comes with .NET3.0 installation, but the renderer is not registered during installation. the file is at %windir%/system32/evr.dll . Use regsvr32.exe to register the file. evr works in graphedit build 061030 (directx10). probably does not work in MPC because it must require additional support from mpc to render anything, like calls or parameters. :confused:
@jffulcrum and @KoD
EVR comes with .NET3.0 installation, but the renderer is not registered during installation. the file is at %windir%/system32/evr.dll . Use regsvr32.exe to register the file. evr works in graphedit build 061030 (directx10).
Yeah, it sure doesn't work with the DirectX 9 Graphedit (060304) contained in the Windows Server 2003 R2 Platform SDK I'm using...
Where did you get the newer Graphedit from? I though it was no longer a part of the DirectX SDK? (Ugh... let me guess - the Windows Vista Platform SDK? *goes off to download it*)
np: Pole - Arena (Feat. Fat Jon) (Sónar De Día)
jffulcrum
5th May 2007, 13:44
Kado
I know about regsvr32 command, registering doesn`t help. All that do registration of EVR.dll is possibility to call EVR by GUID. Bsplayer can use them without registration, by call to DLL probably.
@jffulcrum
Kado
I know about regsvr32 command, registering doesn`t help.
Well, I didn't say that by registering would work for MPC, additional code must be necessary for MPC to support EVR. Works in dx10 graphedit though.
@Leak
The Windows Vista Platform SDK is huge, so after some googling I found the dx10 graphedit (I don't know the link) and have it in my pc if you need it.
@Leak
The Windows Vista Platform SDK is huge, so after some googling I found the dx10 graphedit (I don't know the link) and have it in my pc if you need it.
Too late now - 8MBit cable makes the download take 20 minutes if MS's servers cooperate... :D (Then again, I haven't installed this sucker yet...)
But maybe you should zip it up anyway and send it to Doom9 - the graphedit download on the download page is from 2004... :eek:
np: RJD2 - Have Mercy (The Third Hand)
celtic_druid
5th May 2007, 18:29
That would be Akamai's server, not MS'. For instance for me anything from download.microsoft.com comes down through an iinet.net.au (local ISP) server via pipe (local peering company).
Too late now - 8MBit cable makes the download take 20 minutes if MS's servers cooperate... :D (Then again, I haven't installed this sucker yet...)
But maybe you should zip it up anyway and send it to Doom9 - the graphedit download on the download page is from 2004... :eek:
8Mbit cable rules right?:D
How can I provide the graphedit to doom9?
Anyway graphedit is acting weird now, when I expand the directshow filters it just closes! I can only use the filters I added to the favorites.
molitar
4th August 2007, 19:13
Does anyone know how to get the current position with Mediaplayer Classic using javascript? I'm using a remote control software and trying to configure an OSD display but I have had no luck getting it to work with commands like CurrentPosition, GetCurrentPosition, SeekTime, Time, all are unrecognised.. Even FileName was not known but I did figure out Name worked as filename normally would.
Leak
4th August 2007, 22:01
Does anyone know how to get the current position with Mediaplayer Classic using javascript? I'm using a remote control software and trying to configure an OSD display but I have had no luck getting it to work with commands like CurrentPosition, GetCurrentPosition, SeekTime, Time, all are unrecognised.. Even FileName was not known but I did figure out Name worked as filename normally would.
Errr... why JavaScript? You can either control MPC via HTTP, or via window messages - where does JavaScript come in here?
Also, :script: that didn't work... what are "CurrentPosition", "GetCurrentPosition" etc. and where did you get those?
np: Retina.IT - Pick (Semeion)
molitar
5th August 2007, 00:04
Errr... why JavaScript? You can either control MPC via HTTP, or via window messages - where does JavaScript come in here?
Also, :script: that didn't work... what are "CurrentPosition", "GetCurrentPosition" etc. and where did you get those?
np: Retina.IT - Pick (Semeion)
I am using a remote control software called UICE and since mpc doesn't have a direct method to show OSD for the current position, length, ect... I decided to use the remote software to show it. With UICE I can do a little javascript that can ask for this data than show with an OSD command. In the old MediaPlayer 6.4 their is a script that does pos=wmp.CurrentPos; to retrieve the current position of the file playing. But it seems this basic command is missing or been renamed in MPC. Part of the code below...
title="";
if (wmp.HasMultipleItems) title=wmp.GetMediaInfoString(8);
if (title=="")
{
title=wmp.Name;
if (title.lastIndexOf("\\")!=-1) title=title.substr(title.lastIndexOf("\\")+1);
if (title.lastIndexOf(".")!=-1) title=title.substr(0,title.lastIndexOf("."));
}
len=0;
if (wmp.IsDurationValid)
{
len=wmp.Duration;
lenhours=Math.floor(len/3600);
lenmins=Math.floor(len%3600/60);
lensecs=Math.floor(len%60);
lenstr=lenhours+":"+(lenmins<10?"0"+lenmins:lenmins)+":"+(lensecs<10?"0"+lensecs:lensecs);
}
pos=wmp.CurrentPosition;
poshours=Math.floor(pos/3600);
posmins=Math.floor(pos%3600/60);
possecs=Math.floor(pos%60);
posstr=poshours+":"+(posmins<10?"0"+posmins:posmins)+":"+(possecs<10?"0"+possecs:possecs);
if (len)
{
pos=100/len*pos;
OSD.Show(osdProgress,posstr+" ("+lenstr+") "+title,pos);
} else Alert(posstr+"\n"+title);
Leak
5th August 2007, 02:43
In the old MediaPlayer 6.4 their is a script that does pos=wmp.CurrentPos; to retrieve the current position of the file playing. But it seems this basic command is missing or been renamed in MPC.
Errr... Media Player 6.4 is an old Microsoft product, while Media Player Classic was written from scratch with a user interface similar to that of Media Player 6.4 - that's all.
So whatever was possible with Media Player 6.4 isn't automatically possible with MPC.
molitar
5th August 2007, 03:37
Errr... Media Player 6.4 is an old Microsoft product, while Media Player Classic was written from scratch with a user interface similar to that of Media Player 6.4 - that's all.
So whatever was possible with Media Player 6.4 isn't automatically possible with MPC.
That is what I assumed with the filename being changed to name. But I need to know how to get the current position with MPC. I was not able to find any of the wm_commands for MPC at all.
Leak
5th August 2007, 11:44
That is what I assumed with the filename being changed to name. But I need to know how to get the current position with MPC. I was not able to find any of the wm_commands for MPC at all.
How about posting all the code, especially the part where you assign something to wmp? And still, I very much doubt MPC does anything like Media Player, so this is just not going to work...
foxyshadis
5th August 2007, 13:35
The only thing I found that might be it is "pos", but it's a large project and I'm sure I'm just not looking in the right place. A full script would definitely help.
molitar
5th August 2007, 17:59
The only thing I found that might be it is "pos", but it's a large project and I'm sure I'm just not looking in the right place. A full script would definitely help.
That is the entire script. Basically it shows the title and should show the time and duration of the video file. Well would of CurrentPosition was a recognised command.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.