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

Unified Diff: media/base/mac/videotoolbox_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/videotoolbox_glue.h ('k') | media/base/mac/videotoolbox_helpers.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/mac/videotoolbox_glue.mm
diff --git a/media/base/mac/videotoolbox_glue.mm b/media/base/mac/videotoolbox_glue.mm
deleted file mode 100644
index ad2fd23f333159357734535019af5c519e96dc54..0000000000000000000000000000000000000000
--- a/media/base/mac/videotoolbox_glue.mm
+++ /dev/null
@@ -1,242 +0,0 @@
-// Copyright 2014 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/videotoolbox_glue.h"
-
-#include <dlfcn.h>
-#import <Foundation/Foundation.h>
-
-#include "base/lazy_instance.h"
-#include "base/macros.h"
-
-// This class stores VideoToolbox library symbol pointers.
-struct VideoToolboxGlue::Library {
- typedef OSStatus (*VTCompressionSessionCreateMethod)(
- CFAllocatorRef,
- int32_t,
- int32_t,
- CoreMediaGlue::CMVideoCodecType,
- CFDictionaryRef,
- CFDictionaryRef,
- CFAllocatorRef,
- VTCompressionOutputCallback,
- void*,
- VTCompressionSessionRef*);
- typedef OSStatus (*VTCompressionSessionEncodeFrameMethod)(
- VTCompressionSessionRef,
- CVImageBufferRef,
- CoreMediaGlue::CMTime,
- CoreMediaGlue::CMTime,
- CFDictionaryRef,
- void*,
- VTEncodeInfoFlags*);
- typedef CVPixelBufferPoolRef (*VTCompressionSessionGetPixelBufferPoolMethod)(
- VTCompressionSessionRef);
- typedef void (*VTCompressionSessionInvalidateMethod)(VTCompressionSessionRef);
- typedef OSStatus (*VTCompressionSessionCompleteFramesMethod)(
- VTCompressionSessionRef,
- CoreMediaGlue::CMTime);
- typedef OSStatus (*VTSessionSetPropertyMethod)(VTSessionRef,
- CFStringRef,
- CFTypeRef);
-
- VTCompressionSessionCreateMethod VTCompressionSessionCreate;
- VTCompressionSessionEncodeFrameMethod VTCompressionSessionEncodeFrame;
- VTCompressionSessionGetPixelBufferPoolMethod
- VTCompressionSessionGetPixelBufferPool;
- VTCompressionSessionInvalidateMethod VTCompressionSessionInvalidate;
- VTCompressionSessionCompleteFramesMethod VTCompressionSessionCompleteFrames;
- VTSessionSetPropertyMethod VTSessionSetProperty;
-
- CFStringRef* kVTCompressionPropertyKey_AllowFrameReordering;
- CFStringRef* kVTCompressionPropertyKey_AverageBitRate;
- CFStringRef* kVTCompressionPropertyKey_ColorPrimaries;
- CFStringRef* kVTCompressionPropertyKey_DataRateLimits;
- CFStringRef* kVTCompressionPropertyKey_ExpectedFrameRate;
- CFStringRef* kVTCompressionPropertyKey_MaxFrameDelayCount;
- CFStringRef* kVTCompressionPropertyKey_MaxKeyFrameInterval;
- CFStringRef* kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration;
- CFStringRef* kVTCompressionPropertyKey_ProfileLevel;
- CFStringRef* kVTCompressionPropertyKey_RealTime;
- CFStringRef* kVTCompressionPropertyKey_TransferFunction;
- CFStringRef* kVTCompressionPropertyKey_YCbCrMatrix;
- CFStringRef* kVTEncodeFrameOptionKey_ForceKeyFrame;
- CFStringRef* kVTProfileLevel_H264_Baseline_AutoLevel;
- CFStringRef* kVTProfileLevel_H264_Main_AutoLevel;
- CFStringRef* kVTProfileLevel_H264_Extended_AutoLevel;
- CFStringRef* kVTProfileLevel_H264_High_AutoLevel;
- CFStringRef*
- kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder;
- CFStringRef*
- kVTVideoEncoderSpecification_RequireHardwareAcceleratedVideoEncoder;
-};
-
-// Lazy-instance responsible for loading VideoToolbox.
-class VideoToolboxGlue::Loader {
- public:
- Loader() {
- NSBundle* bundle = [NSBundle
- bundleWithPath:@"/System/Library/Frameworks/VideoToolbox.framework"];
- const char* path = [[bundle executablePath] fileSystemRepresentation];
- if (!path)
- return;
-
- handle_ = dlopen(path, RTLD_LAZY | RTLD_LOCAL);
- if (!handle_)
- return;
-
-#define LOAD_SYMBOL(SYMBOL) \
- if (!LoadSymbol(#SYMBOL, reinterpret_cast<void**>(&library_.SYMBOL))) \
- return;
-
- LOAD_SYMBOL(VTCompressionSessionCreate)
- LOAD_SYMBOL(VTCompressionSessionEncodeFrame)
- LOAD_SYMBOL(VTCompressionSessionGetPixelBufferPool)
- LOAD_SYMBOL(VTCompressionSessionInvalidate)
- LOAD_SYMBOL(VTCompressionSessionCompleteFrames)
- LOAD_SYMBOL(VTSessionSetProperty)
-
- LOAD_SYMBOL(kVTCompressionPropertyKey_AllowFrameReordering)
- LOAD_SYMBOL(kVTCompressionPropertyKey_AverageBitRate)
- LOAD_SYMBOL(kVTCompressionPropertyKey_ColorPrimaries)
- LOAD_SYMBOL(kVTCompressionPropertyKey_DataRateLimits)
- LOAD_SYMBOL(kVTCompressionPropertyKey_ExpectedFrameRate)
- LOAD_SYMBOL(kVTCompressionPropertyKey_MaxFrameDelayCount)
- LOAD_SYMBOL(kVTCompressionPropertyKey_MaxKeyFrameInterval)
- LOAD_SYMBOL(kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration)
- LOAD_SYMBOL(kVTCompressionPropertyKey_ProfileLevel)
- LOAD_SYMBOL(kVTCompressionPropertyKey_RealTime)
- LOAD_SYMBOL(kVTCompressionPropertyKey_TransferFunction)
- LOAD_SYMBOL(kVTCompressionPropertyKey_YCbCrMatrix)
- LOAD_SYMBOL(kVTEncodeFrameOptionKey_ForceKeyFrame);
- LOAD_SYMBOL(kVTProfileLevel_H264_Baseline_AutoLevel)
- LOAD_SYMBOL(kVTProfileLevel_H264_Main_AutoLevel)
- LOAD_SYMBOL(kVTProfileLevel_H264_Extended_AutoLevel)
- LOAD_SYMBOL(kVTProfileLevel_H264_High_AutoLevel)
- LOAD_SYMBOL(
- kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder)
- LOAD_SYMBOL(
- kVTVideoEncoderSpecification_RequireHardwareAcceleratedVideoEncoder)
-
-#undef LOAD_SYMBOL
-
- glue_.library_ = &library_;
- }
-
- const VideoToolboxGlue* glue() const {
- return (glue_.library_) ? &glue_ : NULL;
- }
-
- private:
- bool LoadSymbol(const char* name, void** symbol_out) {
- *symbol_out = dlsym(handle_, name);
- return *symbol_out != NULL;
- }
-
- Library library_;
- VideoToolboxGlue glue_;
- void* handle_;
-
- DISALLOW_COPY_AND_ASSIGN(Loader);
-};
-
-static base::LazyInstance<VideoToolboxGlue::Loader> g_videotoolbox_loader =
- LAZY_INSTANCE_INITIALIZER;
-
-// static
-const VideoToolboxGlue* VideoToolboxGlue::Get() {
- return g_videotoolbox_loader.Get().glue();
-}
-
-VideoToolboxGlue::VideoToolboxGlue() : library_(NULL) {
-}
-
-OSStatus VideoToolboxGlue::VTCompressionSessionCreate(
- CFAllocatorRef allocator,
- int32_t width,
- int32_t height,
- CoreMediaGlue::CMVideoCodecType codecType,
- CFDictionaryRef encoderSpecification,
- CFDictionaryRef sourceImageBufferAttributes,
- CFAllocatorRef compressedDataAllocator,
- VTCompressionOutputCallback outputCallback,
- void* outputCallbackRefCon,
- VTCompressionSessionRef* compressionSessionOut) const {
- return library_->VTCompressionSessionCreate(allocator,
- width,
- height,
- codecType,
- encoderSpecification,
- sourceImageBufferAttributes,
- compressedDataAllocator,
- outputCallback,
- outputCallbackRefCon,
- compressionSessionOut);
-}
-
-OSStatus VideoToolboxGlue::VTCompressionSessionEncodeFrame(
- VTCompressionSessionRef session,
- CVImageBufferRef imageBuffer,
- CoreMediaGlue::CMTime presentationTimeStamp,
- CoreMediaGlue::CMTime duration,
- CFDictionaryRef frameProperties,
- void* sourceFrameRefCon,
- VTEncodeInfoFlags* infoFlagsOut) const {
- return library_->VTCompressionSessionEncodeFrame(session,
- imageBuffer,
- presentationTimeStamp,
- duration,
- frameProperties,
- sourceFrameRefCon,
- infoFlagsOut);
-}
-
-CVPixelBufferPoolRef VideoToolboxGlue::VTCompressionSessionGetPixelBufferPool(
- VTCompressionSessionRef session) const {
- return library_->VTCompressionSessionGetPixelBufferPool(session);
-}
-
-void VideoToolboxGlue::VTCompressionSessionInvalidate(
- VTCompressionSessionRef session) const {
- library_->VTCompressionSessionInvalidate(session);
-}
-
-OSStatus VideoToolboxGlue::VTCompressionSessionCompleteFrames(
- VTCompressionSessionRef session,
- CoreMediaGlue::CMTime completeUntilPresentationTimeStamp) const {
- return library_->VTCompressionSessionCompleteFrames(
- session, completeUntilPresentationTimeStamp);
-}
-
-OSStatus VideoToolboxGlue::VTSessionSetProperty(VTSessionRef session,
- CFStringRef propertyKey,
- CFTypeRef propertyValue) const {
- return library_->VTSessionSetProperty(session, propertyKey, propertyValue);
-}
-
-#define KEY_ACCESSOR(KEY) \
- CFStringRef VideoToolboxGlue::KEY() const { return *library_->KEY; }
-
-KEY_ACCESSOR(kVTCompressionPropertyKey_AllowFrameReordering)
-KEY_ACCESSOR(kVTCompressionPropertyKey_AverageBitRate)
-KEY_ACCESSOR(kVTCompressionPropertyKey_ColorPrimaries)
-KEY_ACCESSOR(kVTCompressionPropertyKey_DataRateLimits)
-KEY_ACCESSOR(kVTCompressionPropertyKey_ExpectedFrameRate)
-KEY_ACCESSOR(kVTCompressionPropertyKey_MaxFrameDelayCount)
-KEY_ACCESSOR(kVTCompressionPropertyKey_MaxKeyFrameInterval)
-KEY_ACCESSOR(kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration)
-KEY_ACCESSOR(kVTCompressionPropertyKey_ProfileLevel)
-KEY_ACCESSOR(kVTCompressionPropertyKey_RealTime)
-KEY_ACCESSOR(kVTCompressionPropertyKey_TransferFunction)
-KEY_ACCESSOR(kVTCompressionPropertyKey_YCbCrMatrix)
-KEY_ACCESSOR(kVTEncodeFrameOptionKey_ForceKeyFrame)
-KEY_ACCESSOR(kVTProfileLevel_H264_Baseline_AutoLevel)
-KEY_ACCESSOR(kVTProfileLevel_H264_Main_AutoLevel)
-KEY_ACCESSOR(kVTProfileLevel_H264_Extended_AutoLevel)
-KEY_ACCESSOR(kVTProfileLevel_H264_High_AutoLevel)
-KEY_ACCESSOR(kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder)
-KEY_ACCESSOR(
- kVTVideoEncoderSpecification_RequireHardwareAcceleratedVideoEncoder)
-
-#undef KEY_ACCESSOR
« no previous file with comments | « media/base/mac/videotoolbox_glue.h ('k') | media/base/mac/videotoolbox_helpers.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698