Commit 11aac010 authored by Antoine Cellerier's avatar Antoine Cellerier

Some more seperation of the different ffmpeg based modules. They're now...

Some more seperation of the different ffmpeg based modules. They're now completely disjoint except for the common chroma.h and fourcc.h headers.
parent f289c1f1
......@@ -4,6 +4,8 @@ SOURCES_avcodec = \
video.c \
audio.c \
deinterlace.c \
fourcc.h \
chroma.h \
$(NULL)
if ENABLE_SOUT
......@@ -18,6 +20,8 @@ SOURCES_avformat = \
avformat.c \
avformat.h \
demux.c \
fourcc.h \
chroma.h \
$(NULL)
if ENABLE_SOUT
......@@ -32,6 +36,7 @@ SOURCES_swscale = \
swscale.c \
swscale.h \
scale.c \
chroma.h \
$(NULL)
SOURCES_imgresample = \
......@@ -39,6 +44,7 @@ SOURCES_imgresample = \
imgresample.h \
chroma.c \
video_filter.c \
chroma.h \
$(NULL)
SOURCES_postproc = \
......
......@@ -43,7 +43,7 @@
# include <avcodec.h>
#endif
#include "ffmpeg.h"
#include "avcodec.h"
static unsigned int pi_channels_maps[7] =
{
......
......@@ -47,7 +47,8 @@
# error You must have a libavcodec >= 5000 (get svn)
#endif
#include "ffmpeg.h"
#include "avcodec.h"
#include "fourcc.h"
/*****************************************************************************
* decoder_sys_t: decoder descriptor
......@@ -412,1108 +413,3 @@ void InitLibavcodec( vlc_object_t *p_object )
vlc_mutex_unlock( lock );
}
/*****************************************************************************
* Chroma fourcc -> ffmpeg_id mapping
*****************************************************************************/
static struct
{
vlc_fourcc_t i_chroma;
int i_chroma_id;
} chroma_table[] =
{
/* Planar YUV formats */
{ VLC_FOURCC('Y','U','V','A'), PIX_FMT_YUV444P }, /* Hack */
{ VLC_FOURCC('I','4','4','4'), PIX_FMT_YUV444P },
{ VLC_FOURCC('J','4','4','4'), PIX_FMT_YUVJ444P },
{ VLC_FOURCC('I','4','2','2'), PIX_FMT_YUV422P },
{ VLC_FOURCC('J','4','2','2'), PIX_FMT_YUVJ422P },
{ VLC_FOURCC('I','4','2','0'), PIX_FMT_YUV420P },
{ VLC_FOURCC('Y','V','1','2'), PIX_FMT_YUV420P },
{ VLC_FOURCC('I','Y','U','V'), PIX_FMT_YUV420P },
{ VLC_FOURCC('J','4','2','0'), PIX_FMT_YUVJ420P },
{ VLC_FOURCC('I','4','1','1'), PIX_FMT_YUV411P },
{ VLC_FOURCC('I','4','1','0'), PIX_FMT_YUV410P },
{ VLC_FOURCC('Y','V','U','9'), PIX_FMT_YUV410P },
/* Packed YUV formats */
{ VLC_FOURCC('Y','U','Y','2'), PIX_FMT_YUV422 },
{ VLC_FOURCC('Y','U','Y','V'), PIX_FMT_YUV422 },
{ VLC_FOURCC('U','Y','V','Y'), PIX_FMT_UYVY422 },
/* Packed RGB formats */
#if defined(WORDS_BIGENDIAN)
{ VLC_FOURCC('R','G','B','8'), PIX_FMT_BGR8 },
{ VLC_FOURCC('R','V','1','5'), PIX_FMT_BGR555 },
{ VLC_FOURCC('R','V','1','6'), PIX_FMT_BGR565 },
{ VLC_FOURCC('R','V','2','4'), PIX_FMT_BGR24 },
#else
#if defined(PIX_FMT_RGB8)
{ VLC_FOURCC('R','G','B','8'), PIX_FMT_RGB8 },
#endif
{ VLC_FOURCC('R','V','1','5'), PIX_FMT_RGB555 },
{ VLC_FOURCC('R','V','1','6'), PIX_FMT_RGB565 },
{ VLC_FOURCC('R','V','2','4'), PIX_FMT_RGB24 },
#endif
{ VLC_FOURCC('R','V','3','2'), PIX_FMT_RGBA32 },
#if defined(PIX_FMT_RGBA)
{ VLC_FOURCC('R','G','B','A'), PIX_FMT_RGBA },
#endif
{ VLC_FOURCC('G','R','E','Y'), PIX_FMT_GRAY8 },
{ 0, 0 }
};
int GetFfmpegChroma( vlc_fourcc_t i_chroma )
{
int i;
for( i = 0; chroma_table[i].i_chroma != 0; i++ )
{
if( chroma_table[i].i_chroma == i_chroma )
return chroma_table[i].i_chroma_id;
}
return -1;
}
vlc_fourcc_t GetVlcChroma( int i_ffmpeg_chroma )
{
int i;
for( i = 0; chroma_table[i].i_chroma != 0; i++ )
{
if( chroma_table[i].i_chroma_id == i_ffmpeg_chroma )
return chroma_table[i].i_chroma;
}
return 0;
}
/*****************************************************************************
* Codec fourcc -> ffmpeg_id mapping
*****************************************************************************/
static struct
{
vlc_fourcc_t i_fourcc;
int i_codec;
int i_cat;
const char *psz_name;
} codecs_table[] =
{
/*
* Video Codecs
*/
/* MPEG-1 Video */
{ VLC_FOURCC('m','p','1','v'), CODEC_ID_MPEG1VIDEO,
VIDEO_ES, "MPEG-1 Video" },
{ VLC_FOURCC('m','p','e','g'), CODEC_ID_MPEG1VIDEO,
VIDEO_ES, "MPEG-1 Video" },
{ VLC_FOURCC('m','p','g','1'), CODEC_ID_MPEG1VIDEO,
VIDEO_ES, "MPEG-1 Video" },
{ VLC_FOURCC('P','I','M','1'), CODEC_ID_MPEG1VIDEO,
VIDEO_ES, "Pinnacle DC1000 (MPEG-1 Video)" },
/* MPEG-2 Video */
{ VLC_FOURCC('m','p','2','v'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "MPEG-2 Video" },
{ VLC_FOURCC('M','P','E','G'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "MPEG-2 Video" },
{ VLC_FOURCC('m','p','g','v'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "MPEG-2 Video" },
{ VLC_FOURCC('m','p','g','2'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "MPEG-2 Video" },
{ VLC_FOURCC('h','d','v','1'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "HDV 720p30 (MPEG-2 Video)" },
{ VLC_FOURCC('h','d','v','2'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "Sony HDV (MPEG-2 Video)" },
{ VLC_FOURCC('h','d','v','3'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "FCP HDV (MPEG-2 Video)" },
{ VLC_FOURCC('h','d','v','5'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "HDV 720p25 (MPEG-2 Video)" },
{ VLC_FOURCC('m','x','5','n'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "MPEG2 IMX NTSC 525/60 50mb/s (FCP)" },
{ VLC_FOURCC('m','x','5','p'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "MPEG2 IMX PAL 625/60 50mb/s (FCP)" },
{ VLC_FOURCC('m','x','4','n'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "MPEG2 IMX NTSC 525/60 40mb/s (FCP)" },
{ VLC_FOURCC('m','x','4','p'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "MPEG2 IMX PAL 625/50 40mb/s (FCP)" },
{ VLC_FOURCC('m','x','3','n'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "MPEG2 IMX NTSC 525/60 30mb/s (FCP)" },
{ VLC_FOURCC('m','x','3','p'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "MPEG2 IMX NTSC 625/50 30mb/s (FCP)" },
{ VLC_FOURCC('x','d','v','2'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "XDCAM HD 1080i60" },
{ VLC_FOURCC('A','V','m','p'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "AVID IMX PAL" },
/* ATI VCR2 */
{ VLC_FOURCC('V','C','R','2'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "ATI VCR2 Video" },
{ VLC_FOURCC('M','M','E','S'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "Matrox MPEG-2" },
{ VLC_FOURCC('m','m','e','s'), CODEC_ID_MPEG2VIDEO,
VIDEO_ES, "Matrox MPEG-2" },
/* MPEG-4 Video */
{ VLC_FOURCC('D','I','V','X'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
{ VLC_FOURCC('d','i','v','x'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
{ VLC_FOURCC('M','P','4','S'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
{ VLC_FOURCC('m','p','4','s'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
{ VLC_FOURCC('M','4','S','2'), CODEC_ID_MPEG4,
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','D'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
{ VLC_FOURCC('X','V','I','X'), 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( 4, 0, 0, 0 ), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
{ VLC_FOURCC('m','4','c','c'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" },
{ VLC_FOURCC('M','4','C','C'), 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','1'), CODEC_ID_MPEG4,
VIDEO_ES, "MPEG-4 Video" }, */
/* 3ivx delta 4 */
{ VLC_FOURCC('3','I','V','2'), 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)" },
{ VLC_FOURCC('f','v','f','w'), CODEC_ID_MPEG4,
VIDEO_ES, "FFmpeg MPEG-4" },
{ VLC_FOURCC('F','V','F','W'), CODEC_ID_MPEG4,
VIDEO_ES, "FFmpeg MPEG-4" },
/* MSMPEG4 v1 */
{ VLC_FOURCC('D','I','V','1'), CODEC_ID_MSMPEG4V1,
VIDEO_ES, "MS MPEG-4 Video v1" },
{ VLC_FOURCC('d','i','v','1'), CODEC_ID_MSMPEG4V1,
VIDEO_ES, "MS MPEG-4 Video v1" },
{ VLC_FOURCC('M','P','G','4'), CODEC_ID_MSMPEG4V1,
VIDEO_ES, "MS MPEG-4 Video v1" },
{ VLC_FOURCC('m','p','g','4'), CODEC_ID_MSMPEG4V1,
VIDEO_ES, "MS MPEG-4 Video v1" },
/* MSMPEG4 v2 */
{ VLC_FOURCC('D','I','V','2'), CODEC_ID_MSMPEG4V2,
VIDEO_ES, "MS MPEG-4 Video v2" },
{ VLC_FOURCC('d','i','v','2'), CODEC_ID_MSMPEG4V2,
VIDEO_ES, "MS MPEG-4 Video v2" },
{ VLC_FOURCC('M','P','4','2'), CODEC_ID_MSMPEG4V2,
VIDEO_ES, "MS MPEG-4 Video v2" },
{ VLC_FOURCC('m','p','4','2'), CODEC_ID_MSMPEG4V2,
VIDEO_ES, "MS MPEG-4 Video v2" },
/* MSMPEG4 v3 / M$ mpeg4 v3 */
{ VLC_FOURCC('M','P','G','3'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
{ VLC_FOURCC('m','p','g','3'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
{ VLC_FOURCC('d','i','v','3'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
{ VLC_FOURCC('M','P','4','3'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
{ VLC_FOURCC('m','p','4','3'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
/* DivX 3.20 */
{ VLC_FOURCC('D','I','V','3'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
{ VLC_FOURCC('D','I','V','4'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
{ VLC_FOURCC('d','i','v','4'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
{ VLC_FOURCC('D','I','V','5'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
{ VLC_FOURCC('d','i','v','5'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
{ VLC_FOURCC('D','I','V','6'), CODEC_ID_MSMPEG4V3,
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" },
/* 3ivx doctered divx files */
{ VLC_FOURCC('3','I','V','D'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
{ VLC_FOURCC('3','i','v','d'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
/* who knows? */
{ VLC_FOURCC('3','V','I','D'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
{ VLC_FOURCC('3','v','i','d'), CODEC_ID_MSMPEG4V3,
VIDEO_ES, "MS MPEG-4 Video v3" },
/* Sorenson v1 */
{ VLC_FOURCC('S','V','Q','1'), CODEC_ID_SVQ1,
VIDEO_ES, "SVQ-1 (Sorenson Video v1)" },
{ VLC_FOURCC('s','v','q','1'), CODEC_ID_SVQ1,
VIDEO_ES, "SVQ-1 (Sorenson Video v1)" },
{ VLC_FOURCC('s','v','q','i'), CODEC_ID_SVQ1,
VIDEO_ES, "SVQ-1 (Sorenson Video v1)" },
/* Sorenson v3 */
{ VLC_FOURCC('S','V','Q','3'), CODEC_ID_SVQ3,
VIDEO_ES, "SVQ-3 (Sorenson Video v3)" },
/* h264 */
{ VLC_FOURCC('h','2','6','4'), CODEC_ID_H264,
VIDEO_ES, "H264 - MPEG-4 AVC (part 10)" },
{ VLC_FOURCC('H','2','6','4'), CODEC_ID_H264,
VIDEO_ES, "H264 - MPEG-4 AVC (part 10)" },
{ VLC_FOURCC('x','2','6','4'), CODEC_ID_H264,
VIDEO_ES, "H264 - MPEG-4 AVC (part 10)" },
{ VLC_FOURCC('X','2','6','4'), CODEC_ID_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 - 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, "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, "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('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, "I263.I" },
{ VLC_FOURCC('i','2','6','3'), CODEC_ID_H263I,
VIDEO_ES, "I263.I" },
/* H263P */
{ VLC_FOURCC('v','i','v','1'), CODEC_ID_H263P,
VIDEO_ES, "H263+" },
{ VLC_FOURCC('v','i','v','O'), CODEC_ID_H263P,
VIDEO_ES, "H263+" },
{ VLC_FOURCC('v','i','v','2'), CODEC_ID_H263P,
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" },
/* MJPEG */
{ VLC_FOURCC( 'M','J','P','G' ), CODEC_ID_MJPEG,
VIDEO_ES, "Motion JPEG Video" },
{ VLC_FOURCC( 'm','j','p','g' ), CODEC_ID_MJPEG,
VIDEO_ES, "Motion JPEG Video" },
{ VLC_FOURCC( 'm','j','p','a' ), CODEC_ID_MJPEG, /* for mov file */
VIDEO_ES, "Motion JPEG Video" },
{ VLC_FOURCC( 'j','p','e','g' ), CODEC_ID_MJPEG,
VIDEO_ES, "Motion JPEG Video" },
{ VLC_FOURCC( 'J','P','E','G' ), CODEC_ID_MJPEG,
VIDEO_ES, "Motion JPEG Video" },
{ VLC_FOURCC( 'J','F','I','F' ), CODEC_ID_MJPEG,
VIDEO_ES, "Motion JPEG Video" },
{ VLC_FOURCC( 'J','P','G','L' ), CODEC_ID_MJPEG,
VIDEO_ES, "Motion JPEG Video" },
{ VLC_FOURCC( 'A','V','D','J' ), CODEC_ID_MJPEG,
VIDEO_ES, "Motion JPEG 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" },
{ VLC_FOURCC('d','v','s','d'), CODEC_ID_DVVIDEO,
VIDEO_ES, "DV Video" },
{ VLC_FOURCC('D','V','S','D'), CODEC_ID_DVVIDEO,
VIDEO_ES, "DV Video" },
{ VLC_FOURCC('d','v','h','d'), CODEC_ID_DVVIDEO,
VIDEO_ES, "DV Video" },
{ VLC_FOURCC('d','v','c',' '), CODEC_ID_DVVIDEO,
VIDEO_ES, "DV Video" },
{ VLC_FOURCC('d','v','c','p'), CODEC_ID_DVVIDEO,
VIDEO_ES, "DV Video PAL" },
{ VLC_FOURCC('d','v','p',' '), CODEC_ID_DVVIDEO,
VIDEO_ES, "DV Video Pro" },
{ VLC_FOURCC('d','v','p','p'), 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,
VIDEO_ES, "DV Video C Pro 50 NTSC" },
{ VLC_FOURCC('A','V','d','v'), CODEC_ID_DVVIDEO,
VIDEO_ES, "AVID DV" },
/* 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" },
{ 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, "Windows Media Video Advanced Profile" },
#endif
/* Microsoft Video 1 */
{ VLC_FOURCC('M','S','V','C'), CODEC_ID_MSVIDEO1,
VIDEO_ES, "Microsoft Video 1" },
{ VLC_FOURCC('m','s','v','c'), CODEC_ID_MSVIDEO1,
VIDEO_ES, "Microsoft Video 1" },
{ VLC_FOURCC('C','R','A','M'), CODEC_ID_MSVIDEO1,
VIDEO_ES, "Microsoft Video 1" },
{ VLC_FOURCC('c','r','a','m'), CODEC_ID_MSVIDEO1,
VIDEO_ES, "Microsoft Video 1" },
{ VLC_FOURCC('W','H','A','M'), CODEC_ID_MSVIDEO1,
VIDEO_ES, "Microsoft Video 1" },
{ VLC_FOURCC('w','h','a','m'), CODEC_ID_MSVIDEO1,
VIDEO_ES, "Microsoft Video 1" },
/* Microsoft RLE */
{ VLC_FOURCC('m','r','l','e'), CODEC_ID_MSRLE,
VIDEO_ES, "Microsoft RLE Video" },
{ VLC_FOURCC('W','R','L','E'), CODEC_ID_MSRLE,
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,
VIDEO_ES, "Indeo Video v3" },
{ VLC_FOURCC('i','v','3','1'), CODEC_ID_INDEO3,
VIDEO_ES, "Indeo Video v3" },
{ VLC_FOURCC('I','V','3','2'), CODEC_ID_INDEO3,
VIDEO_ES, "Indeo Video v3" },
{ VLC_FOURCC('i','v','3','2'), CODEC_ID_INDEO3,
VIDEO_ES, "Indeo Video v3" },
/* 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,
VIDEO_ES, "On2's VP3 Video" },
{ VLC_FOURCC('V','P','3','0'), CODEC_ID_VP3,
VIDEO_ES, "On2's VP3 Video" },
{ VLC_FOURCC('V','P','3','1'), CODEC_ID_VP3,
VIDEO_ES, "On2's VP3 Video" },
{ 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" },
{ VLC_FOURCC('V','P','5','0'), CODEC_ID_VP5,
VIDEO_ES, "On2's VP5 Video" },
{ VLC_FOURCC('V','P','6','2'), CODEC_ID_VP6,
VIDEO_ES, "On2's VP6.2 Video" },
{ VLC_FOURCC('v','p','6','2'), CODEC_ID_VP6,
VIDEO_ES, "On2's VP6.2 Video" },
{ VLC_FOURCC('V','P','6','F'), CODEC_ID_VP6F,
VIDEO_ES, "On2's VP6.2 Video (Flash)" },
#endif
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(27<<8)+0)
{ VLC_FOURCC('V','P','6','0'), CODEC_ID_VP6,
VIDEO_ES, "On2's VP6.0 Video" },
{ VLC_FOURCC('V','P','6','1'), CODEC_ID_VP6,
VIDEO_ES, "On2's VP6.1 Video" },
#endif
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(47<<8)+0)
{ VLC_FOURCC('V','P','6','A'), CODEC_ID_VP6A,
VIDEO_ES, "On2's VP6 A Video" },
#endif
/* 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) */
{ VLC_FOURCC('A','S','V','1'), CODEC_ID_ASV1,
VIDEO_ES, "Asus V1 Video" },
{ VLC_FOURCC('A','S','V','2'), CODEC_ID_ASV2,
VIDEO_ES, "Asus V2 Video" },
#endif
/* FFMPEG Video 1 (lossless codec) */
{ VLC_FOURCC('F','F','V','1'), CODEC_ID_FFV1,
VIDEO_ES, "FFMpeg Video 1" },
/* ATI VCR1 */
{ VLC_FOURCC('V','C','R','1'), CODEC_ID_VCR1,
VIDEO_ES, "ATI VCR1 Video" },
/* Cirrus Logic AccuPak */
{ VLC_FOURCC('C','L','J','R'), CODEC_ID_CLJR,
VIDEO_ES, "Creative Logic AccuPak" },
/* 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. 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" },