Add AV1 encoder&decoder wrappers for iOS SDK.
It is now possible to use AV1 encoder and decoder on iOS and test them in apps like AppRTCMobile. Bug: None Change-Id: Ifae221020e5abf3809010676862eecd9ffeec5e3 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208400 Reviewed-by: Kári Helgason <kthelgason@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33378}
This commit is contained in:
committed by
Commit Bot
parent
662d4c328f
commit
8cfb287735
@ -13,11 +13,10 @@
|
||||
#import "RTCH264ProfileLevelId.h"
|
||||
#import "RTCVideoEncoderH264.h"
|
||||
#import "api/video_codec/RTCVideoCodecConstants.h"
|
||||
#import "api/video_codec/RTCVideoEncoderAV1.h"
|
||||
#import "api/video_codec/RTCVideoEncoderVP8.h"
|
||||
#import "base/RTCVideoCodecInfo.h"
|
||||
#if defined(RTC_ENABLE_VP9)
|
||||
#import "api/video_codec/RTCVideoEncoderVP9.h"
|
||||
#endif
|
||||
#import "base/RTCVideoCodecInfo.h"
|
||||
|
||||
@implementation RTC_OBJC_TYPE (RTCDefaultVideoEncoderFactory)
|
||||
|
||||
@ -45,19 +44,23 @@
|
||||
RTC_OBJC_TYPE(RTCVideoCodecInfo) *vp8Info =
|
||||
[[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:kRTCVideoCodecVp8Name];
|
||||
|
||||
#if defined(RTC_ENABLE_VP9)
|
||||
RTC_OBJC_TYPE(RTCVideoCodecInfo) *vp9Info =
|
||||
[[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:kRTCVideoCodecVp9Name];
|
||||
#endif
|
||||
|
||||
return @[
|
||||
NSMutableArray<RTC_OBJC_TYPE(RTCVideoCodecInfo) *> *result = [@[
|
||||
constrainedHighInfo,
|
||||
constrainedBaselineInfo,
|
||||
vp8Info,
|
||||
#if defined(RTC_ENABLE_VP9)
|
||||
vp9Info,
|
||||
#endif
|
||||
];
|
||||
] mutableCopy];
|
||||
|
||||
if ([RTC_OBJC_TYPE(RTCVideoEncoderVP9) isSupported]) {
|
||||
[result
|
||||
addObject:[[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:kRTCVideoCodecVp9Name]];
|
||||
}
|
||||
|
||||
if ([RTC_OBJC_TYPE(RTCVideoEncoderAV1) isSupported]) {
|
||||
[result
|
||||
addObject:[[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:kRTCVideoCodecAv1Name]];
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
- (id<RTC_OBJC_TYPE(RTCVideoEncoder)>)createEncoder:(RTC_OBJC_TYPE(RTCVideoCodecInfo) *)info {
|
||||
@ -65,10 +68,12 @@
|
||||
return [[RTC_OBJC_TYPE(RTCVideoEncoderH264) alloc] initWithCodecInfo:info];
|
||||
} else if ([info.name isEqualToString:kRTCVideoCodecVp8Name]) {
|
||||
return [RTC_OBJC_TYPE(RTCVideoEncoderVP8) vp8Encoder];
|
||||
#if defined(RTC_ENABLE_VP9)
|
||||
} else if ([info.name isEqualToString:kRTCVideoCodecVp9Name]) {
|
||||
} else if ([info.name isEqualToString:kRTCVideoCodecVp9Name] &&
|
||||
[RTC_OBJC_TYPE(RTCVideoEncoderVP9) isSupported]) {
|
||||
return [RTC_OBJC_TYPE(RTCVideoEncoderVP9) vp9Encoder];
|
||||
#endif
|
||||
} else if ([info.name isEqualToString:kRTCVideoCodecAv1Name] &&
|
||||
[RTC_OBJC_TYPE(RTCVideoEncoderAV1) isSupported]) {
|
||||
return [RTC_OBJC_TYPE(RTCVideoEncoderAV1) av1Encoder];
|
||||
}
|
||||
|
||||
return nil;
|
||||
|
||||
Reference in New Issue
Block a user