| Index: media/base/pipeline_impl.cc
|
| diff --git a/media/base/pipeline_impl.cc b/media/base/pipeline_impl.cc
|
| index a9ee4f0d1379a9f992b495df12bb895bee1737e4..085e5496c8796287019baff8b4beac7a938b7c54 100644
|
| --- a/media/base/pipeline_impl.cc
|
| +++ b/media/base/pipeline_impl.cc
|
| @@ -583,10 +583,16 @@ void PipelineImpl::ErrorChangedTask(PipelineStatus error) {
|
| DCHECK(task_runner_->BelongsToCurrentThread());
|
| DCHECK_NE(PIPELINE_OK, error) << "PIPELINE_OK isn't an error!";
|
|
|
| - media_log_->AddEvent(media_log_->CreatePipelineErrorEvent(error));
|
| -
|
| - if (state_ == kStopping || state_ == kStopped)
|
| + // Don't report pipeline error events to the media log here. The embedder will
|
| + // log this when |error_cb_| is called. If the pipeline is already stopped or
|
| + // stopping we also don't want to log any event. In case we are suspending or
|
| + // suspended, the error may be recoverable, so don't propagate it now, instead
|
| + // let the subsequent seek during resume propagate it if it's unrecoverable.
|
| +
|
| + if (state_ == kStopping || state_ == kStopped || state_ == kSuspending ||
|
| + state_ == kSuspended) {
|
| return;
|
| + }
|
|
|
| SetState(kStopping);
|
| pending_callbacks_.reset();
|
|
|