Signal requested resolution alignment requirements from sinks to sources.

Bug: webrtc:11218
Change-Id: I593b0515ea389bece472234a3c4082ccc5321ea5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162400
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30113}
This commit is contained in:
Rasmus Brandt
2019-12-19 09:47:11 +01:00
committed by Commit Bot
parent c04242548c
commit 5cad55b240
19 changed files with 317 additions and 50 deletions

View File

@ -16,6 +16,7 @@
#include "api/video_codecs/video_encoder.h"
#include "common_video/include/video_frame_buffer.h"
#include "common_video/libyuv/include/webrtc_libyuv.h"
#include "media/base/video_common.h"
#include "modules/include/module_common_types.h"
#include "modules/video_coding/codecs/multiplex/include/augmented_video_frame_buffer.h"
#include "rtc_base/keep_ref_until_done.h"
@ -101,6 +102,7 @@ int MultiplexEncoderAdapter::InitEncode(
encoder_info_ = EncoderInfo();
encoder_info_.implementation_name = "MultiplexEncoderAdapter (";
encoder_info_.requested_resolution_alignment = 1;
// This needs to be false so that we can do the split in Encode().
encoder_info_.supports_native_handle = false;
@ -132,6 +134,11 @@ int MultiplexEncoderAdapter::InitEncode(
encoder_info_.is_hardware_accelerated |=
encoder_impl_info.is_hardware_accelerated;
}
encoder_info_.requested_resolution_alignment = cricket::LeastCommonMultiple(
encoder_info_.requested_resolution_alignment,
encoder_impl_info.requested_resolution_alignment);
encoder_info_.has_internal_source = false;
encoders_.emplace_back(std::move(encoder));