⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ffmpeg.c

📁 video linux conference
💻 C
📖 第 1 页 / 共 3 页
字号:
    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 + -