Bug 1877840 - Migrate GVST metrics in the avif namespace to pure glean r=chutten,tnikkel

GVST is how these probes sent data in Fenix and is now unnecessary (and doesn't send data in Fenix release) since Firefox Desktop has direct access to Glean. We therefore need to clean them up in some capacity.

Following the recommendations from the GeckoView Streaming (GVST) validation effort, this is a pure Glean api implementation of the metrics that fell under network in geckoview streaming.

Because these were all categorical histograms, to retain previous functionality we've added parallel instrumentation in Glean.

Differential Revision: https://phabricator.services.mozilla.com/D201024
This commit is contained in:
Perry McManis 2024-02-09 19:47:46 +00:00
parent 243bf6a480
commit 1ebc673e72
5 changed files with 675 additions and 462 deletions

439
image/decoders/metrics.yaml Normal file
View file

@ -0,0 +1,439 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# Adding a new metric? We have docs for that!
# https://firefox-source-docs.mozilla.org/toolkit/components/glean/user/new_definitions_file.html
---
$schema: moz://mozilla.org/schemas/glean/metrics/2-0-0
$tags:
- "Core :: Graphics: ImageLib"
avif:
decode_result:
type: labeled_counter
labels:
- success
- parse_error
- no_primary_item
- decode_error
- size_overflow
- out_of_memory
- pipe_init_error
- write_buffer_error
- alpha_y_sz_mismatch
- alpha_y_bpc_mismatch
- ispe_mismatch
- render_size_mismatch
- frame_size_changed
- invalid_cicp
- invalid_parse_status
- missing_brand
- ftyp_not_first
- no_image
- multiple_moov
- no_moov
- lsel_no_essential
- a1op_no_essential
- a1lx_essential
- txform_no_essential
- image_item_type
- item_type_missing
- construction_method
- item_loc_not_found
- no_item_data_box
- no_samples
- uncategorized
description: >
Decode result of AVIF image.
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827#c9
notification_emails:
- media-alerts@mozilla.com
expires: never
decoder:
type: labeled_counter
labels:
- dav1d
- aom
description: >
Decoder of AVIF image.
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827#c9
notification_emails:
- media-alerts@mozilla.com
expires: never
aom_decode_error:
type: labeled_counter
labels:
- error
- mem_error
- abi_mismatch
- incapable
- unsup_bitstream
- unsup_feature
- corrupt_frame
- invalid_param
description: >
Image-decode Error from AOM decoder
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1690406
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1690406#c3
notification_emails:
- media-alerts@mozilla.com
expires: never
yuv_color_space:
type: labeled_counter
labels:
- bt601
- bt709
- bt2020
- identity
- unknown
description: >
YUV color space of AVIF image.
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827#c9
notification_emails:
- media-alerts@mozilla.com
expires: never
bit_depth:
type: labeled_counter
labels:
- color_8
- color_10
- color_12
- color_16
- unknown
gecko_datapoint: AVIF_BIT_DEPTH
description: >
Bits per pixel of AVIF image.
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827#c9
notification_emails:
- media-alerts@mozilla.com
expires: never
alpha:
type: labeled_counter
labels:
- absent
- present
description: >
AVIF alpha plane.
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045#c5
notification_emails:
- media-alerts@mozilla.com
expires: never
colr:
type: labeled_counter
labels:
- nclx
- icc
- absent
- both
description: >
AVIF colour information type.
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045
- https://bugzilla.mozilla.org/show_bug.cgi?id=1729071
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045#c5
- https://bugzilla.mozilla.org/show_bug.cgi?id=1729071#c15
notification_emails:
- media-alerts@mozilla.com
expires: never
cicp_cp:
type: labeled_counter
labels:
- reserved
- bt709
- unspecified
- reserved_3
- bt470m
- bt470bg
- bt601
- smpte240
- generic_film
- bt2020
- xyz
- smpte431
- smpte432
- reserved_13
- reserved_14
- reserved_15
- reserved_16
- reserved_17
- reserved_18
- reserved_19
- reserved_20
- reserved_21
- ebu3213
- reserved_rest
description: >
AVIF CICP colour primaries.
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045#c5
notification_emails:
- media-alerts@mozilla.com
expires: never
cicp_tc:
type: labeled_counter
labels:
- reserved
- bt709
- unspecified
- reserved_3
- bt470m
- bt470bg
- bt601
- smpte240
- linear
- log_100
- log_100_sqrt10
- iec61966
- bt_1361
- srgb
- bt2020_10bit
- bt2020_12bit
- smpte2084
- smpte428
- hlg
- reserved_rest
description: >
AVIF CICP transfer characteristics.
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045#c5
notification_emails:
- media-alerts@mozilla.com
expires: never
cicp_mc:
type: labeled_counter
labels:
- identity
- bt709
- unspecified
- reserved
- fcc
- bt470bg
- bt601
- smpte240
- ycgco
- bt2020_ncl
- bt2020_cl
- smpte2085
- chromat_ncl
- chromat_cl
- ictcp
- reserved_rest
description: >
AVIF CICP transfer characteristics.
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045#c5
notification_emails:
- media-alerts@mozilla.com
expires: never
ispe:
type: labeled_counter
labels:
- valid
- absent
- bitstream_mismatch
description: >
AVIF spatial extents (image size).
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045#c5
notification_emails:
- media-alerts@mozilla.com
expires: never
pixi:
type: labeled_counter
labels:
- valid
- absent
- bitstream_mismatch
description: >
AVIF pixel information (bits per channel).
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045#c5
notification_emails:
- media-alerts@mozilla.com
expires: never
pasp:
type: labeled_counter
labels:
- absent
- square
- nonsquare
- invalid
description: >
AVIF pixel aspect ratio.
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never
a1lx:
type: labeled_counter
labels:
- present
- absent
description: >
AV1LayeredImageIndexingProperty (a1lx).
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never
a1op:
type: labeled_counter
labels:
- present
- absent
description: >
AVIF OperatingPointSelectorProperty (a1op).
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never
clap:
type: labeled_counter
labels:
- present
- absent
description: >
AVIF CleanApertureBox (clap).
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never
grid:
type: labeled_counter
labels:
- present
- absent
description: >
AVIF AVIF grid-based image.
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never
ipro:
type: labeled_counter
labels:
- present
- absent
description: >
AVIF ItemProtectionBox (ipro).
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never
lsel:
type: labeled_counter
labels:
- present
- absent
description: >
AVIF LayerSelectorProperty (lsel).
(Migrated from the geckoview metric of the same name).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
- https://bugzilla.mozilla.org/show_bug.cgi?id=1877840
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never

View file

@ -17,6 +17,7 @@
#include "SurfacePipeFactory.h"
#include "mozilla/glean/GleanMetrics.h"
#include "mozilla/Telemetry.h"
#include "mozilla/TelemetryComms.h"
#include "mozilla/UniquePtrExtensions.h"
@ -893,27 +894,51 @@ class AOMDecoder final : AVIFDecoderInterface {
break;
case AOM_CODEC_ERROR:
AccumulateCategorical(LABELS_AVIF_AOM_DECODE_ERROR::error);
mozilla::glean::avif::aom_decode_error
.EnumGet(glean::avif::AomDecodeErrorLabel::eError)
.Add();
break;
case AOM_CODEC_MEM_ERROR:
AccumulateCategorical(LABELS_AVIF_AOM_DECODE_ERROR::mem_error);
mozilla::glean::avif::aom_decode_error
.EnumGet(glean::avif::AomDecodeErrorLabel::eMemError)
.Add();
break;
case AOM_CODEC_ABI_MISMATCH:
AccumulateCategorical(LABELS_AVIF_AOM_DECODE_ERROR::abi_mismatch);
mozilla::glean::avif::aom_decode_error
.EnumGet(glean::avif::AomDecodeErrorLabel::eAbiMismatch)
.Add();
break;
case AOM_CODEC_INCAPABLE:
AccumulateCategorical(LABELS_AVIF_AOM_DECODE_ERROR::incapable);
mozilla::glean::avif::aom_decode_error
.EnumGet(glean::avif::AomDecodeErrorLabel::eIncapable)
.Add();
break;
case AOM_CODEC_UNSUP_BITSTREAM:
AccumulateCategorical(LABELS_AVIF_AOM_DECODE_ERROR::unsup_bitstream);
mozilla::glean::avif::aom_decode_error
.EnumGet(glean::avif::AomDecodeErrorLabel::eUnsupBitstream)
.Add();
break;
case AOM_CODEC_UNSUP_FEATURE:
AccumulateCategorical(LABELS_AVIF_AOM_DECODE_ERROR::unsup_feature);
mozilla::glean::avif::aom_decode_error
.EnumGet(glean::avif::AomDecodeErrorLabel::eUnsupFeature)
.Add();
break;
case AOM_CODEC_CORRUPT_FRAME:
AccumulateCategorical(LABELS_AVIF_AOM_DECODE_ERROR::corrupt_frame);
mozilla::glean::avif::aom_decode_error
.EnumGet(glean::avif::AomDecodeErrorLabel::eCorruptFrame)
.Add();
break;
case AOM_CODEC_INVALID_PARAM:
AccumulateCategorical(LABELS_AVIF_AOM_DECODE_ERROR::invalid_param);
mozilla::glean::avif::aom_decode_error
.EnumGet(glean::avif::AomDecodeErrorLabel::eInvalidParam)
.Add();
break;
default:
MOZ_ASSERT_UNREACHABLE(
@ -1279,13 +1304,24 @@ static void RecordMetadataTelem(const Mp4parseAvifInfo& aInfo) {
if (h_spacing == 0 || v_spacing == 0) {
AccumulateCategorical(LABELS_AVIF_PASP::invalid);
mozilla::glean::avif::pasp
.EnumGet(mozilla::glean::avif::PaspLabel::eInvalid)
.Add();
} else if (h_spacing == v_spacing) {
AccumulateCategorical(LABELS_AVIF_PASP::square);
mozilla::glean::avif::pasp
.EnumGet(mozilla::glean::avif::PaspLabel::eSquare)
.Add();
} else {
AccumulateCategorical(LABELS_AVIF_PASP::nonsquare);
mozilla::glean::avif::pasp
.EnumGet(mozilla::glean::avif::PaspLabel::eNonsquare)
.Add();
}
} else {
AccumulateCategorical(LABELS_AVIF_PASP::absent);
mozilla::glean::avif::pasp.EnumGet(mozilla::glean::avif::PaspLabel::eAbsent)
.Add();
}
const auto& major_brand = aInfo.major_brand;
@ -1312,14 +1348,36 @@ static void RecordMetadataTelem(const Mp4parseAvifInfo& aInfo) {
FEATURE_TELEMETRY(IPRO);
FEATURE_TELEMETRY(LSEL);
#define FEATURE_RECORD_GLEAN(metric, metricLabel, fourcc) \
mozilla::glean::avif::metric \
.EnumGet(aInfo.unsupported_features_bitfield & \
(1 << MP4PARSE_FEATURE_##fourcc) \
? mozilla::glean::avif::metricLabel::ePresent \
: mozilla::glean::avif::metricLabel::eAbsent) \
.Add()
FEATURE_RECORD_GLEAN(a1lx, A1lxLabel, A1LX);
FEATURE_RECORD_GLEAN(a1op, A1opLabel, A1OP);
FEATURE_RECORD_GLEAN(clap, ClapLabel, CLAP);
FEATURE_RECORD_GLEAN(grid, GridLabel, GRID);
FEATURE_RECORD_GLEAN(ipro, IproLabel, IPRO);
FEATURE_RECORD_GLEAN(lsel, LselLabel, LSEL);
if (aInfo.nclx_colour_information && aInfo.icc_colour_information.data) {
AccumulateCategorical(LABELS_AVIF_COLR::both);
mozilla::glean::avif::colr.EnumGet(mozilla::glean::avif::ColrLabel::eBoth)
.Add();
} else if (aInfo.nclx_colour_information) {
AccumulateCategorical(LABELS_AVIF_COLR::nclx);
mozilla::glean::avif::colr.EnumGet(mozilla::glean::avif::ColrLabel::eNclx)
.Add();
} else if (aInfo.icc_colour_information.data) {
AccumulateCategorical(LABELS_AVIF_COLR::icc);
mozilla::glean::avif::colr.EnumGet(mozilla::glean::avif::ColrLabel::eIcc)
.Add();
} else {
AccumulateCategorical(LABELS_AVIF_COLR::absent);
mozilla::glean::avif::colr.EnumGet(mozilla::glean::avif::ColrLabel::eAbsent)
.Add();
}
}
@ -1328,14 +1386,23 @@ static void RecordPixiTelemetry(uint8_t aPixiBitDepth,
const char* aItemName) {
if (aPixiBitDepth == 0) {
AccumulateCategorical(LABELS_AVIF_PIXI::absent);
mozilla::glean::avif::pixi.EnumGet(mozilla::glean::avif::PixiLabel::eAbsent)
.Add();
} else if (aPixiBitDepth == aBitstreamBitDepth) {
AccumulateCategorical(LABELS_AVIF_PIXI::valid);
mozilla::glean::avif::pixi.EnumGet(mozilla::glean::avif::PixiLabel::eValid)
.Add();
} else {
MOZ_LOG(sAVIFLog, LogLevel::Error,
("%s item pixi bit depth (%hhu) doesn't match "
"bitstream (%hhu)",
aItemName, aPixiBitDepth, aBitstreamBitDepth));
AccumulateCategorical(LABELS_AVIF_PIXI::bitstream_mismatch);
mozilla::glean::avif::pixi
.EnumGet(mozilla::glean::avif::PixiLabel::eBitstreamMismatch)
.Add();
}
}
@ -1346,8 +1413,16 @@ static void RecordFrameTelem(bool aAnimated, const Mp4parseAvifInfo& aInfo,
const AVIFDecodedData& aData) {
AccumulateCategorical(
gColorSpaceLabel[static_cast<size_t>(aData.mYUVColorSpace)]);
mozilla::glean::avif::yuv_color_space
.EnumGet(static_cast<mozilla::glean::avif::YuvColorSpaceLabel>(
aData.mYUVColorSpace))
.Add();
AccumulateCategorical(
gColorDepthLabel[static_cast<size_t>(aData.mColorDepth)]);
mozilla::glean::avif::bit_depth
.EnumGet(
static_cast<mozilla::glean::avif::BitDepthLabel>(aData.mColorDepth))
.Add();
RecordPixiTelemetry(
aAnimated ? aInfo.color_track_bit_depth : aInfo.primary_item_bit_depth,
@ -1355,32 +1430,55 @@ static void RecordFrameTelem(bool aAnimated, const Mp4parseAvifInfo& aInfo,
if (aData.mAlpha) {
AccumulateCategorical(LABELS_AVIF_ALPHA::present);
mozilla::glean::avif::alpha
.EnumGet(mozilla::glean::avif::AlphaLabel::ePresent)
.Add();
RecordPixiTelemetry(
aAnimated ? aInfo.alpha_track_bit_depth : aInfo.alpha_item_bit_depth,
BitDepthForColorDepth(aData.mColorDepth), "alpha");
} else {
AccumulateCategorical(LABELS_AVIF_ALPHA::absent);
mozilla::glean::avif::alpha
.EnumGet(mozilla::glean::avif::AlphaLabel::eAbsent)
.Add();
}
if (CICP::IsReserved(aData.mColourPrimaries)) {
AccumulateCategorical(LABELS_AVIF_CICP_CP::RESERVED_REST);
mozilla::glean::avif::cicp_cp
.EnumGet(mozilla::glean::avif::CicpCpLabel::eReservedRest)
.Add();
} else {
AccumulateCategorical(
static_cast<LABELS_AVIF_CICP_CP>(aData.mColourPrimaries));
mozilla::glean::avif::cicp_cp.EnumGet(
static_cast<mozilla::glean::avif::CicpCpLabel>(aData.mColourPrimaries));
}
if (CICP::IsReserved(aData.mTransferCharacteristics)) {
AccumulateCategorical(LABELS_AVIF_CICP_TC::RESERVED);
mozilla::glean::avif::cicp_tc
.EnumGet(mozilla::glean::avif::CicpTcLabel::eReserved)
.Add();
} else {
AccumulateCategorical(
static_cast<LABELS_AVIF_CICP_TC>(aData.mTransferCharacteristics));
mozilla::glean::avif::cicp_tc.EnumGet(
static_cast<mozilla::glean::avif::CicpTcLabel>(
aData.mTransferCharacteristics));
}
if (CICP::IsReserved(aData.mMatrixCoefficients)) {
AccumulateCategorical(LABELS_AVIF_CICP_MC::RESERVED);
mozilla::glean::avif::cicp_mc
.EnumGet(mozilla::glean::avif::CicpMcLabel::eReserved)
.Add();
} else {
AccumulateCategorical(
static_cast<LABELS_AVIF_CICP_MC>(aData.mMatrixCoefficients));
mozilla::glean::avif::cicp_mc.EnumGet(
static_cast<mozilla::glean::avif::CicpMcLabel>(
aData.mMatrixCoefficients));
}
}
@ -1561,6 +1659,8 @@ nsAVIFDecoder::DecodeResult nsAVIFDecoder::DoDecodeInternal(
PostSize(decodedData->mPictureRect.width, decodedData->mPictureRect.height,
orientation);
AccumulateCategorical(LABELS_AVIF_ISPE::absent);
mozilla::glean::avif::ispe.EnumGet(mozilla::glean::avif::IspeLabel::eAbsent)
.Add();
} else {
// Verify that the bitstream hasn't changed the image size compared to
// either the ispe box or the previous frames.
@ -1579,6 +1679,10 @@ nsAVIFDecoder::DecodeResult nsAVIFDecoder::DoDecodeInternal(
decodedData->mPictureRect.width,
decodedData->mPictureRect.height));
AccumulateCategorical(LABELS_AVIF_ISPE::bitstream_mismatch);
mozilla::glean::avif::ispe
.EnumGet(mozilla::glean::avif::IspeLabel::eBitstreamMismatch)
.Add();
return AsVariant(NonDecoderResult::MetadataImageSizeMismatch);
}
@ -1593,6 +1697,9 @@ nsAVIFDecoder::DecodeResult nsAVIFDecoder::DoDecodeInternal(
if (isFirstFrame) {
AccumulateCategorical(LABELS_AVIF_ISPE::valid);
mozilla::glean::avif::ispe
.EnumGet(mozilla::glean::avif::IspeLabel::eValid)
.Add();
}
}
@ -1873,57 +1980,111 @@ void nsAVIFDecoder::RecordDecodeResultTelemetry(
case MP4PARSE_STATUS_EOF:
case MP4PARSE_STATUS_IO:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::parse_error);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eParseError)
.Add();
return;
case MP4PARSE_STATUS_OOM:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::out_of_memory);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eOutOfMemory)
.Add();
return;
case MP4PARSE_STATUS_MISSING_AVIF_OR_AVIS_BRAND:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::missing_brand);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eMissingBrand)
.Add();
return;
case MP4PARSE_STATUS_FTYP_NOT_FIRST:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::ftyp_not_first);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eFtypNotFirst)
.Add();
return;
case MP4PARSE_STATUS_NO_IMAGE:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::no_image);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eNoImage)
.Add();
return;
case MP4PARSE_STATUS_MOOV_BAD_QUANTITY:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::multiple_moov);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eMultipleMoov)
.Add();
return;
case MP4PARSE_STATUS_MOOV_MISSING:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::no_moov);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eNoMoov)
.Add();
return;
case MP4PARSE_STATUS_LSEL_NO_ESSENTIAL:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::lsel_no_essential);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eLselNoEssential)
.Add();
return;
case MP4PARSE_STATUS_A1OP_NO_ESSENTIAL:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::a1op_no_essential);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eA1opNoEssential)
.Add();
return;
case MP4PARSE_STATUS_A1LX_ESSENTIAL:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::a1lx_essential);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eA1lxEssential)
.Add();
return;
case MP4PARSE_STATUS_TXFORM_NO_ESSENTIAL:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::txform_no_essential);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eTxformNoEssential)
.Add();
return;
case MP4PARSE_STATUS_PITM_MISSING:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::no_primary_item);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eNoPrimaryItem)
.Add();
return;
case MP4PARSE_STATUS_IMAGE_ITEM_TYPE:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::image_item_type);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eImageItemType)
.Add();
return;
case MP4PARSE_STATUS_ITEM_TYPE_MISSING:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::item_type_missing);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eItemTypeMissing)
.Add();
return;
case MP4PARSE_STATUS_CONSTRUCTION_METHOD:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::construction_method);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eConstructionMethod)
.Add();
return;
case MP4PARSE_STATUS_PITM_NOT_FOUND:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::item_loc_not_found);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eItemLocNotFound)
.Add();
return;
case MP4PARSE_STATUS_IDAT_MISSING:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::no_item_data_box);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eNoItemDataBox)
.Add();
return;
default:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::uncategorized);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eUncategorized)
.Add();
return;
}
@ -1932,6 +2093,9 @@ void nsAVIFDecoder::RecordDecodeResultTelemetry(
aResult.as<Mp4parseStatus>()));
MOZ_ASSERT(false, "unexpected Mp4parseStatus value");
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::invalid_parse_status);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eInvalidParseStatus)
.Add();
} else if (aResult.is<NonDecoderResult>()) {
switch (aResult.as<NonDecoderResult>()) {
@ -1943,36 +2107,69 @@ void nsAVIFDecoder::RecordDecodeResultTelemetry(
return;
case NonDecoderResult::SizeOverflow:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::size_overflow);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eSizeOverflow)
.Add();
return;
case NonDecoderResult::OutOfMemory:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::out_of_memory);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eOutOfMemory)
.Add();
return;
case NonDecoderResult::PipeInitError:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::pipe_init_error);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::ePipeInitError)
.Add();
return;
case NonDecoderResult::WriteBufferError:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::write_buffer_error);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eWriteBufferError)
.Add();
return;
case NonDecoderResult::AlphaYSizeMismatch:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::alpha_y_sz_mismatch);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eAlphaYSzMismatch)
.Add();
return;
case NonDecoderResult::AlphaYColorDepthMismatch:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::alpha_y_bpc_mismatch);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eAlphaYBpcMismatch)
.Add();
return;
case NonDecoderResult::MetadataImageSizeMismatch:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::ispe_mismatch);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eIspeMismatch)
.Add();
return;
case NonDecoderResult::RenderSizeMismatch:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::render_size_mismatch);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eRenderSizeMismatch)
.Add();
return;
case NonDecoderResult::FrameSizeChanged:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::frame_size_changed);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eFrameSizeChanged)
.Add();
return;
case NonDecoderResult::InvalidCICP:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::invalid_cicp);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eInvalidCicp)
.Add();
return;
case NonDecoderResult::NoSamples:
AccumulateCategorical(LABELS_AVIF_DECODE_RESULT::no_samples);
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eNoSamples)
.Add();
return;
}
MOZ_ASSERT_UNREACHABLE("unknown NonDecoderResult");
@ -1980,9 +2177,26 @@ void nsAVIFDecoder::RecordDecodeResultTelemetry(
MOZ_ASSERT(aResult.is<Dav1dResult>() || aResult.is<AOMResult>());
AccumulateCategorical(aResult.is<Dav1dResult>() ? LABELS_AVIF_DECODER::dav1d
: LABELS_AVIF_DECODER::aom);
if (aResult.is<Dav1dResult>()) {
mozilla::glean::avif::decoder.EnumGet(glean::avif::DecoderLabel::eDav1d)
.Add();
} else {
mozilla::glean::avif::decoder.EnumGet(glean::avif::DecoderLabel::eAom)
.Add();
}
AccumulateCategorical(IsDecodeSuccess(aResult)
? LABELS_AVIF_DECODE_RESULT::success
: LABELS_AVIF_DECODE_RESULT::decode_error);
if (IsDecodeSuccess(aResult)) {
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eSuccess)
.Add();
} else {
mozilla::glean::avif::decode_result
.EnumGet(glean::avif::DecodeResultLabel::eDecodeError)
.Add();
}
}
}

View file

@ -21,6 +21,7 @@ gecko_metrics = [
"dom/media/webrtc/metrics.yaml",
"dom/metrics.yaml",
"gfx/metrics.yaml",
"image/decoders/metrics.yaml",
"mobile/android/actors/metrics.yaml",
"netwerk/metrics.yaml",
"netwerk/protocol/http/metrics.yaml",

View file

@ -2058,7 +2058,7 @@
},
"AVIF_DECODE_RESULT": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2101,7 +2101,7 @@
},
"AVIF_AOM_DECODE_ERROR": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2121,7 +2121,7 @@
},
"AVIF_DECODER": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2132,7 +2132,7 @@
},
"AVIF_YUV_COLOR_SPACE": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2143,7 +2143,7 @@
},
"AVIF_BIT_DEPTH": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2154,7 +2154,7 @@
},
"AVIF_ALPHA": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2165,7 +2165,7 @@
},
"AVIF_COLR": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2176,7 +2176,7 @@
},
"AVIF_CICP_CP": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2212,7 +2212,7 @@
},
"AVIF_CICP_TC": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2244,7 +2244,7 @@
},
"AVIF_CICP_MC": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2272,7 +2272,7 @@
},
"AVIF_ISPE": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2283,7 +2283,7 @@
},
"AVIF_PIXI": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2294,7 +2294,7 @@
},
"AVIF_PASP": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2305,7 +2305,7 @@
},
"AVIF_MAJOR_BRAND": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2316,7 +2316,7 @@
},
"AVIF_SEQUENCE": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2327,7 +2327,7 @@
},
"AVIF_A1LX": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2338,7 +2338,7 @@
},
"AVIF_A1OP": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2349,7 +2349,7 @@
},
"AVIF_CLAP": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2360,7 +2360,7 @@
},
"AVIF_GRID": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2371,7 +2371,7 @@
},
"AVIF_IPRO": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",
@ -2382,7 +2382,7 @@
},
"AVIF_LSEL": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "geckoview_streaming"],
"products": ["firefox"],
"alert_emails": ["media-alerts@mozilla.com"],
"expires_in_version": "never",
"releaseChannelCollection": "opt-out",

View file

@ -180,447 +180,6 @@ geckoview:
- perf-telemetry-alerts@mozilla.com
expires: never
avif:
decode_result:
type: labeled_counter
labels:
- success
- parse_error
- no_primary_item
- decode_error
- size_overflow
- out_of_memory
- pipe_init_error
- write_buffer_error
- alpha_y_sz_mismatch
- alpha_y_bpc_mismatch
- ispe_mismatch
- render_size_mismatch
- frame_size_changed
- invalid_cicp
- invalid_parse_status
- missing_brand
- ftyp_not_first
- no_image
- multiple_moov
- no_moov
- lsel_no_essential
- a1op_no_essential
- a1lx_essential
- txform_no_essential
- image_item_type
- item_type_missing
- construction_method
- item_loc_not_found
- no_item_data_box
gecko_datapoint: AVIF_DECODE_RESULT
description: >
Decode result of AVIF image.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827#c9
notification_emails:
- media-alerts@mozilla.com
expires: never
decoder:
type: labeled_counter
labels:
- dav1d
- aom
gecko_datapoint: AVIF_DECODER
description: >
Decoder of AVIF image.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827#c9
notification_emails:
- media-alerts@mozilla.com
expires: never
aom_decode_error:
type: labeled_counter
labels:
- error
- mem_error
- abi_mismatch
- incapable
- unsup_bitstream
- unsup_feature
- corrupt_frame
- invalid_param
gecko_datapoint: AVIF_AOM_DECODE_ERROR
description: >
Image-decode Error from AOM decoder
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1690406
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1690406#c3
notification_emails:
- media-alerts@mozilla.com
expires: never
# dav1d_decode_error is replaced by avif.dav1d_get_picture in Events.yaml
# Unfortunately, events are not currently supported for geckoview
yuv_color_space:
type: labeled_counter
labels:
- bt601
- bt709
- bt2020
- identity
- unknown
gecko_datapoint: AVIF_YUV_COLOR_SPACE
description: >
YUV color space of AVIF image.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827#c9
notification_emails:
- media-alerts@mozilla.com
expires: never
bit_depth:
type: labeled_counter
labels:
- color_8
- color_10
- color_12
- color_16
- unknown
gecko_datapoint: AVIF_BIT_DEPTH
description: >
Bits per pixel of AVIF image.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1670827#c9
notification_emails:
- media-alerts@mozilla.com
expires: never
alpha:
type: labeled_counter
labels:
- absent
- present
gecko_datapoint: AVIF_ALPHA
description: >
AVIF alpha plane.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045#c5
notification_emails:
- media-alerts@mozilla.com
expires: never
colr:
type: labeled_counter
labels:
- nclx
- icc
- absent
- both
gecko_datapoint: AVIF_COLR
description: >
AVIF colour information type.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045
- https://bugzilla.mozilla.org/show_bug.cgi?id=1729071
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045#c5
- https://bugzilla.mozilla.org/show_bug.cgi?id=1729071#c15
notification_emails:
- media-alerts@mozilla.com
expires: never
cicp_cp:
type: labeled_counter
labels:
- reserved
- bt709
- unspecified
- reserved_3
- bt470m
- bt470bg
- bt601
- smpte240
- generic_film
- bt2020
- xyz
- smpte431
- smpte432
- reserved_13
- reserved_14
- reserved_15
- reserved_16
- reserved_17
- reserved_18
- reserved_19
- reserved_20
- reserved_21
- ebu3213
- reserved_rest
gecko_datapoint: AVIF_CICP_CP
description: >
AVIF CICP colour primaries.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045#c5
notification_emails:
- media-alerts@mozilla.com
expires: never
cicp_tc:
type: labeled_counter
labels:
- reserved
- bt709
- unspecified
- reserved_3
- bt470m
- bt470bg
- bt601
- smpte240
- linear
- log_100
- log_100_sqrt10
- iec61966
- bt_1361
- srgb
- bt2020_10bit
- bt2020_12bit
- smpte2084
- smpte428
- hlg
- reserved_rest
gecko_datapoint: AVIF_CICP_TC
description: >
AVIF CICP transfer characteristics.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045#c5
notification_emails:
- media-alerts@mozilla.com
expires: never
cicp_mc:
type: labeled_counter
labels:
- identity
- bt709
- unspecified
- reserved
- fcc
- bt470bg
- bt601
- smpte240
- ycgco
- bt2020_ncl
- bt2020_cl
- smpte2085
- chromat_ncl
- chromat_cl
- ictcp
- reserved_rest
gecko_datapoint: AVIF_CICP_MC
description: >
AVIF CICP transfer characteristics.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045#c5
notification_emails:
- media-alerts@mozilla.com
expires: never
ispe:
type: labeled_counter
labels:
- valid
- absent
- bitstream_mismatch
gecko_datapoint: AVIF_ISPE
description: >
AVIF spatial extents (image size).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045#c5
notification_emails:
- media-alerts@mozilla.com
expires: never
pixi:
type: labeled_counter
labels:
- valid
- absent
- bitstream_mismatch
gecko_datapoint: AVIF_PIXI
description: >
AVIF pixel information (bits per channel).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1696045#c5
notification_emails:
- media-alerts@mozilla.com
expires: never
pasp:
type: labeled_counter
labels:
- absent
- square
- nonsquare
- invalid
gecko_datapoint: AVIF_PASP
description: >
AVIF pixel aspect ratio.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never
major_brand:
type: labeled_counter
labels:
- avif
- avis
- other
description: >
AVIF major brand.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never
sequence:
type: labeled_counter
labels:
- present
- absent
description: >
AVIF image sequence.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never
a1lx:
type: labeled_counter
labels:
- present
- absent
gecko_datapoint: AVIF_A1LX
description: >
AV1LayeredImageIndexingProperty (a1lx).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never
a1op:
type: labeled_counter
labels:
- present
- absent
gecko_datapoint: AVIF_A1OP
description: >
AVIF OperatingPointSelectorProperty (a1op).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never
clap:
type: labeled_counter
labels:
- present
- absent
gecko_datapoint: AVIF_CLAP
description: >
AVIF CleanApertureBox (clap).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never
grid:
type: labeled_counter
labels:
- present
- absent
gecko_datapoint: AVIF_GRID
description: >
AVIF AVIF grid-based image.
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never
ipro:
type: labeled_counter
labels:
- present
- absent
gecko_datapoint: AVIF_IPRO
description: >
AVIF ItemProtectionBox (ipro).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never
lsel:
type: labeled_counter
labels:
- present
- absent
gecko_datapoint: AVIF_LSEL
description: >
AVIF LayerSelectorProperty (lsel).
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745608#c2
notification_emails:
- media-alerts@mozilla.com
expires: never
performance.pageload:
load_time:
type: timing_distribution