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 (CMBufferQueueDequeueAndRetain),
|
||||||
SYM_SPEC (CMBufferQueueGetBufferCount),
|
SYM_SPEC (CMBufferQueueGetBufferCount),
|
||||||
|
SYM_SPEC (CMBufferQueueInstallTrigger),
|
||||||
SYM_SPEC (CMBufferQueueIsEmpty),
|
SYM_SPEC (CMBufferQueueIsEmpty),
|
||||||
SYM_SPEC (FigBufferQueueRelease),
|
SYM_SPEC (FigBufferQueueRelease),
|
||||||
|
SYM_SPEC (CMBufferQueueRemoveTrigger),
|
||||||
SYM_SPEC (CMBufferQueueSetValidationCallback),
|
SYM_SPEC (CMBufferQueueSetValidationCallback),
|
||||||
|
|
||||||
SYM_SPEC (kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms),
|
SYM_SPEC (kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms),
|
||||||
|
|
|
@ -39,11 +39,14 @@ typedef struct _CMVideoDimensions CMVideoDimensions;
|
||||||
typedef struct _CMTime CMTime;
|
typedef struct _CMTime CMTime;
|
||||||
|
|
||||||
typedef CFTypeRef CMBufferQueueRef;
|
typedef CFTypeRef CMBufferQueueRef;
|
||||||
|
typedef SInt32 CMBufferQueueTriggerCondition;
|
||||||
|
typedef struct _CMBufferQueueTriggerToken *CMBufferQueueTriggerToken;
|
||||||
typedef CFTypeRef CMSampleBufferRef;
|
typedef CFTypeRef CMSampleBufferRef;
|
||||||
typedef CFTypeRef CMBlockBufferRef;
|
typedef CFTypeRef CMBlockBufferRef;
|
||||||
|
|
||||||
typedef Boolean (* CMBufferQueueValidateFunc) (CMBufferQueueRef queue,
|
typedef void (* CMBufferQueueTriggerCallback) (void *triggerRefcon,
|
||||||
|
CMBufferQueueTriggerToken triggerToken);
|
||||||
|
typedef Boolean (* CMBufferQueueValidationCallback) (CMBufferQueueRef queue,
|
||||||
CMSampleBufferRef buf, void *refCon);
|
CMSampleBufferRef buf, void *refCon);
|
||||||
|
|
||||||
enum _FigMediaType
|
enum _FigMediaType
|
||||||
|
@ -58,6 +61,21 @@ enum _FigCodecType
|
||||||
kYUV420vCodecType = '420v'
|
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
|
struct _FigBaseVTable
|
||||||
{
|
{
|
||||||
gsize unk;
|
gsize unk;
|
||||||
|
@ -159,10 +177,16 @@ struct _GstCMApi
|
||||||
CMSampleBufferRef (* CMBufferQueueDequeueAndRetain)
|
CMSampleBufferRef (* CMBufferQueueDequeueAndRetain)
|
||||||
(CMBufferQueueRef queue);
|
(CMBufferQueueRef queue);
|
||||||
CFIndex (* CMBufferQueueGetBufferCount) (CMBufferQueueRef queue);
|
CFIndex (* CMBufferQueueGetBufferCount) (CMBufferQueueRef queue);
|
||||||
|
OSStatus (* CMBufferQueueInstallTrigger) (CMBufferQueueRef queue,
|
||||||
|
CMBufferQueueTriggerCallback triggerCallback, void * triggerRefCon,
|
||||||
|
CMBufferQueueTriggerCondition triggerCondition, CMTime triggerTime,
|
||||||
|
CMBufferQueueTriggerToken * triggerTokenOut);
|
||||||
Boolean (* CMBufferQueueIsEmpty) (CMBufferQueueRef queue);
|
Boolean (* CMBufferQueueIsEmpty) (CMBufferQueueRef queue);
|
||||||
void (* FigBufferQueueRelease) (CMBufferQueueRef queue);
|
void (* FigBufferQueueRelease) (CMBufferQueueRef queue);
|
||||||
OSStatus (* CMBufferQueueSetValidationCallback)
|
OSStatus (* CMBufferQueueRemoveTrigger) (CMBufferQueueRef queue,
|
||||||
(CMBufferQueueRef queue, CMBufferQueueValidateFunc func, void *refCon);
|
CMBufferQueueTriggerToken triggerToken);
|
||||||
|
OSStatus (* CMBufferQueueSetValidationCallback) (CMBufferQueueRef queue,
|
||||||
|
CMBufferQueueValidationCallback func, void *refCon);
|
||||||
|
|
||||||
CFStringRef * kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms;
|
CFStringRef * kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms;
|
||||||
CFStringRef * kCMSampleAttachmentKey_DependsOnOthers;
|
CFStringRef * kCMSampleAttachmentKey_DependsOnOthers;
|
||||||
|
|
Loading…
Reference in a new issue