generatekeyframe: allow simulcast_encoder_adapter to request per-layer
in the case of separate encoders. drive-by: add helper function to expect per-layer keyframes BUG=chromium:1354101 Change-Id: Ib645a621add899f035bea319f035dcb0b2617510 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/281002 Reviewed-by: Erik Språng <sprang@webrtc.org> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Commit-Queue: Philipp Hancke <phancke@microsoft.com> Cr-Commit-Position: refs/heads/main@{#38734}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
5c4509a604
commit
e862da376f
@ -333,45 +333,34 @@ void SimulcastTestFixtureImpl::UpdateActiveStreams(
|
||||
EXPECT_EQ(0, encoder_->InitEncode(&settings_, kSettings));
|
||||
}
|
||||
|
||||
void SimulcastTestFixtureImpl::ExpectStream(VideoFrameType frame_type,
|
||||
int scaleResolutionDownBy) {
|
||||
EXPECT_CALL(
|
||||
encoder_callback_,
|
||||
OnEncodedImage(AllOf(Field(&EncodedImage::_frameType, frame_type),
|
||||
Field(&EncodedImage::_encodedWidth,
|
||||
kDefaultWidth / scaleResolutionDownBy),
|
||||
Field(&EncodedImage::_encodedHeight,
|
||||
kDefaultHeight / scaleResolutionDownBy)),
|
||||
_))
|
||||
.Times(1)
|
||||
.WillRepeatedly(Return(
|
||||
EncodedImageCallback::Result(EncodedImageCallback::Result::OK, 0)));
|
||||
}
|
||||
|
||||
void SimulcastTestFixtureImpl::ExpectStreams(
|
||||
VideoFrameType frame_type,
|
||||
const std::vector<bool> expected_streams_active) {
|
||||
ASSERT_EQ(static_cast<int>(expected_streams_active.size()),
|
||||
kNumberOfSimulcastStreams);
|
||||
if (expected_streams_active[0]) {
|
||||
EXPECT_CALL(
|
||||
encoder_callback_,
|
||||
OnEncodedImage(
|
||||
AllOf(Field(&EncodedImage::_frameType, frame_type),
|
||||
Field(&EncodedImage::_encodedWidth, kDefaultWidth / 4),
|
||||
Field(&EncodedImage::_encodedHeight, kDefaultHeight / 4)),
|
||||
_))
|
||||
.Times(1)
|
||||
.WillRepeatedly(Return(
|
||||
EncodedImageCallback::Result(EncodedImageCallback::Result::OK, 0)));
|
||||
ExpectStream(frame_type, 4);
|
||||
}
|
||||
if (expected_streams_active[1]) {
|
||||
EXPECT_CALL(
|
||||
encoder_callback_,
|
||||
OnEncodedImage(
|
||||
AllOf(Field(&EncodedImage::_frameType, frame_type),
|
||||
Field(&EncodedImage::_encodedWidth, kDefaultWidth / 2),
|
||||
Field(&EncodedImage::_encodedHeight, kDefaultHeight / 2)),
|
||||
_))
|
||||
.Times(1)
|
||||
.WillRepeatedly(Return(
|
||||
EncodedImageCallback::Result(EncodedImageCallback::Result::OK, 0)));
|
||||
ExpectStream(frame_type, 2);
|
||||
}
|
||||
if (expected_streams_active[2]) {
|
||||
EXPECT_CALL(encoder_callback_,
|
||||
OnEncodedImage(
|
||||
AllOf(Field(&EncodedImage::_frameType, frame_type),
|
||||
Field(&EncodedImage::_encodedWidth, kDefaultWidth),
|
||||
Field(&EncodedImage::_encodedHeight, kDefaultHeight)),
|
||||
_))
|
||||
.Times(1)
|
||||
.WillRepeatedly(Return(
|
||||
EncodedImageCallback::Result(EncodedImageCallback::Result::OK, 0)));
|
||||
ExpectStream(frame_type, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -66,6 +66,7 @@ class SimulcastTestFixtureImpl final : public SimulcastTestFixture {
|
||||
void SetRates(uint32_t bitrate_kbps, uint32_t fps);
|
||||
void RunActiveStreamsTest(std::vector<bool> active_streams);
|
||||
void UpdateActiveStreams(std::vector<bool> active_streams);
|
||||
void ExpectStream(VideoFrameType frame_type, int scaleResolutionDownBy);
|
||||
void ExpectStreams(VideoFrameType frame_type,
|
||||
std::vector<bool> expected_streams_active);
|
||||
void ExpectStreams(VideoFrameType frame_type, int expected_video_streams);
|
||||
|
||||
Reference in New Issue
Block a user