Revert of Add _decoder CHECK to VCMGenericDecoder constructor. (patchset #2 id:20001 of https://codereview.webrtc.org/1485713002/ )

Reason for revert:
Speculative revert since a downstream test started failing with this.

Original issue's description:
> Add _decoder CHECK to VCMGenericDecoder constructor.
>
> This should never be using a null decoder, but it looks like it's
> crashing out in the field. Adding a CHECK to see if it catches any
> interesting stack traces.
>
> Also making the _decoder pointer const to show that it should never be
> changing.
>
> BUG=chromium:563299
> R=stefan@webrtc.org
>
> Committed: https://chromium.googlesource.com/external/webrtc/+/a443ec1a75d10be0f24fa0163f23e1555d4c53cf

TBR=stefan@webrtc.org,pbos@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:563299

Review URL: https://codereview.webrtc.org/1490703002

Cr-Commit-Position: refs/heads/master@{#10851}
diff --git a/webrtc/modules/video_coding/codec_database.cc b/webrtc/modules/video_coding/codec_database.cc
index 2b358dd..9f016d9 100644
--- a/webrtc/modules/video_coding/codec_database.cc
+++ b/webrtc/modules/video_coding/codec_database.cc
@@ -423,7 +423,7 @@
   // because payload type may be out of date (e.g. before we decode the first
   // frame after RegisterReceiveCodec)
   if (ptr_decoder_ != nullptr &&
-      ptr_decoder_->_decoder == (*it).second->external_decoder_instance) {
+      &ptr_decoder_->_decoder == (*it).second->external_decoder_instance) {
     // Release it if it was registered and in use.
     ReleaseDecoder(ptr_decoder_);
     ptr_decoder_ = nullptr;
@@ -571,7 +571,7 @@
   if (external_dec_item) {
     // External codec.
     ptr_decoder = new VCMGenericDecoder(
-        external_dec_item->external_decoder_instance, true);
+        *external_dec_item->external_decoder_instance, true);
   } else {
     // Create decoder.
     ptr_decoder = CreateDecoder(decoder_item->settings->codecType);
@@ -607,14 +607,14 @@
 VCMGenericDecoder* VCMCodecDataBase::CreateDecoder(VideoCodecType type) const {
   switch (type) {
     case kVideoCodecVP8:
-      return new VCMGenericDecoder(VP8Decoder::Create(), false);
+      return new VCMGenericDecoder(*(VP8Decoder::Create()));
     case kVideoCodecVP9:
-      return new VCMGenericDecoder(VP9Decoder::Create(), false);
+      return new VCMGenericDecoder(*(VP9Decoder::Create()));
     case kVideoCodecI420:
-      return new VCMGenericDecoder(new I420Decoder(), false);
+      return new VCMGenericDecoder(*(new I420Decoder));
     case kVideoCodecH264:
       if (H264Decoder::IsSupported()) {
-        return new VCMGenericDecoder(H264Decoder::Create(), false);
+        return new VCMGenericDecoder(*(H264Decoder::Create()));
       }
       break;
     default:
diff --git a/webrtc/modules/video_coding/generic_decoder.cc b/webrtc/modules/video_coding/generic_decoder.cc
index 294a903..092d054 100644
--- a/webrtc/modules/video_coding/generic_decoder.cc
+++ b/webrtc/modules/video_coding/generic_decoder.cc
@@ -8,11 +8,10 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/base/checks.h"
 #include "webrtc/base/logging.h"
 #include "webrtc/base/trace_event.h"
-#include "webrtc/modules/video_coding/generic_decoder.h"
 #include "webrtc/modules/video_coding/include/video_coding.h"
+#include "webrtc/modules/video_coding/generic_decoder.h"
 #include "webrtc/modules/video_coding/internal_defines.h"
 #include "webrtc/system_wrappers/include/clock.h"
 
@@ -132,15 +131,16 @@
     return VCM_OK;
 }
 
-VCMGenericDecoder::VCMGenericDecoder(VideoDecoder* decoder, bool isExternal)
-    : _callback(NULL),
-      _frameInfos(),
-      _nextFrameInfoIdx(0),
-      _decoder(decoder),
-      _codecType(kVideoCodecUnknown),
-      _isExternal(isExternal),
-      _keyFrameDecoded(false) {
-  RTC_CHECK(_decoder);
+VCMGenericDecoder::VCMGenericDecoder(VideoDecoder& decoder, bool isExternal)
+:
+_callback(NULL),
+_frameInfos(),
+_nextFrameInfoIdx(0),
+_decoder(decoder),
+_codecType(kVideoCodecUnknown),
+_isExternal(isExternal),
+_keyFrameDecoded(false)
+{
 }
 
 VCMGenericDecoder::~VCMGenericDecoder()
@@ -153,7 +153,7 @@
     TRACE_EVENT0("webrtc", "VCMGenericDecoder::InitDecode");
     _codecType = settings->codecType;
 
-    return _decoder->InitDecode(settings, numberOfCores);
+    return _decoder.InitDecode(settings, numberOfCores);
 }
 
 int32_t VCMGenericDecoder::Decode(const VCMEncodedFrame& frame, int64_t nowMs) {
@@ -165,7 +165,7 @@
     _callback->Map(frame.TimeStamp(), &_frameInfos[_nextFrameInfoIdx]);
 
     _nextFrameInfoIdx = (_nextFrameInfoIdx + 1) % kDecoderFrameMemoryLength;
-    int32_t ret = _decoder->Decode(frame.EncodedImage(),
+    int32_t ret = _decoder.Decode(frame.EncodedImage(),
                                         frame.MissingFrame(),
                                         frame.FragmentationHeader(),
                                         frame.CodecSpecific(),
@@ -190,18 +190,18 @@
 int32_t
 VCMGenericDecoder::Release()
 {
-    return _decoder->Release();
+    return _decoder.Release();
 }
 
 int32_t VCMGenericDecoder::Reset()
 {
-    return _decoder->Reset();
+    return _decoder.Reset();
 }
 
 int32_t VCMGenericDecoder::RegisterDecodeCompleteCallback(VCMDecodedFrameCallback* callback)
 {
     _callback = callback;
-    return _decoder->RegisterDecodeCompleteCallback(callback);
+    return _decoder.RegisterDecodeCompleteCallback(callback);
 }
 
 bool VCMGenericDecoder::External() const
diff --git a/webrtc/modules/video_coding/generic_decoder.h b/webrtc/modules/video_coding/generic_decoder.h
index 1375996..d79b5e5 100644
--- a/webrtc/modules/video_coding/generic_decoder.h
+++ b/webrtc/modules/video_coding/generic_decoder.h
@@ -65,7 +65,7 @@
 {
     friend class VCMCodecDataBase;
 public:
-    VCMGenericDecoder(VideoDecoder* decoder, bool external);
+    VCMGenericDecoder(VideoDecoder& decoder, bool isExternal = false);
     ~VCMGenericDecoder();
 
     /**
@@ -102,7 +102,7 @@
     VCMDecodedFrameCallback*    _callback;
     VCMFrameInformation         _frameInfos[kDecoderFrameMemoryLength];
     uint32_t                    _nextFrameInfoIdx;
-    VideoDecoder* const         _decoder;
+    VideoDecoder&               _decoder;
     VideoCodecType              _codecType;
     bool                        _isExternal;
     bool                        _keyFrameDecoded;