Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(309)

Unified Diff: webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.mm

Issue 2987413002: ObjC: Implement HW codecs in ObjC instead of C++ (Closed)
Patch Set: Rebase against https://codereview.webrtc.org/2992233002 Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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; }

Powered by Google App Engine
This is Rietveld 408576698