| Index: media/base/mac/coremedia_glue.mm
|
| diff --git a/media/base/mac/coremedia_glue.mm b/media/base/mac/coremedia_glue.mm
|
| index e161a6e584d2f7cfbe85678b6f6bd4bb70c63387..a1c4f5c4db47e86659d28ebd2b4bd244cdea3312 100644
|
| --- a/media/base/mac/coremedia_glue.mm
|
| +++ b/media/base/mac/coremedia_glue.mm
|
| @@ -51,6 +51,8 @@ class CoreMediaLibraryInternal {
|
| typedef CFArrayRef (*CMSampleBufferGetSampleAttachmentsArrayMethod)(
|
| CoreMediaGlue::CMSampleBufferRef,
|
| Boolean);
|
| + typedef CoreMediaGlue::CMTime (*CMSampleBufferGetPresentationTimeStampMethod)(
|
| + CoreMediaGlue::CMSampleBufferRef);
|
|
|
| typedef FourCharCode (*CMFormatDescriptionGetMediaSubTypeMethod)(
|
| CoreMediaGlue::CMFormatDescriptionRef desc);
|
| @@ -112,6 +114,10 @@ class CoreMediaLibraryInternal {
|
| reinterpret_cast<CMSampleBufferGetSampleAttachmentsArrayMethod>(
|
| dlsym(library_handle, "CMSampleBufferGetSampleAttachmentsArray"));
|
| CHECK(cm_sample_buffer_get_sample_attachments_array_method_) << dlerror();
|
| + cm_sample_buffer_get_presentation_timestamp_method_ =
|
| + reinterpret_cast<CMSampleBufferGetPresentationTimeStampMethod>(
|
| + dlsym(library_handle, "CMSampleBufferGetPresentationTimeStamp"));
|
| + CHECK(cm_sample_buffer_get_presentation_timestamp_method_) << dlerror();
|
| k_cm_sample_attachment_key_not_sync_ = reinterpret_cast<CFStringRef*>(
|
| dlsym(library_handle, "kCMSampleAttachmentKey_NotSync"));
|
| CHECK(k_cm_sample_attachment_key_not_sync_) << dlerror();
|
| @@ -168,6 +174,10 @@ class CoreMediaLibraryInternal {
|
| cm_sample_buffer_get_sample_attachments_array_method() const {
|
| return cm_sample_buffer_get_sample_attachments_array_method_;
|
| }
|
| + const CMSampleBufferGetPresentationTimeStampMethod&
|
| + cm_sample_buffer_get_presentation_timestamp_method() const {
|
| + return cm_sample_buffer_get_presentation_timestamp_method_;
|
| + }
|
| CFStringRef* const& k_cm_sample_attachment_key_not_sync() const {
|
| return k_cm_sample_attachment_key_not_sync_;
|
| }
|
| @@ -208,6 +218,8 @@ class CoreMediaLibraryInternal {
|
| cm_video_format_description_get_dimensions_method_;
|
| CMVideoFormatDescriptionGetH264ParameterSetAtIndexMethod
|
| cm_video_format_description_get_h264_parameter_set_at_index_method_;
|
| + CMSampleBufferGetPresentationTimeStampMethod
|
| + cm_sample_buffer_get_presentation_timestamp_method_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(CoreMediaLibraryInternal);
|
| };
|
| @@ -301,6 +313,13 @@ CFArrayRef CoreMediaGlue::CMSampleBufferGetSampleAttachmentsArray(
|
| }
|
|
|
| // static
|
| +CoreMediaGlue::CMTime CoreMediaGlue::CMSampleBufferGetPresentationTimeStamp(
|
| + CMSampleBufferRef sbuf) {
|
| + return g_coremedia_handle.Get()
|
| + .cm_sample_buffer_get_presentation_timestamp_method()(sbuf);
|
| +}
|
| +
|
| +// static
|
| CFStringRef CoreMediaGlue::kCMSampleAttachmentKey_NotSync() {
|
| return *g_coremedia_handle.Get().k_cm_sample_attachment_key_not_sync();
|
| }
|
|
|