Always include the actual decoder implementation when RTCVideoDecoderAV1 is used.
Bug: webrtc:13573, b/236814111 Change-Id: I053fcec3d85fdc9f8d3b72af1735b4091ec5f7c6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267620 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Philip Eliasson <philipel@webrtc.org> Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org> Cr-Commit-Position: refs/heads/main@{#37418}
This commit is contained in:
@ -674,7 +674,6 @@ if (is_ios || is_mac) {
|
||||
|
||||
deps = [
|
||||
":base_objc",
|
||||
":libaom_av1_decoder",
|
||||
":native_video",
|
||||
":videocodec_objc",
|
||||
":videotoolbox_objc",
|
||||
@ -688,6 +687,10 @@ if (is_ios || is_mac) {
|
||||
defines += [ "RTC_USE_LIBAOM_AV1_ENCODER" ]
|
||||
deps += [ ":libaom_av1_encoder" ]
|
||||
}
|
||||
|
||||
if (rtc_include_dav1d_in_internal_decoder_factory) {
|
||||
deps += [ ":dav1d_decoder" ]
|
||||
}
|
||||
}
|
||||
|
||||
rtc_library("vpx_codec_constants") {
|
||||
@ -738,7 +741,7 @@ if (is_ios || is_mac) {
|
||||
]
|
||||
}
|
||||
|
||||
rtc_library("libaom_av1_decoder") {
|
||||
rtc_library("dav1d_decoder") {
|
||||
visibility = [ "*" ]
|
||||
allow_poison = [ "software_video_codecs" ]
|
||||
sources = [
|
||||
@ -750,7 +753,7 @@ if (is_ios || is_mac) {
|
||||
":base_objc",
|
||||
":wrapped_native_codec_objc",
|
||||
"../media:rtc_media_base",
|
||||
"../modules/video_coding/codecs/av1:libaom_av1_decoder",
|
||||
"../modules/video_coding/codecs/av1:dav1d_decoder",
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -22,6 +22,4 @@ RTC_OBJC_EXPORT
|
||||
*/
|
||||
+ (id<RTC_OBJC_TYPE(RTCVideoDecoder)>)av1Decoder;
|
||||
|
||||
+ (bool)isSupported;
|
||||
|
||||
@end
|
||||
|
@ -15,21 +15,13 @@
|
||||
#import "RTCVideoDecoderAV1.h"
|
||||
#import "RTCWrappedNativeVideoDecoder.h"
|
||||
|
||||
#include "modules/video_coding/codecs/av1/libaom_av1_decoder.h"
|
||||
#include "modules/video_coding/codecs/av1/dav1d_decoder.h"
|
||||
|
||||
@implementation RTC_OBJC_TYPE (RTCVideoDecoderAV1)
|
||||
|
||||
+ (id<RTC_OBJC_TYPE(RTCVideoDecoder)>)av1Decoder {
|
||||
std::unique_ptr<webrtc::VideoDecoder> nativeDecoder(webrtc::CreateLibaomAv1Decoder());
|
||||
if (nativeDecoder == nullptr) {
|
||||
return nil;
|
||||
}
|
||||
return [[RTC_OBJC_TYPE(RTCWrappedNativeVideoDecoder) alloc]
|
||||
initWithNativeDecoder:std::move(nativeDecoder)];
|
||||
}
|
||||
|
||||
+ (bool)isSupported {
|
||||
return webrtc::kIsLibaomAv1DecoderSupported;
|
||||
initWithNativeDecoder:std::unique_ptr<webrtc::VideoDecoder>(webrtc::CreateDav1dDecoder())];
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -13,11 +13,14 @@
|
||||
#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 "api/video_codec/RTCVideoDecoderVP9.h"
|
||||
#import "base/RTCVideoCodecInfo.h"
|
||||
|
||||
#if defined(RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY)
|
||||
#import "api/video_codec/RTCVideoDecoderAV1.h" // nogncheck
|
||||
#endif
|
||||
|
||||
@implementation RTC_OBJC_TYPE (RTCDefaultVideoDecoderFactory)
|
||||
|
||||
- (NSArray<RTC_OBJC_TYPE(RTCVideoCodecInfo) *> *)supportedCodecs {
|
||||
@ -53,10 +56,9 @@
|
||||
addObject:[[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:kRTCVideoCodecVp9Name]];
|
||||
}
|
||||
|
||||
if ([RTC_OBJC_TYPE(RTCVideoDecoderAV1) isSupported]) {
|
||||
[result
|
||||
addObject:[[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:kRTCVideoCodecAv1Name]];
|
||||
}
|
||||
#if defined(RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY)
|
||||
[result addObject:[[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:kRTCVideoCodecAv1Name]];
|
||||
#endif
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -69,10 +71,13 @@
|
||||
} else if ([info.name isEqualToString:kRTCVideoCodecVp9Name] &&
|
||||
[RTC_OBJC_TYPE(RTCVideoDecoderVP9) isSupported]) {
|
||||
return [RTC_OBJC_TYPE(RTCVideoDecoderVP9) vp9Decoder];
|
||||
} else if ([info.name isEqualToString:kRTCVideoCodecAv1Name] &&
|
||||
[RTC_OBJC_TYPE(RTCVideoDecoderAV1) isSupported]) {
|
||||
}
|
||||
|
||||
#if defined(RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY)
|
||||
if ([info.name isEqualToString:kRTCVideoCodecAv1Name]) {
|
||||
return [RTC_OBJC_TYPE(RTCVideoDecoderAV1) av1Decoder];
|
||||
}
|
||||
#endif
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
@ -42,6 +42,7 @@ LIB_TO_LICENSES_DICT = {
|
||||
],
|
||||
'boringssl': ['third_party/boringssl/src/LICENSE'],
|
||||
'crc32c': ['third_party/crc32c/src/LICENSE'],
|
||||
'dav1d': ['third_party/dav1d/LICENSE'],
|
||||
'errorprone': [
|
||||
'third_party/android_deps/libs/'
|
||||
'com_google_errorprone_error_prone_core/LICENSE'
|
||||
|
Reference in New Issue
Block a user