atomic<int64_t> metric_jpeg_software_fail_frames{ 0 };
atomic<int64_t> metric_jpeg_vaapi_decode_frames{ 0 };
atomic<int64_t> metric_jpeg_vaapi_fail_frames{ 0 };
+atomic<int64_t> metric_jpeg_prepared_frames{ 0 };
+atomic<int64_t> metric_jpeg_displayed_frames{ 0 };
Summary metric_jpeg_decode_time_seconds;
} // namespace
global_metrics.add("jpeg_decode_frames", { { "decoder", "software" }, { "result", "fail" } }, &metric_jpeg_software_fail_frames);
global_metrics.add("jpeg_decode_frames", { { "decoder", "vaapi" }, { "result", "decode" } }, &metric_jpeg_vaapi_decode_frames);
global_metrics.add("jpeg_decode_frames", { { "decoder", "vaapi" }, { "result", "fail" } }, &metric_jpeg_vaapi_fail_frames);
+ global_metrics.add("jpeg_frames", { { "action", "prepared" } }, &metric_jpeg_prepared_frames);
+ global_metrics.add("jpeg_frames", { { "action", "displayed" } }, &metric_jpeg_displayed_frames);
vector<double> quantiles{ 0.01, 0.1, 0.25, 0.5, 0.75, 0.9, 0.99 };
metric_jpeg_decode_time_seconds.init(quantiles, 60.0);
global_metrics.add("jpeg_decode_time_seconds", &metric_jpeg_decode_time_seconds);
return;
}
+ if (!displayed_this_frame) {
+ ++metric_jpeg_displayed_frames;
+ displayed_this_frame = true;
+ }
+
check_error();
current_chain->render_to_screen();
} else {
current_chain = ycbcr_converter->prepare_chain_for_conversion(frame);
}
+ ++metric_jpeg_prepared_frames;
+ displayed_this_frame = false;
update();
});
}