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

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

Issue 2529493002: mac: Remove more media/base/mac glue unneeded now that we target 10.9 (Closed)
Patch Set: . Created 4 years, 1 month 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
« no previous file with comments | « media/base/mac/coremedia_glue.h ('k') | media/base/mac/corevideo_glue.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/mac/coremedia_glue.mm
diff --git a/media/base/mac/coremedia_glue.mm b/media/base/mac/coremedia_glue.mm
deleted file mode 100644
index 23cfa09aeca2e0b40af0cc99085ed088df5b83df..0000000000000000000000000000000000000000
--- a/media/base/mac/coremedia_glue.mm
+++ /dev/null
@@ -1,359 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "media/base/mac/coremedia_glue.h"
-
-#include <dlfcn.h>
-#import <Foundation/Foundation.h>
-
-#include "base/lazy_instance.h"
-#include "base/logging.h"
-#include "base/macros.h"
-
-namespace {
-
-// This class is used to retrieve some CoreMedia library functions. It must be
-// used as a LazyInstance so that it is initialised once and in a thread-safe
-// way. Normally no work is done in constructors: LazyInstance is an exception.
-class CoreMediaLibraryInternal {
- public:
- typedef CoreMediaGlue::CMTime (*CMTimeMakeMethod)(int64_t, int32_t);
-
- typedef OSStatus (*CMBlockBufferCreateContiguousMethod)(
- CFAllocatorRef,
- CoreMediaGlue::CMBlockBufferRef,
- CFAllocatorRef,
- const CoreMediaGlue::CMBlockBufferCustomBlockSource*,
- size_t,
- size_t,
- CoreMediaGlue::CMBlockBufferFlags,
- CoreMediaGlue::CMBlockBufferRef*);
- typedef size_t (*CMBlockBufferGetDataLengthMethod)(
- CoreMediaGlue::CMBlockBufferRef);
- typedef OSStatus (*CMBlockBufferGetDataPointerMethod)(
- CoreMediaGlue::CMBlockBufferRef,
- size_t,
- size_t*,
- size_t*,
- char**);
- typedef Boolean (*CMBlockBufferIsRangeContiguousMethod)(
- CoreMediaGlue::CMBlockBufferRef,
- size_t,
- size_t);
-
- typedef CoreMediaGlue::CMBlockBufferRef (*CMSampleBufferGetDataBufferMethod)(
- CoreMediaGlue::CMSampleBufferRef);
- typedef CoreMediaGlue::CMFormatDescriptionRef (
- *CMSampleBufferGetFormatDescriptionMethod)(
- CoreMediaGlue::CMSampleBufferRef);
- typedef CVImageBufferRef (*CMSampleBufferGetImageBufferMethod)(
- CoreMediaGlue::CMSampleBufferRef);
- typedef CFArrayRef (*CMSampleBufferGetSampleAttachmentsArrayMethod)(
- CoreMediaGlue::CMSampleBufferRef,
- Boolean);
- typedef CoreMediaGlue::CMTime (*CMSampleBufferGetPresentationTimeStampMethod)(
- CoreMediaGlue::CMSampleBufferRef);
-
- typedef FourCharCode (*CMFormatDescriptionGetMediaSubTypeMethod)(
- CoreMediaGlue::CMFormatDescriptionRef desc);
- typedef CoreMediaGlue::CMVideoDimensions
- (*CMVideoFormatDescriptionGetDimensionsMethod)(
- CoreMediaGlue::CMVideoFormatDescriptionRef videoDesc);
- typedef OSStatus (*CMVideoFormatDescriptionGetH264ParameterSetAtIndexMethod)(
- CoreMediaGlue::CMFormatDescriptionRef,
- size_t,
- const uint8_t**,
- size_t*,
- size_t*,
- int*);
-
- CoreMediaLibraryInternal() {
- NSBundle* bundle = [NSBundle
- bundleWithPath:@"/System/Library/Frameworks/CoreMedia.framework"];
-
- const char* path = [[bundle executablePath] fileSystemRepresentation];
- CHECK(path);
- void* library_handle = dlopen(path, RTLD_LAZY | RTLD_LOCAL);
- CHECK(library_handle) << dlerror();
-
- // Now extract the methods.
- cm_time_make_ = reinterpret_cast<CMTimeMakeMethod>(
- dlsym(library_handle, "CMTimeMake"));
- CHECK(cm_time_make_) << dlerror();
-
- cm_block_buffer_create_contiguous_method_ =
- reinterpret_cast<CMBlockBufferCreateContiguousMethod>(
- dlsym(library_handle, "CMBlockBufferCreateContiguous"));
- CHECK(cm_block_buffer_create_contiguous_method_) << dlerror();
- cm_block_buffer_get_data_length_method_ =
- reinterpret_cast<CMBlockBufferGetDataLengthMethod>(
- dlsym(library_handle, "CMBlockBufferGetDataLength"));
- CHECK(cm_block_buffer_get_data_length_method_) << dlerror();
- cm_block_buffer_get_data_pointer_method_ =
- reinterpret_cast<CMBlockBufferGetDataPointerMethod>(
- dlsym(library_handle, "CMBlockBufferGetDataPointer"));
- CHECK(cm_block_buffer_get_data_pointer_method_) << dlerror();
- cm_block_buffer_is_range_contiguous_method_ =
- reinterpret_cast<CMBlockBufferIsRangeContiguousMethod>(
- dlsym(library_handle, "CMBlockBufferIsRangeContiguous"));
- CHECK(cm_block_buffer_is_range_contiguous_method_) << dlerror();
-
- cm_sample_buffer_get_data_buffer_method_ =
- reinterpret_cast<CMSampleBufferGetDataBufferMethod>(
- dlsym(library_handle, "CMSampleBufferGetDataBuffer"));
- CHECK(cm_sample_buffer_get_data_buffer_method_) << dlerror();
- cm_sample_buffer_get_format_description_method_ =
- reinterpret_cast<CMSampleBufferGetFormatDescriptionMethod>(
- dlsym(library_handle, "CMSampleBufferGetFormatDescription"));
- CHECK(cm_sample_buffer_get_format_description_method_) << dlerror();
- cm_sample_buffer_get_image_buffer_method_ =
- reinterpret_cast<CMSampleBufferGetImageBufferMethod>(
- dlsym(library_handle, "CMSampleBufferGetImageBuffer"));
- CHECK(cm_sample_buffer_get_image_buffer_method_) << dlerror();
- cm_sample_buffer_get_sample_attachments_array_method_ =
- 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();
-
- cm_format_description_get_media_sub_type_method_ =
- reinterpret_cast<CMFormatDescriptionGetMediaSubTypeMethod>(
- dlsym(library_handle, "CMFormatDescriptionGetMediaSubType"));
- CHECK(cm_format_description_get_media_sub_type_method_) << dlerror();
- cm_video_format_description_get_dimensions_method_ =
- reinterpret_cast<CMVideoFormatDescriptionGetDimensionsMethod>(
- dlsym(library_handle, "CMVideoFormatDescriptionGetDimensions"));
- CHECK(cm_video_format_description_get_dimensions_method_) << dlerror();
-
- // Available starting (OS X 10.9, iOS 7), allow to be null.
- cm_video_format_description_get_h264_parameter_set_at_index_method_ =
- reinterpret_cast<
- CMVideoFormatDescriptionGetH264ParameterSetAtIndexMethod>(
- dlsym(library_handle,
- "CMVideoFormatDescriptionGetH264ParameterSetAtIndex"));
- }
-
- const CMTimeMakeMethod& cm_time_make() const { return cm_time_make_; }
-
- const CMBlockBufferCreateContiguousMethod&
- cm_block_buffer_create_contiguous_method() const {
- return cm_block_buffer_create_contiguous_method_;
- }
- const CMBlockBufferGetDataLengthMethod&
- cm_block_buffer_get_data_length_method() const {
- return cm_block_buffer_get_data_length_method_;
- }
- const CMBlockBufferGetDataPointerMethod&
- cm_block_buffer_get_data_pointer_method() const {
- return cm_block_buffer_get_data_pointer_method_;
- }
- const CMBlockBufferIsRangeContiguousMethod&
- cm_block_buffer_is_range_contiguous_method() const {
- return cm_block_buffer_is_range_contiguous_method_;
- }
-
- const CMSampleBufferGetDataBufferMethod&
- cm_sample_buffer_get_data_buffer_method() const {
- return cm_sample_buffer_get_data_buffer_method_;
- }
- const CMSampleBufferGetFormatDescriptionMethod&
- cm_sample_buffer_get_format_description_method() const {
- return cm_sample_buffer_get_format_description_method_;
- }
- const CMSampleBufferGetImageBufferMethod&
- cm_sample_buffer_get_image_buffer_method() const {
- return cm_sample_buffer_get_image_buffer_method_;
- }
- const CMSampleBufferGetSampleAttachmentsArrayMethod&
- 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_;
- }
-
- const CMFormatDescriptionGetMediaSubTypeMethod&
- cm_format_description_get_media_sub_type_method() const {
- return cm_format_description_get_media_sub_type_method_;
- }
- const CMVideoFormatDescriptionGetDimensionsMethod&
- cm_video_format_description_get_dimensions_method() const {
- return cm_video_format_description_get_dimensions_method_;
- }
- const CMVideoFormatDescriptionGetH264ParameterSetAtIndexMethod&
- cm_video_format_description_get_h264_parameter_set_at_index_method() const {
- return cm_video_format_description_get_h264_parameter_set_at_index_method_;
- }
-
- private:
- CMTimeMakeMethod cm_time_make_;
-
- CMBlockBufferCreateContiguousMethod cm_block_buffer_create_contiguous_method_;
- CMBlockBufferGetDataLengthMethod cm_block_buffer_get_data_length_method_;
- CMBlockBufferGetDataPointerMethod cm_block_buffer_get_data_pointer_method_;
- CMBlockBufferIsRangeContiguousMethod
- cm_block_buffer_is_range_contiguous_method_;
-
- CMSampleBufferGetDataBufferMethod cm_sample_buffer_get_data_buffer_method_;
- CMSampleBufferGetFormatDescriptionMethod
- cm_sample_buffer_get_format_description_method_;
- CMSampleBufferGetImageBufferMethod cm_sample_buffer_get_image_buffer_method_;
- CMSampleBufferGetSampleAttachmentsArrayMethod
- cm_sample_buffer_get_sample_attachments_array_method_;
- CFStringRef* k_cm_sample_attachment_key_not_sync_;
-
- CMFormatDescriptionGetMediaSubTypeMethod
- cm_format_description_get_media_sub_type_method_;
- CMVideoFormatDescriptionGetDimensionsMethod
- 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);
-};
-
-} // namespace
-
-static base::LazyInstance<CoreMediaLibraryInternal> g_coremedia_handle =
- LAZY_INSTANCE_INITIALIZER;
-
-// static
-CoreMediaGlue::CMTime CoreMediaGlue::CMTimeMake(int64_t value,
- int32_t timescale) {
- return g_coremedia_handle.Get().cm_time_make()(value, timescale);
-}
-
-// static
-OSStatus CoreMediaGlue::CMBlockBufferCreateContiguous(
- CFAllocatorRef structureAllocator,
- CMBlockBufferRef sourceBuffer,
- CFAllocatorRef blockAllocator,
- const CMBlockBufferCustomBlockSource* customBlockSource,
- size_t offsetToData,
- size_t dataLength,
- CMBlockBufferFlags flags,
- CMBlockBufferRef* newBBufOut) {
- return g_coremedia_handle.Get().cm_block_buffer_create_contiguous_method()(
- structureAllocator,
- sourceBuffer,
- blockAllocator,
- customBlockSource,
- offsetToData,
- dataLength,
- flags,
- newBBufOut);
-}
-
-// static
-size_t CoreMediaGlue::CMBlockBufferGetDataLength(CMBlockBufferRef theBuffer) {
- return g_coremedia_handle.Get().cm_block_buffer_get_data_length_method()(
- theBuffer);
-}
-
-// static
-OSStatus CoreMediaGlue::CMBlockBufferGetDataPointer(CMBlockBufferRef theBuffer,
- size_t offset,
- size_t* lengthAtOffset,
- size_t* totalLength,
- char** dataPointer) {
- return g_coremedia_handle.Get().cm_block_buffer_get_data_pointer_method()(
- theBuffer, offset, lengthAtOffset, totalLength, dataPointer);
-}
-
-// static
-Boolean CoreMediaGlue::CMBlockBufferIsRangeContiguous(
- CMBlockBufferRef theBuffer,
- size_t offset,
- size_t length) {
- return g_coremedia_handle.Get().cm_block_buffer_is_range_contiguous_method()(
- theBuffer, offset, length);
-}
-
-// static
-CoreMediaGlue::CMBlockBufferRef CoreMediaGlue::CMSampleBufferGetDataBuffer(
- CMSampleBufferRef sbuf) {
- return g_coremedia_handle.Get().cm_sample_buffer_get_data_buffer_method()(
- sbuf);
-}
-
-// static
-CoreMediaGlue::CMFormatDescriptionRef
-CoreMediaGlue::CMSampleBufferGetFormatDescription(
- CoreMediaGlue::CMSampleBufferRef sbuf) {
- return g_coremedia_handle.Get()
- .cm_sample_buffer_get_format_description_method()(sbuf);
-}
-
-// static
-CVImageBufferRef CoreMediaGlue::CMSampleBufferGetImageBuffer(
- CMSampleBufferRef buffer) {
- return g_coremedia_handle.Get().cm_sample_buffer_get_image_buffer_method()(
- buffer);
-}
-
-// static
-CFArrayRef CoreMediaGlue::CMSampleBufferGetSampleAttachmentsArray(
- CMSampleBufferRef sbuf,
- Boolean createIfNecessary) {
- return g_coremedia_handle.Get()
- .cm_sample_buffer_get_sample_attachments_array_method()(
- sbuf, createIfNecessary);
-}
-
-// 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();
-}
-
-// static
-FourCharCode CoreMediaGlue::CMFormatDescriptionGetMediaSubType(
- CMFormatDescriptionRef desc) {
- return g_coremedia_handle.Get()
- .cm_format_description_get_media_sub_type_method()(desc);
-}
-
-// static
-CoreMediaGlue::CMVideoDimensions
- CoreMediaGlue::CMVideoFormatDescriptionGetDimensions(
- CMVideoFormatDescriptionRef videoDesc) {
- return g_coremedia_handle.Get()
- .cm_video_format_description_get_dimensions_method()(videoDesc);
-}
-
-// static
-OSStatus CoreMediaGlue::CMVideoFormatDescriptionGetH264ParameterSetAtIndex(
- CMFormatDescriptionRef videoDesc,
- size_t parameterSetIndex,
- const uint8_t** parameterSetPointerOut,
- size_t* parameterSetSizeOut,
- size_t* parameterSetCountOut,
- int* NALUnitHeaderLengthOut) {
- return g_coremedia_handle.Get()
- .cm_video_format_description_get_h264_parameter_set_at_index_method()(
- videoDesc,
- parameterSetIndex,
- parameterSetPointerOut,
- parameterSetSizeOut,
- parameterSetCountOut,
- NALUnitHeaderLengthOut);
-}
« no previous file with comments | « media/base/mac/coremedia_glue.h ('k') | media/base/mac/corevideo_glue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698