📄 ffmpeg.c
字号:
vlc_mutex_unlock( lockval.p_address );}/***************************************************************************** * 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 },#if LIBAVCODEC_BUILD >= 4720 { VLC_FOURCC('U','Y','V','Y'), PIX_FMT_UYVY422 },#endif /* Packed RGB formats */ { 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 }, { VLC_FOURCC('R','V','3','2'), PIX_FMT_RGBA32 }, { VLC_FOURCC('G','R','E','Y'), PIX_FMT_GRAY8 }, {0}};int E_(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 E_(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; char *psz_name;} codecs_table[] ={ /* MPEG-1 Video */ { VLC_FOURCC('m','p','1','v'), CODEC_ID_MPEG1VIDEO, VIDEO_ES, "MPEG-1 Video" }, /* MPEG-2 Video */ { VLC_FOURCC('m','p','2','v'), CODEC_ID_MPEG2VIDEO, VIDEO_ES, "MPEG-2 Video" }, { VLC_FOURCC('m','p','g','v'), CODEC_ID_MPEG2VIDEO, VIDEO_ES, "MPEG-2 Video" }, /* 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" }, { 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" }, { 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('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" }, /* 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" }, /* 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" }, /* 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)" }, /* 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" }, { VLC_FOURCC('H','2','6','4'), CODEC_ID_H264, VIDEO_ES, "h264" }, /* avc1: special case h264 */ { VLC_FOURCC('a','v','c','1'), CODEC_ID_H264, VIDEO_ES, "h264" }, { VLC_FOURCC('V','S','S','H'), CODEC_ID_H264, VIDEO_ES, "h264" }, { VLC_FOURCC('v','s','s','h'), CODEC_ID_H264, VIDEO_ES, "h264" },/* H263 and H263i *//* H263(+) is also known as Real Video 1.0 *//* FIXME FOURCC_H263P exist but what fourcc ? */ /* 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('U','2','6','3'), CODEC_ID_H263, VIDEO_ES, "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" }, /* Flash (H263) variant */ { VLC_FOURCC('F','L','V','1'), CODEC_ID_FLV1, VIDEO_ES, "Flash Video" },#if LIBAVCODEC_BUILD > 4716 { VLC_FOURCC('H','2','6','1'), CODEC_ID_H261, VIDEO_ES, "H.261" },#endif#if LIBAVCODEC_BUILD > 4680 { VLC_FOURCC('F','L','I','C'), CODEC_ID_FLIC, VIDEO_ES, "Flic Video" },#endif /* 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( 'm', 'j', 'p', 'b' ), CODEC_ID_MJPEGB, /* for mov file */ VIDEO_ES, "Motion JPEG B Video" },#if LIBAVCODEC_BUILD > 4680 { VLC_FOURCC( 'S', 'P', '5', 'X' ), CODEC_ID_SP5X, VIDEO_ES, "Sunplus Motion JPEG Video" },#endif /* 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','p',' '), CODEC_ID_DVVIDEO, VIDEO_ES, "DV Video" }, { VLC_FOURCC('C','D','V','C'), CODEC_ID_DVVIDEO, VIDEO_ES, "DV Video" }, /* Windows Media Video */ { 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" },#if 0 { VLC_FOURCC('W','M','V','3'), CODEC_ID_WMV3, VIDEO_ES, "Windows Media Video 3" }, { VLC_FOURCC('V','C','9',' '), CODEC_ID_VC9, VIDEO_ES, "Windows Media Video VC9" },#endif#if LIBAVCODEC_BUILD >= 4683 /* 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(0x1,0x0,0x0,0x0), CODEC_ID_MSRLE, VIDEO_ES, "Microsoft RLE Video" },#endif /* 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" },
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -