The current ObjC HW encoder is implemented as a C++ webrtc::VideoEncoder. We then wrap it two times in the following way: webrtc::VideoEncoder -> RTCVideoEncoder -> webrtc::VideoEncoder. This was originally done to minimize the code diff when landing the injectable encoder. This CL removes the first wrapping and implements the ObjC HW encoder as a RTCVideoEncoder directly. Similarly, the decoder is implemented as a RTCVideoDecoder directly. Based on andersc@ CL: https://codereview.webrtc.org/2978623002/. BUG=webrtc:7924 Review-Url: https://codereview.webrtc.org/2987413002 Cr-Commit-Position: refs/heads/master@{#19255}
48 lines
1.9 KiB
C++
48 lines
1.9 KiB
C++
/*
|
|
* Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*
|
|
*/
|
|
|
|
#ifndef WEBRTC_SDK_OBJC_FRAMEWORK_CLASSES_VIDEOTOOLBOX_HELPERS_H_
|
|
#define WEBRTC_SDK_OBJC_FRAMEWORK_CLASSES_VIDEOTOOLBOX_HELPERS_H_
|
|
|
|
#include <CoreFoundation/CoreFoundation.h>
|
|
#include <VideoToolbox/VideoToolbox.h>
|
|
#include <string>
|
|
|
|
// Convenience function for creating a dictionary.
|
|
inline CFDictionaryRef CreateCFTypeDictionary(CFTypeRef* keys,
|
|
CFTypeRef* values,
|
|
size_t size) {
|
|
return CFDictionaryCreate(kCFAllocatorDefault, keys, values, size,
|
|
&kCFTypeDictionaryKeyCallBacks,
|
|
&kCFTypeDictionaryValueCallBacks);
|
|
}
|
|
|
|
// Copies characters from a CFStringRef into a std::string.
|
|
std::string CFStringToString(const CFStringRef cf_string);
|
|
|
|
// Convenience function for setting a VT property.
|
|
void SetVTSessionProperty(VTSessionRef session, CFStringRef key, int32_t value);
|
|
|
|
// Convenience function for setting a VT property.
|
|
void SetVTSessionProperty(VTSessionRef session,
|
|
CFStringRef key,
|
|
uint32_t value);
|
|
|
|
// Convenience function for setting a VT property.
|
|
void SetVTSessionProperty(VTSessionRef session, CFStringRef key, bool value);
|
|
|
|
// Convenience function for setting a VT property.
|
|
void SetVTSessionProperty(VTSessionRef session,
|
|
CFStringRef key,
|
|
CFStringRef value);
|
|
|
|
#endif // WEBRTC_SDK_OBJC_FRAMEWORK_CLASSES_VIDEOTOOLBOX_HELPERS_H_
|