diff --git a/src/common_types.h b/src/common_types.h index c1806c696f..54821a287a 100644 --- a/src/common_types.h +++ b/src/common_types.h @@ -514,6 +514,7 @@ struct VideoCodecVP8 VP8ResilienceMode resilience; unsigned char numberOfTemporalLayers; bool denoisingOn; + bool errorConcealmentOn; }; // Unknown specific diff --git a/src/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc b/src/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc index 9c2e1e05d7..1988064b00 100644 --- a/src/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc +++ b/src/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc @@ -70,6 +70,7 @@ class VideoProcessorIntegrationTest: public testing::Test { config_.codec_settings->startBitrate = kBitRateKbps; config_.codec_settings->width = kCIFWidth; config_.codec_settings->height = kCIFHeight; + config_.codec_settings->codecSpecific.VP8.errorConcealmentOn = true; frame_reader_ = new webrtc::test::FrameReaderImpl(config_.input_filename, diff --git a/src/modules/video_coding/codecs/vp8/main/source/vp8.cc b/src/modules/video_coding/codecs/vp8/main/source/vp8.cc index cc0d91be69..de20ed882c 100644 --- a/src/modules/video_coding/codecs/vp8/main/source/vp8.cc +++ b/src/modules/video_coding/codecs/vp8/main/source/vp8.cc @@ -613,7 +613,10 @@ int VP8Decoder::InitDecode(const VideoCodec* inst, int number_of_cores) { vpx_codec_flags_t flags = 0; #if WEBRTC_LIBVPX_VERSION >= 971 - flags = VPX_CODEC_USE_ERROR_CONCEALMENT | VPX_CODEC_USE_POSTPROC; + flags = VPX_CODEC_USE_POSTPROC; + if (inst->codecSpecific.VP8.errorConcealmentOn) { + flags |= VPX_CODEC_USE_ERROR_CONCEALMENT; + } #ifdef INDEPENDENT_PARTITIONS flags |= VPX_CODEC_USE_INPUT_PARTITION; #endif diff --git a/src/modules/video_coding/main/source/codec_database.cc b/src/modules/video_coding/main/source/codec_database.cc index 22c554d133..0e307dde65 100644 --- a/src/modules/video_coding/main/source/codec_database.cc +++ b/src/modules/video_coding/main/source/codec_database.cc @@ -174,6 +174,7 @@ VCMCodecDataBase::Codec(WebRtc_UWord8 listId, VideoCodec *settings) settings->codecSpecific.VP8.resilience = kResilientStream; settings->codecSpecific.VP8.numberOfTemporalLayers = 1; settings->codecSpecific.VP8.denoisingOn = false; + settings->codecSpecific.VP8.errorConcealmentOn = false; break; } #endif