Commit d4355e93 authored by Ted Meyer's avatar Ted Meyer Committed by Commit Bot

Clean up decoder stream error handling

This also changes the print behavior for media logs for media::Status
objects, since we're using them in more places now. They tend to be a
bit spammy in stdout.

Bug: 1141954

R=liberato

Change-Id: Ie40995eb10e8961233e333dc5aa7fdd7a02f6b3c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2504580Reviewed-by: default avatarXiaohan Wang <xhwang@chromium.org>
Reviewed-by: default avatarDale Curtis <dalecurtis@chromium.org>
Commit-Queue: Ted Meyer <tmathmeyer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#822093}
parent 9b230901
...@@ -32,10 +32,10 @@ std::string ToJSON(const media::MediaLogRecord* event) { ...@@ -32,10 +32,10 @@ std::string ToJSON(const media::MediaLogRecord* event) {
// TODO(tmathmeyer) replace this with a log-only EventHandler. // TODO(tmathmeyer) replace this with a log-only EventHandler.
void Log(media::MediaLogRecord* event) { void Log(media::MediaLogRecord* event) {
if (event->type == media::MediaLogRecord::Type::kMediaStatus) { if (event->type == media::MediaLogRecord::Type::kMediaStatus) {
LOG(ERROR) << "MediaEvent: " << ToJSON(event); DVLOG(1) << "MediaEvent: " << ToJSON(event);
} else if (event->type == media::MediaLogRecord::Type::kMessage && } else if (event->type == media::MediaLogRecord::Type::kMessage &&
event->params.HasKey("error")) { event->params.HasKey("error")) {
LOG(ERROR) << "MediaEvent: " << ToJSON(event); DVLOG(1) << "MediaEvent: " << ToJSON(event);
} else if (event->type != media::MediaLogRecord::Type::kMediaPropertyChange) { } else if (event->type != media::MediaLogRecord::Type::kMediaPropertyChange) {
DVLOG(1) << "MediaEvent: " << ToJSON(event); DVLOG(1) << "MediaEvent: " << ToJSON(event);
} }
......
...@@ -581,27 +581,23 @@ void DecoderStream<StreamType>::OnDecodeDone( ...@@ -581,27 +581,23 @@ void DecoderStream<StreamType>::OnDecodeDone(
return; return;
default: default:
// TODO(liberato): Use |status| better, since it might not be a generic
// error anymore.
if (!decoder_produced_a_frame_ && if (!decoder_produced_a_frame_ &&
base::FeatureList::IsEnabled(kFallbackAfterDecodeError)) { base::FeatureList::IsEnabled(kFallbackAfterDecodeError)) {
pending_decode_requests_ = 0; MEDIA_LOG(WARNING, media_log_)
<< GetStreamTypeString()
<< " decoder fallback after initial decode error.";
// Prevent all pending decode requests and outputs from those requests // Prevent all pending decode requests and outputs from those requests
// from being called back. // from being called back.
fallback_weak_factory_.InvalidateWeakPtrs(); fallback_weak_factory_.InvalidateWeakPtrs();
pending_decode_requests_ = 0;
std::string fallback_message =
GetStreamTypeString() +
" fallback to new decoder after initial decode error.";
FUNCTION_DVLOG(1) << ": " << fallback_message;
MEDIA_LOG(WARNING, media_log_) << fallback_message;
state_ = STATE_REINITIALIZING_DECODER; state_ = STATE_REINITIALIZING_DECODER;
SelectDecoder(); SelectDecoder();
} else { } else {
std::string error_message = GetStreamTypeString() + " decode error!"; media_log_->NotifyError(std::move(status));
FUNCTION_DVLOG(1) << ": " << error_message; MEDIA_LOG(ERROR, media_log_)
MEDIA_LOG(ERROR, media_log_) << error_message; << GetStreamTypeString() << " decode error!";
state_ = STATE_ERROR; state_ = STATE_ERROR;
ClearOutputs(); ClearOutputs();
if (read_cb_) if (read_cb_)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment