Update RTCEncodedImage to not use deprecated mutable_data call.

Bug: webrtc:9378
Change-Id: If1e6284e2d11009097c87d15b98a2768a1d71521
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168524
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30518}
This commit is contained in:
Kári Tristan Helgason 2020-02-13 13:34:55 +01:00 committed by Commit Bot
parent dc81e11f96
commit 677e62785d
2 changed files with 9 additions and 4 deletions

View File

@ -51,9 +51,10 @@
- (instancetype)initWithNativeEncodedImage:(const webrtc::EncodedImage &)encodedImage {
if (self = [super init]) {
self.encodedData = encodedImage.GetEncodedData();
// Wrap the buffer in NSData without copying, do not take ownership.
self.buffer = [NSData dataWithBytesNoCopy:encodedImage.mutable_data()
length:encodedImage.size()
self.buffer = [NSData dataWithBytesNoCopy:self.encodedData->data()
length:self.encodedData->size()
freeWhenDone:NO];
self.encodedWidth = rtc::dchecked_cast<int32_t>(encodedImage._encodedWidth);
self.encodedHeight = rtc::dchecked_cast<int32_t>(encodedImage._encodedHeight);
@ -77,8 +78,10 @@
- (webrtc::EncodedImage)nativeEncodedImage {
// Return the pointer without copying.
webrtc::EncodedImage encodedImage(
(uint8_t *)self.buffer.bytes, (size_t)self.buffer.length, (size_t)self.buffer.length);
webrtc::EncodedImage encodedImage;
RTC_DCHECK_EQ(self.buffer.bytes, self.encodedData->data());
encodedImage.SetEncodedData(self.encodedData);
encodedImage.set_size(self.buffer.length);
encodedImage._encodedWidth = rtc::dchecked_cast<uint32_t>(self.encodedWidth);
encodedImage._encodedHeight = rtc::dchecked_cast<uint32_t>(self.encodedHeight);
encodedImage.SetTimestamp(self.timeStamp);

View File

@ -70,6 +70,7 @@ TEST(ObjCVideoDecoderFactoryTest, DecodeReturnsOKOnSuccess) {
std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateOKDecoderFactory());
webrtc::EncodedImage encoded_image;
encoded_image.SetEncodedData(webrtc::EncodedImageBuffer::Create());
EXPECT_EQ(decoder->Decode(encoded_image, false, 0), WEBRTC_VIDEO_CODEC_OK);
}
@ -78,6 +79,7 @@ TEST(ObjCVideoDecoderFactoryTest, DecodeReturnsErrorOnFail) {
std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateErrorDecoderFactory());
webrtc::EncodedImage encoded_image;
encoded_image.SetEncodedData(webrtc::EncodedImageBuffer::Create());
EXPECT_EQ(decoder->Decode(encoded_image, false, 0), WEBRTC_VIDEO_CODEC_ERROR);
}