Add config option to run VideoCodecTest in real time.
It's reasonable to allow clients implementing their own VideoCodecTests to decide wether they should run in real-time. Removes the IsAsyncCodec helper, as the assumptions it made are outdated, and it is no longer useful. Bug: None Change-Id: If766935d4947555af54f499a30cfe553bde4c1ab Reviewed-on: https://webrtc-review.googlesource.com/95722 Commit-Queue: Kári Helgason <kthelgason@webrtc.org> Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24478}
This commit is contained in:
committed by
Commit Bot
parent
e5892c014a
commit
f16776280f
@ -121,15 +121,10 @@ std::string CodecSpecificToString(const VideoCodec& codec) {
|
||||
}
|
||||
|
||||
bool RunEncodeInRealTime(const VideoCodecTestFixtureImpl::Config& config) {
|
||||
if (config.measure_cpu) {
|
||||
if (config.measure_cpu || config.encode_in_real_time) {
|
||||
return true;
|
||||
}
|
||||
#if defined(WEBRTC_ANDROID)
|
||||
// In order to not overwhelm the OpenMAX buffers in the Android MediaCodec.
|
||||
return (config.hw_encoder || config.hw_decoder);
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
std::string FilenameWithParams(
|
||||
@ -303,10 +298,6 @@ std::string VideoCodecTestFixtureImpl::Config::CodecName() const {
|
||||
return name;
|
||||
}
|
||||
|
||||
bool VideoCodecTestFixtureImpl::Config::IsAsyncCodec() const {
|
||||
return hw_encoder || hw_decoder;
|
||||
}
|
||||
|
||||
// TODO(kthelgason): Move this out of the test fixture impl and
|
||||
// make available as a shared utility class.
|
||||
void VideoCodecTestFixtureImpl::H264KeyframeChecker::CheckEncodedFrame(
|
||||
@ -460,10 +451,7 @@ void VideoCodecTestFixtureImpl::ProcessAllFrames(
|
||||
|
||||
// Give the VideoProcessor pipeline some time to process the last frame,
|
||||
// and then release the codecs.
|
||||
if (config_.IsAsyncCodec()) {
|
||||
SleepMs(1 * rtc::kNumMillisecsPerSec);
|
||||
}
|
||||
|
||||
SleepMs(1 * rtc::kNumMillisecsPerSec);
|
||||
cpu_process_time_->Stop();
|
||||
}
|
||||
|
||||
|
||||
@ -35,6 +35,8 @@ VideoCodecTestFixture::Config CreateConfig() {
|
||||
config.num_frames = kForemanNumFrames;
|
||||
config.hw_encoder = true;
|
||||
config.hw_decoder = true;
|
||||
// In order to not overwhelm the OpenMAX buffers in the Android MediaCodec.
|
||||
config.encode_in_real_time = true;
|
||||
return config;
|
||||
}
|
||||
|
||||
|
||||
@ -444,7 +444,7 @@ void VideoProcessor::FrameEncoded(
|
||||
config_.codec_settings.codecType));
|
||||
}
|
||||
|
||||
if (!config_.IsAsyncCodec()) {
|
||||
if (!config_.encode_in_real_time) {
|
||||
// To get pure encode time for next layers, measure time spent in encode
|
||||
// callback and subtract it from encode time of next layers.
|
||||
post_encode_time_ns_ += rtc::TimeNanos() - encode_stop_ns;
|
||||
|
||||
Reference in New Issue
Block a user