Using CMTime without rounding?
-
29-10-2019 - |
Pergunta
I'm writing an application that uses AVFoundation and CMTime. I have logged the values of my CMTime
instances created using CMTimeMake()
. This value seems to be rounded to the nearest integer. I need a CMTime
instance with a precise value, without rounding.
I have seen the rounding constants in the CMTime
reference:
enum {
kCMTimeRoundingMethod_RoundHalfAwayFromZero = 1,
kCMTimeRoundingMethod_RoundTowardZero = 2,
kCMTimeRoundingMethod_RoundAwayFromZero = 3,
kCMTimeRoundingMethod_QuickTime = 4,
kCMTimeRoundingMethod_RoundTowardPositiveInfinity = 5,
kCMTimeRoundingMethod_RoundTowardNegativeInfinity = 6,
kCMTimeRoundingMethod_Default = kCMTimeRoundingMethod_RoundHalfAwayFromZero
};
There aren't any example of how I can control which of these strategies is applied to a CMTime
instance? Or, if this isn't the right way, how can I extract a precise value from a CMTime
instance?
Edit:
I have found and tested CMTIME_HAS_BEEN_ROUNDED()
. I passed my CMTime
instance to this function and it returns No
(indicating that the value has not been rounded). So why am I losing precision?
Nenhuma solução correta