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

Unified Diff: media/base/composite_filter.cc

Issue 6171009: Remove MessageLoop methods from Filter interface (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Applied more CR suggestions & removed message_loop() methods where possible. Created 9 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
« no previous file with comments | « media/base/composite_filter.h ('k') | media/base/composite_filter_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/composite_filter.cc
diff --git a/media/base/composite_filter.cc b/media/base/composite_filter.cc
index 94665fd97925388f206f8a7974d3cf446a3e4e4e..41eb31c6382d2b8b2e0f4914c2c9924ccb33764d 100644
--- a/media/base/composite_filter.cc
+++ b/media/base/composite_filter.cc
@@ -4,6 +4,7 @@
#include "media/base/composite_filter.h"
+#include "base/message_loop.h"
#include "base/stl_util-inl.h"
#include "media/base/callback.h"
@@ -40,46 +41,21 @@ class CompositeFilter::FilterHostImpl : public FilterHost {
DISALLOW_COPY_AND_ASSIGN(FilterHostImpl);
};
-CompositeFilter::CompositeFilter(MessageLoop* message_loop) {
- Init(message_loop, NULL);
-}
-
-CompositeFilter::CompositeFilter(MessageLoop* message_loop,
- ThreadFactoryFunction thread_factory) {
- DCHECK(thread_factory);
- Init(message_loop, thread_factory);
-}
-
-void CompositeFilter::Init(MessageLoop* message_loop,
- ThreadFactoryFunction thread_factory) {
+CompositeFilter::CompositeFilter(MessageLoop* message_loop)
+ : state_(kCreated),
+ sequence_index_(0),
+ message_loop_(message_loop),
+ error_(PIPELINE_OK) {
DCHECK(message_loop);
- message_loop_ = message_loop;
- thread_factory_ = thread_factory;
runnable_factory_.reset(
new ScopedRunnableMethodFactory<CompositeFilter>(this));
-
- if (!thread_factory_) {
- thread_factory_ = &CompositeFilter::DefaultThreadFactory;
- }
-
- state_ = kCreated;
- sequence_index_ = 0;
- error_ = PIPELINE_OK;
}
CompositeFilter::~CompositeFilter() {
DCHECK_EQ(message_loop_, MessageLoop::current());
DCHECK(state_ == kCreated || state_ == kStopped);
- // Stop every running filter thread.
- for (FilterThreadVector::iterator iter = filter_threads_.begin();
- iter != filter_threads_.end();
- ++iter) {
- (*iter)->Stop();
- }
-
filters_.clear();
- STLDeleteElements(&filter_threads_);
}
bool CompositeFilter::AddFilter(scoped_refptr<Filter> filter) {
@@ -87,19 +63,6 @@ bool CompositeFilter::AddFilter(scoped_refptr<Filter> filter) {
if (!filter.get() || state_ != kCreated || !host())
return false;
- // Create a dedicated thread for this filter if applicable.
- if (filter->requires_message_loop()) {
- scoped_ptr<base::Thread> thread(
- thread_factory_(filter->message_loop_name()));
-
- if (!thread.get() || !thread->Start()) {
- return false;
- }
-
- filter->set_message_loop(thread->message_loop());
- filter_threads_.push_back(thread.release());
- }
-
// Register ourselves as the filter's host.
filter->set_host(host_impl_.get());
filters_.push_back(make_scoped_refptr(filter.get()));
@@ -121,22 +84,6 @@ FilterHost* CompositeFilter::host() {
return host_impl_.get() ? host_impl_->host() : NULL;
}
-bool CompositeFilter::requires_message_loop() const {
- return false;
-}
-
-const char* CompositeFilter::message_loop_name() const {
- return "CompositeFilter";
-}
-
-void CompositeFilter::set_message_loop(MessageLoop* message_loop) {
- NOTREACHED() << "Message loop should not be set.";
-}
-
-MessageLoop* CompositeFilter::message_loop() {
- return NULL;
-}
-
void CompositeFilter::Play(FilterCallback* play_callback) {
DCHECK_EQ(message_loop_, MessageLoop::current());
scoped_ptr<FilterCallback> callback(play_callback);
@@ -278,11 +225,6 @@ void CompositeFilter::OnAudioRendererDisabled() {
}
}
-base::Thread* CompositeFilter::DefaultThreadFactory(
- const char* thread_name) {
- return new base::Thread(thread_name);
-}
-
void CompositeFilter::ChangeState(State new_state) {
DCHECK_EQ(message_loop_, MessageLoop::current());
state_ = new_state;
@@ -529,9 +471,9 @@ void CompositeFilter::SetError(PipelineError error) {
}
CompositeFilter::FilterHostImpl::FilterHostImpl(CompositeFilter* parent,
- FilterHost* host) :
- parent_(parent),
- host_(host) {
+ FilterHost* host)
+ : parent_(parent),
+ host_(host) {
}
FilterHost* CompositeFilter::FilterHostImpl::host() {
« no previous file with comments | « media/base/composite_filter.h ('k') | media/base/composite_filter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698