Commit f2b80dd2 authored by Sergey Silkin's avatar Sergey Silkin Committed by Commit Bot

Don't require SW H264 on android.

- Don't require availability of SW H264 (webrtc_h264_sw_enabled) on
android. Allow H264 processing with HW only.

- Don't pass SW encoder factory to SEA if SW encoder of given type
is not available.

Bug: webrtc:11244, 1046501, 599650
Change-Id: I96991c9f40402d6dd723b10fd272b2dfe3120af1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2027848Reviewed-by: default avatarHarald Alvestrand <hta@chromium.org>
Reviewed-by: default avatarMiguel Casas <mcasas@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#737396}
parent 2d3cb03f
...@@ -33,6 +33,7 @@ base::Optional<webrtc::SdpVideoFormat> VEAToWebRTCFormat( ...@@ -33,6 +33,7 @@ base::Optional<webrtc::SdpVideoFormat> VEAToWebRTCFormat(
} }
if (profile.profile >= media::H264PROFILE_MIN && if (profile.profile >= media::H264PROFILE_MIN &&
profile.profile <= media::H264PROFILE_MAX) { profile.profile <= media::H264PROFILE_MAX) {
#if !defined(OS_ANDROID)
// Enable H264 HW encode for WebRTC when SW fallback is available, which is // Enable H264 HW encode for WebRTC when SW fallback is available, which is
// checked by kWebRtcH264WithOpenH264FFmpeg flag. This check should be // checked by kWebRtcH264WithOpenH264FFmpeg flag. This check should be
// removed when SW implementation is fully enabled. // removed when SW implementation is fully enabled.
...@@ -43,6 +44,7 @@ base::Optional<webrtc::SdpVideoFormat> VEAToWebRTCFormat( ...@@ -43,6 +44,7 @@ base::Optional<webrtc::SdpVideoFormat> VEAToWebRTCFormat(
#endif // BUILDFLAG(RTC_USE_H264) && BUILDFLAG(ENABLE_FFMPEG_VIDEO_DECODERS) #endif // BUILDFLAG(RTC_USE_H264) && BUILDFLAG(ENABLE_FFMPEG_VIDEO_DECODERS)
if (!webrtc_h264_sw_enabled) if (!webrtc_h264_sw_enabled)
return base::nullopt; return base::nullopt;
#endif
webrtc::H264::Profile h264_profile; webrtc::H264::Profile h264_profile;
switch (profile.profile) { switch (profile.profile) {
......
...@@ -127,7 +127,11 @@ class EncoderAdapter : public webrtc::VideoEncoderFactory { ...@@ -127,7 +127,11 @@ class EncoderAdapter : public webrtc::VideoEncoderFactory {
if (!supported_in_hardware || !hardware_encoder_factory_.get()) { if (!supported_in_hardware || !hardware_encoder_factory_.get()) {
return std::make_unique<webrtc::SimulcastEncoderAdapter>( return std::make_unique<webrtc::SimulcastEncoderAdapter>(
&software_encoder_factory_, nullptr, format); &software_encoder_factory_, nullptr, format);
} else if (!supported_in_software) {
return std::make_unique<webrtc::SimulcastEncoderAdapter>(
hardware_encoder_factory_.get(), nullptr, format);
} }
return std::make_unique<webrtc::SimulcastEncoderAdapter>( return std::make_unique<webrtc::SimulcastEncoderAdapter>(
hardware_encoder_factory_.get(), &software_encoder_factory_, format); hardware_encoder_factory_.get(), &software_encoder_factory_, format);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment