1/* 2 * Copyright (C) 2019 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17syntax = "proto2"; 18 19package android.stats.mediametrics; 20 21enum StreamType { 22 STREAM_TYPE_UNKNOWN = 0; 23 STREAM_TYPE_OTHER = 1; 24 STREAM_TYPE_PROGRESSIVE = 2; 25 STREAM_TYPE_DASH = 3; 26 STREAM_TYPE_HLS = 4; 27 STREAM_TYPE_SS = 5; 28} 29 30enum DrmType { 31 DRM_TYPE_NONE = 0; 32 DRM_TYPE_OTHER = 1; 33 DRM_TYPE_PLAY_READY = 2; 34 DRM_TYPE_WV_L1 = 3; 35 DRM_TYPE_WV_L3 = 4; 36} 37 38enum PlaybackType { 39 PLAYBACK_TYPE_UNKNOWN = 0; 40 PLAYBACK_TYPE_VOD = 1; 41 PLAYBACK_TYPE_LIVE = 2; 42 PLAYBACK_TYPE_OTHER = 3; 43} 44 45enum ContentType { 46 CONTENT_TYPE_UNKNOWN = 0; 47 CONTENT_TYPE_MAIN = 1; 48 CONTENT_TYPE_AD = 2; 49 CONTENT_TYPE_OTHER = 3; 50} 51 52enum StreamSourceType { 53 STREAM_SOURCE_UNKNOWN = 0; 54 STREAM_SOURCE_NETWORK = 1; 55 STREAM_SOURCE_DEVICE = 2; 56 STREAM_SOURCE_MIXED = 3; 57} 58enum NetworkType { 59 NETWORK_TYPE_UNKNOWN = 0; 60 NETWORK_TYPE_OTHER = 1; 61 NETWORK_TYPE_WIFI = 2; 62 NETWORK_TYPE_ETHERNET = 3; 63 NETWORK_TYPE_2G = 4; 64 NETWORK_TYPE_3G = 5; 65 NETWORK_TYPE_4G = 6; 66 NETWORK_TYPE_5G_NSA = 7; 67 NETWORK_TYPE_5G_SA = 8; 68 NETWORK_TYPE_OFFLINE = 9; 69} 70 71enum PlaybackState { 72 // Playback has not started (initial state) 73 NOT_STARTED = 0; 74 // Playback is buffering in the background for initial playback start 75 JOINING_BACKGROUND = 1; 76 // Playback is buffering in the foreground for initial playback start 77 JOINING_FOREGROUND = 2; 78 // Playback is actively playing 79 PLAYING = 3; 80 // Playback is paused but ready to play 81 PAUSED = 4; 82 // Playback is handling a seek 83 SEEKING = 5; 84 // Playback is buffering to resume active playback 85 BUFFERING = 6; 86 // Playback is buffering while paused 87 PAUSED_BUFFERING = 7; 88 // Playback is suppressed (e.g. due to audio focus loss) 89 SUPPRESSED = 8; 90 // Playback is suppressed (e.g. due to audio focus loss) while buffering to resume a 91 // playback 92 SUPPRESSED_BUFFERING = 9; 93 // Playback has reached the end of the media 94 ENDED = 10; 95 // Playback is stopped and can be restarted 96 STOPPED = 11; 97 // Playback is stopped due a fatal error and can be retried 98 FAILED = 12; 99 // Playback is interrupted by an ad 100 INTERRUPTED_BY_AD = 13; 101 // Playback is abandoned before reaching the end of the media 102 ABANDONED = 14; 103} 104 105enum PlaybackErrorCode { 106 ERROR_CODE_UNKNOWN = 0; 107 ERROR_CODE_OTHER = 1; 108 ERROR_CODE_RUNTIME = 2; 109 ERROR_CODE_NETWORK_OFFLINE = 3; 110 ERROR_CODE_NETWORK_CONNECT = 4; 111 ERROR_CODE_NETWORK_BAD_STATUS = 5; 112 ERROR_CODE_NETWORK_DNS = 6; 113 ERROR_CODE_NETWORK_TIMEOUT = 7; 114 ERROR_CODE_NETWORK_CLOSED = 8; 115 ERROR_CODE_NETWORK_OTHER = 9; 116 ERROR_CODE_MEDIA_MANIFET = 10; 117 ERROR_CODE_MEDIA_PARSER = 11; 118 ERROR_CODE_MEDIA_OTHER = 12; 119 ERROR_CODE_DECODER_INIT = 13; 120 ERROR_CODE_DECODER_DECODE = 14; 121 ERROR_CODE_DECODER_OOM = 15; 122 ERROR_CODE_DECODER_OTHER = 16; 123 ERROR_CODE_AUDIOTRACK_INIT = 17; 124 ERROR_CODE_AUDIOTRACK_WRITE = 18; 125 ERROR_CODE_AUDIOTRACK_OTHER = 19; 126 ERROR_CODE_PLAYER_REMOTE = 20; 127 ERROR_CODE_PLAYER_BEHIND_LIVE_WINDOW = 21; 128 ERROR_CODE_PLAYER_OTHER = 22; 129 ERROR_CODE_DRM_UNAVAILABLE = 23; 130 ERROR_CODE_DRM_PROVISIONING_FAILED = 24; 131 ERROR_CODE_DRM_LICENSE_ERROR = 25; 132 ERROR_CODE_DRM_DISALLOWED = 26; 133 ERROR_CODE_DRM_SYSTEM_ERROR = 27; 134 ERROR_CODE_DRM_CONTENT_ERROR = 28; 135 ERROR_CODE_DRM_REVOKED = 39; 136 ERROR_CODE_DRM_OTHER = 30; 137} 138 139enum TrackType { 140 AUDIO = 0; 141 VIDEO = 1; 142 TEXT = 2; 143} 144enum TrackState { 145 OFF = 0; 146 ON = 1; 147} 148enum TrackChangeReason { 149 REASON_UNKNOWN = 0; 150 REASON_OTHER = 1; 151 REASON_INITIAL = 2; 152 REASON_MANUAL = 3; 153 REASON_ADAPTIVE = 4; 154} 155