From dc257b578188c0bd4a3ee153b42cc7558f725bb9 Mon Sep 17 00:00:00 2001 From: "stefan@webrtc.org" Date: Wed, 30 May 2012 11:25:00 +0000 Subject: [PATCH] Add option to configure error concealment and disable by default. BUG= TEST= Review URL: https://webrtc-codereview.appspot.com/597005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@2324 4adac7df-926f-26a2-2b94-8c16560cd09d --- src/common_types.h | 1 + .../codecs/test/videoprocessor_integrationtest.cc | 1 + src/modules/video_coding/codecs/vp8/main/source/vp8.cc | 5 ++++- src/modules/video_coding/main/source/codec_database.cc | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) 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