| Index: media/filters/video_frame_generator.cc
|
| diff --git a/media/filters/video_frame_generator.cc b/media/filters/video_frame_generator.cc
|
| deleted file mode 100644
|
| index c72fe1365d8f61581e9b959bafc02932291a6a27..0000000000000000000000000000000000000000
|
| --- a/media/filters/video_frame_generator.cc
|
| +++ /dev/null
|
| @@ -1,100 +0,0 @@
|
| -// Copyright (c) 2012 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/filters/video_frame_generator.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/message_loop.h"
|
| -#include "media/base/demuxer_stream.h"
|
| -#include "media/base/video_frame.h"
|
| -
|
| -namespace media {
|
| -
|
| -VideoFrameGenerator::VideoFrameGenerator(
|
| - const scoped_refptr<base::MessageLoopProxy>& message_loop_proxy,
|
| - const gfx::Size& size,
|
| - const base::TimeDelta& frame_duration)
|
| - : message_loop_proxy_(message_loop_proxy),
|
| - size_(size),
|
| - stopped_(true),
|
| - frame_duration_(frame_duration) {
|
| -}
|
| -
|
| -void VideoFrameGenerator::Initialize(
|
| - const scoped_refptr<DemuxerStream>& stream,
|
| - const PipelineStatusCB& status_cb,
|
| - const StatisticsCB& statistics_cb) {
|
| - message_loop_proxy_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&VideoFrameGenerator::InitializeOnDecoderThread,
|
| - this, stream, status_cb, statistics_cb));
|
| -}
|
| -
|
| -void VideoFrameGenerator::Read(const ReadCB& read_cb) {
|
| - message_loop_proxy_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&VideoFrameGenerator::ReadOnDecoderThread, this, read_cb));
|
| -}
|
| -
|
| -void VideoFrameGenerator::Reset(const base::Closure& closure) {
|
| - message_loop_proxy_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&VideoFrameGenerator::ResetOnDecoderThread, this, closure));
|
| -}
|
| -
|
| -void VideoFrameGenerator::Stop(const base::Closure& closure) {
|
| - message_loop_proxy_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&VideoFrameGenerator::StopOnDecoderThread, this, closure));
|
| -}
|
| -
|
| -VideoFrameGenerator::~VideoFrameGenerator() {}
|
| -
|
| -void VideoFrameGenerator::InitializeOnDecoderThread(
|
| - const scoped_refptr<DemuxerStream>& /* stream */,
|
| - const PipelineStatusCB& status_cb,
|
| - const StatisticsCB& statistics_cb) {
|
| - DVLOG(1) << "InitializeOnDecoderThread";
|
| - DCHECK(message_loop_proxy_->BelongsToCurrentThread());
|
| -
|
| - status_cb.Run(PIPELINE_OK);
|
| - stopped_ = false;
|
| -}
|
| -
|
| -void VideoFrameGenerator::ReadOnDecoderThread(const ReadCB& read_cb) {
|
| - DCHECK(message_loop_proxy_->BelongsToCurrentThread());
|
| - CHECK(!read_cb.is_null());
|
| - if (stopped_)
|
| - return;
|
| -
|
| - // Always allocate a new frame.
|
| - //
|
| - // TODO(scherkus): migrate this to proper buffer recycling.
|
| - scoped_refptr<VideoFrame> video_frame =
|
| - VideoFrame::CreateFrame(VideoFrame::YV12, size_, gfx::Rect(size_), size_,
|
| - current_time_);
|
| - current_time_ += frame_duration_;
|
| -
|
| - // TODO(wjia): set pixel data to pre-defined patterns if it's desired to
|
| - // verify frame content.
|
| -
|
| - read_cb.Run(kOk, video_frame);
|
| -}
|
| -
|
| -void VideoFrameGenerator::ResetOnDecoderThread(const base::Closure& closure) {
|
| - DVLOG(1) << "ResetOnDecoderThread";
|
| - DCHECK(message_loop_proxy_->BelongsToCurrentThread());
|
| - current_time_ = base::TimeDelta();
|
| - closure.Run();
|
| -}
|
| -
|
| -void VideoFrameGenerator::StopOnDecoderThread(const base::Closure& closure) {
|
| - DVLOG(1) << "StopOnDecoderThread";
|
| - DCHECK(message_loop_proxy_->BelongsToCurrentThread());
|
| - stopped_ = true;
|
| - current_time_ = base::TimeDelta();
|
| - closure.Run();
|
| -}
|
| -
|
| -} // namespace media
|
|
|