mplayer中的fourcc

来源:互联网 发布:剑三女王捏脸数据 编辑:程序博客网 时间:2024/06/07 18:10
今天再看mplayer的代码时,其中有这么一段代码:
/*
** Translate a mplayer fourcc to a video4linux2 pixel format.
*/

static int fcc_mp2vl(int fcc)
{
    
switch (fcc) {
    
case IMGFMT_RGB8:    return V4L2_PIX_FMT_RGB332;
    
case IMGFMT_BGR15:    return V4L2_PIX_FMT_RGB555;
    
case IMGFMT_BGR16:    return V4L2_PIX_FMT_RGB565;
    
case IMGFMT_RGB24:    return V4L2_PIX_FMT_RGB24;
    
case IMGFMT_RGB32:    return V4L2_PIX_FMT_RGB32;
    
case IMGFMT_BGR24:    return V4L2_PIX_FMT_BGR24;
    
case IMGFMT_BGR32:    return V4L2_PIX_FMT_BGR32;
    
case IMGFMT_Y800:    return V4L2_PIX_FMT_GREY;
    
case IMGFMT_IF09:    return V4L2_PIX_FMT_YUV410;
    
case IMGFMT_I420:    return V4L2_PIX_FMT_YUV420;
    
case IMGFMT_YUY2:    return V4L2_PIX_FMT_YUYV;
    
case IMGFMT_YV12:    return V4L2_PIX_FMT_YVU420;
    
case IMGFMT_UYVY:   return V4L2_PIX_FMT_UYVY;
    }

    
return fcc;
}
这个函数的作用是将mplayer的fourcc格式转换成v4l2的象素格式,至于什么事fourcc,以前没有接触过,所以,到网上grep了一下,找到这篇文章:

http://htm.winsteps.net/program/6546.htm

其中说到:
FOURCC全称Four-Character Codes,是在编程中非常常用的东西,一般用作标示符。比如wav、avi等RIFF文件的标签头标示,Quake 3的模型文件.md3中也大量存在等于“IDP3”的FOURCC。它是一个32位的标示符,其实就是

typedef unsigned long FOURCC

用宏生成FOURCC

FOURCC是由四个字符拼接而成的。生成FOURCC的传统方法是:

// 来自mmsystem.h#define MAKEFOURCC(ch0, ch1, ch2, ch3)      ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) |    ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))

这种方法很简单直观,而且以下代码:

switch (val){case MAKEFOURCC('f', 'm', 't', ' '): ... break;case MAKEFOURCC('d', 'a', 't', 'a'): ... break; ...}

能顺利通过编译,因为宏能在编译期生成常量,符合case的条件。
/*******************************/
FourCC

FourCC代表四字符代码(four character code),是一种独立标示视频数据流格式的四字符代码。视频播放软件通过查询FourCC代码并且寻找与FourCC代码相关联的视频解码器来播放特定的视频流。比如: DIV3 = DivX Low-Motion, DIV4 = DivX Fast-Motion, DIVX = DivX4.

http://bbs4.xilu.com/cgi-bin/bbs/view?forum=fbrmfbrm&message=1270
/*******************************/
先记录下来,等以后看代码多了,我想就能够理解这个东西到底使用来做什么得了。。。
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一岁宝宝特别犟怎么办 孩子遇到问题喜欢发脾气怎么办 企业培养新人跑了怎么办 二年级学生读不懂题目怎么办 6岁宝宝有鼻炎怎么办 外地儿童怎么办北京医保卡 江苏联宝投资的钱怎么办 银行叫开了证券怎么办 中班心理健康我不开心了怎么办 大学生心理健康课总是抢不到怎么办 孩子成绩提不上去怎么办 孩子数学不开窍怎么办 二年级 初中孩子语文不开窍怎么办 分到的班级都是差生怎么办 初三了英语差怎么办呀 初三了英语差的很怎么办 五年级英语太差怎么办 听课效率没有自学效率高怎么办 小学生不好好写作业怎么办 带的家教成绩没有提高怎么办 学生出国学校成绩证明怎么办 学生成绩考差了班主任怎么办 高一的学生成绩跟不上怎么办 综合素质评价手册丢了怎么办 小学综合素质评价手册丢了怎么办 人体质不出汗差怎么办 儿子一年级语文成绩太差怎么办 小孩读一年级差几个月怎么办 小孩一年级下学期数学差怎么办 小学五年成绩差怎么办 生完孩子记忆力不好怎么办 生了孩子之后记忆力不好怎么办 孩子记忆力差学习不好怎么办 党课结业证丢了怎么办 对三年级不听话的学生应该怎么办 素质报告单丢了怎么办 社保小红本丢了怎么办 小红本丢了怎么办 孩子小红本丢了怎么办 小学素质报告册丢了怎么办 小学生素质报告册丢了怎么办