2019独角兽企业重金招聘Python工程师标准>>>

libavfilter/vf_colorkey.c

typedef struct ColorkeyContext {const AVClass *class;/* color offsets rgba */int co[4];uint8_t colorkey_rgba[4];float similarity;float blend;
} ColorkeyContext;#define OFFSET(x) offsetof(ColorkeyContext, x)
#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAMstatic const AVOption colorkey_options[] = {{ "color", "set the colorkey key color", OFFSET(colorkey_rgba), AV_OPT_TYPE_COLOR, { .str = "black" }, CHAR_MIN, CHAR_MAX, FLAGS },{ "similarity", "set the colorkey similarity value", OFFSET(similarity), AV_OPT_TYPE_FLOAT, { .dbl = 0.01 }, 0.01, 1.0, FLAGS },{ "blend", "set the colorkey key blend value", OFFSET(blend), AV_OPT_TYPE_FLOAT, { .dbl = 0.0 }, 0.0, 1.0, FLAGS },{ NULL }
};AVFILTER_DEFINE_CLASS(colorkey);AVFilter ff_vf_colorkey = {.name          = "colorkey",.description   = NULL_IF_CONFIG_SMALL("Turns a certain color into transparency. Operates on RGB colors."),.priv_size     = sizeof(ColorkeyContext),.priv_class    = &colorkey_class,.query_formats = query_formats,.inputs        = colorkey_inputs,.outputs       = colorkey_outputs,.flags         = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS,
};

libavutil/parseutils.c

typedef struct ColorEntry {const char *name;            ///< a string representing the name of the coloruint8_t     rgb_color[3];    ///< RGB values for the color
} ColorEntry;static const ColorEntry color_table[] = {{ "AliceBlue",            { 0xF0, 0xF8, 0xFF } },{ "AntiqueWhite",         { 0xFA, 0xEB, 0xD7 } },{ "Aqua",                 { 0x00, 0xFF, 0xFF } },{ "Aquamarine",           { 0x7F, 0xFF, 0xD4 } },{ "Azure",                { 0xF0, 0xFF, 0xFF } },{ "Beige",                { 0xF5, 0xF5, 0xDC } },{ "Bisque",               { 0xFF, 0xE4, 0xC4 } },{ "Black",                { 0x00, 0x00, 0x00 } },{ "BlanchedAlmond",       { 0xFF, 0xEB, 0xCD } },{ "Blue",                 { 0x00, 0x00, 0xFF } },{ "BlueViolet",           { 0x8A, 0x2B, 0xE2 } },{ "Brown",                { 0xA5, 0x2A, 0x2A } },{ "BurlyWood",            { 0xDE, 0xB8, 0x87 } },{ "CadetBlue",            { 0x5F, 0x9E, 0xA0 } },{ "Chartreuse",           { 0x7F, 0xFF, 0x00 } },{ "Chocolate",            { 0xD2, 0x69, 0x1E } },{ "Coral",                { 0xFF, 0x7F, 0x50 } },{ "CornflowerBlue",       { 0x64, 0x95, 0xED } },{ "Cornsilk",             { 0xFF, 0xF8, 0xDC } },{ "Crimson",              { 0xDC, 0x14, 0x3C } },{ "Cyan",                 { 0x00, 0xFF, 0xFF } },{ "DarkBlue",             { 0x00, 0x00, 0x8B } },{ "DarkCyan",             { 0x00, 0x8B, 0x8B } },{ "DarkGoldenRod",        { 0xB8, 0x86, 0x0B } },{ "DarkGray",             { 0xA9, 0xA9, 0xA9 } },{ "DarkGreen",            { 0x00, 0x64, 0x00 } },{ "DarkKhaki",            { 0xBD, 0xB7, 0x6B } },{ "DarkMagenta",          { 0x8B, 0x00, 0x8B } },{ "DarkOliveGreen",       { 0x55, 0x6B, 0x2F } },{ "Darkorange",           { 0xFF, 0x8C, 0x00 } },{ "DarkOrchid",           { 0x99, 0x32, 0xCC } },{ "DarkRed",              { 0x8B, 0x00, 0x00 } },{ "DarkSalmon",           { 0xE9, 0x96, 0x7A } },{ "DarkSeaGreen",         { 0x8F, 0xBC, 0x8F } },{ "DarkSlateBlue",        { 0x48, 0x3D, 0x8B } },{ "DarkSlateGray",        { 0x2F, 0x4F, 0x4F } },{ "DarkTurquoise",        { 0x00, 0xCE, 0xD1 } },{ "DarkViolet",           { 0x94, 0x00, 0xD3 } },{ "DeepPink",             { 0xFF, 0x14, 0x93 } },{ "DeepSkyBlue",          { 0x00, 0xBF, 0xFF } },{ "DimGray",              { 0x69, 0x69, 0x69 } },{ "DodgerBlue",           { 0x1E, 0x90, 0xFF } },{ "FireBrick",            { 0xB2, 0x22, 0x22 } },{ "FloralWhite",          { 0xFF, 0xFA, 0xF0 } },{ "ForestGreen",          { 0x22, 0x8B, 0x22 } },{ "Fuchsia",              { 0xFF, 0x00, 0xFF } },{ "Gainsboro",            { 0xDC, 0xDC, 0xDC } },{ "GhostWhite",           { 0xF8, 0xF8, 0xFF } },{ "Gold",                 { 0xFF, 0xD7, 0x00 } },{ "GoldenRod",            { 0xDA, 0xA5, 0x20 } },{ "Gray",                 { 0x80, 0x80, 0x80 } },{ "Green",                { 0x00, 0x80, 0x00 } },{ "GreenYellow",          { 0xAD, 0xFF, 0x2F } },{ "HoneyDew",             { 0xF0, 0xFF, 0xF0 } },{ "HotPink",              { 0xFF, 0x69, 0xB4 } },{ "IndianRed",            { 0xCD, 0x5C, 0x5C } },{ "Indigo",               { 0x4B, 0x00, 0x82 } },{ "Ivory",                { 0xFF, 0xFF, 0xF0 } },{ "Khaki",                { 0xF0, 0xE6, 0x8C } },{ "Lavender",             { 0xE6, 0xE6, 0xFA } },{ "LavenderBlush",        { 0xFF, 0xF0, 0xF5 } },{ "LawnGreen",            { 0x7C, 0xFC, 0x00 } },{ "LemonChiffon",         { 0xFF, 0xFA, 0xCD } },{ "LightBlue",            { 0xAD, 0xD8, 0xE6 } },{ "LightCoral",           { 0xF0, 0x80, 0x80 } },{ "LightCyan",            { 0xE0, 0xFF, 0xFF } },{ "LightGoldenRodYellow", { 0xFA, 0xFA, 0xD2 } },{ "LightGreen",           { 0x90, 0xEE, 0x90 } },{ "LightGrey",            { 0xD3, 0xD3, 0xD3 } },{ "LightPink",            { 0xFF, 0xB6, 0xC1 } },{ "LightSalmon",          { 0xFF, 0xA0, 0x7A } },{ "LightSeaGreen",        { 0x20, 0xB2, 0xAA } },{ "LightSkyBlue",         { 0x87, 0xCE, 0xFA } },{ "LightSlateGray",       { 0x77, 0x88, 0x99 } },{ "LightSteelBlue",       { 0xB0, 0xC4, 0xDE } },{ "LightYellow",          { 0xFF, 0xFF, 0xE0 } },{ "Lime",                 { 0x00, 0xFF, 0x00 } },{ "LimeGreen",            { 0x32, 0xCD, 0x32 } },{ "Linen",                { 0xFA, 0xF0, 0xE6 } },{ "Magenta",              { 0xFF, 0x00, 0xFF } },{ "Maroon",               { 0x80, 0x00, 0x00 } },{ "MediumAquaMarine",     { 0x66, 0xCD, 0xAA } },{ "MediumBlue",           { 0x00, 0x00, 0xCD } },{ "MediumOrchid",         { 0xBA, 0x55, 0xD3 } },{ "MediumPurple",         { 0x93, 0x70, 0xD8 } },{ "MediumSeaGreen",       { 0x3C, 0xB3, 0x71 } },{ "MediumSlateBlue",      { 0x7B, 0x68, 0xEE } },{ "MediumSpringGreen",    { 0x00, 0xFA, 0x9A } },{ "MediumTurquoise",      { 0x48, 0xD1, 0xCC } },{ "MediumVioletRed",      { 0xC7, 0x15, 0x85 } },{ "MidnightBlue",         { 0x19, 0x19, 0x70 } },{ "MintCream",            { 0xF5, 0xFF, 0xFA } },{ "MistyRose",            { 0xFF, 0xE4, 0xE1 } },{ "Moccasin",             { 0xFF, 0xE4, 0xB5 } },{ "NavajoWhite",          { 0xFF, 0xDE, 0xAD } },{ "Navy",                 { 0x00, 0x00, 0x80 } },{ "OldLace",              { 0xFD, 0xF5, 0xE6 } },{ "Olive",                { 0x80, 0x80, 0x00 } },{ "OliveDrab",            { 0x6B, 0x8E, 0x23 } },{ "Orange",               { 0xFF, 0xA5, 0x00 } },{ "OrangeRed",            { 0xFF, 0x45, 0x00 } },{ "Orchid",               { 0xDA, 0x70, 0xD6 } },{ "PaleGoldenRod",        { 0xEE, 0xE8, 0xAA } },{ "PaleGreen",            { 0x98, 0xFB, 0x98 } },{ "PaleTurquoise",        { 0xAF, 0xEE, 0xEE } },{ "PaleVioletRed",        { 0xD8, 0x70, 0x93 } },{ "PapayaWhip",           { 0xFF, 0xEF, 0xD5 } },{ "PeachPuff",            { 0xFF, 0xDA, 0xB9 } },{ "Peru",                 { 0xCD, 0x85, 0x3F } },{ "Pink",                 { 0xFF, 0xC0, 0xCB } },{ "Plum",                 { 0xDD, 0xA0, 0xDD } },{ "PowderBlue",           { 0xB0, 0xE0, 0xE6 } },{ "Purple",               { 0x80, 0x00, 0x80 } },{ "Red",                  { 0xFF, 0x00, 0x00 } },{ "RosyBrown",            { 0xBC, 0x8F, 0x8F } },{ "RoyalBlue",            { 0x41, 0x69, 0xE1 } },{ "SaddleBrown",          { 0x8B, 0x45, 0x13 } },{ "Salmon",               { 0xFA, 0x80, 0x72 } },{ "SandyBrown",           { 0xF4, 0xA4, 0x60 } },{ "SeaGreen",             { 0x2E, 0x8B, 0x57 } },{ "SeaShell",             { 0xFF, 0xF5, 0xEE } },{ "Sienna",               { 0xA0, 0x52, 0x2D } },{ "Silver",               { 0xC0, 0xC0, 0xC0 } },{ "SkyBlue",              { 0x87, 0xCE, 0xEB } },{ "SlateBlue",            { 0x6A, 0x5A, 0xCD } },{ "SlateGray",            { 0x70, 0x80, 0x90 } },{ "Snow",                 { 0xFF, 0xFA, 0xFA } },{ "SpringGreen",          { 0x00, 0xFF, 0x7F } },{ "SteelBlue",            { 0x46, 0x82, 0xB4 } },{ "Tan",                  { 0xD2, 0xB4, 0x8C } },{ "Teal",                 { 0x00, 0x80, 0x80 } },{ "Thistle",              { 0xD8, 0xBF, 0xD8 } },{ "Tomato",               { 0xFF, 0x63, 0x47 } },{ "Turquoise",            { 0x40, 0xE0, 0xD0 } },{ "Violet",               { 0xEE, 0x82, 0xEE } },{ "Wheat",                { 0xF5, 0xDE, 0xB3 } },{ "White",                { 0xFF, 0xFF, 0xFF } },{ "WhiteSmoke",           { 0xF5, 0xF5, 0xF5 } },{ "Yellow",               { 0xFF, 0xFF, 0x00 } },{ "YellowGreen",          { 0x9A, 0xCD, 0x32 } },
};

其中AVOption在libavutil/opt.h定义

enum AVOptionType{AV_OPT_TYPE_FLAGS,AV_OPT_TYPE_INT,AV_OPT_TYPE_INT64,AV_OPT_TYPE_DOUBLE,AV_OPT_TYPE_FLOAT,AV_OPT_TYPE_STRING,AV_OPT_TYPE_RATIONAL,AV_OPT_TYPE_BINARY,  ///< offset must point to a pointer immediately followed by an int for the lengthAV_OPT_TYPE_DICT,AV_OPT_TYPE_CONST = 128,AV_OPT_TYPE_IMAGE_SIZE = MKBETAG('S','I','Z','E'), ///< offset must point to two consecutive integersAV_OPT_TYPE_PIXEL_FMT  = MKBETAG('P','F','M','T'),AV_OPT_TYPE_SAMPLE_FMT = MKBETAG('S','F','M','T'),AV_OPT_TYPE_VIDEO_RATE = MKBETAG('V','R','A','T'), ///< offset must point to AVRationalAV_OPT_TYPE_DURATION   = MKBETAG('D','U','R',' '),AV_OPT_TYPE_COLOR      = MKBETAG('C','O','L','R'),AV_OPT_TYPE_CHANNEL_LAYOUT = MKBETAG('C','H','L','A'),AV_OPT_TYPE_BOOL           = MKBETAG('B','O','O','L'),
};/*** AVOption*/
typedef struct AVOption {const char *name;/*** short English help text* @todo What about other languages?*/const char *help;/*** The offset relative to the context structure where the option* value is stored. It should be 0 for named constants.*/int offset;enum AVOptionType type;/*** the default value for scalar options*/union {int64_t i64;double dbl;const char *str;/* TODO those are unused now */AVRational q;} default_val;double min;                 ///< minimum valid value for the optiondouble max;                 ///< maximum valid value for the optionint flags;
#define AV_OPT_FLAG_ENCODING_PARAM  1   ///< a generic parameter which can be set by the user for muxing or encoding
#define AV_OPT_FLAG_DECODING_PARAM  2   ///< a generic parameter which can be set by the user for demuxing or decoding
#if FF_API_OPT_TYPE_METADATA
#define AV_OPT_FLAG_METADATA        4   ///< some data extracted or inserted into the file like title, comment, ...
#endif
#define AV_OPT_FLAG_AUDIO_PARAM     8
#define AV_OPT_FLAG_VIDEO_PARAM     16
#define AV_OPT_FLAG_SUBTITLE_PARAM  32
/*** The option is inteded for exporting values to the caller.*/
#define AV_OPT_FLAG_EXPORT          64
/*** The option may not be set through the AVOptions API, only read.* This flag only makes sense when AV_OPT_FLAG_EXPORT is also set.*/
#define AV_OPT_FLAG_READONLY        128
#define AV_OPT_FLAG_FILTERING_PARAM (1<<16) ///< a generic parameter which can be set by the user for filtering
//FIXME think about enc-audio, ... style flags/*** The logical unit to which the option belongs. Non-constant* options and corresponding named constants share the same* unit. May be NULL.*/const char *unit;
} AVOption;

所以通过名称可以找到对应的十六进制数字。

转载于:https://my.oschina.net/u/2326611/blog/781848

ffmpeg colorkey_options中的black对应的十六进制相关推荐

  1. 8位十六进制转换32位十六进制_网络中的数制系统--二进制十六进制与十进制之间的相互转换...

    网络中计算机的32位IPv4地址以二进制显示,也会以点分十进制显示.而IPv6的地址是128位,是由数字和A-F组成的十六进制系统.因此,了解并且学会在其三者之间相互转换是非常重要的,让我们能够更好的 ...

  2. ffmpeg重采样中swr_convert和swr_get_out_samples的用法

    ffmpeg重采样中swr_convert和swr_get_out_samples的用法 在做mux的时候关于重采样可以用fifo,或者audiofifo做缓存处理,当做demux的时候关于重采样就可 ...

  3. python 十六进制转中文_Python列表中包含中文时输出十六进制转中文的小方法

    现象:列表中的中文打印出来后显示为十六进制>>> lt=['大神','zhzhgo'] >>> print lt ['\xb4\xf3\xc9\xf1', 'zhz ...

  4. ffmpeg的中文文档

    1. 概要 ffmpeg [global_options] {[input_file_options] -i INPUT_FILE} ... {[output_file_options] OUTPUT ...

  5. ffmpeg的中文文档(二)

    为什么80%的码农都做不了架构师?>>>    好像这个文档不是很有用的样子,虽然很详细,但是常用的功能介绍也很少.看起来还不如弄个常用命令列表来得给力.不过已经弄完一半多了,索性弄 ...

  6. 计算机系统中常用的进制,计算机中常用 二进制 八进制 十进制 十六进制的特点...

    计算机中常用的计数制 用若干数位(由数码表示)的组合去表示一个数,各个数位之间是什么关系,即逢"几"进位,这就是进 位计数制的问题.也就是数制问题.数制,即进位计数制,是人们利用数 ...

  7. FFmpeg视频解码中的YUV420P格式

    参考文章 在做基于FFmpeg解码的视频播放时,需要涉及到帧数据存储的YUV与RGB格式,所以了解了一下,参考下述博文. https://blog.csdn.net/lanxiaziyi/articl ...

  8. Python中ASCII转十六进制、C中BCD转十进制、十六进制学习记录

    ASCII.BCD转十六进制 ASCII转十六进制 转换规则 Python实现 BCD转十进制.十六进制 BCD码的优点 BCD码分类 各种BCD码的特点 转换规则 ASCII转十六进制 转换规则 A ...

  9. bash 将二进制转换为十进制_shell中二进制、十进制、十六进制等进制转换

    Shell脚本中数值都是默认按照十进制处理的,除非这个数值做了特殊标记,如:以 0 开头就是 8 进制数,以0x 开头就是16 进制数. 1. 二进制.八进制.十六进制等转化为十进制 另外 BASE# ...

最新文章

  1. 2022-2028年中国半导体用环氧塑封料(EMC)行业市场全景调查及投资前景分析报告
  2. 中国首档程序员真人秀,20位选手找bug做模型,结果一开场主办方就惨遭攻击...
  3. 利用html的header下载文件
  4. 洛谷——P1781 宇宙总统
  5. 用unity制作能量护盾(2)
  6. Visual Studio 2019 创建第一个ASP.net web应用程序
  7. java验证码图片工具类_工具类:VerifyCode.java:图片验证码
  8. 在mac上用文本编辑器写java源代码
  9. 金蝶K3 各个表对应的名称
  10. 算法导论第四版更新了什么?
  11. Python贴吧邮箱爬虫
  12. 软件架构风格-数据流风格
  13. 星际争霸2的AI环境搭建
  14. Alice和Bob的故事---非对称加密
  15. 猫和老鼠手游的python代码_猫和老鼠手游猫鼠通用技巧讲解 赶紧进来好好向大佬们学习学习...
  16. 编程算法 - 大整数乘法
  17. python——pandas展示所有列
  18. 为什么我魅族m2显示无服务器,魅族m2升级刷机flyme4.0教程及注意事项.doc
  19. 简单BroadcastRecevier
  20. 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比(一家之言)

热门文章

  1. 如何通过VMware Workstation12安装MacOS虚拟机(及各种报错的解决方案)
  2. Semanticscholar:一款基于机器学习的学术搜索引擎
  3. 巴巴数据恢复从iOS恢复联系人
  4. DIY 作品 及 维修 不定时更新
  5. 软件调研:CSDN 问答 VS StackOverFlow
  6. 解读2018中国药品零售业新挑战
  7. zoj2770(差分约束)火烧连营
  8. 陕西省职称评审近几年现状及问题
  9. 手机运动测试软件,记录界面对比二:乐动力、悦跑圈数据清晰
  10. linux的进程和计划任务