Always set render delay in ViEChannel::RegisterExternalDecoder.

BUG=1523

Review URL: https://webrtc-codereview.appspot.com/1219007

git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@3790 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/video_engine/vie_channel.cc b/video_engine/vie_channel.cc
index b3e4452..b2d80d4 100644
--- a/video_engine/vie_channel.cc
+++ b/video_engine/vie_channel.cc
@@ -483,19 +483,20 @@
 
 WebRtc_Word32 ViEChannel::RegisterExternalDecoder(const WebRtc_UWord8 pl_type,
                                                   VideoDecoder* decoder,
-                                                  bool decoder_render,
+                                                  bool buffered_rendering,
                                                   WebRtc_Word32 render_delay) {
   WEBRTC_TRACE(kTraceInfo, kTraceVideo, ViEId(engine_id_, channel_id_),
                "%s", __FUNCTION__);
 
-  WebRtc_Word32 result = 0;
-  result = vcm_.RegisterExternalDecoder(decoder, pl_type, decoder_render);
-  if (decoder_render && result == 0) {
-    // Let VCM know how long before the actual render time the decoder needs
-    // to get a frame for decoding.
-    result = vcm_.SetRenderDelay(render_delay);
+  WebRtc_Word32 result;
+  result = vcm_.RegisterExternalDecoder(decoder, pl_type, buffered_rendering);
+  if (result != VCM_OK) {
+    WEBRTC_TRACE(kTraceError, kTraceVideo, ViEId(engine_id_, channel_id_),
+                 "%s: Could not register external decoder with VCM.",
+                 __FUNCTION__);
+    return result;
   }
-  return result;
+  return vcm_.SetRenderDelay(render_delay);
 }
 
 WebRtc_Word32 ViEChannel::DeRegisterExternalDecoder(
diff --git a/video_engine/vie_channel.h b/video_engine/vie_channel.h
index 222a2ff..6e04a0e 100644
--- a/video_engine/vie_channel.h
+++ b/video_engine/vie_channel.h
@@ -83,12 +83,13 @@
   WebRtc_Word32 SetReceiveCodec(const VideoCodec& video_codec);
   WebRtc_Word32 GetReceiveCodec(VideoCodec* video_codec);
   WebRtc_Word32 RegisterCodecObserver(ViEDecoderObserver* observer);
-  // Registers an external decoder. |decoder_render| is set to true if the
-  // decoder will do the rendering. If |decoder_render| is set,|render_delay|
-  // indicates the time needed to decode and render a frame.
+  // Registers an external decoder. |buffered_rendering| means that the decoder
+  // will render frames after decoding according to the render timestamp
+  // provided by the video coding module. |render_delay| indicates the time
+  // needed to decode and render a frame.
   WebRtc_Word32 RegisterExternalDecoder(const WebRtc_UWord8 pl_type,
                                         VideoDecoder* decoder,
-                                        bool decoder_render,
+                                        bool buffered_rendering,
                                         WebRtc_Word32 render_delay);
   WebRtc_Word32 DeRegisterExternalDecoder(const WebRtc_UWord8 pl_type);
   WebRtc_Word32 ReceiveCodecStatistics(WebRtc_UWord32* num_key_frames,