上面是在vp8文档中截取的一段。其中关于“key _frame” 的使用有严重的歧义。
开源代码中,有一个枚举类型:
typedef enum
{
KEY_FRAME = 0,
INTER_FRAME = 1
} FRAME_TYPE;
可以看到,key frame时,“key_frame = tmp & 0x1;”语句的结果是0,也就是KEY_FRAME 。
但是文档中直接使用“if (key_frame)”做判断,就显得不妥了。正确的用法应该是“if (key_frame == KEY_FRAME )”这样就没有歧义了