mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-09 13:21:16 +00:00
cmapi: cover CMBufferQueue's trigger API
This commit is contained in:
parent
e4db4257d5
commit
de76e9fdb6
2 changed files with 30 additions and 4 deletions
|
@ -83,8 +83,10 @@ gst_cm_api_obtain (GError ** error)
|
|||
|
||||
SYM_SPEC (CMBufferQueueDequeueAndRetain),
|
||||
SYM_SPEC (CMBufferQueueGetBufferCount),
|
||||
SYM_SPEC (CMBufferQueueInstallTrigger),
|
||||
SYM_SPEC (CMBufferQueueIsEmpty),
|
||||
SYM_SPEC (FigBufferQueueRelease),
|
||||
SYM_SPEC (CMBufferQueueRemoveTrigger),
|
||||
SYM_SPEC (CMBufferQueueSetValidationCallback),
|
||||
|
||||
SYM_SPEC (kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms),
|
||||
|
|
|
@ -39,11 +39,14 @@ typedef struct _CMVideoDimensions CMVideoDimensions;
|
|||
typedef struct _CMTime CMTime;
|
||||
|
||||
typedef CFTypeRef CMBufferQueueRef;
|
||||
|
||||
typedef SInt32 CMBufferQueueTriggerCondition;
|
||||
typedef struct _CMBufferQueueTriggerToken *CMBufferQueueTriggerToken;
|
||||
typedef CFTypeRef CMSampleBufferRef;
|
||||
typedef CFTypeRef CMBlockBufferRef;
|
||||
|
||||
typedef Boolean (* CMBufferQueueValidateFunc) (CMBufferQueueRef queue,
|
||||
typedef void (* CMBufferQueueTriggerCallback) (void *triggerRefcon,
|
||||
CMBufferQueueTriggerToken triggerToken);
|
||||
typedef Boolean (* CMBufferQueueValidationCallback) (CMBufferQueueRef queue,
|
||||
CMSampleBufferRef buf, void *refCon);
|
||||
|
||||
enum _FigMediaType
|
||||
|
@ -58,6 +61,21 @@ enum _FigCodecType
|
|||
kYUV420vCodecType = '420v'
|
||||
};
|
||||
|
||||
enum _CMBufferQueueTriggerCondition
|
||||
{
|
||||
kCMBufferQueueTrigger_WhenDurationBecomesLessThan = 1,
|
||||
kCMBufferQueueTrigger_WhenDurationBecomesLessThanOrEqualTo = 2,
|
||||
kCMBufferQueueTrigger_WhenDurationBecomesGreaterThan = 3,
|
||||
kCMBufferQueueTrigger_WhenDurationBecomesGreaterThanOrEqualTo = 4,
|
||||
kCMBufferQueueTrigger_WhenMinPresentationTimeStampChanges = 5,
|
||||
kCMBufferQueueTrigger_WhenMaxPresentationTimeStampChanges = 6,
|
||||
kCMBufferQueueTrigger_WhenDataBecomesReady = 7,
|
||||
kCMBufferQueueTrigger_WhenEndOfDataReached = 8,
|
||||
kCMBufferQueueTrigger_WhenReset = 9,
|
||||
kCMBufferQueueTrigger_WhenBufferCountBecomesLessThan = 10,
|
||||
kCMBufferQueueTrigger_WhenBufferCountBecomesGreaterThan = 11
|
||||
};
|
||||
|
||||
struct _FigBaseVTable
|
||||
{
|
||||
gsize unk;
|
||||
|
@ -159,10 +177,16 @@ struct _GstCMApi
|
|||
CMSampleBufferRef (* CMBufferQueueDequeueAndRetain)
|
||||
(CMBufferQueueRef queue);
|
||||
CFIndex (* CMBufferQueueGetBufferCount) (CMBufferQueueRef queue);
|
||||
OSStatus (* CMBufferQueueInstallTrigger) (CMBufferQueueRef queue,
|
||||
CMBufferQueueTriggerCallback triggerCallback, void * triggerRefCon,
|
||||
CMBufferQueueTriggerCondition triggerCondition, CMTime triggerTime,
|
||||
CMBufferQueueTriggerToken * triggerTokenOut);
|
||||
Boolean (* CMBufferQueueIsEmpty) (CMBufferQueueRef queue);
|
||||
void (* FigBufferQueueRelease) (CMBufferQueueRef queue);
|
||||
OSStatus (* CMBufferQueueSetValidationCallback)
|
||||
(CMBufferQueueRef queue, CMBufferQueueValidateFunc func, void *refCon);
|
||||
OSStatus (* CMBufferQueueRemoveTrigger) (CMBufferQueueRef queue,
|
||||
CMBufferQueueTriggerToken triggerToken);
|
||||
OSStatus (* CMBufferQueueSetValidationCallback) (CMBufferQueueRef queue,
|
||||
CMBufferQueueValidationCallback func, void *refCon);
|
||||
|
||||
CFStringRef * kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms;
|
||||
CFStringRef * kCMSampleAttachmentKey_DependsOnOthers;
|
||||
|
|
Loading…
Reference in a new issue