// Copyright 2017 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. #ifndef MEDIA_BASE_WATCH_TIME_KEYS_H_ #define MEDIA_BASE_WATCH_TIME_KEYS_H_ #include "base/containers/flat_set.h" #include "base/strings/string_piece.h" #include "media/base/media_export.h" namespace media { enum class WatchTimeKey : int { kAudioAll = 0, kAudioMse, kAudioEme, kAudioSrc, kAudioBattery, kAudioAc, kAudioEmbeddedExperience, kAudioNativeControlsOn, kAudioNativeControlsOff, kAudioBackgroundAll, kAudioBackgroundMse, kAudioBackgroundEme, kAudioBackgroundSrc, kAudioBackgroundBattery, kAudioBackgroundAc, kAudioBackgroundEmbeddedExperience, kAudioVideoAll, kAudioVideoMse, kAudioVideoEme, kAudioVideoSrc, kAudioVideoBattery, kAudioVideoAc, kAudioVideoDisplayFullscreen, kAudioVideoDisplayInline, kAudioVideoDisplayPictureInPicture, kAudioVideoEmbeddedExperience, kAudioVideoNativeControlsOn, kAudioVideoNativeControlsOff, kAudioVideoBackgroundAll, kAudioVideoBackgroundMse, kAudioVideoBackgroundEme, kAudioVideoBackgroundSrc, kAudioVideoBackgroundBattery, kAudioVideoBackgroundAc, kAudioVideoBackgroundEmbeddedExperience, kAudioVideoMutedAll, kAudioVideoMutedMse, kAudioVideoMutedEme, kAudioVideoMutedSrc, kAudioVideoMutedBattery, kAudioVideoMutedAc, kAudioVideoMutedEmbeddedExperience, kAudioVideoMutedDisplayFullscreen, kAudioVideoMutedDisplayInline, kAudioVideoMutedDisplayPictureInPicture, kAudioVideoMutedNativeControlsOn, kAudioVideoMutedNativeControlsOff, kVideoAll, kVideoMse, kVideoEme, kVideoSrc, kVideoBattery, kVideoAc, kVideoDisplayFullscreen, kVideoDisplayInline, kVideoDisplayPictureInPicture, kVideoEmbeddedExperience, kVideoNativeControlsOn, kVideoNativeControlsOff, kVideoBackgroundAll, kVideoBackgroundMse, kVideoBackgroundEme, kVideoBackgroundSrc, kVideoBackgroundBattery, kVideoBackgroundAc, kVideoBackgroundEmbeddedExperience, kWatchTimeKeyMax = kVideoBackgroundEmbeddedExperience }; // Count of the number of underflow events during a media session. MEDIA_EXPORT extern const char kWatchTimeUnderflowCount[]; // UMA keys for MTBR samples. MEDIA_EXPORT extern const char kMeanTimeBetweenRebuffersAudioSrc[]; MEDIA_EXPORT extern const char kMeanTimeBetweenRebuffersAudioMse[]; MEDIA_EXPORT extern const char kMeanTimeBetweenRebuffersAudioEme[]; MEDIA_EXPORT extern const char kMeanTimeBetweenRebuffersAudioVideoSrc[]; MEDIA_EXPORT extern const char kMeanTimeBetweenRebuffersAudioVideoMse[]; MEDIA_EXPORT extern const char kMeanTimeBetweenRebuffersAudioVideoEme[]; // Whether there were any rebuffers within a given watch time report. MEDIA_EXPORT extern const char kRebuffersCountAudioSrc[]; MEDIA_EXPORT extern const char kRebuffersCountAudioMse[]; MEDIA_EXPORT extern const char kRebuffersCountAudioEme[]; MEDIA_EXPORT extern const char kRebuffersCountAudioVideoSrc[]; MEDIA_EXPORT extern const char kRebuffersCountAudioVideoMse[]; MEDIA_EXPORT extern const char kRebuffersCountAudioVideoEme[]; // Amount of watch time less than minimum required, which ends up not being // reported as part of the standard WatchTime keys. Allows estimation of an // upper bound on uncollected watch time. MEDIA_EXPORT extern const char kDiscardedWatchTimeAudioSrc[]; MEDIA_EXPORT extern const char kDiscardedWatchTimeAudioMse[]; MEDIA_EXPORT extern const char kDiscardedWatchTimeAudioEme[]; MEDIA_EXPORT extern const char kDiscardedWatchTimeAudioVideoSrc[]; MEDIA_EXPORT extern const char kDiscardedWatchTimeAudioVideoMse[]; MEDIA_EXPORT extern const char kDiscardedWatchTimeAudioVideoEme[]; // Returns the UMA key name associated with a given WatchTimeKey or an empty // string if they key should not be logged to UMA. MEDIA_EXPORT base::StringPiece ConvertWatchTimeKeyToStringForUma( WatchTimeKey key); } // namespace media #endif // MEDIA_BASE_WATCH_TIME_KEYS_H_