summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authoracolwell@chromium.org <acolwell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-07 16:44:53 +0000
committeracolwell@chromium.org <acolwell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-07 16:44:53 +0000
commitd46aea53a359567b853559c9e557c4aa6176148d (patch)
tree51f514c1ecb0b0f3570962787012aea5258837bd /media
parentb7c4f0378030eaacfc3a52218517d9340137ca59 (diff)
downloadchromium_src-d46aea53a359567b853559c9e557c4aa6176148d.zip
chromium_src-d46aea53a359567b853559c9e557c4aa6176148d.tar.gz
chromium_src-d46aea53a359567b853559c9e557c4aa6176148d.tar.bz2
Remove WebMediaPlayerProxy::video_decoder_ & FFmpegVideoDecoder::set_decryptor.
BUG=None Review URL: https://chromiumcodereview.appspot.com/10834183 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150360 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r--media/filters/ffmpeg_video_decoder.cc10
-rw-r--r--media/filters/ffmpeg_video_decoder.h7
-rw-r--r--media/filters/ffmpeg_video_decoder_unittest.cc7
-rw-r--r--media/filters/pipeline_integration_test.cc8
-rw-r--r--media/filters/pipeline_integration_test_base.cc18
-rw-r--r--media/filters/pipeline_integration_test_base.h8
-rw-r--r--media/tools/player_wtl/movie.cc3
-rw-r--r--media/tools/player_x11/player_x11.cc3
8 files changed, 30 insertions, 34 deletions
diff --git a/media/filters/ffmpeg_video_decoder.cc b/media/filters/ffmpeg_video_decoder.cc
index ba0fd8d..823bdd1 100644
--- a/media/filters/ffmpeg_video_decoder.cc
+++ b/media/filters/ffmpeg_video_decoder.cc
@@ -54,13 +54,14 @@ static int GetThreadCount(CodecID codec_id) {
}
FFmpegVideoDecoder::FFmpegVideoDecoder(
- const base::Callback<MessageLoop*()>& message_loop_cb)
+ const base::Callback<MessageLoop*()>& message_loop_cb,
+ Decryptor* decryptor)
: message_loop_factory_cb_(message_loop_cb),
message_loop_(NULL),
state_(kUninitialized),
codec_context_(NULL),
av_frame_(NULL),
- decryptor_(NULL) {
+ decryptor_(decryptor) {
}
int FFmpegVideoDecoder::GetVideoBuffer(AVCodecContext* codec_context,
@@ -256,11 +257,6 @@ void FFmpegVideoDecoder::DoStop() {
base::ResetAndReturn(&stop_cb_).Run();
}
-void FFmpegVideoDecoder::set_decryptor(Decryptor* decryptor) {
- DCHECK_EQ(state_, kUninitialized);
- decryptor_ = decryptor;
-}
-
FFmpegVideoDecoder::~FFmpegVideoDecoder() {
ReleaseFFmpegResources();
}
diff --git a/media/filters/ffmpeg_video_decoder.h b/media/filters/ffmpeg_video_decoder.h
index 56402d4..0eb34df 100644
--- a/media/filters/ffmpeg_video_decoder.h
+++ b/media/filters/ffmpeg_video_decoder.h
@@ -22,7 +22,8 @@ class DecoderBuffer;
class MEDIA_EXPORT FFmpegVideoDecoder : public VideoDecoder {
public:
- FFmpegVideoDecoder(const base::Callback<MessageLoop*()>& message_loop_cb);
+ FFmpegVideoDecoder(const base::Callback<MessageLoop*()>& message_loop_cb,
+ Decryptor* decryptor);
// VideoDecoder implementation.
virtual void Initialize(const scoped_refptr<DemuxerStream>& stream,
@@ -32,10 +33,6 @@ class MEDIA_EXPORT FFmpegVideoDecoder : public VideoDecoder {
virtual void Reset(const base::Closure& closure) OVERRIDE;
virtual void Stop(const base::Closure& closure) OVERRIDE;
- // Must be called prior to initialization if decrypted buffers will be
- // encountered.
- void set_decryptor(Decryptor* decryptor);
-
// Callback called from within FFmpeg to allocate a buffer based on
// the dimensions of |codec_context|. See AVCodecContext.get_buffer
// documentation inside FFmpeg.
diff --git a/media/filters/ffmpeg_video_decoder_unittest.cc b/media/filters/ffmpeg_video_decoder_unittest.cc
index 56be3e5..0f2b23d 100644
--- a/media/filters/ffmpeg_video_decoder_unittest.cc
+++ b/media/filters/ffmpeg_video_decoder_unittest.cc
@@ -71,14 +71,15 @@ class FFmpegVideoDecoderTest : public testing::Test {
public:
FFmpegVideoDecoderTest()
: decryptor_(new MockDecryptor()),
- decoder_(new FFmpegVideoDecoder(base::Bind(&Identity<MessageLoop*>,
- &message_loop_))),
+ decoder_(NULL),
demuxer_(new StrictMock<MockDemuxerStream>()),
read_cb_(base::Bind(&FFmpegVideoDecoderTest::FrameReady,
base::Unretained(this))) {
CHECK(FFmpegGlue::GetInstance());
- decoder_->set_decryptor(decryptor_.get());
+ decoder_ = new FFmpegVideoDecoder(base::Bind(&Identity<MessageLoop*>,
+ &message_loop_),
+ decryptor_.get());
// Initialize various test buffers.
frame_buffer_.reset(new uint8[kCodedSize.GetArea()]);
diff --git a/media/filters/pipeline_integration_test.cc b/media/filters/pipeline_integration_test.cc
index 81a1867..aa53b1b 100644
--- a/media/filters/pipeline_integration_test.cc
+++ b/media/filters/pipeline_integration_test.cc
@@ -185,13 +185,11 @@ class PipelineIntegrationTest
public:
void StartPipelineWithMediaSource(MockMediaSource* source) {
pipeline_->Start(
- CreateFilterCollection(source),
+ CreateFilterCollection(source, NULL),
base::Bind(&PipelineIntegrationTest::OnEnded, base::Unretained(this)),
base::Bind(&PipelineIntegrationTest::OnError, base::Unretained(this)),
QuitOnStatusCB(PIPELINE_OK));
- ASSERT_TRUE(decoder_.get());
-
message_loop_.Run();
}
@@ -199,13 +197,11 @@ class PipelineIntegrationTest
MockMediaSource* source,
FakeDecryptorClient* encrypted_media) {
pipeline_->Start(
- CreateFilterCollection(source),
+ CreateFilterCollection(source, encrypted_media->decryptor()),
base::Bind(&PipelineIntegrationTest::OnEnded, base::Unretained(this)),
base::Bind(&PipelineIntegrationTest::OnError, base::Unretained(this)),
QuitOnStatusCB(PIPELINE_OK));
- ASSERT_TRUE(decoder_.get());
- decoder_->set_decryptor(encrypted_media->decryptor());
source->set_decryptor_client(encrypted_media);
message_loop_.Run();
diff --git a/media/filters/pipeline_integration_test_base.cc b/media/filters/pipeline_integration_test_base.cc
index 823104b..c5bdc2e 100644
--- a/media/filters/pipeline_integration_test_base.cc
+++ b/media/filters/pipeline_integration_test_base.cc
@@ -171,29 +171,33 @@ scoped_ptr<FilterCollection>
PipelineIntegrationTestBase::CreateFilterCollection(const std::string& url) {
scoped_refptr<FileDataSource> data_source = new FileDataSource();
CHECK(data_source->Initialize(url));
- return CreateFilterCollection(new FFmpegDemuxer(&message_loop_, data_source));
+ return CreateFilterCollection(new FFmpegDemuxer(&message_loop_, data_source),
+ NULL);
}
scoped_ptr<FilterCollection>
PipelineIntegrationTestBase::CreateFilterCollection(
- ChunkDemuxerClient* client) {
- return CreateFilterCollection(new ChunkDemuxer(client));
+ ChunkDemuxerClient* client,
+ Decryptor* decryptor) {
+ return CreateFilterCollection(new ChunkDemuxer(client), decryptor);
}
scoped_ptr<FilterCollection>
PipelineIntegrationTestBase::CreateFilterCollection(
- const scoped_refptr<Demuxer>& demuxer) {
+ const scoped_refptr<Demuxer>& demuxer,
+ Decryptor* decryptor) {
scoped_ptr<FilterCollection> collection(new FilterCollection());
collection->SetDemuxer(demuxer);
collection->AddAudioDecoder(new FFmpegAudioDecoder(
base::Bind(&MessageLoopFactory::GetMessageLoop,
base::Unretained(message_loop_factory_.get()),
"AudioDecoderThread")));
- decoder_ = new FFmpegVideoDecoder(
+ scoped_refptr<VideoDecoder> decoder = new FFmpegVideoDecoder(
base::Bind(&MessageLoopFactory::GetMessageLoop,
base::Unretained(message_loop_factory_.get()),
- "VideoDecoderThread"));
- collection->AddVideoDecoder(decoder_);
+ "VideoDecoderThread"),
+ decryptor);
+ collection->AddVideoDecoder(decoder);
// Disable frame dropping if hashing is enabled.
renderer_ = new VideoRendererBase(
base::Bind(&PipelineIntegrationTestBase::OnVideoRendererPaint,
diff --git a/media/filters/pipeline_integration_test_base.h b/media/filters/pipeline_integration_test_base.h
index 1268b39..570a8e6 100644
--- a/media/filters/pipeline_integration_test_base.h
+++ b/media/filters/pipeline_integration_test_base.h
@@ -12,12 +12,13 @@
#include "media/base/message_loop_factory.h"
#include "media/base/pipeline.h"
#include "media/filters/chunk_demuxer.h"
-#include "media/filters/ffmpeg_video_decoder.h"
#include "media/filters/video_renderer_base.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace media {
+class Decryptor;
+
// Empty MD5 hash string. Used to verify empty audio or video tracks.
extern const char kNullHash[];
@@ -53,7 +54,7 @@ class PipelineIntegrationTestBase {
bool WaitUntilCurrentTimeIsAfter(const base::TimeDelta& wait_time);
scoped_ptr<FilterCollection> CreateFilterCollection(const std::string& url);
scoped_ptr<FilterCollection> CreateFilterCollection(
- ChunkDemuxerClient* client);
+ ChunkDemuxerClient* client, Decryptor* decryptor);
// Returns the MD5 hash of all video frames seen. Should only be called once
// after playback completes. First time hashes should be generated with
@@ -72,7 +73,6 @@ class PipelineIntegrationTestBase {
bool hashing_enabled_;
scoped_ptr<MessageLoopFactory> message_loop_factory_;
scoped_refptr<Pipeline> pipeline_;
- scoped_refptr<FFmpegVideoDecoder> decoder_;
scoped_refptr<VideoRendererBase> renderer_;
scoped_refptr<NullAudioSink> audio_sink_;
bool ended_;
@@ -86,7 +86,7 @@ class PipelineIntegrationTestBase {
void OnError(PipelineStatus status);
void QuitAfterCurrentTimeTask(const base::TimeDelta& quit_time);
scoped_ptr<FilterCollection> CreateFilterCollection(
- const scoped_refptr<Demuxer>& demuxer);
+ const scoped_refptr<Demuxer>& demuxer, Decryptor* decryptor);
void OnVideoRendererPaint();
MOCK_METHOD1(OnSetOpaque, void(bool));
diff --git a/media/tools/player_wtl/movie.cc b/media/tools/player_wtl/movie.cc
index 45bea9b..eb117ba 100644
--- a/media/tools/player_wtl/movie.cc
+++ b/media/tools/player_wtl/movie.cc
@@ -80,7 +80,8 @@ bool Movie::Open(const wchar_t* url, VideoRendererBase* video_renderer) {
collection->AddVideoDecoder(new FFmpegVideoDecoder(
base::Bind(&MessageLoopFactory::GetMessageLoop,
base::Unretained(message_loop_factory_.get()),
- "VideoDecoderThread")));
+ "VideoDecoderThread"),
+ NULL));
// TODO(vrk): Re-enabled audio. (crbug.com/112159)
collection->AddAudioRenderer(
diff --git a/media/tools/player_x11/player_x11.cc b/media/tools/player_x11/player_x11.cc
index df05d9d..85f3fb67 100644
--- a/media/tools/player_x11/player_x11.cc
+++ b/media/tools/player_x11/player_x11.cc
@@ -122,7 +122,8 @@ bool InitPipeline(MessageLoop* message_loop,
collection->AddVideoDecoder(new media::FFmpegVideoDecoder(
base::Bind(&media::MessageLoopFactory::GetMessageLoop,
base::Unretained(message_loop_factory),
- "VideoDecoderThread")));
+ "VideoDecoderThread"),
+ NULL));
// Create our video renderer and save a reference to it for painting.
g_video_renderer = new media::VideoRendererBase(