diff options
author | acolwell@chromium.org <acolwell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-07 16:44:53 +0000 |
---|---|---|
committer | acolwell@chromium.org <acolwell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-07 16:44:53 +0000 |
commit | d46aea53a359567b853559c9e557c4aa6176148d (patch) | |
tree | 51f514c1ecb0b0f3570962787012aea5258837bd /media | |
parent | b7c4f0378030eaacfc3a52218517d9340137ca59 (diff) | |
download | chromium_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.cc | 10 | ||||
-rw-r--r-- | media/filters/ffmpeg_video_decoder.h | 7 | ||||
-rw-r--r-- | media/filters/ffmpeg_video_decoder_unittest.cc | 7 | ||||
-rw-r--r-- | media/filters/pipeline_integration_test.cc | 8 | ||||
-rw-r--r-- | media/filters/pipeline_integration_test_base.cc | 18 | ||||
-rw-r--r-- | media/filters/pipeline_integration_test_base.h | 8 | ||||
-rw-r--r-- | media/tools/player_wtl/movie.cc | 3 | ||||
-rw-r--r-- | media/tools/player_x11/player_x11.cc | 3 |
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( |