Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
fieldCount
must be 0 for progressive video and 1 or 2 for interlaced.
A representation of a SMPTE time code.
hours
must be positive and less than 24. Will wrap around otherwise.
minutes
and seconds
must be positive and less than 60.
frames
must be less than or equal to config
.fps_n / config
.fps_d
These values are *NOT* automatically normalized.
- newtype VideoTimeCode = VideoTimeCode (ManagedPtr VideoTimeCode)
- newZeroVideoTimeCode :: MonadIO m => m VideoTimeCode
- noVideoTimeCode :: Maybe VideoTimeCode
- data VideoTimeCodeAddFramesMethodInfo
- videoTimeCodeAddFrames :: (HasCallStack, MonadIO m) => VideoTimeCode -> Int64 -> m ()
- data VideoTimeCodeClearMethodInfo
- videoTimeCodeClear :: (HasCallStack, MonadIO m) => VideoTimeCode -> m ()
- data VideoTimeCodeCompareMethodInfo
- videoTimeCodeCompare :: (HasCallStack, MonadIO m) => VideoTimeCode -> VideoTimeCode -> m Int32
- data VideoTimeCodeCopyMethodInfo
- videoTimeCodeCopy :: (HasCallStack, MonadIO m) => VideoTimeCode -> m VideoTimeCode
- data VideoTimeCodeFramesSinceDailyJamMethodInfo
- videoTimeCodeFramesSinceDailyJam :: (HasCallStack, MonadIO m) => VideoTimeCode -> m Word64
- data VideoTimeCodeFreeMethodInfo
- videoTimeCodeFree :: (HasCallStack, MonadIO m) => VideoTimeCode -> m ()
- data VideoTimeCodeIncrementFrameMethodInfo
- videoTimeCodeIncrementFrame :: (HasCallStack, MonadIO m) => VideoTimeCode -> m ()
- data VideoTimeCodeInitMethodInfo
- videoTimeCodeInit :: (HasCallStack, MonadIO m) => VideoTimeCode -> Word32 -> Word32 -> DateTime -> [VideoTimeCodeFlags] -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> m ()
- data VideoTimeCodeIsValidMethodInfo
- videoTimeCodeIsValid :: (HasCallStack, MonadIO m) => VideoTimeCode -> m Bool
- videoTimeCodeNew :: (HasCallStack, MonadIO m) => Word32 -> Word32 -> DateTime -> [VideoTimeCodeFlags] -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> m VideoTimeCode
- videoTimeCodeNewEmpty :: (HasCallStack, MonadIO m) => m VideoTimeCode
- data VideoTimeCodeNsecSinceDailyJamMethodInfo
- videoTimeCodeNsecSinceDailyJam :: (HasCallStack, MonadIO m) => VideoTimeCode -> m Word64
- data VideoTimeCodeToDateTimeMethodInfo
- videoTimeCodeToDateTime :: (HasCallStack, MonadIO m) => VideoTimeCode -> m DateTime
- data VideoTimeCodeToStringMethodInfo
- videoTimeCodeToString :: (HasCallStack, MonadIO m) => VideoTimeCode -> m Text
- getVideoTimeCodeConfig :: MonadIO m => VideoTimeCode -> m VideoTimeCodeConfig
- videoTimeCode_config :: AttrLabelProxy "config"
- getVideoTimeCodeFieldCount :: MonadIO m => VideoTimeCode -> m Word32
- setVideoTimeCodeFieldCount :: MonadIO m => VideoTimeCode -> Word32 -> m ()
- videoTimeCode_fieldCount :: AttrLabelProxy "fieldCount"
- getVideoTimeCodeFrames :: MonadIO m => VideoTimeCode -> m Word32
- setVideoTimeCodeFrames :: MonadIO m => VideoTimeCode -> Word32 -> m ()
- videoTimeCode_frames :: AttrLabelProxy "frames"
- getVideoTimeCodeHours :: MonadIO m => VideoTimeCode -> m Word32
- setVideoTimeCodeHours :: MonadIO m => VideoTimeCode -> Word32 -> m ()
- videoTimeCode_hours :: AttrLabelProxy "hours"
- getVideoTimeCodeMinutes :: MonadIO m => VideoTimeCode -> m Word32
- setVideoTimeCodeMinutes :: MonadIO m => VideoTimeCode -> Word32 -> m ()
- videoTimeCode_minutes :: AttrLabelProxy "minutes"
- getVideoTimeCodeSeconds :: MonadIO m => VideoTimeCode -> m Word32
- setVideoTimeCodeSeconds :: MonadIO m => VideoTimeCode -> Word32 -> m ()
- videoTimeCode_seconds :: AttrLabelProxy "seconds"
Exported types
newtype VideoTimeCode Source #
newZeroVideoTimeCode :: MonadIO m => m VideoTimeCode Source #
Construct a VideoTimeCode
struct initialized to zero.
Methods
addFrames
data VideoTimeCodeAddFramesMethodInfo Source #
((~) * signature (Int64 -> m ()), MonadIO m) => MethodInfo * VideoTimeCodeAddFramesMethodInfo VideoTimeCode signature Source # | |
videoTimeCodeAddFrames Source #
:: (HasCallStack, MonadIO m) | |
=> VideoTimeCode |
|
-> Int64 |
|
-> m () |
Adds or subtracts frames
amount of frames to tc
.
Since: 1.10
clear
data VideoTimeCodeClearMethodInfo Source #
((~) * signature (m ()), MonadIO m) => MethodInfo * VideoTimeCodeClearMethodInfo VideoTimeCode signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> VideoTimeCode |
|
-> m () |
Initializes tc
with empty/zero/NULL values.
Since: 1.10
compare
data VideoTimeCodeCompareMethodInfo Source #
((~) * signature (VideoTimeCode -> m Int32), MonadIO m) => MethodInfo * VideoTimeCodeCompareMethodInfo VideoTimeCode signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> VideoTimeCode |
|
-> VideoTimeCode |
|
-> m Int32 | Returns: 1 if |
Compares tc1
and tc2
. If both have latest daily jam information, it is
taken into account. Otherwise, it is assumed that the daily jam of both
tc1
and tc2
was at the same time.
Since: 1.10
copy
data VideoTimeCodeCopyMethodInfo Source #
((~) * signature (m VideoTimeCode), MonadIO m) => MethodInfo * VideoTimeCodeCopyMethodInfo VideoTimeCode signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> VideoTimeCode |
|
-> m VideoTimeCode | Returns: a new |
No description available in the introspection data.
Since: 1.10
framesSinceDailyJam
data VideoTimeCodeFramesSinceDailyJamMethodInfo Source #
((~) * signature (m Word64), MonadIO m) => MethodInfo * VideoTimeCodeFramesSinceDailyJamMethodInfo VideoTimeCode signature Source # | |
videoTimeCodeFramesSinceDailyJam Source #
:: (HasCallStack, MonadIO m) | |
=> VideoTimeCode |
|
-> m Word64 | Returns: how many frames have passed since the daily jam of |
No description available in the introspection data.
Since: 1.10
free
data VideoTimeCodeFreeMethodInfo Source #
((~) * signature (m ()), MonadIO m) => MethodInfo * VideoTimeCodeFreeMethodInfo VideoTimeCode signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> VideoTimeCode |
|
-> m () |
Frees tc
.
Since: 1.10
incrementFrame
data VideoTimeCodeIncrementFrameMethodInfo Source #
((~) * signature (m ()), MonadIO m) => MethodInfo * VideoTimeCodeIncrementFrameMethodInfo VideoTimeCode signature Source # | |
videoTimeCodeIncrementFrame Source #
:: (HasCallStack, MonadIO m) | |
=> VideoTimeCode |
|
-> m () |
Adds one frame to tc
.
Since: 1.10
init
data VideoTimeCodeInitMethodInfo Source #
((~) * signature (Word32 -> Word32 -> DateTime -> [VideoTimeCodeFlags] -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> m ()), MonadIO m) => MethodInfo * VideoTimeCodeInitMethodInfo VideoTimeCode signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> VideoTimeCode |
|
-> Word32 |
|
-> Word32 |
|
-> DateTime |
|
-> [VideoTimeCodeFlags] |
|
-> Word32 |
|
-> Word32 |
|
-> Word32 |
|
-> Word32 |
|
-> Word32 |
|
-> m () |
fieldCount
is 0 for progressive, 1 or 2 for interlaced.
latestDaiyJam
reference is stolen from caller.
Initializes tc
with the given values.
Since: 1.10
isValid
data VideoTimeCodeIsValidMethodInfo Source #
((~) * signature (m Bool), MonadIO m) => MethodInfo * VideoTimeCodeIsValidMethodInfo VideoTimeCode signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> VideoTimeCode |
|
-> m Bool | Returns: whether |
No description available in the introspection data.
Since: 1.10
new
:: (HasCallStack, MonadIO m) | |
=> Word32 |
|
-> Word32 |
|
-> DateTime |
|
-> [VideoTimeCodeFlags] |
|
-> Word32 |
|
-> Word32 |
|
-> Word32 |
|
-> Word32 |
|
-> Word32 |
|
-> m VideoTimeCode | Returns: a new |
fieldCount
is 0 for progressive, 1 or 2 for interlaced.
latestDaiyJam
reference is stolen from caller.
Since: 1.10
newEmpty
videoTimeCodeNewEmpty Source #
:: (HasCallStack, MonadIO m) | |
=> m VideoTimeCode | Returns: a new empty |
No description available in the introspection data.
Since: 1.10
nsecSinceDailyJam
data VideoTimeCodeNsecSinceDailyJamMethodInfo Source #
((~) * signature (m Word64), MonadIO m) => MethodInfo * VideoTimeCodeNsecSinceDailyJamMethodInfo VideoTimeCode signature Source # | |
videoTimeCodeNsecSinceDailyJam Source #
:: (HasCallStack, MonadIO m) | |
=> VideoTimeCode |
|
-> m Word64 | Returns: how many nsec have passed since the daily jam of |
No description available in the introspection data.
Since: 1.10
toDateTime
data VideoTimeCodeToDateTimeMethodInfo Source #
((~) * signature (m DateTime), MonadIO m) => MethodInfo * VideoTimeCodeToDateTimeMethodInfo VideoTimeCode signature Source # | |
videoTimeCodeToDateTime Source #
:: (HasCallStack, MonadIO m) | |
=> VideoTimeCode |
|
-> m DateTime | Returns: the |
The tc
.config->latest_daily_jam is required to be non-NULL.
Since: 1.10
toString
data VideoTimeCodeToStringMethodInfo Source #
((~) * signature (m Text), MonadIO m) => MethodInfo * VideoTimeCodeToStringMethodInfo VideoTimeCode signature Source # | |
videoTimeCodeToString Source #
:: (HasCallStack, MonadIO m) | |
=> VideoTimeCode |
|
-> m Text | Returns: the SMPTE ST 2059-1:2015 string representation of ';' for drop-frame, non-interlaced content and for drop-frame interlaced field 2 ',' for drop-frame interlaced field 1 ':' for non-drop-frame, non-interlaced content and for non-drop-frame interlaced field 2 '.' for non-drop-frame interlaced field 1 |
No description available in the introspection data.
Since: 1.10
Properties
config
getVideoTimeCodeConfig :: MonadIO m => VideoTimeCode -> m VideoTimeCodeConfig Source #
videoTimeCode_config :: AttrLabelProxy "config" Source #
fieldCount
getVideoTimeCodeFieldCount :: MonadIO m => VideoTimeCode -> m Word32 Source #
setVideoTimeCodeFieldCount :: MonadIO m => VideoTimeCode -> Word32 -> m () Source #
videoTimeCode_fieldCount :: AttrLabelProxy "fieldCount" Source #
frames
getVideoTimeCodeFrames :: MonadIO m => VideoTimeCode -> m Word32 Source #
setVideoTimeCodeFrames :: MonadIO m => VideoTimeCode -> Word32 -> m () Source #
videoTimeCode_frames :: AttrLabelProxy "frames" Source #
hours
getVideoTimeCodeHours :: MonadIO m => VideoTimeCode -> m Word32 Source #
setVideoTimeCodeHours :: MonadIO m => VideoTimeCode -> Word32 -> m () Source #
videoTimeCode_hours :: AttrLabelProxy "hours" Source #
minutes
getVideoTimeCodeMinutes :: MonadIO m => VideoTimeCode -> m Word32 Source #
setVideoTimeCodeMinutes :: MonadIO m => VideoTimeCode -> Word32 -> m () Source #
videoTimeCode_minutes :: AttrLabelProxy "minutes" Source #
seconds
getVideoTimeCodeSeconds :: MonadIO m => VideoTimeCode -> m Word32 Source #
setVideoTimeCodeSeconds :: MonadIO m => VideoTimeCode -> Word32 -> m () Source #
videoTimeCode_seconds :: AttrLabelProxy "seconds" Source #