Add FrameEncryptor/FrameDecryptor support to Objective C API for WebRTC.
This change adds bindings so that native FrameEncryptor and native FrameDecryptor objects can be set on the objective C RTCRtpSender and RTCRtpReceiver objects. Bug: webrtc:9681 Change-Id: Iec4006ea020d6ab6adcc0ad068dcd8fb2738063d Reviewed-on: https://webrtc-review.googlesource.com/c/103020 Commit-Queue: Benjamin Wright <benwright@webrtc.org> Reviewed-by: Steve Anton <steveanton@webrtc.org> Reviewed-by: Kári Helgason <kthelgason@webrtc.org> Reviewed-by: Anders Carlsson <andersc@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24936}
This commit is contained in:
committed by
Commit Bot
parent
ad5465b443
commit
ddf1a3e209
30
sdk/objc/api/peerconnection/RTCRtpReceiver+Native.h
Normal file
30
sdk/objc/api/peerconnection/RTCRtpReceiver+Native.h
Normal file
@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright 2018 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.
|
||||
*/
|
||||
|
||||
#import "RTCRtpReceiver.h"
|
||||
|
||||
#include "api/crypto/framedecryptorinterface.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
* This class extension exposes methods that work directly with injectable C++ components.
|
||||
*/
|
||||
@interface RTCRtpReceiver ()
|
||||
|
||||
/** Sets a user defined frame decryptor that will decrypt the entire frame.
|
||||
* This will decrypt the entire frame using the user provided decryption
|
||||
* mechanism regardless of whether SRTP is enabled or not.
|
||||
*/
|
||||
- (void)setFrameDecryptor:(rtc::scoped_refptr<webrtc::FrameDecryptorInterface>)frameDecryptor;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@ -12,6 +12,7 @@
|
||||
|
||||
#import "RTCMediaStreamTrack+Private.h"
|
||||
#import "RTCRtpParameters+Private.h"
|
||||
#import "RTCRtpReceiver+Native.h"
|
||||
#import "base/RTCLogging.h"
|
||||
#import "helpers/NSString+StdString.h"
|
||||
|
||||
@ -97,6 +98,12 @@ void RtpReceiverDelegateAdapter::OnFirstPacketReceived(
|
||||
return (NSUInteger)_nativeRtpReceiver.get();
|
||||
}
|
||||
|
||||
#pragma mark - Native
|
||||
|
||||
- (void)setFrameDecryptor:(rtc::scoped_refptr<webrtc::FrameDecryptorInterface>)frameDecryptor {
|
||||
_nativeRtpReceiver->SetFrameDecryptor(frameDecryptor);
|
||||
}
|
||||
|
||||
#pragma mark - Private
|
||||
|
||||
- (rtc::scoped_refptr<webrtc::RtpReceiverInterface>)nativeRtpReceiver {
|
||||
|
||||
31
sdk/objc/api/peerconnection/RTCRtpSender+Native.h
Normal file
31
sdk/objc/api/peerconnection/RTCRtpSender+Native.h
Normal file
@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright 2018 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.
|
||||
*/
|
||||
|
||||
#import "RTCRtpSender.h"
|
||||
|
||||
#include "api/crypto/frameencryptorinterface.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
* This class extension exposes methods that work directly with injectable C++ components.
|
||||
*/
|
||||
@interface RTCRtpSender ()
|
||||
|
||||
/** Sets a defined frame encryptor that will encrypt the entire frame
|
||||
* before it is sent across the network. This will encrypt the entire frame
|
||||
* using the user provided encryption mechanism regardless of whether SRTP is
|
||||
* enabled or not.
|
||||
*/
|
||||
- (void)setFrameEncryptor:(rtc::scoped_refptr<webrtc::FrameEncryptorInterface>)frameEncryptor;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@ -13,6 +13,7 @@
|
||||
#import "RTCDtmfSender+Private.h"
|
||||
#import "RTCMediaStreamTrack+Private.h"
|
||||
#import "RTCRtpParameters+Private.h"
|
||||
#import "RTCRtpSender+Native.h"
|
||||
#import "base/RTCLogging.h"
|
||||
#import "helpers/NSString+StdString.h"
|
||||
|
||||
@ -79,6 +80,12 @@
|
||||
return (NSUInteger)_nativeRtpSender.get();
|
||||
}
|
||||
|
||||
#pragma mark - Native
|
||||
|
||||
- (void)setFrameEncryptor:(rtc::scoped_refptr<webrtc::FrameEncryptorInterface>)frameEncryptor {
|
||||
_nativeRtpSender->SetFrameEncryptor(frameEncryptor);
|
||||
}
|
||||
|
||||
#pragma mark - Private
|
||||
|
||||
- (rtc::scoped_refptr<webrtc::RtpSenderInterface>)nativeRtpSender {
|
||||
|
||||
Reference in New Issue
Block a user