library:
@multitable @columnfractions .4 .1 .1 .4
-@item Supported File Format @tab Encoding @tab Decoding @tab Comments
-@item MPEG audio @tab X @tab X
-@item MPEG-1 systems @tab X @tab X
-@tab muxed audio and video
-@item MPEG-2 PS @tab X @tab X
-@tab also known as @code{VOB} file
-@item MPEG-2 TS @tab @tab X
-@tab also known as DVB Transport Stream
-@item ASF@tab X @tab X
-@item AVI@tab X @tab X
-@item WAV@tab X @tab X
-@item Macromedia Flash@tab X @tab X
-@item AVM2 (Flash 9) @tab X @tab X
-@tab Only embedded audio is decoded.
-@item FLV @tab X @tab X
-@tab Macromedia Flash video files
-@item Real Audio and Video @tab X @tab X
-@item Raw AC3 @tab X @tab X
-@item Raw MJPEG @tab X @tab X
-@item Raw MPEG video @tab X @tab X
-@item Raw PCM8/16 bits, mulaw/Alaw@tab X @tab X
-@item Raw CRI ADX audio @tab X @tab X
-@item Raw Shorten audio @tab @tab X
-@item SUN AU format @tab X @tab X
-@item NUT @tab X @tab X @tab NUT Open Container Format
-@item QuickTime @tab X @tab X
-@item MPEG-4 @tab X @tab X
-@tab MPEG-4 is a variant of QuickTime.
-@item Raw MPEG4 video @tab X @tab X
-@item DV @tab X @tab X
-@item 4xm @tab @tab X
-@tab 4X Technologies format, used in some games.
-@item Playstation STR @tab @tab X
-@item Id RoQ @tab X @tab X
-@tab Used in Quake III, Jedi Knight 2, other computer games.
-@item Interplay MVE @tab @tab X
-@tab Format used in various Interplay computer games.
-@item WC3 Movie @tab @tab X
-@tab Multimedia format used in Origin's Wing Commander III computer game.
-@item Sega FILM/CPK @tab @tab X
-@tab Used in many Sega Saturn console games.
-@item Westwood Studios VQA/AUD @tab @tab X
-@tab Multimedia formats used in Westwood Studios games.
-@item Id Cinematic (.cin) @tab @tab X
-@tab Used in Quake II.
-@item FLIC format @tab @tab X
-@tab .fli/.flc files
-@item Sierra VMD @tab @tab X
-@tab Used in Sierra CD-ROM games.
-@item Sierra Online @tab @tab X
-@tab .sol files used in Sierra Online games.
-@item Matroska @tab X @tab X
-@item Electronic Arts Multimedia @tab @tab X
-@tab Used in various EA games; files have extensions like WVE and UV2.
-@item MAXIS EA XA @tab @tab X
-@tab Used in Sim City 3000; file extension .xa.
-@item Nullsoft Video (NSV) format @tab @tab X
-@item ADTS AAC audio @tab X @tab X
-@item Creative VOC @tab X @tab X @tab Created for the Sound Blaster Pro.
-@item American Laser Games MM @tab @tab X
-@tab Multimedia format used in games like Mad Dog McCree
-@item AVS @tab @tab X
-@tab Multimedia format used by the Creature Shock game.
-@item Smacker @tab @tab X
-@tab Multimedia format used by many games.
-@item GXF @tab X @tab X
-@tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley playout servers.
-@item CIN @tab @tab X
-@tab Multimedia format used by Delphine Software games.
-@item MXF @tab @tab X
-@tab Material eXchange Format SMPTE 377M, used by D-Cinema, broadcast industry.
-@item SEQ @tab @tab X
-@tab Tiertex .seq files used in the DOS CDROM version of the game Flashback.
-@item DXA @tab @tab X
-@tab This format is used in non-Windows version of Feeble Files game and
-different game cutscenes repacked for use with ScummVM.
-@item THP @tab @tab X
-@tab Used on the Nintendo GameCube.
-@item C93 @tab @tab X
-@tab Used in the game Cyberia from Interplay.
-@item Bethsoft VID @tab @tab X
-@tab Used in some games from Bethesda Softworks.
-@item CRYO APC @tab @tab X
-@tab Audio format used in some games by CRYO Interactive Entertainment.
-@item Monkey's Audio @tab @tab X
-@item SIFF @tab @tab X
-@tab Audio and video format used in some games by Beam Software
-@item LMLM4 @tab @tab X
-@tab Used by Linux Media Labs MPEG-4 PCI boards
-@item PVA @tab @tab X
-@tab Used by TechnoTrend DVB PCI boards
-@item MSN TCP Webcam @tab @tab X
-@tab Used by MSN Messenger Webcam streams.
-@item RL2 @tab @tab X
-@tab Audio and video format used in some games by Entertainment Software Partners
-@item IFF @tab @tab X
-@tab Interchange File Format
-@item BFI @tab @tab
-@tab Brute Force & Ignorance, used in Flash Traffic: City of Angels
+@item Name @tab Encoding @tab Decoding @tab Comments
+@item 4xm @tab @tab X
+ @tab 4X Technologies format, used in some games.
+@item ADTS AAC audio @tab X @tab X
+@item American Laser Games MM @tab @tab X
+ @tab Multimedia format used in games like Mad Dog McCree.
+@item ASF @tab X @tab X
+@item AVI @tab X @tab X
+@item AVM2 (Flash 9) @tab X @tab X
+ @tab Only embedded audio is decoded.
+@item AVS @tab @tab X
+ @tab Multimedia format used by the Creature Shock game.
+@item Bethsoft VID @tab @tab X
+ @tab Used in some games from Bethesda Softworks.
+@item BFI @tab @tab X
+ @tab Brute Force & Ignorance, used in Flash Traffic: City of Angels.
+@item C93 @tab @tab X
+ @tab Used in the game Cyberia from Interplay.
+@item CIN @tab @tab X
+ @tab Multimedia format used by Delphine Software games.
+@item Creative VOC @tab X @tab X
+ @tab Created for the Sound Blaster Pro.
+@item CRYO APC @tab @tab X
+ @tab Audio format used in some games by CRYO Interactive Entertainment.
+@item DV @tab X @tab X
+@item DXA @tab @tab X
+ @tab This format is used in the non-Windows version of the Feeble Files
+ game and different game cutscenes repacked for use with ScummVM.
+@item Electronic Arts Multimedia @tab @tab X
+ @tab Used in various EA games; files have extensions like WVE and UV2.
+@item FLIC @tab @tab X
+ @tab .fli/.flc files
+@item FLV @tab X @tab X
+ @tab Macromedia Flash video files
+@item GXF @tab X @tab X
+ @tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
+ playout servers.
+@item id Cinematic @tab @tab X
+ @tab Used in Quake II.
+@item id RoQ @tab X @tab X
+ @tab Used in Quake III, Jedi Knight 2, other computer games.
+@item IFF @tab @tab X
+ @tab Interchange File Format
+@item Interplay MVE @tab @tab X
+ @tab Format used in various Interplay computer games.
+@item LMLM4 @tab @tab X
+ @tab Used by Linux Media Labs MPEG-4 PCI boards
+@item Matroska @tab X @tab X
+@item MAXIS EA XA @tab @tab X
+ @tab Used in Sim City 3000; file extension .xa.
+@item Monkey's Audio @tab @tab X
+@item Motion Pixels MVI @tab @tab X
+@item MOV/QuickTime @tab X @tab X
+@item MPEG audio @tab X @tab X
+@item MPEG-1 systems @tab X @tab X
+ @tab muxed audio and video
+@item MPEG-2 PS @tab X @tab X
+ @tab also known as @code{VOB} file
+@item MPEG-2 TS @tab @tab X
+ @tab also known as DVB Transport Stream
+@item MPEG-4 @tab X @tab X
+ @tab MPEG-4 is a variant of QuickTime.
+@item MSN TCP webcam @tab @tab X
+ @tab Used by MSN Messenger webcam streams.
+@item MXF @tab X @tab X
+ @tab Material eXchange Format SMPTE 377M, used by D-Cinema, broadcast industry.
+@item Nullsoft Video @tab @tab X
+@item NUT @tab X @tab X
+ @tab NUT Open Container Format
+@item OMA @tab @tab X
+ @tab Audio format used in Sony Sonic Stage and Sony Vegas.
+@item PlayStation STR @tab @tab X
+@item PVA @tab @tab X
+ @tab Used by TechnoTrend DVB PCI boards.
+@item raw AC-3 @tab X @tab X
+@item raw CRI ADX audio @tab X @tab X
+@item raw MJPEG @tab X @tab X
+@item raw MPEG video @tab X @tab X
+@item raw MPEG-4 video @tab X @tab X
+@item raw PCM 8/16/32 bits, 32/64-bit floating point, mu-law/A-law @tab X @tab X
+@item raw Shorten audio @tab @tab X
+@item RealMedia @tab X @tab X
+@item RL2 @tab @tab X
+ @tab Audio and video format used in some games by Entertainment Software Partners.
+@item Sega FILM/CPK @tab @tab X
+ @tab Used in many Sega Saturn console games.
+@item SEQ @tab @tab X
+ @tab Tiertex .seq files used in the DOS CD-ROM version of the game Flashback.
+@item Sierra Online @tab @tab X
+ @tab .sol files used in Sierra Online games.
+@item Sierra VMD @tab @tab X
+ @tab Used in Sierra CD-ROM games.
+@item SIFF @tab @tab X
+ @tab Audio and video format used in some games by Beam Software.
+@item Smacker @tab @tab X
+ @tab Multimedia format used by many games.
+@item SUN AU format @tab X @tab X
+@item THP @tab @tab X
+ @tab Used on the Nintendo GameCube.
+@item WAV @tab X @tab X
+@item WC3 Movie @tab @tab X
+ @tab Multimedia format used in Origin's Wing Commander III computer game.
+@item Westwood Studios VQA/AUD @tab @tab X
+ @tab Multimedia formats used in Westwood Studios games.
@end multitable
@code{X} means that encoding (resp. decoding) is supported.
following image formats are supported:
@multitable @columnfractions .4 .1 .1 .4
-@item Supported Image Format @tab Encoding @tab Decoding @tab Comments
-@item PGM, PPM @tab X @tab X
-@item PAM @tab X @tab X @tab PAM is a PNM extension with alpha support.
-@item PGMYUV @tab X @tab X @tab PGM with U and V components in YUV 4:2:0
-@item JPEG @tab X @tab X @tab Progressive JPEG is not supported.
+@item Name @tab Encoding @tab Decoding @tab Comments
@item .Y.U.V @tab X @tab X @tab one raw file per component
@item animated GIF @tab X @tab X @tab Only uncompressed GIFs are generated.
-@item PNG @tab X @tab X @tab 2 bit and 4 bit/pixel not supported yet.
-@item Targa @tab @tab X @tab Targa (.TGA) image format.
-@item TIFF @tab X @tab X @tab YUV, JPEG and some extension is not supported yet.
-@item SGI @tab X @tab X @tab SGI RGB image format
+@item JPEG @tab X @tab X @tab Progressive JPEG is not supported.
+@item PAM @tab X @tab X @tab PAM is a PNM extension with alpha support.
+@item PCX @tab @tab X @tab PC Paintbrush
+@item PGM, PPM @tab X @tab X
+@item PGMYUV @tab X @tab X @tab PGM with U and V components in YUV 4:2:0
+@item PNG @tab X @tab X @tab 2/4 bpp not supported yet
@item PTX @tab @tab X @tab V.Flash PTX format
@item RAS @tab @tab X @tab Sun Rasterfile
-@item PCX @tab @tab X @tab PC Paintbrush
+@item SGI @tab X @tab X @tab SGI RGB image format
+@item Targa @tab @tab X @tab Targa (.TGA) image format
+@item TIFF @tab X @tab X @tab YUV, JPEG and some extension is not supported yet.
@end multitable
@code{X} means that encoding (resp. decoding) is supported.
@section Video Codecs
@multitable @columnfractions .4 .1 .1 .4
-@item Supported Codec @tab Encoding @tab Decoding @tab Comments
-@item MPEG-1 video @tab X @tab X
-@item MPEG-2 video @tab X @tab X
-@item MPEG-4 @tab X @tab X
-@item MSMPEG4 V1 @tab X @tab X
-@item MSMPEG4 V2 @tab X @tab X
-@item MSMPEG4 V3 @tab X @tab X
-@item WMV7 @tab X @tab X
-@item WMV8 @tab X @tab X @tab not completely working
-@item WMV9 @tab @tab X @tab not completely working
-@item VC1 @tab @tab X
-@item H.261 @tab X @tab X
-@item H.263(+) @tab X @tab X @tab also known as RealVideo 1.0
-@item H.264 @tab @tab X
-@item RealVideo 1.0 @tab X @tab X
-@item RealVideo 2.0 @tab X @tab X
-@item MJPEG @tab X @tab X
-@item lossless MJPEG @tab X @tab X
-@item JPEG-LS @tab X @tab X @tab fourcc: MJLS, lossless and near-lossless is supported
+@item Name @tab Encoding @tab Decoding @tab Comments
+@item 4X Video @tab @tab X
+ @tab Used in certain computer games.
+@item American Laser Games Video @tab @tab X
+ @tab Used in games like Mad Dog McCree.
+@item AMV @tab @tab X
+ @tab Used in Chinese MP3 players.
+@item Apple Animation @tab X @tab X
+ @tab fourcc: 'rle '
+@item Apple Graphics @tab @tab X
+ @tab fourcc: 'smc '
@item Apple MJPEG-B @tab @tab X
-@item Sunplus MJPEG @tab @tab X @tab fourcc: SP5X
+@item Apple QuickDraw @tab @tab X
+ @tab fourcc: qdrw
+@item Apple Video @tab @tab X
+ @tab fourcc: rpza
+@item Asus v1 @tab X @tab X
+ @tab fourcc: ASV1
+@item Asus v2 @tab X @tab X
+ @tab fourcc: ASV2
+@item ATI VCR1 @tab @tab X
+ @tab fourcc: VCR1
+@item ATI VCR2 @tab @tab X
+ @tab fourcc: VCR2
+@item Autodesk RLE @tab @tab X
+ @tab fourcc: AASC
+@item AVID DNxHD @tab X @tab X
+ @tab aka SMPTE VC3
+@item AVS video @tab @tab X
+ @tab Video encoding used by the Creature Shock game.
+@item Bethsoft VID @tab @tab X
+ @tab Used in some games from Bethesda Softworks.
+@item C93 video @tab @tab X
+ @tab Codec used in Cyberia game.
+@item CamStudio @tab @tab X
+ @tab fourcc: CSCD
+@item Cin video @tab @tab X
+ @tab Codec used in Delphine Software games.
+@item Cinepak @tab @tab X
+@item Cirrus Logic AccuPak @tab @tab X
+ @tab fourcc: CLJR
+@item Creative YUV @tab @tab X
+ @tab fourcc: CYUV
+@item Dirac @tab E @tab E
+ @tab supported through external libdirac/libschroedinger libraries
+@item Duck TrueMotion v1 @tab @tab X
+ @tab fourcc: DUCK
+@item Duck TrueMotion v2 @tab @tab X
+ @tab fourcc: TM20
@item DV @tab X @tab X
+@item DXA Video @tab @tab X
+ @tab Codec originally used in Feeble Files game.
+@item Electronic Arts CMV @tab @tab X
+ @tab Used in NHL 95 game.
+@item Electronic Arts TGV @tab @tab X
+@item Electronic Arts TGQ @tab @tab X
+@item FFmpeg Video 1 @tab X @tab X
+ @tab experimental lossless codec (fourcc: FFV1)
+@item Flash Screen Video @tab X @tab X
+ @tab fourcc: FSV1
+@item FLIC video @tab @tab X
+@item FLV @tab X @tab X
+ @tab Sorenson H.263 used in Flash
+@item Fraps FPS1 @tab @tab X
+@item H.261 @tab X @tab X
+@item H.263(+) @tab X @tab X
+ @tab also known as RealVideo 1.0
+@item H.264 @tab E @tab X
+ @tab encoding supported through external library libx264
@item HuffYUV @tab X @tab X
-@item FFmpeg Video 1 @tab X @tab X @tab experimental lossless codec (fourcc: FFV1)
-@item FFmpeg Snow @tab X @tab X @tab experimental wavelet codec (fourcc: SNOW)
-@item Asus v1 @tab X @tab X @tab fourcc: ASV1
-@item Asus v2 @tab X @tab X @tab fourcc: ASV2
-@item Creative YUV @tab @tab X @tab fourcc: CYUV
-@item Sorenson Video 1 @tab X @tab X @tab fourcc: SVQ1
-@item Sorenson Video 3 @tab @tab X @tab fourcc: SVQ3
-@item On2 VP3 @tab @tab X @tab still experimental
-@item On2 VP5 @tab @tab X @tab fourcc: VP50
-@item On2 VP6 @tab @tab X @tab fourcc: VP60,VP61,VP62
-@item Theora @tab X @tab X @tab still experimental
+@item IBM Ultimotion @tab @tab X
+ @tab fourcc: ULTI
+@item id Cinematic video @tab @tab X
+ @tab Used in Quake II.
+@item id RoQ @tab X @tab X
+ @tab Used in Quake III, Jedi Knight 2, other computer games.
@item Intel Indeo 3 @tab @tab X
-@item FLV @tab X @tab X @tab Sorenson H.263 used in Flash
-@item Flash Screen Video @tab X @tab X @tab fourcc: FSV1
-@item ATI VCR1 @tab @tab X @tab fourcc: VCR1
-@item ATI VCR2 @tab @tab X @tab fourcc: VCR2
-@item Cirrus Logic AccuPak @tab @tab X @tab fourcc: CLJR
-@item 4X Video @tab @tab X @tab Used in certain computer games.
-@item Sony Playstation MDEC @tab @tab X
-@item Id RoQ @tab X @tab X @tab Used in Quake III, Jedi Knight 2, other computer games.
-@item Xan/WC3 @tab @tab X @tab Used in Wing Commander III .MVE files.
-@item Interplay Video @tab @tab X @tab Used in Interplay .MVE files.
-@item Apple Animation @tab X @tab X @tab fourcc: 'rle '
-@item Apple Graphics @tab @tab X @tab fourcc: 'smc '
-@item Apple Video @tab @tab X @tab fourcc: rpza
-@item Apple QuickDraw @tab @tab X @tab fourcc: qdrw
-@item Cinepak @tab @tab X
+@item Interplay Video @tab @tab X
+ @tab Used in Interplay .MVE files.
+@item JPEG-LS @tab X @tab X
+ @tab fourcc: MJLS, lossless and near-lossless is supported.
+@item KMVC @tab @tab X
+ @tab Codec used in Worms games.
+@item LOCO @tab @tab X
+@item lossless MJPEG @tab X @tab X
@item Microsoft RLE @tab @tab X
@item Microsoft Video-1 @tab @tab X
+@item Mimic @tab @tab X
+ @tab Used in MSN Messenger Webcam streams.
+@item Miro VideoXL @tab @tab X
+ @tab fourcc: VIXL
+@item MJPEG @tab X @tab X
+@item Motion Pixels Video @tab @tab X
+@item MPEG-1 @tab X @tab X
+@item MPEG-2 @tab X @tab X
+@item MPEG-4 @tab X @tab X
+@item MSMPEG4 V1 @tab X @tab X
+@item MSMPEG4 V2 @tab X @tab X
+@item MSMPEG4 V3 @tab X @tab X
+@item MSZH @tab @tab X
+ @tab Part of LCL
+@item On2 VP3 @tab @tab X
+ @tab still experimental
+@item On2 VP5 @tab @tab X
+ @tab fourcc: VP50
+@item On2 VP6 @tab @tab X
+ @tab fourcc: VP60,VP61,VP62
+@item planar RGB @tab @tab X
+ @tab fourcc: 8BPS
+@item QPEG @tab @tab X
+ @tab fourccs: QPEG, Q1.0, Q1.1
+@item RealVideo 1.0 @tab X @tab X
+@item RealVideo 2.0 @tab X @tab X
+@item RealVideo 3.0 @tab @tab X
+ @tab still far from ideal
+@item RealVideo 4.0 @tab @tab X
+@item Renderware TXD @tab @tab X
+ @tab Texture dictionaries used by the Renderware Engine.
+@item RTjpeg @tab @tab X
+ @tab Video encoding used in NuppelVideo files.
+@item Smacker video @tab @tab X
+ @tab Video encoding used in Smacker.
+@item Snow @tab X @tab X
+ @tab experimental wavelet codec (fourcc: SNOW)
+@item Sony PlayStation MDEC @tab @tab X
+@item Sorenson Video 1 @tab X @tab X
+ @tab fourcc: SVQ1
+@item Sorenson Video 3 @tab @tab X
+ @tab fourcc: SVQ3
+@item Sunplus MJPEG @tab @tab X
+ @tab fourcc: SP5X
+@item TechSmith Camtasia @tab @tab X
+ @tab fourcc: TSCC
+@item Theora @tab E @tab X
+ @tab encoding supported through external library libtheora
+@item THP @tab @tab X
+ @tab Used on the Nintendo GameCube.
+@item Tiertex Seq video @tab @tab X
+ @tab Codec used in DOS CD-ROM FlashBack game.
+@item VC-1 @tab @tab X
+@item VMD Video @tab @tab X
+ @tab Used in Sierra VMD files.
+@item VMware Video @tab @tab X
+ @tab Codec used in videos captured by VMware.
@item Westwood VQA @tab @tab X
-@item Id Cinematic Video @tab @tab X @tab Used in Quake II.
-@item Planar RGB @tab @tab X @tab fourcc: 8BPS
-@item FLIC video @tab @tab X
-@item Duck TrueMotion v1 @tab @tab X @tab fourcc: DUCK
-@item Duck TrueMotion v2 @tab @tab X @tab fourcc: TM20
-@item VMD Video @tab @tab X @tab Used in Sierra VMD files.
-@item MSZH @tab @tab X @tab Part of LCL
-@item ZLIB @tab X @tab X @tab Part of LCL, encoder experimental
-@item TechSmith Camtasia @tab @tab X @tab fourcc: TSCC
-@item IBM Ultimotion @tab @tab X @tab fourcc: ULTI
-@item Miro VideoXL @tab @tab X @tab fourcc: VIXL
-@item QPEG @tab @tab X @tab fourccs: QPEG, Q1.0, Q1.1
-@item LOCO @tab @tab X @tab
-@item Winnov WNV1 @tab @tab X @tab
-@item Autodesk Animator Studio Codec @tab @tab X @tab fourcc: AASC
-@item Fraps FPS1 @tab @tab X @tab
-@item CamStudio @tab @tab X @tab fourcc: CSCD
-@item American Laser Games Video @tab @tab X @tab Used in games like Mad Dog McCree
-@item ZMBV @tab X @tab X @tab Encoder works only on PAL8
-@item AVS Video @tab @tab X @tab Video encoding used by the Creature Shock game.
-@item Smacker Video @tab @tab X @tab Video encoding used in Smacker.
-@item RTjpeg @tab @tab X @tab Video encoding used in NuppelVideo files.
-@item KMVC @tab @tab X @tab Codec used in Worms games.
-@item VMware Video @tab @tab X @tab Codec used in videos captured by VMware.
-@item Cin Video @tab @tab X @tab Codec used in Delphine Software games.
-@item Tiertex Seq Video @tab @tab X @tab Codec used in DOS CDROM FlashBack game.
-@item DXA Video @tab @tab X @tab Codec originally used in Feeble Files game.
-@item AVID DNxHD @tab X @tab X @tab aka SMPTE VC3
-@item C93 Video @tab @tab X @tab Codec used in Cyberia game.
-@item THP @tab @tab X @tab Used on the Nintendo GameCube.
-@item Bethsoft VID @tab @tab X @tab Used in some games from Bethesda Softworks.
-@item Renderware TXD @tab @tab X @tab Texture dictionaries used by the Renderware Engine.
-@item AMV @tab @tab X @tab Used in Chinese MP3 players.
-@item Mimic @tab @tab X @tab Used in MSN Messenger Webcam streams.
+@item Winnov WNV1 @tab @tab X
+@item WMV7 @tab X @tab X
+@item WMV8 @tab X @tab X
+@item WMV9 @tab @tab X
+ @tab not completely working
+@item Xan/WC3 @tab @tab X
+ @tab Used in Wing Commander III .MVE files.
+@item ZLIB @tab X @tab X
+ @tab part of LCL, encoder experimental
+@item ZMBV @tab X @tab X
+ @tab Encoder works only in PAL8.
@end multitable
@code{X} means that encoding (resp. decoding) is supported.
+@code{E} means that support is provided through an external library.
+
@section Audio Codecs
-@multitable @columnfractions .4 .1 .1 .1 .7
-@item Supported Codec @tab Encoding @tab Decoding @tab Comments
-@item MPEG audio layer 2 @tab IX @tab IX
-@item MPEG audio layer 1/3 @tab X @tab IX
-@tab MP3 encoding is supported through the external library LAME.
-@item AC3 @tab IX @tab IX
-@tab liba52 is used internally for decoding.
-@item Vorbis @tab X @tab X
-@item WMA V1/V2 @tab X @tab X
-@item AAC @tab X @tab X
-@tab Supported through the external library libfaac/libfaad.
-@item Microsoft ADPCM @tab X @tab X
-@item AMV IMA ADPCM @tab @tab X
-@tab Used in AMV files
-@item MS IMA ADPCM @tab X @tab X
-@item QT IMA ADPCM @tab X @tab X
-@item 4X IMA ADPCM @tab @tab X
-@item G.726 ADPCM @tab X @tab X
-@item Duck DK3 IMA ADPCM @tab @tab X
-@tab Used in some Sega Saturn console games.
-@item Duck DK4 IMA ADPCM @tab @tab X
-@tab Used in some Sega Saturn console games.
-@item Westwood Studios IMA ADPCM @tab @tab X
-@tab Used in Westwood Studios games like Command and Conquer.
-@item SMJPEG IMA ADPCM @tab @tab X
-@tab Used in certain Loki game ports.
-@item CD-ROM XA ADPCM @tab @tab X
-@item CRI ADX ADPCM @tab X @tab X
-@tab Used in Sega Dreamcast games.
-@item Electronic Arts ADPCM @tab @tab X
-@tab Used in various EA titles.
-@item MAXIS EA ADPCM @tab @tab X
-@tab Used in Sim City 3000.
-@item Creative ADPCM @tab @tab X
-@tab 16 -> 4, 8 -> 4, 8 -> 3, 8 -> 2
-@item THP ADPCM @tab @tab X
-@tab Used on the Nintendo GameCube.
-@item RA144 @tab @tab X
-@tab Real 14400 bit/s codec
-@item RA288 @tab @tab X
-@tab Real 28800 bit/s codec
-@item RADnet @tab X @tab IX
-@tab Real low bitrate AC3 codec, liba52 is used for decoding.
-@item AMR-NB @tab X @tab X
-@tab Supported through an external library.
-@item AMR-WB @tab X @tab X
-@tab Supported through an external library.
-@item DV audio @tab @tab X
-@item Id RoQ DPCM @tab X @tab X
-@tab Used in Quake III, Jedi Knight 2, other computer games.
-@item Interplay MVE DPCM @tab @tab X
-@tab Used in various Interplay computer games.
-@item Xan DPCM @tab @tab X
-@tab Used in Origin's Wing Commander IV AVI files.
-@item Sierra Online DPCM @tab @tab X
-@tab Used in Sierra Online game audio files.
-@item Apple MACE 3 @tab @tab X
-@item Apple MACE 6 @tab @tab X
-@item FLAC lossless audio @tab X @tab X
-@item Shorten lossless audio @tab @tab X
-@item Apple lossless audio @tab @tab X
-@tab QuickTime fourcc 'alac'
-@item FFmpeg Sonic @tab X @tab X
-@tab experimental lossy/lossless codec
-@item Qdesign QDM2 @tab @tab X
-@tab there are still some distortions
-@item Real COOK @tab @tab X
-@tab All versions except 5.1 are supported
-@item DSP Group TrueSpeech @tab @tab X
-@item True Audio (TTA) @tab @tab X
-@item Smacker Audio @tab @tab X
-@item WavPack Audio @tab @tab X
-@item Cin Audio @tab @tab X
-@tab Codec used in Delphine Software games.
-@item Intel Music Coder @tab @tab X
-@item Musepack @tab @tab X
-@tab SV7 and SV8 are supported
-@item DT$ Coherent Audio @tab @tab X
-@item ATRAC 3 @tab @tab X
-@item Monkey's Audio @tab @tab X @tab Only versions 3.97-3.99 are supported
-@item Nellymoser ASAO @tab @tab X
-@item 8SVX Audio @tab @tab X
+@multitable @columnfractions .4 .1 .1 .4
+@item Name @tab Encoding @tab Decoding @tab Comments
+@item 4X IMA ADPCM @tab @tab X
+@item 8SVX audio @tab @tab X
+@item AAC @tab E @tab X
+ @tab encoding supported through external library libfaac
+@item AC-3 @tab IX @tab IX
+@item AMR-NB @tab E @tab E
+ @tab supported through external library libamrnb
+@item AMR-WB @tab E @tab E
+ @tab supported through external library libamrwb
+@item AMV IMA ADPCM @tab @tab X
+ @tab Used in AMV files
+@item Apple lossless audio @tab X @tab X
+ @tab QuickTime fourcc 'alac'
+@item Apple MACE 3 @tab @tab X
+@item Apple MACE 6 @tab @tab X
+@item ATRAC 3 @tab @tab X
+@item CD-ROM XA ADPCM @tab @tab X
+@item Cin audio @tab @tab X
+ @tab Codec used in Delphine Software International games.
+@item Creative ADPCM @tab @tab X
+ @tab 16 -> 4, 8 -> 4, 8 -> 3, 8 -> 2
+@item CRI ADX ADPCM @tab X @tab X
+ @tab Used in Sega Dreamcast games.
+@item DSP Group TrueSpeech @tab @tab X
+@item DTS Coherent Audio @tab @tab X
+@item Duck DK3 IMA ADPCM @tab @tab X
+ @tab Used in some Sega Saturn console games.
+@item Duck DK4 IMA ADPCM @tab @tab X
+ @tab Used in some Sega Saturn console games.
+@item DV audio @tab @tab X
+@item Electronic Arts ADPCM @tab @tab X
+ @tab Used in various EA titles.
+@item Enhanced AC-3 @tab @tab X
+@item FLAC lossless audio @tab IX @tab X
+@item G.726 ADPCM @tab X @tab X
+@item GSM @tab E @tab E
+ @tab supported through external library libgsm
+@item GSM_MS @tab E @tab E
+ @tab supported through external library libgsm
+@item id RoQ DPCM @tab X @tab X
+ @tab Used in Quake III, Jedi Knight 2, other computer games.
+@item Intel Music Coder @tab @tab X
+@item Interplay MVE DPCM @tab @tab X
+ @tab Used in various Interplay computer games.
+@item MAXIS EA ADPCM @tab @tab X
+ @tab Used in Sim City 3000.
+@item Microsoft ADPCM @tab X @tab X
+@item MLP/TrueHD @tab @tab X
+ @tab Used in DVD-Audio and Blu-Ray discs.
+@item Monkey's Audio @tab @tab X
+ @tab Only versions 3.97-3.99 are supported.
+@item MPEG audio layer 3 @tab E @tab IX
+ @tab encoding supported through external library LAME
+@item MPEG audio layer 2 @tab IX @tab IX
+@item MS IMA ADPCM @tab X @tab X
+@item Musepack @tab @tab X
+ @tab SV7 and SV8 are supported.
+@item Nellymoser ASAO @tab X @tab X
+@item QCELP / PureVoice @tab @tab X
+@item Qdesign QDM2 @tab @tab X
+ @tab There are still some distortions.
+@item QT IMA ADPCM @tab X @tab X
+@item RA144 @tab @tab X
+ @tab Real 14400 bit/s codec
+@item RA288 @tab @tab X
+ @tab Real 28800 bit/s codec
+@item RADnet @tab IX @tab IX
+ @tab Real low bitrate AC-3 codec
+@item Real COOK @tab @tab X
+ @tab All versions except 5.1 are supported.
+@item Shorten @tab @tab X
+@item Sierra Online DPCM @tab @tab X
+ @tab Used in Sierra Online game audio files.
+@item Smacker audio @tab @tab X
+@item SMJPEG IMA ADPCM @tab @tab X
+ @tab Used in certain Loki game ports.
+@item Sonic @tab X @tab X
+ @tab experimental codec
+@item Sonic lossless @tab X @tab X
+ @tab experimental codec
+@item Speex @tab @tab E
+ @tab supported through external library libspeex
+@item THP ADPCM @tab @tab X
+ @tab Used on the Nintendo GameCube.
+@item True Audio (TTA) @tab @tab X
+@item Vorbis @tab X @tab X
+@item WavPack @tab @tab X
+@item Westwood Studios IMA ADPCM @tab @tab X
+ @tab Used in Westwood Studios games like Command and Conquer.
+@item WMA v1/v2 @tab X @tab X
+@item Xan DPCM @tab @tab X
+ @tab Used in Origin's Wing Commander IV AVI files.
@end multitable
@code{X} means that encoding (resp. decoding) is supported.
+@code{E} means that support is provided through an external library.
+
@code{I} means that an integer-only version is available, too (ensures high
performance on systems without hardware floating point support).
+@section Subtitle Formats
+
+@multitable @columnfractions .4 .1 .1 .1 .1 .1
+@item Name @tab Muxing @tab Demuxing @tab Encoding @tab Decoding @tab Rendering
+@item ASS/SSA @tab X @tab X
+@item DVB @tab X @tab X @tab X @tab X @tab X
+@item DVD @tab X @tab X @tab X @tab X @tab X
+@end multitable
+
+@code{X} means that the feature is supported.
+
@chapter Platform Specific information
@section BSD
To get help and instructions for building FFmpeg under Windows, check out
the FFmpeg Windows Help Forum at
-@url{http://arrozcru.no-ip.org/ffmpeg/}.
+@url{http://ffmpeg.arrozcru.org/}.
@subsection Native Windows compilation
FFmpeg can be built to run natively on Windows using the MinGW tools. Install
-the current versions of MSYS and MinGW from @url{http://www.mingw.org/}. Also
-install the coreutils package. You can find detailed installation
+the latest versions of MSYS and MinGW from @url{http://www.mingw.org/}.
+You can find detailed installation
instructions in the download section and the FAQ.
+FFmpeg does not build out-of-the-box with the packages the automated MinGW
+installer provides. It also requires coreutils to be installed and many other
+packages updated to the latest version. The minimum version for some packages
+are listed below:
+
+@itemize
+@item bash 3.1
+@item msys-make 3.81-2 (note: not mingw32-make)
+@item w32api 3.13
+@item mingw-runtime 3.15
+@end itemize
+
+You will also need to pass @code{-fno-common} to the compiler to work around
+a GCC bug (see @url{http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216}).
+
Within the MSYS shell, configure and make with:
@example
-./configure --enable-memalign-hack
+./configure --enable-memalign-hack --extra-cflags=-fno-common
make
make install
@end example
@itemize
-@item Use at least bash 3.1. Older versions are known to fail on the
-configure script.
-
@item In order to compile vhooks, you must have a POSIX-compliant libdl in
your MinGW system. Get dlfcn-win32 from
@url{http://code.google.com/p/dlfcn-win32}.
where SDL was installed. Verify that @file{sdl-config} can be launched from
the MSYS command line.
-@item The target @code{make wininstaller} can be used to create a
-Nullsoft-based Windows installer for FFmpeg and FFplay. @file{SDL.dll}
-must be copied to the FFmpeg directory in order to build the
-installer.
-
@item By using @code{./configure --enable-shared} when configuring FFmpeg,
you can build libavutil, libavcodec and libavformat as DLLs.
side, select "C/C++ / General", then edit the "Additional Include
Directories" setting to contain the path where the FFmpeg includes were
installed (i.e. @file{c:\msys\1.0\local\include}).
+Do not add MinGW's include directory here, or the include files will
+conflict with MSVC's.
@item Still in the "Project / Properties" dialog box, select
"Linker / General" from the tree view and edit the
#define inline _inline
@end example
-@item If you used @file{output_example.c} as your sample application,
-you will have to edit the @code{#include}s to point to the files which
-are under the @file{ffmpeg} directory (i.e. @code{<ffmpeg/avformat.h>}).
-
@item Build your application, everything should work.
@end enumerate
@item
Remember to check if you need to bump versions for the specific libav
parts (libavutil, libavcodec, libavformat) you are changing. You need
- to change the version integer and the version string.
+ to change the version integer.
Incrementing the first component means no backward compatibility to
previous versions (e.g. removal of a function from the public API).
Incrementing the second component means backward compatible change
- (e.g. addition of a function to the public API).
+ (e.g. addition of a function to the public API or extension of an
+ existing data structure).
Incrementing the third component means a noteworthy binary compatible
change (e.g. encoder bug fix that matters for the decoder).
-@item
- If you add a new codec, remember to update the changelog, add it to
- the supported codecs table in the documentation and bump the second
- component of the @file{libavcodec} version number appropriately. If
- it has a fourcc, add it to @file{libavformat/avienc.c}, even if it
- is only a decoder.
@item
Compiler warnings indicate potential bugs or code with bad style. If a type of
warning always points to correct and clean code, that warning should
Also please if you send several patches, send each patch as a separate mail,
do not attach several unrelated patches to the same mail.
+@section New codecs or formats checklist
+
+@enumerate
+@item
+ Did you use av_cold for codec initialization and close functions?
+@item
+ Did you add a long_name under NULL_IF_CONFIG_SMALL to the AVCodec or
+ AVInputFormat/AVOutputFormat struct?
+@item
+ Did you bump the minor version number in @file{avcodec.h} or
+ @file{avformat.h}?
+@item
+ Did you register it in @file{allcodecs.c} or @file{allformats.c}?
+@item
+ Did you add the CodecID to @file{avcodec.h}?
+@item
+ If it has a fourcc, did you add it to @file{libavformat/riff.c},
+ even if it is only a decoder?
+@item
+ Did you add a rule to compile the appropriate files in the Makefile?
+ Remember to do this even if you're just adding a format to a file that is
+ already being compiled by some other rule, like a raw demuxer.
+@item
+ Did you add an entry to the table of supported formats or codecs in the
+ documentation?
+@item
+ Did you add an entry in the Changelog?
+@item
+ If it depends on a parser or a library, did you add that dependency in
+ configure?
+@item
+ Did you "svn add" the appropriate files before commiting?
+@end enumerate
+
@section patch submission checklist
@enumerate
@item
Do the regression tests pass with the patch applied?
+@item
+ Does @code{make checkheaders} pass with the patch applied?
@item
Is the patch a unified diff?
@item
Have you checked that the patch does not introduce buffer overflows or
other security issues?
@item
- If you add a new demuxer or decoder, have you checked that it does not
- crash with damaged input (see tools/trasher)?
+ Did you test your decoder or demuxer against damaged data? If no, see
+ tools/trasher and the noise bitstream filter. Your decoder or demuxer
+ should not crash or end in a (near) infinite loop when fed damaged data.
@item
Is the patch created from the root of the source tree, so it can be
applied with @code{patch -p0}?
improves readability.
@item
Did you provide a suggestion for a clear commit log message?
-@item
- Did you test your decoder or demuxer against damaged data? If no, see
- tools/trasher and the noise bitstream filter. Your decoder or demuxer
- should not crash or end in a (near) infinite loop when fed damaged data.
@end enumerate
@section Patch review process