blob: d1af6a08d27cc0bed54e918a59013af0cddc2559 [file] [log] [blame]
/*
* Copyright 2021 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef CAMERA_FEATURES_HDRNET_HDRNET_METRICS_H_
#define CAMERA_FEATURES_HDRNET_HDRNET_METRICS_H_
#include <base/containers/flat_map.h>
#include <cros-camera/camera_metrics.h>
namespace cros {
// HdrnetMetrics contains the metrics that we want to track for each camera
// session that enables HDRnet.
struct HdrnetMetrics {
// The type of streams configured.
HdrnetStreamConfiguration stream_config =
HdrnetStreamConfiguration::kSingleYuvStream;
// The number of HDRnet streams that are configured concurrently.
int num_concurrent_hdrnet_streams = 0;
// The maximum size of the HDRnet streams configured for YUV output.
int max_yuv_stream_size = 0;
// The maximum size of the HDRnet streams configured for BLOB output.
int max_blob_stream_size = 0;
// The maximum number of buffers rendered with one HDRnet stream.
int max_output_buffers_rendered = 0;
// The number of occurrence for each error that can compromise the HDRnet
// feature, either causing frame drops or stops the pipeline from running
// completely.
base::flat_map<HdrnetError, int> errors = {};
// The number of HDRnet-rendered still shots taken.
int num_still_shot_taken = 0;
// The accumulated latency in us of the different HDRnet processing stages.
int64_t accumulated_preprocessing_latency_us = 0;
int64_t accumulated_rgb_pipeline_latency_us = 0;
int64_t accumulated_postprocessing_latency_us = 0;
// The total number of frames processed by the HDRnet pipeline.
int num_frames_processed = 0;
};
} // namespace cros
#endif // CAMERA_FEATURES_HDRNET_HDRNET_METRICS_H_