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

Unified Diff: media/filters/chunk_demuxer.cc

Issue 10905236: Move ChunkDemuxer handling from WMPProxy to WMPI and remove ChunkDemuxerClient (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix ffmpeg_regression_tests Created 8 years, 3 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: media/filters/chunk_demuxer.cc
diff --git a/media/filters/chunk_demuxer.cc b/media/filters/chunk_demuxer.cc
index e38c35d777ffe9f23c54e7612fb8be4fd5545da8..0669fb43cf2bdffa686ac9164d9635426f852736 100644
--- a/media/filters/chunk_demuxer.cc
+++ b/media/filters/chunk_demuxer.cc
@@ -16,7 +16,6 @@
#include "media/base/audio_decoder_config.h"
#include "media/base/stream_parser_buffer.h"
#include "media/base/video_decoder_config.h"
-#include "media/filters/chunk_demuxer_client.h"
#if defined(GOOGLE_CHROME_BUILD) || defined(USE_PROPRIETARY_CODECS)
#include "media/mp4/mp4_stream_parser.h"
#endif
@@ -529,15 +528,19 @@ bool ChunkDemuxerStream::GetNextBuffer_Locked(
return false;
}
-ChunkDemuxer::ChunkDemuxer(ChunkDemuxerClient* client)
+ChunkDemuxer::ChunkDemuxer(const base::Closure& open_cb,
+ const NeedKeyCB& need_key_cb)
: state_(WAITING_FOR_INIT),
host_(NULL),
- client_(client) {
- DCHECK(client);
+ open_cb_(open_cb),
+ need_key_cb_(need_key_cb) {
+ DCHECK(!open_cb.is_null());
Ami GONE FROM CHROMIUM 2012/09/12 18:45:34 s/cb/cb_/ (in general, this style makes it easier
acolwell GONE FROM CHROMIUM 2012/09/12 22:03:53 Done.
+ DCHECK(!need_key_cb.is_null());
Ami GONE FROM CHROMIUM 2012/09/12 18:45:34 ditto
acolwell GONE FROM CHROMIUM 2012/09/12 22:03:53 Done.
}
void ChunkDemuxer::Initialize(DemuxerHost* host, const PipelineStatusCB& cb) {
DVLOG(1) << "Init()";
+ base::Closure open_cb;
{
base::AutoLock auto_lock(lock_);
DCHECK_EQ(state_, WAITING_FOR_INIT);
@@ -545,9 +548,11 @@ void ChunkDemuxer::Initialize(DemuxerHost* host, const PipelineStatusCB& cb) {
ChangeState_Locked(INITIALIZING);
init_cb_ = cb;
+
+ std::swap(open_cb, open_cb_);
}
- client_->DemuxerOpened(this);
+ open_cb.Run();
Ami GONE FROM CHROMIUM 2012/09/12 18:45:34 Is this just good hygiene or is there a reason ope
acolwell GONE FROM CHROMIUM 2012/09/12 22:03:53 This was intended to be a good hygiene thing and w
}
void ChunkDemuxer::Stop(const base::Closure& callback) {
@@ -914,8 +919,6 @@ void ChunkDemuxer::Shutdown() {
if (!cb.is_null())
cb.Run(PIPELINE_ERROR_ABORT);
-
- client_->DemuxerClosed();
}
void ChunkDemuxer::ChangeState_Locked(State new_state) {
@@ -1104,7 +1107,8 @@ bool ChunkDemuxer::OnVideoBuffers(const StreamParser::BufferQueue& buffers) {
bool ChunkDemuxer::OnNeedKey(scoped_array<uint8> init_data,
int init_data_size) {
- client_->DemuxerNeedKey(init_data.Pass(), init_data_size);
+ lock_.AssertAcquired();
+ need_key_cb_.Run(init_data.Pass(), init_data_size);
return true;
}

Powered by Google App Engine
This is Rietveld 408576698