| Index: media/cast/video_receiver/codecs/vp8/vp8_decoder.cc | 
| diff --git a/media/cast/video_receiver/codecs/vp8/vp8_decoder.cc b/media/cast/video_receiver/codecs/vp8/vp8_decoder.cc | 
| deleted file mode 100644 | 
| index f25a5186e47d96f6d765ce72e70838689533ab87..0000000000000000000000000000000000000000 | 
| --- a/media/cast/video_receiver/codecs/vp8/vp8_decoder.cc | 
| +++ /dev/null | 
| @@ -1,152 +0,0 @@ | 
| -// Copyright 2013 The Chromium Authors. All rights reserved. | 
| -// Use of this source code is governed by a BSD-style license that can be | 
| -// found in the LICENSE file. | 
| - | 
| -#include "media/cast/video_receiver/codecs/vp8/vp8_decoder.h" | 
| - | 
| -#include "base/bind.h" | 
| -#include "base/debug/trace_event.h" | 
| -#include "base/logging.h" | 
| -#include "base/message_loop/message_loop.h" | 
| -#include "media/base/video_frame.h" | 
| -#include "media/base/video_util.h" | 
| -#include "media/cast/logging/logging_defines.h" | 
| -#include "third_party/libvpx/source/libvpx/vpx/vp8dx.h" | 
| -#include "ui/gfx/size.h" | 
| - | 
| -namespace { | 
| - | 
| -void LogFrameDecodedEvent( | 
| -    const scoped_refptr<media::cast::CastEnvironment>& cast_environment, | 
| -    base::TimeTicks event_time, | 
| -    media::cast::RtpTimestamp rtp_timestamp, | 
| -    uint32 frame_id) { | 
| -  cast_environment->Logging()->InsertFrameEvent( | 
| -      event_time, media::cast::kVideoFrameDecoded, rtp_timestamp, frame_id); | 
| -} | 
| - | 
| -}  // namespace | 
| - | 
| -namespace media { | 
| -namespace cast { | 
| - | 
| -Vp8Decoder::Vp8Decoder(scoped_refptr<CastEnvironment> cast_environment) | 
| -    : cast_environment_(cast_environment) { | 
| -  // Make sure that we initialize the decoder from the correct thread. | 
| -  cast_environment_->PostTask( | 
| -      CastEnvironment::VIDEO, | 
| -      FROM_HERE, | 
| -      base::Bind(&Vp8Decoder::InitDecoder, base::Unretained(this))); | 
| -} | 
| - | 
| -Vp8Decoder::~Vp8Decoder() { | 
| -  if (decoder_) { | 
| -    vpx_codec_err_t ret = vpx_codec_destroy(decoder_.get()); | 
| -    CHECK_EQ(VPX_CODEC_OK, ret) << "vpx_codec_destroy() failed."; | 
| -  } | 
| -} | 
| - | 
| -void Vp8Decoder::InitDecoder() { | 
| -  vpx_codec_dec_cfg_t cfg; | 
| -  // Initializing to use one core. | 
| -  cfg.threads = 1; | 
| -  vpx_codec_flags_t flags = VPX_CODEC_USE_POSTPROC; | 
| - | 
| -  DCHECK(!decoder_); | 
| -  decoder_.reset(new vpx_dec_ctx_t()); | 
| -  vpx_codec_err_t ret = | 
| -      vpx_codec_dec_init(decoder_.get(), vpx_codec_vp8_dx(), &cfg, flags); | 
| -  if (ret != VPX_CODEC_OK) { | 
| -    DCHECK(false) << "vpx_codec_dec_init() failed."; | 
| -    decoder_.reset(); | 
| -  } | 
| -} | 
| - | 
| -bool Vp8Decoder::Decode(const transport::EncodedVideoFrame* encoded_frame, | 
| -                        const base::TimeTicks render_time, | 
| -                        const VideoFrameDecodedCallback& frame_decoded_cb) { | 
| -  DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::VIDEO)); | 
| -  const int frame_id_int = static_cast<int>(encoded_frame->frame_id); | 
| -  VLOG(2) << "VP8 decode frame:" << frame_id_int | 
| -          << " sized:" << encoded_frame->data.size(); | 
| - | 
| -  if (encoded_frame->data.empty()) | 
| -    return false; | 
| - | 
| -  vpx_codec_iter_t iter = NULL; | 
| -  vpx_image_t* img; | 
| -  const int real_time_decoding = 1; | 
| -  if (vpx_codec_decode( | 
| -          decoder_.get(), | 
| -          reinterpret_cast<const uint8*>(encoded_frame->data.data()), | 
| -          static_cast<unsigned int>(encoded_frame->data.size()), | 
| -          0, | 
| -          real_time_decoding)) { | 
| -    VLOG(1) << "Failed to decode VP8 frame:" << frame_id_int; | 
| -    return false; | 
| -  } | 
| - | 
| -  img = vpx_codec_get_frame(decoder_.get(), &iter); | 
| -  if (img == NULL) { | 
| -    VLOG(1) << "Skip rendering VP8 frame:" << frame_id_int; | 
| -    return false; | 
| -  } | 
| - | 
| -  gfx::Size visible_size(img->d_w, img->d_h); | 
| -  gfx::Size full_size(img->stride[VPX_PLANE_Y], img->d_h); | 
| -  DCHECK(VideoFrame::IsValidConfig( | 
| -      VideoFrame::I420, visible_size, gfx::Rect(visible_size), full_size)); | 
| -  // Temp timing setting - will sort out timing in a follow up cl. | 
| -  scoped_refptr<VideoFrame> decoded_frame = | 
| -      VideoFrame::CreateFrame(VideoFrame::I420, | 
| -                              visible_size, | 
| -                              gfx::Rect(visible_size), | 
| -                              full_size, | 
| -                              base::TimeDelta()); | 
| - | 
| -  // Copy each plane individually (need to account for stride). | 
| -  // TODO(mikhal): Eliminate copy once http://crbug.com/321856 is resolved. | 
| -  CopyPlane(VideoFrame::kYPlane, | 
| -            img->planes[VPX_PLANE_Y], | 
| -            img->stride[VPX_PLANE_Y], | 
| -            img->d_h, | 
| -            decoded_frame.get()); | 
| -  CopyPlane(VideoFrame::kUPlane, | 
| -            img->planes[VPX_PLANE_U], | 
| -            img->stride[VPX_PLANE_U], | 
| -            (img->d_h + 1) / 2, | 
| -            decoded_frame.get()); | 
| -  CopyPlane(VideoFrame::kVPlane, | 
| -            img->planes[VPX_PLANE_V], | 
| -            img->stride[VPX_PLANE_V], | 
| -            (img->d_h + 1) / 2, | 
| -            decoded_frame.get()); | 
| - | 
| -  VLOG(2) << "Decoded frame " << frame_id_int; | 
| - | 
| -  // Update logging from the main thread. | 
| -  cast_environment_->PostTask(CastEnvironment::MAIN, | 
| -                              FROM_HERE, | 
| -                              base::Bind(&LogFrameDecodedEvent, | 
| -                                         cast_environment_, | 
| -                                         cast_environment_->Clock()->NowTicks(), | 
| -                                         encoded_frame->rtp_timestamp, | 
| -                                         encoded_frame->frame_id)); | 
| - | 
| -  // Used by chrome/browser/extension/api/cast_streaming/performance_test.cc | 
| -  TRACE_EVENT_INSTANT1( | 
| -      "cast_perf_test", "FrameDecoded", | 
| -      TRACE_EVENT_SCOPE_THREAD, | 
| -      "rtp_timestamp", encoded_frame->rtp_timestamp); | 
| - | 
| -  // Frame decoded - return frame to the user via callback. | 
| -  cast_environment_->PostTask( | 
| -      CastEnvironment::MAIN, | 
| -      FROM_HERE, | 
| -      base::Bind(frame_decoded_cb, decoded_frame, render_time)); | 
| - | 
| -  return true; | 
| -} | 
| - | 
| -}  // namespace cast | 
| -}  // namespace media | 
|  |