Index: webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.mm |
diff --git a/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.mm b/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.mm |
index 9c507fc9d1eb46d9bc4c357d89ef4ccedea7473f..c3de9ae7061eb32009ba612c30c556d8b5d135c7 100644 |
--- a/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.mm |
+++ b/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.mm |
@@ -54,7 +54,6 @@ class ObjCVideoEncoder : public VideoEncoder { |
public: |
ObjCVideoEncoder(id<RTCVideoEncoder> encoder) |
: encoder_(encoder), implementation_name_([encoder implementationName].stdString) {} |
- ~ObjCVideoEncoder() { [encoder_ destroy]; } |
int32_t InitEncode(const VideoCodec *codec_settings, |
int32_t number_of_cores, |
@@ -65,9 +64,9 @@ class ObjCVideoEncoder : public VideoEncoder { |
} |
int32_t RegisterEncodeCompleteCallback(EncodedImageCallback *callback) { |
- [encoder_ setCallback:^(RTCEncodedImage *frame, |
- id<RTCCodecSpecificInfo> info, |
- RTCRtpFragmentationHeader *header) { |
+ [encoder_ setCallback:^BOOL(RTCEncodedImage *_Nonnull frame, |
+ id<RTCCodecSpecificInfo> _Nonnull info, |
+ RTCRtpFragmentationHeader *_Nonnull header) { |
EncodedImage encodedImage = [frame nativeEncodedImage]; |
// Handle types than can be converted into one of CodecSpecificInfo's hard coded cases. |
@@ -78,7 +77,9 @@ class ObjCVideoEncoder : public VideoEncoder { |
std::unique_ptr<RTPFragmentationHeader> fragmentationHeader = |
[header createNativeFragmentationHeader]; |
- callback->OnEncodedImage(encodedImage, &codecSpecificInfo, fragmentationHeader.release()); |
+ EncodedImageCallback::Result res = |
+ callback->OnEncodedImage(encodedImage, &codecSpecificInfo, fragmentationHeader.release()); |
+ return res.error == EncodedImageCallback::Result::OK; |
}]; |
return WEBRTC_VIDEO_CODEC_OK; |
@@ -113,11 +114,7 @@ class ObjCVideoEncoder : public VideoEncoder { |
int32_t SetChannelParameters(uint32_t packet_loss, int64_t rtt) { return WEBRTC_VIDEO_CODEC_OK; } |
int32_t SetRates(uint32_t bitrate, uint32_t framerate) { |
- if ([encoder_ setBitrate:bitrate framerate:framerate]) { |
- return WEBRTC_VIDEO_CODEC_OK; |
- } else { |
- return WEBRTC_VIDEO_CODEC_ERROR; |
- } |
+ return [encoder_ setBitrate:bitrate framerate:framerate]; |
} |
bool SupportsNativeHandle() const { return true; } |