Convert Win32 codec importing HOWTO into a text document in the tech section.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28203 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
diego 2008-12-27 14:38:42 +00:00
parent 0f62db895e
commit 66d42f0df4
3 changed files with 91 additions and 160 deletions

View File

@ -0,0 +1,87 @@
============================
Win32 codecs importing HOWTO
============================
This document describes how to extract the information necessary to hook
up Win32 binary codecs in MPlayer from a Windows system. Different methods
exist depending on which video API your codec uses and which Windows
version you have.
If you have gathered all the necessary information (fourcc, GUID, codec file,
sample file) as described below, notify the mplayer-dev-eng mailing list.
If you want to add a codec yourself, read DOCS/tech/codecs.conf.txt.
VFW codecs
~~~~~~~~~~
VFW (Video for Windows) is the old video API for Windows. Its codecs have
the '.dll' or (rarely) '.drv' extension. If MPlayer fails at playing your
AVI with this kind of message:
UNKNOWN video codec: HFYU (0x55594648)
It means your AVI is encoded with a codec which has the HFYU fourcc (HFYU =
HuffYUV codec, DIV3 = DivX Low Motion, etc.). Now that you know this, you
have to find out which DLL Windows loads in order to play this file. In our
case, the 'system.ini' contains this information in a line that reads:
VIDC.HFYU=huffyuv.dll
So you need the 'huffyuv.dll' file. Note that the audio codecs are
specified by the MSACM prefix:
msacm.l3acm=L3codeca.acm
This is the MP3 codec.
DirectShow codecs:
~~~~~~~~~~~~~~~~~~
DirectShow is the newer video API, which is even worse than its predecessor.
Things are harder with DirectShow, since 'system.ini' does not contain the
needed information, instead it is stored in the registry and we need the
GUID of the codec.
New Method:
-----------
Using Microsoft GraphEdit (fast)
- Get GraphEdit from either DirectX SDK or doom9.
- Start 'graphedit.exe'.
- From the menu select "Graph -> Insert Filters".
- Expand item "DirectShow Filters".
- Select the right codec name and expand item.
- In the entry "DisplayName" look at the text in winged brackets after the
backslash and write it down (five dash-delimited blocks, the GUID).
- The codec binary is the file specified in the "Filename" entry.
If there is no "Filename" and "DisplayName" contains something like
'device:dmo', then it is a DMO-Codec.
Old Method:
-----------
Take a deep breath and start searching the registry...
- Start 'regedit'.
- Press "Ctrl-F", disable the first two checkboxes, and enable the third.
Type in the fourcc of the codec (e.g. "TM20").
- You should see a field which contains the path and the filename (e.g.
"C:\WINDOWS\SYSTEM\TM20DEC.AX").
- Now that you have the file, we need the GUID. Try searching again, but
now search for the codec's name, not the fourcc. Its name can be acquired
when Media Player is playing the file, by checking
"File -> Properties -> Advanced".
If not, you are out of luck. Try guessing (e.g. search for TrueMotion).
- If the GUID is found you should see a "FriendlyName" and a "CLSID" field.
Write down the 16 byte CLSID, this is the GUID we need.
If searching fails, try enabling all the checkboxes. You may have
false hits, but you may get lucky...

View File

@ -12,8 +12,8 @@ of our homepage.
</para>
<para>
If you have a Win32 codec which is not supported yet,
please read the <link linkend="codec-importing">codec importing HOWTO</link>
If you have a Win32 codec which is not supported yet, please read the
<ulink url="../../tech/win32-codec-howto">Win32 codec HOWTO</ulink>
and help us add support for it.
</para>
@ -96,161 +96,4 @@ only white noise).
</sect1>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect1 id="codec-importing">
<title>Win32 codecs importing HOWTO</title>
<!-- TODO: a short paragraph of text would be nice here... -->
<sect2 id="vfw-codecs">
<title>VFW codecs</title>
<para>
VFW (Video for Windows) is the old Video API for Windows. Its codecs have
the <filename>.DLL</filename> or (rarely) <filename>.DRV</filename>
extension. If <application>MPlayer</application> fails at playing your AVI
with this kind of message:
<screen>UNKNOWN video codec: HFYU (0x55594648)</screen>
It means your AVI is encoded with a codec which has the HFYU fourcc (HFYU =
HuffYUV codec, DIV3 = DivX Low Motion, etc.). Now that you know this, you
have to find out which DLL Windows loads in order to play this file. In our
case, the <filename>system.ini</filename> contains this information in a
line that reads:
<programlisting>VIDC.HFYU=huffyuv.dll</programlisting>
</para>
<para>
So you need the <filename>huffyuv.dll</filename> file. Note that the audio
codecs are specified by the MSACM prefix:
<programlisting>msacm.l3acm=L3codeca.acm</programlisting>
</para>
<para>
This is the MP3 codec. Now that you have all the necessary information
(fourcc, codec file, sample AVI), submit your codec support request by
mail, and upload these files to the FTP site:
<systemitem role="url">ftp://upload.mplayerhq.hu/MPlayer/incoming/<replaceable>&lt;codecname&gt;</replaceable>/</systemitem>
</para>
<note><para>
On Windows NT/2000/XP search for this info in the registry,
e.g. search for "VIDC.HFYU". To find out how to do this, look at
the old DirectShow method below.
</para></note>
</sect2>
<!-- ********** -->
<sect2 id="dshow-codecs">
<title>DirectShow codecs</title>
<para>
DirectShow is the newer Video API, which is even worse than its predecessor.
Things are harder with DirectShow, since
<itemizedlist>
<listitem><para>
<filename>system.ini</filename> does not contain the needed information,
instead it is stored in the registry and
</para></listitem>
<listitem><para>
we need the GUID of the codec.
</para></listitem>
</itemizedlist>
</para>
<procedure>
<title>New Method:</title>
<para>
Using <application>Microsoft GraphEdit</application> (fast)
</para>
<step><para>
Get <application>GraphEdit</application> from either DirectX SDK or
<ulink url="http://doom9.net">doom9</ulink>.
</para></step>
<step><para>
Start <command>graphedit.exe</command>.
</para></step>
<step><para>
From the menu select
<menuchoice><guimenu>Graph</guimenu>
<guisubmenu>Insert Filters</guisubmenu></menuchoice>.
</para></step>
<step><para>
Expand item <systemitem>DirectShow Filters</systemitem>.
</para></step>
<step><para>
Select the right codec name and expand item.
</para></step>
<step><para>
In the entry <systemitem>DisplayName</systemitem> look at the text in
winged brackets after the backslash and write it down (five dash-delimited
blocks, the GUID).
</para></step>
<step><para>
The codec binary is the file specified in the
<systemitem>Filename</systemitem> entry.
</para></step>
</procedure>
<note><para>
If there is no <systemitem>Filename</systemitem> and
<systemitem>DisplayName</systemitem> contains something like
<systemitem>device:dmo</systemitem>, then it is a DMO-Codec.
</para></note>
<procedure>
<title>Old Method:</title>
<para>
Take a deep breath and start searching the registry...
</para>
<step><para>
Start <command>regedit</command>.
</para></step>
<step><para>
Press <keycombo><keycap>Ctrl</keycap><keycap>F</keycap></keycombo>, disable
the first two checkboxes, and enable the third. Type in the fourcc of the
codec (e.g. <userinput>TM20</userinput>).
</para></step>
<step><para>
You should see a field which contains the path and the filename (e.g.
<filename>C:\WINDOWS\SYSTEM\TM20DEC.AX</filename>).
</para></step>
<step><para>
Now that you have the file, we need the GUID. Try searching again, but
now search for the codec's name, not the fourcc. Its name can be acquired
when Media Player is playing the file, by checking
<menuchoice><guimenu>File</guimenu> <guisubmenu>Properties</guisubmenu>
<guimenuitem>Advanced</guimenuitem></menuchoice>.
If not, you are out of luck. Try guessing (e.g. search for TrueMotion).
</para></step>
<step><para>
If the GUID is found you should see a <guilabel>FriendlyName</guilabel>
and a <guilabel>CLSID</guilabel> field. Write down the 16 byte CLSID,
this is the GUID we need.
</para></step>
</procedure>
<note><para>
If searching fails, try enabling all the checkboxes. You may have
false hits, but you may get lucky...
</para></note>
<para>
Now that you have all the necessary information (fourcc, GUID, codec file,
sample AVI), submit your codec support request by mail, and upload these files
to the FTP site:
<systemitem role="url">ftp://upload.mplayerhq.hu/MPlayer/incoming/<replaceable>&lt;codecname&gt;</replaceable>/</systemitem>
</para>
<para>
If you want to add a codec yourself, read
<ulink url="http://www.mplayerhq.hu/MPlayer/DOCS/tech/codecs.conf.txt">DOCS/tech/codecs.conf.txt</ulink>.
</para>
</sect2>
</sect1>
</chapter>

View File

@ -236,7 +236,8 @@ I have problems playing files with the ... codec. Can I use them?
Check the <ulink url="../../codecs-status.html">codec status</ulink>,
if it doesn't contain your codec, read the
<link linkend="codecs">codec documentation</link>, especially the
<link linkend="codec-importing">codec importing HOWTO</link> and contact us.
<ulink url="../../tech/win32-codec-howto">Win32 codec HOWTO</ulink>
and contact us.
</para></answer>
</qandaentry>