diff options
Diffstat (limited to 'media/base/pipeline_impl.cc')
-rw-r--r-- | media/base/pipeline_impl.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/media/base/pipeline_impl.cc b/media/base/pipeline_impl.cc index cc1c3b2..ccfce70 100644 --- a/media/base/pipeline_impl.cc +++ b/media/base/pipeline_impl.cc @@ -374,6 +374,15 @@ void PipelineImpl::SetStreaming(bool streaming) { streaming_ = streaming; } +void PipelineImpl::BroadcastMessage(FilterMessage message) { + DCHECK(IsRunning()); + + // Broadcast the message on the message loop. + message_loop_->PostTask(FROM_HERE, + NewRunnableMethod(this, &PipelineImpl::BroadcastMessageTask, + message)); +} + void PipelineImpl::InsertRenderedMimeType(const std::string& major_mime_type) { DCHECK(IsRunning()); AutoLock auto_lock(lock_); @@ -630,6 +639,17 @@ void PipelineImpl::SeekTask(base::TimeDelta time, NewCallback(this, &PipelineImpl::OnFilterStateTransition)); } +void PipelineImpl::BroadcastMessageTask(FilterMessage message) { + DCHECK_EQ(MessageLoop::current(), message_loop_); + + // Broadcast the message to all filters. + for (FilterVector::iterator iter = filters_.begin(); + iter != filters_.end(); + ++iter) { + (*iter)->OnReceivedMessage(message); + } +} + void PipelineImpl::FilterStateTransitionTask() { DCHECK_EQ(MessageLoop::current(), message_loop_); |