Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(900)

Unified Diff: content/renderer/media/rtc_video_decoder_factory_tv.cc

Issue 136343002: Remove Chrome for TV code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/rtc_video_decoder_factory_tv.cc
diff --git a/content/renderer/media/rtc_video_decoder_factory_tv.cc b/content/renderer/media/rtc_video_decoder_factory_tv.cc
deleted file mode 100644
index 5a9df707e34f5221519398712f7f0203e3b16313..0000000000000000000000000000000000000000
--- a/content/renderer/media/rtc_video_decoder_factory_tv.cc
+++ /dev/null
@@ -1,246 +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 "content/renderer/media/rtc_video_decoder_factory_tv.h"
-
-#include "base/callback_helpers.h"
-#include "content/renderer/media/rtc_video_decoder_bridge_tv.h"
-#include "media/base/audio_decoder_config.h"
-#include "media/base/bind_to_current_loop.h"
-#include "media/base/decoder_buffer.h"
-#include "media/base/video_decoder_config.h"
-#include "third_party/libjingle/source/talk/base/ratetracker.h"
-
-using media::DemuxerStream;
-
-namespace content {
-
-// RTCDemuxerStream ------------------------------------------------------------
-
-class RTCDemuxerStream : public DemuxerStream {
- public:
- explicit RTCDemuxerStream(const gfx::Size& size);
- virtual ~RTCDemuxerStream();
-
- // DemuxerStream implementation.
- virtual void Read(const ReadCB& read_cb) OVERRIDE;
- virtual media::AudioDecoderConfig audio_decoder_config() OVERRIDE;
- virtual media::VideoDecoderConfig video_decoder_config() OVERRIDE;
- virtual Type type() OVERRIDE;
- virtual void EnableBitstreamConverter() OVERRIDE;
-
- void QueueBuffer(scoped_refptr<media::DecoderBuffer> buffer,
- const gfx::Size& new_size);
- void Destroy();
-
- private:
- struct BufferEntry {
- BufferEntry(const scoped_refptr<media::DecoderBuffer>& decoder_buffer_param,
- const gfx::Size& new_size_param)
- : decoder_buffer(decoder_buffer_param),
- new_size(new_size_param) {}
-
- scoped_refptr<media::DecoderBuffer> decoder_buffer;
- // When |!new_size.isEmpty()|, it means that config change with new size
- // |new_size| happened.
- gfx::Size new_size;
- };
-
- void RunReadCallback_Locked();
-
- base::Lock lock_;
- bool is_destroyed_;
- std::queue<BufferEntry> buffer_queue_;
- ReadCB read_cb_;
-
- media::AudioDecoderConfig dummy_audio_decoder_config_;
- media::VideoDecoderConfig video_decoder_config_;
- talk_base::RateTracker frame_rate_tracker_;
-};
-
-RTCDemuxerStream::RTCDemuxerStream(const gfx::Size& size)
- : is_destroyed_(false),
- video_decoder_config_(media::kCodecVP8,
- media::VP8PROFILE_MAIN,
- media::VideoFrame::NATIVE_TEXTURE,
- size,
- gfx::Rect(size),
- size,
- NULL,
- 0,
- false) {}
-
-RTCDemuxerStream::~RTCDemuxerStream() { DCHECK(is_destroyed_); }
-
-media::AudioDecoderConfig RTCDemuxerStream::audio_decoder_config() {
- NOTIMPLEMENTED() << "Does not support audio.";
- return dummy_audio_decoder_config_;
-}
-
-media::VideoDecoderConfig RTCDemuxerStream::video_decoder_config() {
- base::AutoLock lock(lock_);
- return video_decoder_config_;
-}
-
-DemuxerStream::Type RTCDemuxerStream::type() { return DemuxerStream::VIDEO; }
-
-void RTCDemuxerStream::EnableBitstreamConverter() { NOTREACHED(); }
-
-void RTCDemuxerStream::QueueBuffer(scoped_refptr<media::DecoderBuffer> buffer,
- const gfx::Size& new_size) {
- base::AutoLock lock(lock_);
- if (is_destroyed_)
- return;
- buffer_queue_.push(BufferEntry(buffer, new_size));
- if (buffer)
- frame_rate_tracker_.Update(1);
- DVLOG(1) << "frame rate received : " << frame_rate_tracker_.units_second();
- RunReadCallback_Locked();
-}
-
-void RTCDemuxerStream::Read(const ReadCB& read_cb) {
- base::AutoLock lock(lock_);
- DCHECK(read_cb_.is_null());
- if (is_destroyed_) {
- base::MessageLoopProxy::current()->PostTask(FROM_HERE, base::Bind(
- read_cb, DemuxerStream::kAborted, NULL));
- return;
- }
- read_cb_ = media::BindToCurrentLoop(read_cb);
- RunReadCallback_Locked();
-}
-
-void RTCDemuxerStream::Destroy() {
- base::AutoLock lock(lock_);
- DCHECK(!is_destroyed_);
- is_destroyed_ = true;
- if (!read_cb_.is_null())
- base::ResetAndReturn(&read_cb_).Run(DemuxerStream::kAborted, NULL);
- while (!buffer_queue_.empty())
- buffer_queue_.pop();
-}
-
-void RTCDemuxerStream::RunReadCallback_Locked() {
- if (read_cb_.is_null() || buffer_queue_.empty())
- return;
-
- BufferEntry& front = buffer_queue_.front();
- if (!front.new_size.IsEmpty()) {
- // No VideoFrame actually reaches GL renderer in Google TV case. We just
- // make coded_size == visible_rect == natural_size here.
- video_decoder_config_.Initialize(media::kCodecVP8,
- media::VP8PROFILE_MAIN,
- media::VideoFrame::NATIVE_TEXTURE,
- front.new_size,
- gfx::Rect(front.new_size),
- front.new_size,
- NULL,
- 0,
- false,
- false);
- base::ResetAndReturn(&read_cb_).Run(DemuxerStream::kConfigChanged, NULL);
- front.new_size.SetSize(0, 0);
- return;
- }
- base::ResetAndReturn(&read_cb_).Run(DemuxerStream::kOk, front.decoder_buffer);
- buffer_queue_.pop();
-}
-
-// RTCVideoDecoderFactoryTv ----------------------------------------------------
-
-RTCVideoDecoderFactoryTv::RTCVideoDecoderFactoryTv() : is_acquired_(false) {}
-RTCVideoDecoderFactoryTv::~RTCVideoDecoderFactoryTv() {}
-
-webrtc::VideoDecoder* RTCVideoDecoderFactoryTv::CreateVideoDecoder(
- webrtc::VideoCodecType type) {
- base::AutoLock lock(lock_);
- // One decoder at a time!
- if (decoder_)
- return NULL;
- // Only VP8 is supported --- returning NULL will make WebRTC fall back to SW
- // decoder.
- if (type != webrtc::kVideoCodecVP8)
- return NULL;
- decoder_.reset(new RTCVideoDecoderBridgeTv(this));
- return decoder_.get();
-}
-
-void RTCVideoDecoderFactoryTv::DestroyVideoDecoder(
- webrtc::VideoDecoder* decoder) {
- base::AutoLock lock(lock_);
- DCHECK_EQ(decoder_.get(), decoder);
- decoder_.reset();
-}
-
-bool RTCVideoDecoderFactoryTv::AcquireDemuxer() {
- base::AutoLock lock(lock_);
- if (is_acquired_)
- return false;
- is_acquired_ = true;
- return true;
-}
-
-void RTCVideoDecoderFactoryTv::ReleaseDemuxer() {
- base::AutoLock lock(lock_);
- DCHECK(is_acquired_);
- is_acquired_ = false;
- // Clean up internal state as a demuxer.
- init_cb_.Reset();
- if (stream_) {
- stream_->Destroy();
- stream_.reset();
- }
-}
-
-void RTCVideoDecoderFactoryTv::Initialize(media::DemuxerHost* /*host*/,
- const media::PipelineStatusCB& cb,
- bool /*enable_text_tracks*/) {
- base::AutoLock lock(lock_);
- init_cb_ = media::BindToCurrentLoop(cb);
- if (stream_)
- base::ResetAndReturn(&init_cb_).Run(media::PIPELINE_OK);
-}
-
-void RTCVideoDecoderFactoryTv::Seek(base::TimeDelta time,
- const media::PipelineStatusCB& status_cb) {
- DCHECK(!status_cb.is_null());
- status_cb.Run(media::PIPELINE_OK);
-}
-
-void RTCVideoDecoderFactoryTv::Stop(const base::Closure& callback) {
- DCHECK(!callback.is_null());
- callback.Run();
-}
-
-void RTCVideoDecoderFactoryTv::OnAudioRendererDisabled() {
-}
-
-DemuxerStream* RTCVideoDecoderFactoryTv::GetStream(DemuxerStream::Type type) {
- base::AutoLock lock(lock_);
- if (type == DemuxerStream::VIDEO)
- return stream_.get();
- return NULL;
-}
-
-base::TimeDelta RTCVideoDecoderFactoryTv::GetStartTime() const {
- return base::TimeDelta();
-}
-
-void RTCVideoDecoderFactoryTv::InitializeStream(const gfx::Size& size) {
- base::AutoLock lock(lock_);
- DCHECK(!stream_);
- stream_.reset(new RTCDemuxerStream(size));
- if (!init_cb_.is_null())
- base::ResetAndReturn(&init_cb_).Run(media::PIPELINE_OK);
-}
-
-void RTCVideoDecoderFactoryTv::QueueBuffer(
- scoped_refptr<media::DecoderBuffer> buffer,
- const gfx::Size& new_size) {
- base::AutoLock lock(lock_);
- DCHECK(stream_);
- stream_->QueueBuffer(buffer, new_size);
-}
-
-} // namespace content
« no previous file with comments | « content/renderer/media/rtc_video_decoder_factory_tv.h ('k') | content/renderer/media/rtc_video_decoder_factory_tv_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698