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 "RTCVideoDecoderH264.h"
|
||||
#import "api/video_codec/RTCVideoCodecConstants.h"
|
||||
#import "api/video_codec/RTCVideoDecoderAV1.h"
|
||||
#import "api/video_codec/RTCVideoDecoderVP8.h"
|
||||
#import "base/RTCVideoCodecInfo.h"
|
||||
#if defined(RTC_ENABLE_VP9)
|
||||
#import "api/video_codec/RTCVideoDecoderVP9.h"
|
||||
#endif
|
||||
#import "base/RTCVideoCodecInfo.h"
|
||||
|
||||
@implementation RTC_OBJC_TYPE (RTCDefaultVideoDecoderFactory)
|
||||
|
||||
@ -43,19 +42,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(RTCVideoDecoderVP9) isSupported]) {
|
||||
[result
|
||||
addObject:[[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:kRTCVideoCodecVp9Name]];
|
||||
}
|
||||
|
||||
if ([RTC_OBJC_TYPE(RTCVideoDecoderAV1) isSupported]) {
|
||||
[result
|
||||
addObject:[[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:kRTCVideoCodecAv1Name]];
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
- (id<RTC_OBJC_TYPE(RTCVideoDecoder)>)createDecoder:(RTC_OBJC_TYPE(RTCVideoCodecInfo) *)info {
|
||||
@ -63,10 +66,12 @@
|
||||
return [[RTC_OBJC_TYPE(RTCVideoDecoderH264) alloc] init];
|
||||
} else if ([info.name isEqualToString:kRTCVideoCodecVp8Name]) {
|
||||
return [RTC_OBJC_TYPE(RTCVideoDecoderVP8) vp8Decoder];
|
||||
#if defined(RTC_ENABLE_VP9)
|
||||
} else if ([info.name isEqualToString:kRTCVideoCodecVp9Name]) {
|
||||
} else if ([info.name isEqualToString:kRTCVideoCodecVp9Name] &&
|
||||
[RTC_OBJC_TYPE(RTCVideoDecoderVP9) isSupported]) {
|
||||
return [RTC_OBJC_TYPE(RTCVideoDecoderVP9) vp9Decoder];
|
||||
#endif
|
||||
} else if ([info.name isEqualToString:kRTCVideoCodecAv1Name] &&
|
||||
[RTC_OBJC_TYPE(RTCVideoDecoderAV1) isSupported]) {
|
||||
return [RTC_OBJC_TYPE(RTCVideoDecoderAV1) av1Decoder];
|
||||
}
|
||||
|
||||
return nil;
|
||||
|
Reference in New Issue
Block a user