[英]What kinds of CMTime are invalid?
kCMTimeInvalid是无效的CMTime,但是基于Apple文档,还有更多无效的CMTime,它们是什么? CMTime“无效”是什么意思? 它溢出,未启动还是其他?
https://developer.apple.com/documentation/coremedia/kcmtimeinvalid
所有字段均为0,因此您可以calloc或填充0来制作很多字段。 不要使用(time == kCMTimeInvalid)对此进行测试,除此以外,还有许多CMTime也是无效的。 请改用CMTIME_IS_INVALID(time)。
我发现CMTime无效的一些情况:
当flags(CMTimeFlags)kCMTimeFlags_Valid未设置时。
kCMTimeFlags_Valid必须设置,否则CMTime被视为无效。
CMTimeAdd的一些操作
+无限+ +无限== +无限
-无限+-无限==-无限 +无限+-无限==无效 -infinity + + infinity ==无效
有五种可能的状态:
从您发布的文档中可以看到:
请改用CMTIME_IS_INVALID(time)。
从CMTime.h
,看起来CMTIME_IS_INVALID
定义为:
#define CMTIME_IS_INVALID(time) (! CMTIME_IS_VALID(time))
并将CMTIME_IS_VALID
定义为:
#define CMTIME_IS_VALID(time) ((Boolean)(((time).flags & kCMTimeFlags_Valid) != 0))
因此,似乎唯一确定CMTime
是否有效的是kCMTimeFlags_Valid
标志是否已设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.