struct decoder_sys_t
{
/* Common part between video and audio decoder */
- int i_cat;
- int i_codec_id;
- char *psz_namecodec;
-
- AVCodecContext *p_context;
- AVCodec *p_codec;
+ FFMPEG_COMMON_MEMBERS
};
/****************************************************************************
/*****************************************************************************
* Module descriptor
*****************************************************************************/
+#define MODULE_DESCRIPTION N_( "Various audio and video decoders/encoders" \
+ "delivered by the FFmpeg library. This includes (MS)MPEG4, DivX, SV1,"\
+ "H261, H263, H264, WMV, WMA, AAC, AMR, DV, MJPEG and other codecs")
+
vlc_module_begin();
set_shortname( "FFmpeg");
set_category( CAT_INPUT );
/*add_requirement( ALTIVEC );*/
set_capability( "decoder", 71 );
#else
- set_description( _("FFmpeg audio/video decoder/encoder ((MS)MPEG4,SVQ1,H263,WMV,WMA)") );
+ set_description( _("FFmpeg audio/video decoders/encoders") );
+ set_help( MODULE_DESCRIPTION );
set_capability( "decoder", 70 );
#endif
set_section( N_("Decoding") , NULL );
set_callbacks( OpenDecoder, CloseDecoder );
+
add_bool( "ffmpeg-dr", 1, NULL, DR_TEXT, DR_TEXT, VLC_TRUE );
add_integer ( "ffmpeg-error-resilience", 1, NULL, ERROR_TEXT,
ERROR_LONGTEXT, VLC_TRUE );
add_shortcut( "ffmpeg-deinterlace" );
#endif
- var_Create( p_module->p_libvlc_global, "avcodec", VLC_VAR_MUTEX );
-
vlc_module_end();
/*****************************************************************************
p_context->opaque = (void *)p_this;
/* Set CPU capabilities */
+ unsigned i_cpu = vlc_CPU();
p_context->dsp_mask = 0;
- if( !(p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMX) )
+ if( !(i_cpu & CPU_CAPABILITY_MMX) )
{
p_context->dsp_mask |= FF_MM_MMX;
}
- if( !(p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMXEXT) )
+ if( !(i_cpu & CPU_CAPABILITY_MMXEXT) )
{
p_context->dsp_mask |= FF_MM_MMXEXT;
}
- if( !(p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_3DNOW) )
+ if( !(i_cpu & CPU_CAPABILITY_3DNOW) )
{
p_context->dsp_mask |= FF_MM_3DNOW;
}
- if( !(p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_SSE) )
+ if( !(i_cpu & CPU_CAPABILITY_SSE) )
{
p_context->dsp_mask |= FF_MM_SSE;
}
- if( !(p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_SSE2) )
+ if( !(i_cpu & CPU_CAPABILITY_SSE2) )
{
p_context->dsp_mask |= FF_MM_SSE2;
}
{
decoder_t *p_dec = (decoder_t *)p_this;
decoder_sys_t *p_sys = p_dec->p_sys;
- vlc_value_t lockval;
-
- var_Get( p_dec->p_libvlc_global, "avcodec", &lockval );
+ vlc_mutex_t *lock = var_GetGlobalMutex( "avcodec" );
switch( p_sys->i_cat )
{
if( p_sys->p_context->extradata )
free( p_sys->p_context->extradata );
p_sys->p_context->extradata = NULL;
- vlc_mutex_lock( lockval.p_address );
+ vlc_mutex_lock( lock );
avcodec_close( p_sys->p_context );
- vlc_mutex_unlock( lockval.p_address );
+ vlc_mutex_unlock( lock );
msg_Dbg( p_dec, "ffmpeg codec (%s) stopped", p_sys->psz_namecodec );
av_free( p_sys->p_context );
}
void E_(InitLibavcodec)( vlc_object_t *p_object )
{
static int b_ffmpeginit = 0;
- vlc_value_t lockval;
+ vlc_mutex_t *lock = var_GetGlobalMutex( "avcodec" );
- var_Get( p_object->p_libvlc_global, "avcodec", &lockval );
- vlc_mutex_lock( lockval.p_address );
+ vlc_mutex_lock( lock );
/* *** init ffmpeg library (libavcodec) *** */
if( !b_ffmpeginit )
msg_Dbg( p_object, "libavcodec already initialized" );
}
- vlc_mutex_unlock( lockval.p_address );
+ vlc_mutex_unlock( lock );
}
/*****************************************************************************
} codecs_table[] =
{
+ /*
+ * Video Codecs
+ */
+
/* MPEG-1 Video */
{ VLC_FOURCC('m','p','1','v'), CODEC_ID_MPEG1VIDEO,
VIDEO_ES, "MPEG-1 Video" },
VIDEO_ES, "MPEG-4 Video" },
{ VLC_FOURCC('m','4','s','2'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
+ /* XVID flavours */
{ VLC_FOURCC('x','v','i','d'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
{ VLC_FOURCC('X','V','I','D'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
{ VLC_FOURCC('x','v','i','x'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
+ /* DX50 */
{ VLC_FOURCC('D','X','5','0'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
{ VLC_FOURCC('d','x','5','0'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
+ { VLC_FOURCC('B','L','Z','0'), CODEC_ID_MPEG4,
+ VIDEO_ES, "Blizzard MPEG-4 Video" },
+ { VLC_FOURCC('D','X','G','M'), CODEC_ID_MPEG4,
+ VIDEO_ES, "Electronic Arts Game MPEG-4 Video" },
{ VLC_FOURCC('m','p','4','v'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
{ VLC_FOURCC('M','P','4','V'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
{ VLC_FOURCC('F','M','P','4'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
+ { VLC_FOURCC('f','m','p','4'), CODEC_ID_MPEG4,
+ VIDEO_ES, "MPEG-4 Video" },
/* 3ivx delta 3.5 Unsupported
* putting it here gives extreme distorted images
{ VLC_FOURCC('3','I','V','1'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
{ VLC_FOURCC('3','i','v','2'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
+ { VLC_FOURCC('U','M','P','4'), CODEC_ID_MPEG4,
+ VIDEO_ES, "UB MPEG-4 Video" },
+ { VLC_FOURCC('W','V','1','F'), CODEC_ID_MPEG4,
+ VIDEO_ES, "MPEG-4 Video" },
+ { VLC_FOURCC('S','E','D','G'), CODEC_ID_MPEG4,
+ VIDEO_ES, "Samsung MPEG-4 Video" },
+ { VLC_FOURCC('R','M','P','4'), CODEC_ID_MPEG4,
+ VIDEO_ES, "REALmagic MPEG-4 Video" },
+ { VLC_FOURCC('H','D','X','4'), CODEC_ID_MPEG4,
+ VIDEO_ES, "Jomigo HDX4 (MPEG-4 Video)" },
+ { VLC_FOURCC('h','d','x','4'), CODEC_ID_MPEG4,
+ VIDEO_ES, "Jomigo HDX4 (MPEG-4 Video)" },
+ { VLC_FOURCC('S','M','P','4'), CODEC_ID_MPEG4,
+ VIDEO_ES, "Samsung SMP4 (MPEG-4 Video)" },
/* MSMPEG4 v1 */
{ VLC_FOURCC('D','I','V','1'), CODEC_ID_MSMPEG4V1,
VIDEO_ES, "MS MPEG-4 Video v3" },
{ VLC_FOURCC('d','i','v','6'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
+ /* Cool Codec */
+ { VLC_FOURCC('C','O','L','1'), CODEC_ID_MSMPEG4V3,
+ VIDEO_ES, "MS MPEG-4 Video v3" },
+ { VLC_FOURCC('c','o','l','1'), CODEC_ID_MSMPEG4V3,
+ VIDEO_ES, "MS MPEG-4 Video v3" },
+ { VLC_FOURCC('C','O','L','0'), CODEC_ID_MSMPEG4V3,
+ VIDEO_ES, "MS MPEG-4 Video v3" },
+ { VLC_FOURCC('c','o','l','0'), CODEC_ID_MSMPEG4V3,
+ VIDEO_ES, "MS MPEG-4 Video v3" },
/* AngelPotion stuff */
{ VLC_FOURCC('A','P','4','1'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
/* h264 */
{ VLC_FOURCC('h','2','6','4'), CODEC_ID_H264,
- VIDEO_ES, "h264" },
+ VIDEO_ES, "H264 - MPEG-4 AVC (part 10)" },
{ VLC_FOURCC('H','2','6','4'), CODEC_ID_H264,
- VIDEO_ES, "h264" },
+ VIDEO_ES, "H264 - MPEG-4 AVC (part 10)" },
{ VLC_FOURCC('x','2','6','4'), CODEC_ID_H264,
- VIDEO_ES, "h264" },
+ VIDEO_ES, "H264 - MPEG-4 AVC (part 10)" },
{ VLC_FOURCC('X','2','6','4'), CODEC_ID_H264,
- VIDEO_ES, "h264" },
+ VIDEO_ES, "H264 - MPEG-4 AVC (part 10)" },
/* avc1: special case h264 */
{ VLC_FOURCC('a','v','c','1'), CODEC_ID_H264,
- VIDEO_ES, "h264" },
+ VIDEO_ES, "H264 - MPEG-4 AVC (part 10)" },
+ { VLC_FOURCC('A','V','C','1'), CODEC_ID_H264,
+ VIDEO_ES, "H264 - MPEG-4 AVC (part 10)" },
{ VLC_FOURCC('V','S','S','H'), CODEC_ID_H264,
- VIDEO_ES, "h264" },
+ VIDEO_ES, "Vanguard VSS H264" },
+ { VLC_FOURCC('V','S','S','W'), CODEC_ID_H264,
+ VIDEO_ES, "Vanguard VSS H264" },
{ VLC_FOURCC('v','s','s','h'), CODEC_ID_H264,
- VIDEO_ES, "h264" },
+ VIDEO_ES, "Vanguard VSS H264" },
+ { VLC_FOURCC('D','A','V','C'), CODEC_ID_H264,
+ VIDEO_ES, "Dicas MPEGable H.264/MPEG-4 AVC" },
+ { VLC_FOURCC('d','a','v','c'), CODEC_ID_H264,
+ VIDEO_ES, "Dicas MPEGable H.264/MPEG-4 AVC" },
/* H263 and H263i */
/* H263(+) is also known as Real Video 1.0 */
/* H263 */
+ { VLC_FOURCC('D','2','6','3'), CODEC_ID_H263,
+ VIDEO_ES, "DEC H263" },
{ VLC_FOURCC('H','2','6','3'), CODEC_ID_H263,
VIDEO_ES, "H263" },
{ VLC_FOURCC('h','2','6','3'), CODEC_ID_H263,
VIDEO_ES, "H263" },
+ { VLC_FOURCC('L','2','6','3'), CODEC_ID_H263,
+ VIDEO_ES, "LEAD H263" },
{ VLC_FOURCC('s','2','6','3'), CODEC_ID_H263,
VIDEO_ES, "H263" },
- { VLC_FOURCC('M','2','6','3'), CODEC_ID_H263,
+ { VLC_FOURCC('S','2','6','3'), CODEC_ID_H263,
VIDEO_ES, "H263" },
+ { VLC_FOURCC('M','2','6','3'), CODEC_ID_H263,
+ VIDEO_ES, "Microsoft H263" },
+ { VLC_FOURCC('X','2','6','3'), CODEC_ID_H263,
+ VIDEO_ES, "Xirlink H263" },
+
+ /* Zygo (partial) */
+ { VLC_FOURCC('Z','y','G','o'), CODEC_ID_H263,
+ VIDEO_ES, "ITU H263+" },
/* H263i */
{ VLC_FOURCC('I','2','6','3'), CODEC_ID_H263I,
VIDEO_ES, "H263+" },
{ VLC_FOURCC('v','i','v','2'), CODEC_ID_H263P,
VIDEO_ES, "H263+" },
- { VLC_FOURCC('U','2','6','3'), CODEC_ID_H263,
- VIDEO_ES, "H263+" },
+ { VLC_FOURCC('U','2','6','3'), CODEC_ID_H263P,
+ VIDEO_ES, "UB H263+" },
+ { VLC_FOURCC('I','L','V','R'), CODEC_ID_H263P,
+ VIDEO_ES, "ITU H263+" },
/* Flash (H263) variant */
{ VLC_FOURCC('F','L','V','1'), CODEC_ID_FLV1,
VIDEO_ES, "Flash Video" },
+ /* H261 */
{ VLC_FOURCC('H','2','6','1'), CODEC_ID_H261,
VIDEO_ES, "H.261" },
+ { VLC_FOURCC('h','2','6','1'), CODEC_ID_H261,
+ VIDEO_ES, "H.261" },
{ VLC_FOURCC('F','L','I','C'), CODEC_ID_FLIC,
VIDEO_ES, "Flic Video" },
VIDEO_ES, "Motion JPEG Video" },
{ VLC_FOURCC( 'A','V','D','J' ), CODEC_ID_MJPEG,
VIDEO_ES, "Motion JPEG Video" },
- { VLC_FOURCC( 'd','m','b','1' ), CODEC_ID_MJPEG,
- VIDEO_ES, "Motion JPEG OpenDML Video" },
{ VLC_FOURCC( 'm','j','p','b' ), CODEC_ID_MJPEGB, /* for mov file */
VIDEO_ES, "Motion JPEG B Video" },
{ VLC_FOURCC( 'L','J','P','G' ), CODEC_ID_LJPEG,
VIDEO_ES, "Lead Motion JPEG Video" },
{ VLC_FOURCC( 'L','J','P','G' ), CODEC_ID_MJPEG,
VIDEO_ES, "Lead Motion JPEG Video" },
+ /* AVID MJPEG */
{ VLC_FOURCC( 'A','V','R','n' ), CODEC_ID_MJPEG,
VIDEO_ES, "Avid Motion JPEG" },
{ VLC_FOURCC( 'A','D','J','V' ), CODEC_ID_MJPEG,
VIDEO_ES, "Avid Motion JPEG" },
+ { VLC_FOURCC( 'd','m','b','1' ), CODEC_ID_MJPEG,
+ VIDEO_ES, "Motion JPEG OpenDML Video" },
+
+ /* SP5x */
{ VLC_FOURCC( 'S','P','5','X' ), CODEC_ID_SP5X,
VIDEO_ES, "Sunplus Motion JPEG Video" },
+ { VLC_FOURCC( 'S','P','5','3' ), CODEC_ID_SP5X,
+ VIDEO_ES, "Sunplus Motion JPEG Video" },
+ { VLC_FOURCC( 'S','P','5','4' ), CODEC_ID_SP5X,
+ VIDEO_ES, "Sunplus Motion JPEG Video" },
+ { VLC_FOURCC( 'S','P','5','5' ), CODEC_ID_SP5X,
+ VIDEO_ES, "Sunplus Motion JPEG Video" },
+ { VLC_FOURCC( 'S','P','5','6' ), CODEC_ID_SP5X,
+ VIDEO_ES, "Sunplus Motion JPEG Video" },
+ { VLC_FOURCC( 'S','P','5','7' ), CODEC_ID_SP5X,
+ VIDEO_ES, "Sunplus Motion JPEG Video" },
+ { VLC_FOURCC( 'S','P','5','8' ), CODEC_ID_SP5X,
+ VIDEO_ES, "Sunplus Motion JPEG Video" },
/* DV */
{ VLC_FOURCC('d','v','s','l'), CODEC_ID_DVVIDEO,
VIDEO_ES, "DV Video Pro PAL" },
{ VLC_FOURCC('C','D','V','C'), CODEC_ID_DVVIDEO,
VIDEO_ES, "DV Video" },
+ { VLC_FOURCC('c','d','v','c'), CODEC_ID_DVVIDEO,
+ VIDEO_ES, "DV Video" },
{ VLC_FOURCC('d','v','5','p'), CODEC_ID_DVVIDEO,
VIDEO_ES, "DV Video C Pro 50 PAL" },
{ VLC_FOURCC('d','v','5','n'), CODEC_ID_DVVIDEO,
/* Windows Media Video */
{ VLC_FOURCC('W','M','V','1'), CODEC_ID_WMV1,
VIDEO_ES, "Windows Media Video 1" },
+ { VLC_FOURCC('w','m','v','1'), CODEC_ID_WMV1,
+ VIDEO_ES, "Windows Media Video 1" },
{ VLC_FOURCC('W','M','V','2'), CODEC_ID_WMV2,
VIDEO_ES, "Windows Media Video 2" },
+ { VLC_FOURCC('w','m','v','2'), CODEC_ID_WMV2,
+ VIDEO_ES, "Windows Media Video 2" },
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(10<<8)+1)
{ VLC_FOURCC('W','M','V','3'), CODEC_ID_WMV3,
VIDEO_ES, "Windows Media Video 3" },
+ { VLC_FOURCC('w','m','v','3'), CODEC_ID_WMV3,
+ VIDEO_ES, "Windows Media Video 3" },
{ VLC_FOURCC('W','V','C','1'), CODEC_ID_VC1,
VIDEO_ES, "Windows Media Video VC1" },
-#endif
-#if 0
+ { VLC_FOURCC('w','v','c','1'), CODEC_ID_VC1,
+ VIDEO_ES, "Windows Media Video VC1" },
/* WMVA is the VC-1 codec before the standardization proces,
it is not bitstream compatible and deprecated */
{ VLC_FOURCC('W','M','V','A'), CODEC_ID_VC1,
VIDEO_ES, "Microsoft RLE Video" },
{ VLC_FOURCC(0x1,0x0,0x0,0x0), CODEC_ID_MSRLE,
VIDEO_ES, "Microsoft RLE Video" },
+ { VLC_FOURCC(0x2,0x0,0x0,0x0), CODEC_ID_MSRLE,
+ VIDEO_ES, "Microsoft RLE Video" },
/* Indeo Video Codecs (Quality of this decoder on ppc is not good) */
{ VLC_FOURCC('I','V','3','1'), CODEC_ID_INDEO3,
{ VLC_FOURCC('i','v','3','2'), CODEC_ID_INDEO3,
VIDEO_ES, "Indeo Video v3" },
- { VLC_FOURCC('t','s','c','c'), CODEC_ID_TSCC,
- VIDEO_ES, "TechSmith Camtasia Screen Capture Video" },
-
/* Huff YUV */
{ VLC_FOURCC('H','F','Y','U'), CODEC_ID_HUFFYUV,
VIDEO_ES, "Huff YUV Video" },
+ { VLC_FOURCC('F','F','V','H'), CODEC_ID_FFVHUFF,
+ VIDEO_ES, "Huff YUV Video" },
/* Creative YUV */
{ VLC_FOURCC('C','Y','U','V'), CODEC_ID_CYUV,
VIDEO_ES, "Creative YUV Video" },
+ { VLC_FOURCC('c','y','u','v'), CODEC_ID_CYUV,
+ VIDEO_ES, "Creative YUV Video" },
/* On2 VP3 Video Codecs */
{ VLC_FOURCC('V','P','3',' '), CODEC_ID_VP3,
{ VLC_FOURCC('v','p','3','1'), CODEC_ID_VP3,
VIDEO_ES, "On2's VP3 Video" },
+ /* On2 VP5, VP6 codecs */
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(14<<8)+0)
{ VLC_FOURCC('V','P','5',' '), CODEC_ID_VP5,
VIDEO_ES, "On2's VP5 Video" },
/* Xiph.org theora */
{ VLC_FOURCC('t','h','e','o'), CODEC_ID_THEORA,
VIDEO_ES, "Xiph.org's Theora Video" },
+ { VLC_FOURCC('T','h','r','a'), CODEC_ID_THEORA,
+ VIDEO_ES, "Xiph.org's Theora Video" },
#if ( !defined( WORDS_BIGENDIAN ) )
/* Asus Video (Another thing that doesn't work on PPC) */
/* Real Video */
{ VLC_FOURCC('R','V','1','0'), CODEC_ID_RV10,
VIDEO_ES, "Real Video 10" },
+ { VLC_FOURCC('r','v','1','0'), CODEC_ID_RV10,
+ VIDEO_ES, "Real Video 10" },
{ VLC_FOURCC('R','V','1','3'), CODEC_ID_RV10,
VIDEO_ES, "Real Video 13" },
+ { VLC_FOURCC('r','v','1','3'), CODEC_ID_RV10,
+ VIDEO_ES, "Real Video 13" },
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(15<<8)+1)
{ VLC_FOURCC('R','V','2','0'), CODEC_ID_RV20,
VIDEO_ES, "Real Video 20" },
+ { VLC_FOURCC('r','v','2','0'), CODEC_ID_RV20,
+ VIDEO_ES, "Real Video 20" },
#endif
/* Apple Video */
{ VLC_FOURCC('r','p','z','a'), CODEC_ID_RPZA,
VIDEO_ES, "Apple Video" },
+ { VLC_FOURCC('a','z','p','r'), CODEC_ID_RPZA,
+ VIDEO_ES, "Apple Video" },
{ VLC_FOURCC('s','m','c',' '), CODEC_ID_SMC,
VIDEO_ES, "Apple graphics" },
- /* Cinepak */
+ /* CINEPAK. We have our own decoder with an higher priority,
+ but this can't harm */
+ { VLC_FOURCC('C','V','I','D'), CODEC_ID_CINEPAK,
+ VIDEO_ES, "Cinepak Video" },
{ VLC_FOURCC('c','v','i','d'), CODEC_ID_CINEPAK,
VIDEO_ES, "Cinepak Video" },
- /* Id Quake II CIN */
- { VLC_FOURCC('I','D','C','I'), CODEC_ID_IDCIN,
- VIDEO_ES, "Id Quake II CIN Video" },
+ /* Screen Capture Video Codecs */
+ { VLC_FOURCC('t','s','c','c'), CODEC_ID_TSCC,
+ VIDEO_ES, "TechSmith Camtasia Screen Capture Video" },
+ { VLC_FOURCC('T','S','C','C'), CODEC_ID_TSCC,
+ VIDEO_ES, "TechSmith Camtasia Screen Capture Video" },
- /* 4X Technologies */
- { VLC_FOURCC('4','x','m','v'), CODEC_ID_4XM,
- VIDEO_ES, "4X Technologies Video" },
+ { VLC_FOURCC('C','S','C','D'), CODEC_ID_CSCD,
+ VIDEO_ES, "CamStudio Screen Codec" },
+ { VLC_FOURCC('c','s','c','d'), CODEC_ID_CSCD,
+ VIDEO_ES, "CamStudio Screen Codec" },
+
+ { VLC_FOURCC('Z','M','B','V'), CODEC_ID_ZMBV,
+ VIDEO_ES, "DosBox Capture Codec" },
+
+#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(13<<8)+0)
+ { VLC_FOURCC('V','M','n','c'), CODEC_ID_VMNC,
+ VIDEO_ES, "VMware Video" },
+#endif
+ { VLC_FOURCC('F','P','S','1'), CODEC_ID_FRAPS,
+ VIDEO_ES, "FRAPS: Realtime Video Capture" },
+ { VLC_FOURCC('f','p','s','1'), CODEC_ID_FRAPS,
+ VIDEO_ES, "FRAPS: Realtime Video Capture" },
/* Duck TrueMotion */
{ VLC_FOURCC('D','U','C','K'), CODEC_ID_TRUEMOTION1,
VIDEO_ES, "Duck TrueMotion v1 Video" },
-
- /* Interplay MVE */
- { VLC_FOURCC('i','m','v','e'), CODEC_ID_INTERPLAY_VIDEO,
- VIDEO_ES, "Interplay MVE Video" },
-
- /* Id RoQ */
- { VLC_FOURCC('R','o','Q','v'), CODEC_ID_ROQ,
- VIDEO_ES, "Id RoQ Video" },
-
- /* Sony Playstation MDEC */
- { VLC_FOURCC('M','D','E','C'), CODEC_ID_MDEC,
- VIDEO_ES, "PSX MDEC Video" },
-
- /* Sierra VMD */
- { VLC_FOURCC('v','m','d','v'), CODEC_ID_VMDVIDEO,
- VIDEO_ES, "Sierra VMD Video" },
+ { VLC_FOURCC('T','M','2','0'), CODEC_ID_TRUEMOTION2,
+ VIDEO_ES, "Duck TrueMotion v2.0 Video" },
/* FFMPEG's SNOW wavelet codec */
{ VLC_FOURCC('S','N','O','W'), CODEC_ID_SNOW,
VIDEO_ES, "FFMpeg SNOW wavelet Video" },
+ { VLC_FOURCC('s','n','o','w'), CODEC_ID_SNOW,
+ VIDEO_ES, "FFMpeg SNOW wavelet Video" },
{ VLC_FOURCC('r','l','e',' '), CODEC_ID_QTRLE,
VIDEO_ES, "Apple QuickTime RLE Video" },
{ VLC_FOURCC('V','I','X','L'), CODEC_ID_VIXL,
VIDEO_ES, "Miro/Pinnacle VideoXL Video" },
+ { VLC_FOURCC('P','I','X','L'), CODEC_ID_VIXL,
+ VIDEO_ES, "Pinnacle VideoXL Video" },
{ VLC_FOURCC('L','O','C','O'), CODEC_ID_LOCO,
VIDEO_ES, "LOCO Video" },
{ VLC_FOURCC('R','T','2','1'), CODEC_ID_INDEO2,
VIDEO_ES, "Indeo Video v2" },
- /* Flash Screen Video */
+ /* Flash Screen Video */
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(11<<8)+0)
{ VLC_FOURCC('F','S','V','1'), CODEC_ID_FLASHSV,
VIDEO_ES, "Flash Screen Video" },
#endif
+ { VLC_FOURCC('K','M','V','C'), CODEC_ID_KMVC,
+ VIDEO_ES, "Karl Morton's Video Codec (Worms)" },
+
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(13<<8)+0)
- { VLC_FOURCC('V','M','n','c'), CODEC_ID_VMNC,
- VIDEO_ES, "VMware Video" },
+ { VLC_FOURCC('N','U','V','1'), CODEC_ID_NUV,
+ VIDEO_ES, "Nuppel Video" },
+ { VLC_FOURCC('R','J','P','G'), CODEC_ID_NUV,
+ VIDEO_ES, "Nuppel Video" },
+#endif
+
+#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(8<<8)+0)
+ /* CODEC_ID_SMACKVIDEO */
+ { VLC_FOURCC('S','M','K','2'), CODEC_ID_SMACKVIDEO,
+ VIDEO_ES, "Smacker Video" },
+ { VLC_FOURCC('S','M','K','4'), CODEC_ID_SMACKVIDEO,
+ VIDEO_ES, "Smacker Video" },
+#endif
+
+ /* Chinese AVS - Untested */
+#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(8<<8)+0)
+ { VLC_FOURCC('C','A','V','S'), CODEC_ID_CAVS,
+ VIDEO_ES, "Chinese AVS" },
+#endif
+
+#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+0)
+ /* Untested yet */
+ { VLC_FOURCC('A','V','D','n'), CODEC_ID_DNXHD,
+ VIDEO_ES, "DNxHD" },
+#endif
+ { VLC_FOURCC('8','B','P','S'), CODEC_ID_8BPS,
+ VIDEO_ES, "8BPS" },
+
+ /* Videogames Codecs */
+
+ /* Interplay MVE */
+ { VLC_FOURCC('i','m','v','e'), CODEC_ID_INTERPLAY_VIDEO,
+ VIDEO_ES, "Interplay MVE Video" },
+ { VLC_FOURCC('I','N','P','V'), CODEC_ID_INTERPLAY_VIDEO,
+ VIDEO_ES, "Interplay MVE Video" },
+
+ /* Id Quake II CIN */
+ { VLC_FOURCC('I','D','C','I'), CODEC_ID_IDCIN,
+ VIDEO_ES, "Id Quake II CIN Video" },
+
+ /* 4X Technologies */
+ { VLC_FOURCC('4','x','m','v'), CODEC_ID_4XM,
+ VIDEO_ES, "4X Technologies Video" },
+ { VLC_FOURCC('4','X','M','V'), CODEC_ID_4XM,
+ VIDEO_ES, "4X Technologies Video" },
+
+ /* Id RoQ */
+ { VLC_FOURCC('R','o','Q','v'), CODEC_ID_ROQ,
+ VIDEO_ES, "Id RoQ Video" },
+
+ /* Sony Playstation MDEC */
+ { VLC_FOURCC('M','D','E','C'), CODEC_ID_MDEC,
+ VIDEO_ES, "PSX MDEC Video" },
+
+ /* Sierra VMD */
+ { VLC_FOURCC('v','m','d','v'), CODEC_ID_VMDVIDEO,
+ VIDEO_ES, "Sierra VMD Video" },
+ { VLC_FOURCC('V','M','D','V'), CODEC_ID_VMDVIDEO,
+ VIDEO_ES, "Sierra VMD Video" },
+
+#if 0
+/* UNTESTED VideoGames*/
+ { VLC_FOURCC('W','C','3','V'), CODEC_ID_XAN_WC3,
+ VIDEO_ES, "XAN wc3 Video" },
+ { VLC_FOURCC('W','C','4','V'), CODEC_ID_XAN_WC4,
+ VIDEO_ES, "XAN wc4 Video" },
+ { VLC_FOURCC('S','T','3','C'), CODEC_ID_TXD,
+ VIDEO_ES, "Renderware TeXture Dictionary" },
+ { VLC_FOURCC('V','Q','A','V'), CODEC_ID_WS_VQA,
+ VIDEO_ES, "WestWood Vector Quantized Animation" },
+ { VLC_FOURCC('T','S','E','Q'), CODEC_ID_TIERTEXSEQVIDEO,
+ VIDEO_ES, "Tiertex SEQ Video" },
+ { VLC_FOURCC('D','X','A','1'), CODEC_ID_DXA,
+ VIDEO_ES, "Feeble DXA Video" },
+ { VLC_FOURCC('D','C','I','V'), CODEC_ID_DSICINVIDEO,
+ VIDEO_ES, "Delphine CIN Video" },
+ { VLC_FOURCC('T','H','P','V'), CODEC_ID_THP,
+ VIDEO_ES, "THP Video" },
+ { VLC_FOURCC('B','E','T','H'), CODEC_ID_BETHSOFTVID,
+ VIDEO_ES, "THP Video" },
+ { VLC_FOURCC('C','9','3','V'), CODEC_ID_C93,
+ VIDEO_ES, "THP Video" },
#endif
/*
VIDEO_ES, "PGM YUV Image" },
{ VLC_FOURCC('p','a','m',' '), CODEC_ID_PAM,
VIDEO_ES, "PAM Image" },
+ { VLC_FOURCC('M','J','L','S'), CODEC_ID_JPEGLS,
+ VIDEO_ES, "PAM Image" },
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(0<<8)+0)
{ VLC_FOURCC('b','m','p',' '), CODEC_ID_BMP,
#endif
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+1)
+ { VLC_FOURCC('t','i','f','f'), CODEC_ID_TIFF,
+ VIDEO_ES, "TIFF Image" },
{ VLC_FOURCC('g','i','f',' '), CODEC_ID_GIF,
VIDEO_ES, "GIF Image" },
+ { VLC_FOURCC('t','g','a',' '), CODEC_ID_TARGA,
+ VIDEO_ES, "Truevision Targa Image" },
+ { VLC_FOURCC('m','t','g','a'), CODEC_ID_TARGA,
+ VIDEO_ES, "Truevision Targa Image" },
+ { VLC_FOURCC('M','T','G','A'), CODEC_ID_TARGA,
+ VIDEO_ES, "Truevision Targa Image" },
+#endif
+#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+3)
+ { VLC_FOURCC('s','g','i',' '), CODEC_ID_SGI,
+ VIDEO_ES, "SGI Image" },
#endif
/*
{ VLC_FOURCC('M','A','C','6'), CODEC_ID_MACE6,
AUDIO_ES, "MACE-6 Audio" },
+ /* MUSEPACK7 Audio */
+ { VLC_FOURCC('M','P','C',' '), CODEC_ID_MUSEPACK7,
+ AUDIO_ES, "MUSEPACK7 Audio" },
+
/* RealAudio 1.0 */
{ VLC_FOURCC('1','4','_','4'), CODEC_ID_RA_144,
AUDIO_ES, "RealAudio 1.0" },
AUDIO_ES, "MPEG Audio layer 1/2" },
{ VLC_FOURCC('m','p','3',' '), CODEC_ID_MP3,
AUDIO_ES, "MPEG Audio layer 1/2/3" },
+ { VLC_FOURCC('.','m','p','3'), CODEC_ID_MP3,
+ AUDIO_ES, "MPEG Audio layer 1/2/3" },
+ { VLC_FOURCC('M','P','3',' '), CODEC_ID_MP3,
+ AUDIO_ES, "MPEG Audio layer 1/2/3" },
+ { VLC_FOURCC('L','A','M','E'), CODEC_ID_MP3,
+ AUDIO_ES, "MPEG Audio layer 1/2/3" },
/* A52 Audio (aka AC3) */
{ VLC_FOURCC('a','5','2',' '), CODEC_ID_AC3,
{ VLC_FOURCC('4','x','m','a'), CODEC_ID_ADPCM_4XM,
AUDIO_ES, "4X Technologies Audio" },
+ /* EA ADPCM */
+ { VLC_FOURCC('A','D','E','A'), CODEC_ID_ADPCM_EA,
+ AUDIO_ES, "EA ADPCM Audio" },
+
/* Interplay DPCM */
{ VLC_FOURCC('i','d','p','c'), CODEC_ID_INTERPLAY_DPCM,
AUDIO_ES, "Interplay DPCM Audio" },
{ VLC_FOURCC('R','o','Q','a'), CODEC_ID_ROQ_DPCM,
AUDIO_ES, "Id RoQ DPCM Audio" },
+#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(27<<8)+0)
+ /* DCIN Audio */
+ { VLC_FOURCC('D','C','I','A'), CODEC_ID_DSICINAUDIO,
+ AUDIO_ES, "Delphine CIN Audio" },
+#endif
+
/* Sony Playstation XA ADPCM */
{ VLC_FOURCC('x','a',' ',' '), CODEC_ID_ADPCM_XA,
AUDIO_ES, "PSX XA ADPCM Audio" },
{ VLC_FOURCC('a','d','x',' '), CODEC_ID_ADPCM_ADX,
AUDIO_ES, "ADX ADPCM Audio" },
+ /* Westwood ADPCM */
+ { VLC_FOURCC('A','I','W','S'), CODEC_ID_ADPCM_IMA_WS,
+ AUDIO_ES, "Westwood IMA ADPCM audio" },
+
/* Sierra VMD */
{ VLC_FOURCC('v','m','d','a'), CODEC_ID_VMDAUDIO,
AUDIO_ES, "Sierra VMD Audio" },
/* Shorten */
{ VLC_FOURCC('s','h','n',' '), CODEC_ID_SHORTEN,
AUDIO_ES, "Shorten Lossless Audio" },
+ { VLC_FOURCC('s','h','r','n'), CODEC_ID_SHORTEN,
+ AUDIO_ES, "Shorten Lossless Audio" },
#endif
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(16<<8)+0)
{ VLC_FOURCC('w','v','p','k'), CODEC_ID_WAVPACK,
AUDIO_ES, "WavPack" },
+ { VLC_FOURCC('W','V','P','K'), CODEC_ID_WAVPACK,
+ AUDIO_ES, "WavPack" },
#endif
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(34<<8)+0)
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+4)
{ VLC_FOURCC('a','t','r','c'), CODEC_ID_ATRAC3,
AUDIO_ES, "atrac 3" },
+ { VLC_FOURCC(0x70,0x2,0x0,0x0), CODEC_ID_ATRAC3,
+ AUDIO_ES, "atrac 3" },
+#endif
+
+ { VLC_FOURCC('S','O','N','C'), CODEC_ID_SONIC,
+ AUDIO_ES, "Sonic" },
+
+#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(34<<8)+0)
+ { VLC_FOURCC(0x1,0x4,0x0,0x0), CODEC_ID_IMC,
+ AUDIO_ES, "IMC" },
#endif
+ { VLC_FOURCC(0x22,0x0,0x0,0x0), CODEC_ID_TRUESPEECH,
+ AUDIO_ES, "TrueSpeech" },
/* PCM */
{ VLC_FOURCC('s','8',' ',' '), CODEC_ID_PCM_S8,
AUDIO_ES, "PCM ALAW" },
{ VLC_FOURCC('u','l','a','w'), CODEC_ID_PCM_MULAW,
AUDIO_ES, "PCM ULAW" },
+ { VLC_FOURCC('d','a','u','d'), CODEC_ID_PCM_S24DAUD,
+ AUDIO_ES, "PCM ULAW" },
{ 0, 0, 0, 0 }
};