| Index: media/base/pipeline_impl.cc
|
| diff --git a/media/base/pipeline_impl.cc b/media/base/pipeline_impl.cc
|
| index c0b29af1890d80d909c49cc9f1f044a6c41a1500..f47849d8aedc046bb1e80caded955a06a95ce67f 100644
|
| --- a/media/base/pipeline_impl.cc
|
| +++ b/media/base/pipeline_impl.cc
|
| @@ -585,10 +585,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();
|
|
|