view DOCS/CODECS @ 237:77460b51c9c1

finished DirectShow audio code
author arpi_esp
date Wed, 28 Mar 2001 21:45:12 +0000
parents 2a94614c1d51
children d734e84b4eea
line wrap: on
line source


Status of codecs support:
=========================

If you have sample files for untested codecs, or want a new codec to be
added, contact us! (for new codecs we need the DLL/AX file and a sample AVI)

Video codecs:
~~~~~~~~~~~~~
Built-in native codecs:

- MPEG 1/2 (no fourcc)
  libmpeg2: works, YUV (YV12) supported, with optional postprocessing!!!
- OpenDivX (DIV1,DIVX)
  decore:  works, YUV (YV12) supported, postprocessing supported

Fully functional Win32 VfW/DShow codecs:

- M$ MPEG4 v1, v2 (MPG4,MP42):
  mpg4c32.dll: works, YUV supported.
- M$ MPEG4 v3 / DivX ;-)  (MP43,DIV3,DIV4,DIV5,DIV6)
  divxc32.dll: works, YUV supported.
  divx_c32.ax: works, YUV and postprocessing supported.
- Indeo Video 5.0:  (IV50)
  ir50_32.dll (VfW): works, YUV supported.
  ir50_32.dll (DShow): not tested
- Cinepak Video:  (CVID)
  iccvid.dll: works, YUV supported.
- Microsoft Video v1.0 (CRAM)
  msvidc32.dll: works, no YUV
- ATI VCR-2:  (VCR2)
  ativcr2.dll: works, YUV supported
- Motion JPEG (MJPG)
  m3jpeg32.dll: can't load (segfault)
  mcmjpg32.dll: works, YUV supported
- Windows Media Video 7 (WMV1)
  wmvds32.ax: works, YUV supported

Problems:

- Indeo Video 4.1:  (IV41)
  ir41_32.dll: works, no YUV, image upside-down
- Indeo Video 3.2:  (IV32)
  ir32_32.dll: works, no YUV, image upside-down
- ASUS ASV1: (ASV1)
  asusasvd.dll: ??? not tested
- ASUS ASV2: (ASV2)
  asusasv2.dll: loads, image upside-down and very pixelized (no YUY2, but YVYU)
- ATI VCR1:  (VCR1)
  ativcr1.dll: can't load (16-bit DLL)
- I263:  (I263)
  i263_32.drv: segfault
- TrueMotion 2.0:  (TM20)
  tm20dec.ax: segfault

Not tested:

- Motion Wavelets: (MVW1)
  icmw_32.dll: not tested (no sample file)
- Indeo Video 3.1:  (IV31)
  ir32_32.dll: not tested (no sample file)
- AngelPotion MPEG-4: (AP41,AP42)
  APmpg4v1.dll: not tested
- Windows Media Video 8 (WMV2)
  wmv8ds32.ax: not tested (no sample file)
- DV - Sony Digital Video (dvsd)
  qdv.dll: not tested
  

Audio codecs:
~~~~~~~~~~~~~
Built-in native codecs:

- Uncompressed PCM (0)
- MPEG layer 2 and 3:  (0x50, 0x55)
  mp3lib, based on mpg123  (sometimes segfaults, then use ACM, see below)
- AC3:  (0x2000)
  libac3
- aLaw audio: (6)
  aLaw codec from xanim sources
- MS-GSM: (0x31,0x32)
  xa_gsm from avifile sources

Fully functional Win32 ACM/DShow codecs:

- Windows Media Audio / DivX audio (0x160, 0x161)
  divxa32.acm: works
- MS ADPCM (0x2)
  msadp32.acm: works
- MPEG layer 3:  (0x55)
  l3codeca.acm: works  (or you can use the built-in 3dnow-optimized codec)

Problems:

- IMA ADPCM (0x11)
  imaadp32.acm: segfault
- MS-GSM: (0x31,0x32)
  msgsm32.acm: segfault  (use built-in codec)
- VoxWare Metasound: (0x75)
  voxmsdec.ax: segfault

Not tested:

- ACELP.net: (0x130)
  acelpdec.ax: not tested (no sample file)
- IMC:  (0x401)
  imc32.acm: not tested (no sample file)

Extracting codecs from Win32
============================

1. VfW
~~~~~~
  VfW (Video for Windows) is the old Video API for Windows. Its codecs have
the .DLL or (rarely) .DRV extension.
If MPlayer fails with your AVI:

        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 we know this, we'll
have to find out which DLL Windows loads in order to play this file. In our
case, the system.ini contains this (with many others):
        VIDC.HFYU=huffyuv.dll
So we'll need the huffyuv.dll file. Note that the audio codecs are specified
with the MSACM prefix :
	msacm.l3acm=L3codeca.acm
This is the MP3 codec.

So, now we have all the info needed (fourcc, codec file, sample AVI), submit a
bugreport, and upload the files to thot.banki.hu/incoming/MPlayer
(also see DOCS/README !!!) .

2. DirectShow
~~~~~~~~~~~~~
  DirectShow is the newer Video API, which is even worse than its predecessor.
Things are harder with DirectShow, since
 - system.ini doesn't contain the needed information, instead it's stored in
   the registry :(
 - we'll need the GUID of the codec.

  So let's search that goddamn registry..
 - Start 'regedit'
 - press ctrl-f, disable the first two checkbox, and enable the third. Type
the fourcc of the codec. (for ex.: TM20)
 - you should see a field which contains the path and filename
   (for ex. : C:\WINDOWS\SYSTEM\TM20DEC.AX)
 - now that we have the file, we'll need the GUID. Try searching again, but
now we'll search for the codec's name, not the fourcc. Its name can be acquired
when Media Player is playing that file, by checking File/Properties/Advanced.
If not, bad luck ;) Try guessing.
   (for ex. search for : TrueMotion)
 - if found (in registry), there should be a FriendlyName field, and a CLSID
field. Write down that 16 byte of CLSID.

NOTE : if searching fails, try to enable all the checkboxes.. you may have
       false hits, but maybe you'll have the right, too...
NOTE : dump that M$ shit.

So, now we have all the info needed (fourcc, GUID, codec file, sample AVI),
submit a bugreport, and upload the files to thot.banki.hu/incoming/MPlayer
(also see DOCS/README !!!) .



	Gabucino & A'rpi