| Index: media/base/composite_filter.cc
|
| diff --git a/media/base/composite_filter.cc b/media/base/composite_filter.cc
|
| index 5c4b1c5c2be1fbdffb8a03dc6c62c26d692fc460..0b9e87e43a81836c3409bacf69178b16b3d170cd 100644
|
| --- a/media/base/composite_filter.cc
|
| +++ b/media/base/composite_filter.cc
|
| @@ -57,6 +57,8 @@ CompositeFilter::~CompositeFilter() {
|
| }
|
|
|
| bool CompositeFilter::AddFilter(scoped_refptr<Filter> filter) {
|
| + // TODO(fischman,scherkus): s/bool/void/ the return type and CHECK on failure
|
| + // of the sanity-checks that return false today.
|
| DCHECK_EQ(message_loop_, MessageLoop::current());
|
| if (!filter.get() || state_ != kCreated || !host())
|
| return false;
|
| @@ -67,6 +69,22 @@ bool CompositeFilter::AddFilter(scoped_refptr<Filter> filter) {
|
| return true;
|
| }
|
|
|
| +void CompositeFilter::RemoveFilter(scoped_refptr<Filter> filter) {
|
| + DCHECK_EQ(message_loop_, MessageLoop::current());
|
| + if (!filter.get() || state_ != kCreated || !host())
|
| + LOG(FATAL) << "Unknown filter, or in unexpected state.";
|
| +
|
| + for (FilterVector::iterator it = filters_.begin();
|
| + it != filters_.end(); ++it) {
|
| + if (it->get() != filter.get())
|
| + continue;
|
| + filters_.erase(it);
|
| + filter->clear_host();
|
| + return;
|
| + }
|
| + NOTREACHED() << "Filter missing.";
|
| +}
|
| +
|
| void CompositeFilter::set_host(FilterHost* host) {
|
| DCHECK_EQ(message_loop_, MessageLoop::current());
|
| DCHECK(host);
|
| @@ -337,7 +355,6 @@ void CompositeFilter::SerialCallback() {
|
| DispatchPendingCallback(status_);
|
| return;
|
| }
|
| -
|
| if (!filters_.empty())
|
| sequence_index_++;
|
|
|
| @@ -375,7 +392,6 @@ void CompositeFilter::ParallelCallback() {
|
|
|
| void CompositeFilter::OnCallSequenceDone() {
|
| State next_state = GetNextState(state_);
|
| -
|
| if (next_state == kInvalid) {
|
| // We somehow got into an unexpected state.
|
| ChangeState(kError);
|
|
|