| Index: webrtc/video/video_decoder.cc
|
| diff --git a/webrtc/video/video_decoder.cc b/webrtc/video/video_decoder.cc
|
| index b15a83f7b3f3038923985c6b1a281278172ed4db..4ac4ff5b0746eab0a54f287421b5532dd187e10a 100644
|
| --- a/webrtc/video/video_decoder.cc
|
| +++ b/webrtc/video/video_decoder.cc
|
| @@ -43,112 +43,6 @@ VideoDecoder* VideoDecoder::Create(VideoDecoder::DecoderType codec_type) {
|
| return nullptr;
|
| }
|
|
|
| -VideoDecoder::DecoderType CodecTypeToDecoderType(VideoCodecType codec_type) {
|
| - switch (codec_type) {
|
| - case kVideoCodecH264:
|
| - return VideoDecoder::kH264;
|
| - case kVideoCodecVP8:
|
| - return VideoDecoder::kVp8;
|
| - case kVideoCodecVP9:
|
| - return VideoDecoder::kVp9;
|
| - default:
|
| - return VideoDecoder::kUnsupportedCodec;
|
| - }
|
| -}
|
| -
|
| -VideoDecoderSoftwareFallbackWrapper::VideoDecoderSoftwareFallbackWrapper(
|
| - VideoCodecType codec_type,
|
| - VideoDecoder* decoder)
|
| - : decoder_type_(CodecTypeToDecoderType(codec_type)),
|
| - decoder_(decoder),
|
| - callback_(nullptr) {
|
| -}
|
| -
|
| -int32_t VideoDecoderSoftwareFallbackWrapper::InitDecode(
|
| - const VideoCodec* codec_settings,
|
| - int32_t number_of_cores) {
|
| - codec_settings_ = *codec_settings;
|
| - number_of_cores_ = number_of_cores;
|
| - return decoder_->InitDecode(codec_settings, number_of_cores);
|
| -}
|
| -
|
| -bool VideoDecoderSoftwareFallbackWrapper::InitFallbackDecoder() {
|
| - RTC_CHECK(decoder_type_ != kUnsupportedCodec)
|
| - << "Decoder requesting fallback to codec not supported in software.";
|
| - LOG(LS_WARNING) << "Decoder falling back to software decoding.";
|
| - fallback_decoder_.reset(VideoDecoder::Create(decoder_type_));
|
| - if (fallback_decoder_->InitDecode(&codec_settings_, number_of_cores_) !=
|
| - WEBRTC_VIDEO_CODEC_OK) {
|
| - LOG(LS_ERROR) << "Failed to initialize software-decoder fallback.";
|
| - fallback_decoder_.reset();
|
| - return false;
|
| - }
|
| - if (callback_)
|
| - fallback_decoder_->RegisterDecodeCompleteCallback(callback_);
|
| - fallback_implementation_name_ =
|
| - std::string(fallback_decoder_->ImplementationName()) +
|
| - " (fallback from: " + decoder_->ImplementationName() + ")";
|
| - return true;
|
| -}
|
| -
|
| -int32_t VideoDecoderSoftwareFallbackWrapper::Decode(
|
| - const EncodedImage& input_image,
|
| - bool missing_frames,
|
| - const RTPFragmentationHeader* fragmentation,
|
| - const CodecSpecificInfo* codec_specific_info,
|
| - int64_t render_time_ms) {
|
| - // Try decoding with the provided decoder on every keyframe or when there's no
|
| - // fallback decoder. This is the normal case.
|
| - if (!fallback_decoder_ || input_image._frameType == kVideoFrameKey) {
|
| - int32_t ret = decoder_->Decode(input_image, missing_frames, fragmentation,
|
| - codec_specific_info, render_time_ms);
|
| - if (ret == WEBRTC_VIDEO_CODEC_OK) {
|
| - if (fallback_decoder_) {
|
| - // Decode OK -> stop using fallback decoder.
|
| - fallback_decoder_->Release();
|
| - fallback_decoder_.reset();
|
| - return WEBRTC_VIDEO_CODEC_OK;
|
| - }
|
| - }
|
| - if (ret != WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE)
|
| - return ret;
|
| - if (!fallback_decoder_) {
|
| - // Try to initialize fallback decoder.
|
| - if (!InitFallbackDecoder())
|
| - return ret;
|
| - }
|
| - }
|
| - return fallback_decoder_->Decode(input_image, missing_frames, fragmentation,
|
| - codec_specific_info, render_time_ms);
|
| -}
|
| -
|
| -int32_t VideoDecoderSoftwareFallbackWrapper::RegisterDecodeCompleteCallback(
|
| - DecodedImageCallback* callback) {
|
| - callback_ = callback;
|
| - int32_t ret = decoder_->RegisterDecodeCompleteCallback(callback);
|
| - if (fallback_decoder_)
|
| - return fallback_decoder_->RegisterDecodeCompleteCallback(callback);
|
| - return ret;
|
| -}
|
| -
|
| -int32_t VideoDecoderSoftwareFallbackWrapper::Release() {
|
| - if (fallback_decoder_)
|
| - fallback_decoder_->Release();
|
| - return decoder_->Release();
|
| -}
|
| -
|
| -bool VideoDecoderSoftwareFallbackWrapper::PrefersLateDecoding() const {
|
| - if (fallback_decoder_)
|
| - return fallback_decoder_->PrefersLateDecoding();
|
| - return decoder_->PrefersLateDecoding();
|
| -}
|
| -
|
| -const char* VideoDecoderSoftwareFallbackWrapper::ImplementationName() const {
|
| - if (fallback_decoder_)
|
| - return fallback_implementation_name_.c_str();
|
| - return decoder_->ImplementationName();
|
| -}
|
| -
|
| NullVideoDecoder::NullVideoDecoder() {}
|
|
|
| int32_t NullVideoDecoder::InitDecode(const VideoCodec* codec_settings,
|
|
|