Loading media/libmediaplayerservice/StagefrightRecorder.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,7 @@ static const char *kKeyRecorder = "recorder"; // NB: these are matched with public Java API constants defined // in frameworks/base/media/java/android/media/MediaRecorder.java // These must be kept synchronized with the constants there. static const char *kRecorderLogSessionId = "android.media.mediarecorder.log-session-id"; static const char *kRecorderAudioBitrate = "android.media.mediarecorder.audio-bitrate"; static const char *kRecorderAudioChannels = "android.media.mediarecorder.audio-channels"; static const char *kRecorderAudioSampleRate = "android.media.mediarecorder.audio-samplerate"; Loading Loading @@ -160,6 +161,8 @@ void StagefrightRecorder::updateMetrics() { // know is the app which requested the recording. mMetricsItem->setUid(VALUE_OR_FATAL(aidl2legacy_int32_t_uid_t(mClient.uid))); mMetricsItem->setCString(kRecorderLogSessionId, mLogSessionId.c_str()); // populate the values from the raw fields. // TBD mOutputFormat = OUTPUT_FORMAT_THREE_GPP; Loading Loading @@ -914,6 +917,14 @@ status_t StagefrightRecorder::requestIDRFrame() { return ret; } status_t StagefrightRecorder::setLogSessionId(const String8 &log_session_id) { ALOGV("setLogSessionId: %s", log_session_id.string()); // TODO: validity check that log_session_id is a 32-byte hex digit. mLogSessionId.setTo(log_session_id.string()); return OK; } status_t StagefrightRecorder::setParameter( const String8 &key, const String8 &value) { ALOGV("setParameter: key (%s) => value (%s)", key.string(), value.string()); Loading Loading @@ -1082,6 +1093,8 @@ status_t StagefrightRecorder::setParameter( if (safe_strtoi64(value.string(), &networkHandle)) { return setSocketNetwork(networkHandle); } } else if (key == "log-session-id") { return setLogSessionId(value); } else { ALOGE("setParameter: failed to find key %s", key.string()); } Loading media/libmediaplayerservice/StagefrightRecorder.h +2 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ struct StagefrightRecorder : public MediaRecorderBase { explicit StagefrightRecorder(const Identity& clientIdentity); virtual ~StagefrightRecorder(); virtual status_t init(); virtual status_t setLogSessionId(const String8 &id); virtual status_t setAudioSource(audio_source_t as); status_t setPrivacySensitive(bool privacySensitive) override; status_t isPrivacySensitive(bool *privacySensitive) const override; Loading Loading @@ -110,6 +111,7 @@ private: void flushAndResetMetrics(bool reinitialize); void updateMetrics(); AString mLogSessionId; audio_source_t mAudioSource; privacy_sensitive_t mPrivacySensitive; video_source mVideoSource; Loading services/mediametrics/statsd_recorder.cpp +7 −2 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ #include <statslog.h> #include "MediaMetricsService.h" #include "frameworks/proto_logging/stats/enums/stats/mediametrics/mediametrics.pb.h" #include "frameworks/proto_logging/stats/message/mediametrics_message.pb.h" #include "iface_statsd.h" namespace android { Loading @@ -50,11 +50,16 @@ bool statsd_recorder(const std::shared_ptr<const mediametrics::Item>& item, // the rest into our own proto // ::android::stats::mediametrics::RecorderData metrics_proto; ::android::stats::mediametrics_message::RecorderData metrics_proto; // flesh out the protobuf we'll hand off with our data // // string kRecorderLogSessionId = "android.media.mediarecorder.log-session-id"; std::string log_session_id; if (item->getString("android.media.mediarecorder.log_session_id", &log_session_id)) { metrics_proto.set_log_session_id(std::move(log_session_id)); } // string kRecorderAudioMime = "android.media.mediarecorder.audio.mime"; std::string audio_mime; if (item->getString("android.media.mediarecorder.audio.mime", &audio_mime)) { Loading Loading
media/libmediaplayerservice/StagefrightRecorder.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,7 @@ static const char *kKeyRecorder = "recorder"; // NB: these are matched with public Java API constants defined // in frameworks/base/media/java/android/media/MediaRecorder.java // These must be kept synchronized with the constants there. static const char *kRecorderLogSessionId = "android.media.mediarecorder.log-session-id"; static const char *kRecorderAudioBitrate = "android.media.mediarecorder.audio-bitrate"; static const char *kRecorderAudioChannels = "android.media.mediarecorder.audio-channels"; static const char *kRecorderAudioSampleRate = "android.media.mediarecorder.audio-samplerate"; Loading Loading @@ -160,6 +161,8 @@ void StagefrightRecorder::updateMetrics() { // know is the app which requested the recording. mMetricsItem->setUid(VALUE_OR_FATAL(aidl2legacy_int32_t_uid_t(mClient.uid))); mMetricsItem->setCString(kRecorderLogSessionId, mLogSessionId.c_str()); // populate the values from the raw fields. // TBD mOutputFormat = OUTPUT_FORMAT_THREE_GPP; Loading Loading @@ -914,6 +917,14 @@ status_t StagefrightRecorder::requestIDRFrame() { return ret; } status_t StagefrightRecorder::setLogSessionId(const String8 &log_session_id) { ALOGV("setLogSessionId: %s", log_session_id.string()); // TODO: validity check that log_session_id is a 32-byte hex digit. mLogSessionId.setTo(log_session_id.string()); return OK; } status_t StagefrightRecorder::setParameter( const String8 &key, const String8 &value) { ALOGV("setParameter: key (%s) => value (%s)", key.string(), value.string()); Loading Loading @@ -1082,6 +1093,8 @@ status_t StagefrightRecorder::setParameter( if (safe_strtoi64(value.string(), &networkHandle)) { return setSocketNetwork(networkHandle); } } else if (key == "log-session-id") { return setLogSessionId(value); } else { ALOGE("setParameter: failed to find key %s", key.string()); } Loading
media/libmediaplayerservice/StagefrightRecorder.h +2 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ struct StagefrightRecorder : public MediaRecorderBase { explicit StagefrightRecorder(const Identity& clientIdentity); virtual ~StagefrightRecorder(); virtual status_t init(); virtual status_t setLogSessionId(const String8 &id); virtual status_t setAudioSource(audio_source_t as); status_t setPrivacySensitive(bool privacySensitive) override; status_t isPrivacySensitive(bool *privacySensitive) const override; Loading Loading @@ -110,6 +111,7 @@ private: void flushAndResetMetrics(bool reinitialize); void updateMetrics(); AString mLogSessionId; audio_source_t mAudioSource; privacy_sensitive_t mPrivacySensitive; video_source mVideoSource; Loading
services/mediametrics/statsd_recorder.cpp +7 −2 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ #include <statslog.h> #include "MediaMetricsService.h" #include "frameworks/proto_logging/stats/enums/stats/mediametrics/mediametrics.pb.h" #include "frameworks/proto_logging/stats/message/mediametrics_message.pb.h" #include "iface_statsd.h" namespace android { Loading @@ -50,11 +50,16 @@ bool statsd_recorder(const std::shared_ptr<const mediametrics::Item>& item, // the rest into our own proto // ::android::stats::mediametrics::RecorderData metrics_proto; ::android::stats::mediametrics_message::RecorderData metrics_proto; // flesh out the protobuf we'll hand off with our data // // string kRecorderLogSessionId = "android.media.mediarecorder.log-session-id"; std::string log_session_id; if (item->getString("android.media.mediarecorder.log_session_id", &log_session_id)) { metrics_proto.set_log_session_id(std::move(log_session_id)); } // string kRecorderAudioMime = "android.media.mediarecorder.audio.mime"; std::string audio_mime; if (item->getString("android.media.mediarecorder.audio.mime", &audio_mime)) { Loading