// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "media/base/mock_media_log.h" #include "base/json/json_writer.h" namespace media { MockMediaLog::MockMediaLog() = default; MockMediaLog::~MockMediaLog() = default; void MockMediaLog::AddLogRecordLocked(std::unique_ptr event) { const auto log_string = MediaEventToLogString(*event); VLOG(2) << "MediaLog: " << log_string; DoAddLogRecordLogString(log_string); most_recent_event_ = std::move(event); } std::string MockMediaLog::MediaEventToLogString(const MediaLogRecord& event) { // Special case for PIPELINE_ERROR, since that's by far the most useful // event for figuring out media pipeline failures, and just reporting // pipeline status as numeric code is not very helpful/user-friendly. int error_code = 0; if (event.type == MediaLogRecord::Type::kMediaStatus && event.params.GetInteger(media::MediaLog::kStatusText, &error_code)) { PipelineStatus status = static_cast(error_code); return std::string(media::MediaLog::kStatusText) + " " + PipelineStatusToString(status); } std::string params_json; base::JSONWriter::Write(event.params, ¶ms_json); return params_json; } } // namespace media