From 9c99b7964fabb16a022293ffbd2804f9b46551f6 Mon Sep 17 00:00:00 2001 From: Danil Chapovalov Date: Thu, 5 Nov 2020 19:43:09 +0100 Subject: [PATCH] Use SvcRateAllocator for av1 same as VP9, Av1 encoder supports spatial scalability and thus SvcRateAllocator better fits for it than SimulcastRateAllocator Bug: webrtc:12148 Change-Id: I3f78afb3aec00b6a8a7242fe8dce07752e7a514e Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/191960 Reviewed-by: Philip Eliasson Reviewed-by: Rasmus Brandt Commit-Queue: Danil Chapovalov Cr-Commit-Position: refs/heads/master@{#32565} --- api/video/BUILD.gn | 2 +- api/video/builtin_video_bitrate_allocator_factory.cc | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/api/video/BUILD.gn b/api/video/BUILD.gn index b0245482af..163a5e83db 100644 --- a/api/video/BUILD.gn +++ b/api/video/BUILD.gn @@ -331,7 +331,7 @@ rtc_library("builtin_video_bitrate_allocator_factory") { "../../api:scoped_refptr", "../../media:rtc_media_base", "../../modules/video_coding:video_coding_utility", - "../../modules/video_coding:webrtc_vp9_helpers", + "../../modules/video_coding/svc:svc_rate_allocator", "../video_codecs:video_codecs_api", ] absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ] diff --git a/api/video/builtin_video_bitrate_allocator_factory.cc b/api/video/builtin_video_bitrate_allocator_factory.cc index 2966a024c7..4c24a0e75d 100644 --- a/api/video/builtin_video_bitrate_allocator_factory.cc +++ b/api/video/builtin_video_bitrate_allocator_factory.cc @@ -15,7 +15,7 @@ #include "absl/base/macros.h" #include "api/video/video_bitrate_allocator.h" #include "api/video_codecs/video_codec.h" -#include "modules/video_coding/codecs/vp9/svc_rate_allocator.h" +#include "modules/video_coding/svc/svc_rate_allocator.h" #include "modules/video_coding/utility/simulcast_rate_allocator.h" namespace webrtc { @@ -30,15 +30,13 @@ class BuiltinVideoBitrateAllocatorFactory std::unique_ptr CreateVideoBitrateAllocator( const VideoCodec& codec) override { - std::unique_ptr rate_allocator; switch (codec.codecType) { + case kVideoCodecAV1: case kVideoCodecVP9: - rate_allocator.reset(new SvcRateAllocator(codec)); - break; + return std::make_unique(codec); default: - rate_allocator.reset(new SimulcastRateAllocator(codec)); + return std::make_unique(codec); } - return rate_allocator; } };