Loading cmds/statsd/src/atoms.proto +165 −0 Original line number Original line Diff line number Diff line Loading @@ -48,6 +48,7 @@ import "frameworks/base/core/proto/android/stats/docsui/docsui_enums.proto"; import "frameworks/base/core/proto/android/stats/enums.proto"; import "frameworks/base/core/proto/android/stats/enums.proto"; import "frameworks/base/core/proto/android/stats/intelligence/enums.proto"; import "frameworks/base/core/proto/android/stats/intelligence/enums.proto"; import "frameworks/base/core/proto/android/stats/launcher/launcher.proto"; import "frameworks/base/core/proto/android/stats/launcher/launcher.proto"; import "frameworks/base/core/proto/android/stats/mediametrics/mediametrics.proto"; import "frameworks/base/core/proto/android/stats/storage/storage_enums.proto"; import "frameworks/base/core/proto/android/stats/storage/storage_enums.proto"; import "frameworks/base/core/proto/android/stats/style/style_enums.proto"; import "frameworks/base/core/proto/android/stats/style/style_enums.proto"; import "frameworks/base/core/proto/android/telecomm/enums.proto"; import "frameworks/base/core/proto/android/telecomm/enums.proto"; Loading Loading @@ -283,6 +284,16 @@ message Atom { ThermalThrottlingSeverityStateChanged thermal_throttling_severity_state_changed = 189; ThermalThrottlingSeverityStateChanged thermal_throttling_severity_state_changed = 189; RoleRequestResultReported role_request_result_reported = RoleRequestResultReported role_request_result_reported = 190 [(log_from_module) = "permissioncontroller"]; 190 [(log_from_module) = "permissioncontroller"]; MediametricsAudiopolicyReported mediametrics_audiopolicy_reported = 191; MediametricsAudiorecordReported mediametrics_audiorecord_reported = 192; MediametricsAudiothreadReported mediametrics_audiothread_reported = 193; MediametricsAudiotrackReported mediametrics_audiotrack_reported = 194; MediametricsCodecReported mediametrics_codec_reported = 195; MediametricsDrmWidevineReported mediametrics_drm_widevine_reported = 196; MediametricsExtractorReported mediametrics_extractor_reported = 197; MediametricsMediadrmReported mediametrics_mediadrm_reported = 198; MediametricsNuPlayerReported mediametrics_nuplayer_reported = 199; MediametricsRecorderReported mediametrics_recorder_reported = 200; } } // Pulled events will start at field 10000. // Pulled events will start at field 10000. Loading Loading @@ -5814,6 +5825,160 @@ message ProcessStartTime { optional string hosting_name = 9; optional string hosting_name = 9; } } /** * Track Media Codec usage * Logged from: * frameworks/av/media/libstagefright/MediaCodec.cpp * frameworks/av/services/mediaanalytics/statsd_codec.cpp */ message MediametricsCodecReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.CodecData codec_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * 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 */ message MediametricsExtractorReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.ExtractorData extractor_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track how we arbitrate between microphone/input requests. * Logged from * frameworks/av/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp * frameworks/av/services/mediaanalytics/statsd_audiopolicy.cpp */ message MediametricsAudiopolicyReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.AudioPolicyData audiopolicy_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track how we arbitrate between microphone requests. * Logged from * frameworks/av/media/libaudioclient/AudioRecord.cpp * frameworks/av/services/mediaanalytics/statsd_audiorecord.cpp */ message MediametricsAudiorecordReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.AudioRecordData audiorecord_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track how we arbitrate between microphone/input requests. * Logged from * frameworks/av/media/libnblog/ReportPerformance.cpp * frameworks/av/services/mediaanalytics/statsd_audiothread.cpp */ message MediametricsAudiothreadReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.AudioThreadData audiothread_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track how we arbitrate between microphone/input requests. * Logged from * frameworks/av/media/libaudioclient/AudioTrack.cpp * frameworks/av/services/mediaanalytics/statsd_audiotrack.cpp */ message MediametricsAudiotrackReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.AudioTrackData audiotrack_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track information about DRM framework performance * Logged from * frameworks/av/drm/libmediadrm/DrmHal.cpp * frameworks/av/services/mediaanalytics/statsd_drm.cpp */ message MediametricsMediadrmReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; // vendor+description tell about which DRM plugin is in use on this device optional string vendor = 5; optional string description = 6; // from frameworks/av/drm/libmediadrm/protos/metrics.proto optional bytes framework_stats = 7 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track information about the widevine DRM plugin performance * Logged from * vendor/widevine/libwvdrmengine/cdm/metrics * frameworks/av/services/mediaanalytics/statsd_drm.cpp */ message MediametricsDrmWidevineReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional bytes vendor_specific_stats = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track information about recordings (e.g. camcorder) * Logged from * frameworks/av/media/libmediaplayerservice/StagefrightRecorder.cpp * frameworks/av/services/mediaanalytics/statsd_recorder.cpp */ message MediametricsRecorderReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.RecorderData recorder_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track Media Player usage * Logged from: * frameworks/av/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp * frameworks/av/services/mediaanalytics/statsd_nuplayer.cpp */ message MediametricsNuPlayerReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.NuPlayerData nuplayer_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** /** * State of a dangerous permission requested by a package * State of a dangerous permission requested by a package */ */ Loading cmds/statsd/tools/localtools/src/com/android/statsd/shelltools/testdrive/TestDrive.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -57,6 +57,7 @@ public class TestDrive { "AID_BLUETOOTH", "AID_BLUETOOTH", "AID_LMKD", "AID_LMKD", "com.android.managedprovisioning", "com.android.managedprovisioning", "AID_MEDIA", "AID_NETWORK_STACK" "AID_NETWORK_STACK" }; }; private static final Logger LOGGER = Logger.getLogger(TestDrive.class.getName()); private static final Logger LOGGER = Logger.getLogger(TestDrive.class.getName()); Loading core/proto/android/stats/mediametrics/mediametrics.proto 0 → 100644 +234 −0 Original line number Original line Diff line number Diff line /* * 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: 21 */ 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; } /** * 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; } Loading
cmds/statsd/src/atoms.proto +165 −0 Original line number Original line Diff line number Diff line Loading @@ -48,6 +48,7 @@ import "frameworks/base/core/proto/android/stats/docsui/docsui_enums.proto"; import "frameworks/base/core/proto/android/stats/enums.proto"; import "frameworks/base/core/proto/android/stats/enums.proto"; import "frameworks/base/core/proto/android/stats/intelligence/enums.proto"; import "frameworks/base/core/proto/android/stats/intelligence/enums.proto"; import "frameworks/base/core/proto/android/stats/launcher/launcher.proto"; import "frameworks/base/core/proto/android/stats/launcher/launcher.proto"; import "frameworks/base/core/proto/android/stats/mediametrics/mediametrics.proto"; import "frameworks/base/core/proto/android/stats/storage/storage_enums.proto"; import "frameworks/base/core/proto/android/stats/storage/storage_enums.proto"; import "frameworks/base/core/proto/android/stats/style/style_enums.proto"; import "frameworks/base/core/proto/android/stats/style/style_enums.proto"; import "frameworks/base/core/proto/android/telecomm/enums.proto"; import "frameworks/base/core/proto/android/telecomm/enums.proto"; Loading Loading @@ -283,6 +284,16 @@ message Atom { ThermalThrottlingSeverityStateChanged thermal_throttling_severity_state_changed = 189; ThermalThrottlingSeverityStateChanged thermal_throttling_severity_state_changed = 189; RoleRequestResultReported role_request_result_reported = RoleRequestResultReported role_request_result_reported = 190 [(log_from_module) = "permissioncontroller"]; 190 [(log_from_module) = "permissioncontroller"]; MediametricsAudiopolicyReported mediametrics_audiopolicy_reported = 191; MediametricsAudiorecordReported mediametrics_audiorecord_reported = 192; MediametricsAudiothreadReported mediametrics_audiothread_reported = 193; MediametricsAudiotrackReported mediametrics_audiotrack_reported = 194; MediametricsCodecReported mediametrics_codec_reported = 195; MediametricsDrmWidevineReported mediametrics_drm_widevine_reported = 196; MediametricsExtractorReported mediametrics_extractor_reported = 197; MediametricsMediadrmReported mediametrics_mediadrm_reported = 198; MediametricsNuPlayerReported mediametrics_nuplayer_reported = 199; MediametricsRecorderReported mediametrics_recorder_reported = 200; } } // Pulled events will start at field 10000. // Pulled events will start at field 10000. Loading Loading @@ -5814,6 +5825,160 @@ message ProcessStartTime { optional string hosting_name = 9; optional string hosting_name = 9; } } /** * Track Media Codec usage * Logged from: * frameworks/av/media/libstagefright/MediaCodec.cpp * frameworks/av/services/mediaanalytics/statsd_codec.cpp */ message MediametricsCodecReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.CodecData codec_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * 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 */ message MediametricsExtractorReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.ExtractorData extractor_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track how we arbitrate between microphone/input requests. * Logged from * frameworks/av/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp * frameworks/av/services/mediaanalytics/statsd_audiopolicy.cpp */ message MediametricsAudiopolicyReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.AudioPolicyData audiopolicy_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track how we arbitrate between microphone requests. * Logged from * frameworks/av/media/libaudioclient/AudioRecord.cpp * frameworks/av/services/mediaanalytics/statsd_audiorecord.cpp */ message MediametricsAudiorecordReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.AudioRecordData audiorecord_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track how we arbitrate between microphone/input requests. * Logged from * frameworks/av/media/libnblog/ReportPerformance.cpp * frameworks/av/services/mediaanalytics/statsd_audiothread.cpp */ message MediametricsAudiothreadReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.AudioThreadData audiothread_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track how we arbitrate between microphone/input requests. * Logged from * frameworks/av/media/libaudioclient/AudioTrack.cpp * frameworks/av/services/mediaanalytics/statsd_audiotrack.cpp */ message MediametricsAudiotrackReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.AudioTrackData audiotrack_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track information about DRM framework performance * Logged from * frameworks/av/drm/libmediadrm/DrmHal.cpp * frameworks/av/services/mediaanalytics/statsd_drm.cpp */ message MediametricsMediadrmReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; // vendor+description tell about which DRM plugin is in use on this device optional string vendor = 5; optional string description = 6; // from frameworks/av/drm/libmediadrm/protos/metrics.proto optional bytes framework_stats = 7 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track information about the widevine DRM plugin performance * Logged from * vendor/widevine/libwvdrmengine/cdm/metrics * frameworks/av/services/mediaanalytics/statsd_drm.cpp */ message MediametricsDrmWidevineReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional bytes vendor_specific_stats = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track information about recordings (e.g. camcorder) * Logged from * frameworks/av/media/libmediaplayerservice/StagefrightRecorder.cpp * frameworks/av/services/mediaanalytics/statsd_recorder.cpp */ message MediametricsRecorderReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.RecorderData recorder_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** * Track Media Player usage * Logged from: * frameworks/av/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp * frameworks/av/services/mediaanalytics/statsd_nuplayer.cpp */ message MediametricsNuPlayerReported { optional int64 timestamp_nanos = 1; optional string package_name = 2; optional int64 package_version_code = 3; optional int64 media_apex_version = 4; optional android.stats.mediametrics.NuPlayerData nuplayer_data = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; } /** /** * State of a dangerous permission requested by a package * State of a dangerous permission requested by a package */ */ Loading
cmds/statsd/tools/localtools/src/com/android/statsd/shelltools/testdrive/TestDrive.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -57,6 +57,7 @@ public class TestDrive { "AID_BLUETOOTH", "AID_BLUETOOTH", "AID_LMKD", "AID_LMKD", "com.android.managedprovisioning", "com.android.managedprovisioning", "AID_MEDIA", "AID_NETWORK_STACK" "AID_NETWORK_STACK" }; }; private static final Logger LOGGER = Logger.getLogger(TestDrive.class.getName()); private static final Logger LOGGER = Logger.getLogger(TestDrive.class.getName()); Loading
core/proto/android/stats/mediametrics/mediametrics.proto 0 → 100644 +234 −0 Original line number Original line Diff line number Diff line /* * 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: 21 */ 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; } /** * 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; }