The goal is to be able to write the rtc::Buffer by another utility (like rtc::ByteBufferWriter) and pass it into EncodedImageBuffer without memcpy. Bug: webrtc:42223344 Change-Id: Ieda55e77a36636e8cdff6ad6b7d078de0aeafec0 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/364243 Reviewed-by: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/main@{#43179}
56 lines
2.0 KiB
Plaintext
56 lines
2.0 KiB
Plaintext
/*
|
|
* Copyright 2020 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 "api/peerconnection/RTCEncodedImage+Private.h"
|
|
|
|
#import <XCTest/XCTest.h>
|
|
|
|
@interface RTCEncodedImageTests : XCTestCase
|
|
@end
|
|
|
|
@implementation RTCEncodedImageTests
|
|
|
|
- (void)testInitializedWithNativeEncodedImage {
|
|
const auto encoded_data = webrtc::EncodedImageBuffer::Create(1);
|
|
webrtc::EncodedImage encoded_image;
|
|
encoded_image.SetEncodedData(encoded_data);
|
|
|
|
RTC_OBJC_TYPE(RTCEncodedImage) *encodedImage =
|
|
[[RTC_OBJC_TYPE(RTCEncodedImage) alloc] initWithNativeEncodedImage:encoded_image];
|
|
|
|
XCTAssertEqual([encodedImage nativeEncodedImage].GetEncodedData(), encoded_data);
|
|
}
|
|
|
|
- (void)testInitWithNSData {
|
|
NSData *bufferData = [NSData data];
|
|
RTC_OBJC_TYPE(RTCEncodedImage) *encodedImage = [[RTC_OBJC_TYPE(RTCEncodedImage) alloc] init];
|
|
encodedImage.buffer = bufferData;
|
|
|
|
webrtc::EncodedImage result_encoded_image = [encodedImage nativeEncodedImage];
|
|
XCTAssertTrue(result_encoded_image.GetEncodedData() != nullptr);
|
|
XCTAssertEqual(result_encoded_image.GetEncodedData()->data(), bufferData.bytes);
|
|
}
|
|
|
|
- (void)testRetainsNativeEncodedImage {
|
|
RTC_OBJC_TYPE(RTCEncodedImage) * encodedImage;
|
|
{
|
|
const auto encoded_data = webrtc::EncodedImageBuffer::Create(1);
|
|
webrtc::EncodedImage encoded_image;
|
|
encoded_image.SetEncodedData(encoded_data);
|
|
encodedImage =
|
|
[[RTC_OBJC_TYPE(RTCEncodedImage) alloc] initWithNativeEncodedImage:encoded_image];
|
|
}
|
|
webrtc::EncodedImage result_encoded_image = [encodedImage nativeEncodedImage];
|
|
XCTAssertTrue(result_encoded_image.GetEncodedData() != nullptr);
|
|
XCTAssertTrue(result_encoded_image.GetEncodedData()->data() != nullptr);
|
|
}
|
|
|
|
@end
|