Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1269)

Unified Diff: media/base/mac/coremedia_glue.h

Issue 531863002: Extend media glue code to support the VideoToolbox cast video encoder. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@base-glue
Patch Set: Rework the VideoToolbox glue to allow lower-overhead calls to functions and support load failure. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/base/mac/coremedia_glue.h
diff --git a/media/base/mac/coremedia_glue.h b/media/base/mac/coremedia_glue.h
index 2cafeeac4040b00e53d55814ce5adcd155a9400b..b64a27f3cf0a86cdfca9216ed816593ee4999db2 100644
--- a/media/base/mac/coremedia_glue.h
+++ b/media/base/mac/coremedia_glue.h
@@ -28,9 +28,20 @@ class MEDIA_EXPORT CoreMediaGlue {
CMTimeEpoch epoch;
} CMTime;
+ // Originally from CMBlockBuffer.h
+ typedef uint32_t CMBlockBufferFlags;
+ typedef struct OpaqueCMBlockBuffer* CMBlockBufferRef;
+ typedef struct {
+ uint32_t version;
+ void* (*AllocateBlock)(void*, size_t);
+ void (*FreeBlock)(void*, void*, size_t);
+ void* refCon;
+ } CMBlockBufferCustomBlockSource;
+
// Originally from CMFormatDescription.h.
typedef const struct opaqueCMFormatDescription* CMFormatDescriptionRef;
typedef CMFormatDescriptionRef CMVideoFormatDescriptionRef;
+ typedef FourCharCode CMVideoCodecType;
typedef struct {
int32_t width;
int32_t height;
@@ -40,6 +51,12 @@ class MEDIA_EXPORT CoreMediaGlue {
};
enum {
kCMVideoCodecType_JPEG_OpenDML = 'dmb1',
+ kCMVideoCodecType_H264 = 'avc1',
+ };
+
+ // Originally from CMFormatDescriptionBridge.h
+ enum {
+ kCMFormatDescriptionBridgeError_InvalidParameter = -12712,
};
// Originally from CMSampleBuffer.h.
@@ -48,15 +65,50 @@ class MEDIA_EXPORT CoreMediaGlue {
// Originally from CMTime.h.
static CMTime CMTimeMake(int64_t value, int32_t timescale);
+ // Originally from CMBlockBuffer.h
+ static OSStatus CMBlockBufferCreateContiguous(
+ CFAllocatorRef structureAllocator,
+ CMBlockBufferRef sourceBuffer,
+ CFAllocatorRef blockAllocator,
+ const CMBlockBufferCustomBlockSource* customBlockSource,
+ size_t offsetToData,
+ size_t dataLength,
+ CMBlockBufferFlags flags,
+ CMBlockBufferRef* newBBufOut);
+ static size_t CMBlockBufferGetDataLength(CMBlockBufferRef theBuffer);
+ static OSStatus CMBlockBufferGetDataPointer(CMBlockBufferRef theBuffer,
+ size_t offset,
+ size_t* lengthAtOffset,
+ size_t* totalLength,
+ char** dataPointer);
+ static Boolean CMBlockBufferIsRangeContiguous(CMBlockBufferRef theBuffer,
+ size_t offset,
+ size_t length);
+
// Originally from CMSampleBuffer.h.
+ static CMBlockBufferRef CMSampleBufferGetDataBuffer(CMSampleBufferRef sbuf);
+ static CMFormatDescriptionRef CMSampleBufferGetFormatDescription(
+ CMSampleBufferRef sbuf);
static CVImageBufferRef CMSampleBufferGetImageBuffer(
CMSampleBufferRef buffer);
+ static CFArrayRef CMSampleBufferGetSampleAttachmentsArray(
+ CMSampleBufferRef sbuf,
+ Boolean createIfNecessary);
+ static CFStringRef kCMSampleAttachmentKey_NotSync();
// Originally from CMFormatDescription.h.
static FourCharCode CMFormatDescriptionGetMediaSubType(
CMFormatDescriptionRef desc);
static CMVideoDimensions CMVideoFormatDescriptionGetDimensions(
CMVideoFormatDescriptionRef videoDesc);
+ static OSStatus CMVideoFormatDescriptionGetH264ParameterSetAtIndex(
+ CMFormatDescriptionRef videoDesc,
+ size_t parameterSetIndex,
+ const uint8_t** parameterSetPointerOut,
+ size_t* parameterSetSizeOut,
+ size_t* parameterSetCountOut,
+ int* NALUnitHeaderLengthOut)
+ /*__OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_7_0)*/;
Robert Sesek 2014/09/12 16:16:16 None of the other functions carry these comments,
jfroy 2014/09/12 17:11:46 Unlike every other function in the CoreMedia glue,
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(CoreMediaGlue);

Powered by Google App Engine
This is Rietveld 408576698