blob: 9f0ff591a5063e57a75b618b416458d351ef0b1e [file] [log] [blame]
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
syntax = "proto2";
package android.stats.mediametrics;
/**
* Track how we arbitrate between microphone/input requests.
* Logged from
* frameworks/av/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
* frameworks/av/services/mediaanalytics/statsd_audiopolicy.cpp
* Next Tag: 10
*/
message AudioPolicyData {
optional int32 status = 1;
optional string request_source = 2;
optional string request_package = 3;
optional int32 request_session = 4;
optional string request_device = 5;
optional string active_source = 6;
optional string active_package = 7;
optional int32 active_session = 8;
optional string active_device = 9;
}
/**
* Track properties of audio recording
* Logged from
* frameworks/av/media/libaudioclient/AudioRecord.cpp
* frameworks/av/services/mediaanalytics/statsd_audiorecord.cpp
* Next Tag: 16
*/
message AudioRecordData {
optional string encoding = 1;
optional string source = 2;
optional int32 latency = 3;
optional int32 samplerate = 4;
optional int32 channels = 5;
optional int64 created_millis = 6;
optional int64 duration_millis = 7;
optional int32 count = 8;
optional int32 error_code = 9;
optional string error_function = 10;
optional int32 port_id = 11;
optional int32 frame_count = 12;
optional string attributes = 13;
optional int64 channel_mask = 14;
optional int64 start_count = 15;
}
/**
* Track audio thread performance data
* Logged from
* frameworks/av/media/libnblog/ReportPerformance.cpp
* frameworks/av/services/mediaanalytics/statsd_audiothread.cpp
* Next Tag: 28
*/
message AudioThreadData {
optional string type = 1;
optional int32 framecount = 2;
optional int32 samplerate = 3;
optional string work_millis_hist = 4;
optional string latency_millis_hist = 5;
optional string warmup_millis_hist = 6;
optional int64 underruns = 7;
optional int64 overruns = 8;
optional int64 active_millis = 9;
optional int64 duration_millis = 10;
optional int32 id = 11;
optional int32 port_id = 12;
optional int32 sample_rate = 13;
optional int64 channel_mask = 14;
optional string encoding = 15;
optional int32 frame_count = 16;
optional string output_device = 17;
optional string input_device = 18;
optional double io_jitter_mean_millis = 19;
optional double io_jitter_stddev_millis = 20;
optional double process_time_mean_millis = 21;
optional double process_time_stddev_millis = 22;
optional double timestamp_jitter_mean_millis = 23;
optional double timestamp_jitter_stddev_millis = 24;
optional double latency_mean_millis = 25;
optional double latency_stddev_millis = 26;
}
/**
* Track audio track playback data
* Logged from
* frameworks/av/media/libaudioclient/AudioTrack.cpp
* frameworks/av/services/mediaanalytics/statsd_audiotrack.cpp
* Next Tag: 12
*/
message AudioTrackData {
optional string stream_type = 1;
optional string content_type = 2;
optional string track_usage = 3;
optional int32 sample_rate = 4;
optional int64 channel_mask = 5;
optional int32 underrun_frames = 6;
optional int32 startup_glitch = 7;
optional int32 port_id = 8;
optional string encoding = 9;
optional int32 frame_count = 10;
optional string attributes = 11;
}
/**
* Track Media Codec usage
* Logged from:
* frameworks/av/media/libstagefright/MediaCodec.cpp
* frameworks/av/services/mediaanalytics/statsd_codec.cpp
* Next Tag: 26
*/
message CodecData {
optional string codec = 1;
optional string mime = 2;
optional string mode = 3;
optional int32 encoder = 4;
optional int32 secure = 5;
optional int32 width = 6;
optional int32 height = 7;
optional int32 rotation = 8;
optional int32 crypto = 9;
optional int32 profile = 10;
optional int32 level = 11;
optional int32 max_width = 12;
optional int32 max_height = 13;
optional int32 error_code = 14;
optional string error_state = 15;
optional int64 latency_max = 16;
optional int64 latency_min = 17;
optional int64 latency_avg = 18;
optional int64 latency_count = 19;
optional int64 latency_unknown = 20;
optional int32 queue_input_buffer_error = 21;
optional int32 queue_secure_input_buffer_error = 22;
optional string bitrate_mode = 23;
optional int32 bitrate = 24;
optional int64 lifetime_millis = 25;
}
/**
* Track Media Extractor (pulling video/audio streams out of containers) usage
* Logged from:
* frameworks/av/media/libstagefright/RemoteMediaExtractor.cpp
* frameworks/av/services/mediaanalytics/statsd_extractor.cpp
* Next Tag: 4
*/
message ExtractorData {
optional string format = 1;
optional string mime = 2;
optional int32 tracks = 3;
}
/**
* Track Media Player usage
* this handles both nuplayer and nuplayer2
* Logged from:
* frameworks/av/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
* frameworks/av/media/libmediaplayer2/nuplayer2/NuPlayer2Driver.cpp
* frameworks/av/services/mediaanalytics/statsd_nuplayer.cpp
* Next Tag: 21
*/
message NuPlayerData {
optional string whichPlayer = 1;
optional string video_mime = 2;
optional string video_codec = 3;
optional int32 width = 4;
optional int32 height = 5;
optional int64 frames = 6;
optional int64 frames_dropped = 7;
optional double framerate = 8;
optional string audio_mime = 9;
optional string audio_codec = 10;
optional int64 duration_millis = 11;
optional int64 playing_millis = 12;
optional int32 error = 13;
optional int32 error_code = 14;
optional string error_state = 15;
optional string data_source_type = 16;
optional int64 rebuffering_millis = 17;
optional int32 rebuffers = 18;
optional int32 rebuffer_at_exit = 19;
optional int64 frames_dropped_startup = 20;
}
/**
* Track information about recordings (e.g. camcorder)
* Logged from
* frameworks/av/media/libmediaplayerservice/StagefrightRecorder.cpp
* frameworks/av/services/mediaanalytics/if_statsd.cpp
* Next Tag: 22
*/
message RecorderData {
optional string audio_mime = 1;
optional string video_mime = 2;
optional int32 video_profile = 3;
optional int32 video_level = 4;
optional int32 width = 5;
optional int32 height = 6;
optional int32 rotation = 7;
optional int32 framerate = 8;
optional int32 capture_fps = 9;
optional double capture_fps_enable = 10;
optional int64 duration_millis = 11;
optional int64 paused_millis = 12;
optional int32 paused_count = 13;
optional int32 audio_bitrate = 14;
optional int32 audio_channels = 15;
optional int32 audio_samplerate = 16;
optional int32 movie_timescale = 17;
optional int32 audio_timescale = 18;
optional int32 video_timescale = 19;
optional int32 video_bitrate = 20;
optional int32 iframe_interval = 21;
}