[英]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.