Loading core/api/current.txt +3 −1 Original line number Diff line number Diff line Loading @@ -20564,6 +20564,7 @@ package android.media { method @NonNull public android.media.AudioRecord.Builder setAudioPlaybackCaptureConfig(@NonNull android.media.AudioPlaybackCaptureConfiguration); method public android.media.AudioRecord.Builder setAudioSource(int) throws java.lang.IllegalArgumentException; method public android.media.AudioRecord.Builder setBufferSizeInBytes(int) throws java.lang.IllegalArgumentException; method @NonNull public android.media.AudioRecord.Builder setContext(@NonNull android.content.Context); method @NonNull public android.media.AudioRecord.Builder setPrivacySensitive(boolean); } Loading Loading @@ -22738,7 +22739,8 @@ package android.media { } public class MediaRecorder implements android.media.AudioRecordingMonitor android.media.AudioRouting android.media.MicrophoneDirection { ctor public MediaRecorder(); ctor @Deprecated public MediaRecorder(); ctor public MediaRecorder(@NonNull android.content.Context); method public void addOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener, android.os.Handler); method protected void finalize(); method public java.util.List<android.media.MicrophoneInfo> getActiveMicrophones() throws java.io.IOException; core/jni/Android.bp +2 −1 Original line number Diff line number Diff line package { default_applicable_licenses: ["frameworks_base_core_jni_license"], } Loading Loading @@ -218,6 +217,7 @@ cc_library_shared { "fd_utils.cpp", "android_hardware_input_InputWindowHandle.cpp", "android_hardware_input_InputApplicationHandle.cpp", "permission_utils.cpp", ], static_libs: [ Loading @@ -236,6 +236,7 @@ cc_library_shared { "audioflinger-aidl-cpp", "av-types-aidl-cpp", "android.hardware.camera.device@3.2", "media_permission-aidl-cpp", "libandroidicu", "libbpf_android", "libnetdbpf", Loading core/jni/AndroidRuntime.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,7 @@ extern int register_android_media_AudioVolumeGroupChangeHandler(JNIEnv *env); extern int register_android_media_MicrophoneInfo(JNIEnv *env); extern int register_android_media_ToneGenerator(JNIEnv *env); extern int register_android_media_midi(JNIEnv *env); extern int register_android_media_permission_Identity(JNIEnv* env); namespace android { Loading Loading @@ -1564,6 +1565,7 @@ static const RegJNIRec gRegJNI[] = { REG_JNI(register_android_media_RemoteDisplay), REG_JNI(register_android_media_ToneGenerator), REG_JNI(register_android_media_midi), REG_JNI(register_android_media_permission_Identity), REG_JNI(register_android_opengl_classes), REG_JNI(register_android_server_NetworkManagementSocketTagger), Loading core/jni/android_media_AudioRecord.cpp +13 −12 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <jni.h> #include <nativehelper/JNIHelp.h> #include "core_jni_helpers.h" #include "permission_utils.h" #include <utils/Log.h> #include <media/AudioRecord.h> Loading @@ -39,6 +40,9 @@ // ---------------------------------------------------------------------------- using android::media::permission::convertIdentity; using android::media::permission::Identity; using namespace android; // ---------------------------------------------------------------------------- Loading Loading @@ -181,12 +185,11 @@ static sp<AudioRecord> setAudioRecord(JNIEnv* env, jobject thiz, const sp<AudioR } // ---------------------------------------------------------------------------- static jint android_media_AudioRecord_setup(JNIEnv *env, jobject thiz, jobject weak_this, jobject jaa, jintArray jSampleRate, jint channelMask, jint channelIndexMask, jint audioFormat, jint buffSizeInBytes, jintArray jSession, jstring opPackageName, jlong nativeRecordInJavaObj) { static jint android_media_AudioRecord_setup(JNIEnv *env, jobject thiz, jobject weak_this, jobject jaa, jintArray jSampleRate, jint channelMask, jint channelIndexMask, jint audioFormat, jint buffSizeInBytes, jintArray jSession, jobject jIdentity, jlong nativeRecordInJavaObj) { //ALOGV(">> Entering android_media_AudioRecord_setup"); //ALOGV("sampleRate=%d, audioFormat=%d, channel mask=%x, buffSizeInBytes=%d " // "nativeRecordInJavaObj=0x%llX", Loading Loading @@ -262,10 +265,8 @@ android_media_AudioRecord_setup(JNIEnv *env, jobject thiz, jobject weak_this, size_t frameSize = channelCount * bytesPerSample; size_t frameCount = buffSizeInBytes / frameSize; ScopedUtfChars opPackageNameStr(env, opPackageName); // create an uninitialized AudioRecord object lpRecorder = new AudioRecord(String16(opPackageNameStr.c_str())); lpRecorder = new AudioRecord(convertIdentity(env, jIdentity)); // read the AudioAttributes values auto paa = JNIAudioAttributeHelper::makeUnique(); Loading Loading @@ -373,8 +374,6 @@ native_init_failure: return (jint) AUDIORECORD_ERROR_SETUP_NATIVEINITFAILED; } // ---------------------------------------------------------------------------- static jint android_media_AudioRecord_start(JNIEnv *env, jobject thiz, jint event, jint triggerSession) Loading Loading @@ -893,9 +892,11 @@ static jint android_media_AudioRecord_get_port_id(JNIEnv *env, jobject thiz) { // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- static const JNINativeMethod gMethods[] = { // name, signature, funcPtr {"native_start", "(II)I", (void *)android_media_AudioRecord_start}, {"native_stop", "()V", (void *)android_media_AudioRecord_stop}, {"native_setup", "(Ljava/lang/Object;Ljava/lang/Object;[IIIII[ILjava/lang/String;J)I", {"native_setup", "(Ljava/lang/Object;Ljava/lang/Object;[IIIII[ILandroid/media/permission/Identity;J)I", (void *)android_media_AudioRecord_setup}, {"native_finalize", "()V", (void *)android_media_AudioRecord_finalize}, {"native_release", "()V", (void *)android_media_AudioRecord_release}, Loading core/jni/android_media_AudioTrack.cpp +9 −5 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ using namespace android; using ::android::media::VolumeShaper; using ::android::media::permission::Identity; // ---------------------------------------------------------------------------- static const char* const kClassPathName = "android/media/AudioTrack"; Loading Loading @@ -328,7 +329,10 @@ static jint android_media_AudioTrack_setup(JNIEnv *env, jobject thiz, jobject we // create the native AudioTrack object ScopedUtfChars opPackageNameStr(env, opPackageName); lpTrack = new AudioTrack(opPackageNameStr.c_str()); // TODO b/182469354: make consistent with AudioRecord Identity identity = Identity(); identity.packageName = std::string(opPackageNameStr.c_str()); lpTrack = new AudioTrack(identity); // read the AudioAttributes values auto paa = JNIAudioAttributeHelper::makeUnique(); Loading Loading @@ -390,8 +394,8 @@ static jint android_media_AudioTrack_setup(JNIEnv *env, jobject thiz, jobject we sessionId, // audio session ID offload ? AudioTrack::TRANSFER_SYNC_NOTIF_CALLBACK : AudioTrack::TRANSFER_SYNC, (offload || encapsulationMode) ? &offloadInfo : NULL, -1, -1, // default uid, pid values (offload || encapsulationMode) ? &offloadInfo : NULL, Identity(), // default uid, pid values paa.get()); break; Loading @@ -417,7 +421,7 @@ static jint android_media_AudioTrack_setup(JNIEnv *env, jobject thiz, jobject we sessionId, // audio session ID AudioTrack::TRANSFER_SHARED, NULL, // default offloadInfo -1, -1, // default uid, pid values Identity(), // default uid, pid values paa.get()); break; Loading Loading
core/api/current.txt +3 −1 Original line number Diff line number Diff line Loading @@ -20564,6 +20564,7 @@ package android.media { method @NonNull public android.media.AudioRecord.Builder setAudioPlaybackCaptureConfig(@NonNull android.media.AudioPlaybackCaptureConfiguration); method public android.media.AudioRecord.Builder setAudioSource(int) throws java.lang.IllegalArgumentException; method public android.media.AudioRecord.Builder setBufferSizeInBytes(int) throws java.lang.IllegalArgumentException; method @NonNull public android.media.AudioRecord.Builder setContext(@NonNull android.content.Context); method @NonNull public android.media.AudioRecord.Builder setPrivacySensitive(boolean); } Loading Loading @@ -22738,7 +22739,8 @@ package android.media { } public class MediaRecorder implements android.media.AudioRecordingMonitor android.media.AudioRouting android.media.MicrophoneDirection { ctor public MediaRecorder(); ctor @Deprecated public MediaRecorder(); ctor public MediaRecorder(@NonNull android.content.Context); method public void addOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener, android.os.Handler); method protected void finalize(); method public java.util.List<android.media.MicrophoneInfo> getActiveMicrophones() throws java.io.IOException;
core/jni/Android.bp +2 −1 Original line number Diff line number Diff line package { default_applicable_licenses: ["frameworks_base_core_jni_license"], } Loading Loading @@ -218,6 +217,7 @@ cc_library_shared { "fd_utils.cpp", "android_hardware_input_InputWindowHandle.cpp", "android_hardware_input_InputApplicationHandle.cpp", "permission_utils.cpp", ], static_libs: [ Loading @@ -236,6 +236,7 @@ cc_library_shared { "audioflinger-aidl-cpp", "av-types-aidl-cpp", "android.hardware.camera.device@3.2", "media_permission-aidl-cpp", "libandroidicu", "libbpf_android", "libnetdbpf", Loading
core/jni/AndroidRuntime.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,7 @@ extern int register_android_media_AudioVolumeGroupChangeHandler(JNIEnv *env); extern int register_android_media_MicrophoneInfo(JNIEnv *env); extern int register_android_media_ToneGenerator(JNIEnv *env); extern int register_android_media_midi(JNIEnv *env); extern int register_android_media_permission_Identity(JNIEnv* env); namespace android { Loading Loading @@ -1564,6 +1565,7 @@ static const RegJNIRec gRegJNI[] = { REG_JNI(register_android_media_RemoteDisplay), REG_JNI(register_android_media_ToneGenerator), REG_JNI(register_android_media_midi), REG_JNI(register_android_media_permission_Identity), REG_JNI(register_android_opengl_classes), REG_JNI(register_android_server_NetworkManagementSocketTagger), Loading
core/jni/android_media_AudioRecord.cpp +13 −12 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <jni.h> #include <nativehelper/JNIHelp.h> #include "core_jni_helpers.h" #include "permission_utils.h" #include <utils/Log.h> #include <media/AudioRecord.h> Loading @@ -39,6 +40,9 @@ // ---------------------------------------------------------------------------- using android::media::permission::convertIdentity; using android::media::permission::Identity; using namespace android; // ---------------------------------------------------------------------------- Loading Loading @@ -181,12 +185,11 @@ static sp<AudioRecord> setAudioRecord(JNIEnv* env, jobject thiz, const sp<AudioR } // ---------------------------------------------------------------------------- static jint android_media_AudioRecord_setup(JNIEnv *env, jobject thiz, jobject weak_this, jobject jaa, jintArray jSampleRate, jint channelMask, jint channelIndexMask, jint audioFormat, jint buffSizeInBytes, jintArray jSession, jstring opPackageName, jlong nativeRecordInJavaObj) { static jint android_media_AudioRecord_setup(JNIEnv *env, jobject thiz, jobject weak_this, jobject jaa, jintArray jSampleRate, jint channelMask, jint channelIndexMask, jint audioFormat, jint buffSizeInBytes, jintArray jSession, jobject jIdentity, jlong nativeRecordInJavaObj) { //ALOGV(">> Entering android_media_AudioRecord_setup"); //ALOGV("sampleRate=%d, audioFormat=%d, channel mask=%x, buffSizeInBytes=%d " // "nativeRecordInJavaObj=0x%llX", Loading Loading @@ -262,10 +265,8 @@ android_media_AudioRecord_setup(JNIEnv *env, jobject thiz, jobject weak_this, size_t frameSize = channelCount * bytesPerSample; size_t frameCount = buffSizeInBytes / frameSize; ScopedUtfChars opPackageNameStr(env, opPackageName); // create an uninitialized AudioRecord object lpRecorder = new AudioRecord(String16(opPackageNameStr.c_str())); lpRecorder = new AudioRecord(convertIdentity(env, jIdentity)); // read the AudioAttributes values auto paa = JNIAudioAttributeHelper::makeUnique(); Loading Loading @@ -373,8 +374,6 @@ native_init_failure: return (jint) AUDIORECORD_ERROR_SETUP_NATIVEINITFAILED; } // ---------------------------------------------------------------------------- static jint android_media_AudioRecord_start(JNIEnv *env, jobject thiz, jint event, jint triggerSession) Loading Loading @@ -893,9 +892,11 @@ static jint android_media_AudioRecord_get_port_id(JNIEnv *env, jobject thiz) { // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- static const JNINativeMethod gMethods[] = { // name, signature, funcPtr {"native_start", "(II)I", (void *)android_media_AudioRecord_start}, {"native_stop", "()V", (void *)android_media_AudioRecord_stop}, {"native_setup", "(Ljava/lang/Object;Ljava/lang/Object;[IIIII[ILjava/lang/String;J)I", {"native_setup", "(Ljava/lang/Object;Ljava/lang/Object;[IIIII[ILandroid/media/permission/Identity;J)I", (void *)android_media_AudioRecord_setup}, {"native_finalize", "()V", (void *)android_media_AudioRecord_finalize}, {"native_release", "()V", (void *)android_media_AudioRecord_release}, Loading
core/jni/android_media_AudioTrack.cpp +9 −5 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ using namespace android; using ::android::media::VolumeShaper; using ::android::media::permission::Identity; // ---------------------------------------------------------------------------- static const char* const kClassPathName = "android/media/AudioTrack"; Loading Loading @@ -328,7 +329,10 @@ static jint android_media_AudioTrack_setup(JNIEnv *env, jobject thiz, jobject we // create the native AudioTrack object ScopedUtfChars opPackageNameStr(env, opPackageName); lpTrack = new AudioTrack(opPackageNameStr.c_str()); // TODO b/182469354: make consistent with AudioRecord Identity identity = Identity(); identity.packageName = std::string(opPackageNameStr.c_str()); lpTrack = new AudioTrack(identity); // read the AudioAttributes values auto paa = JNIAudioAttributeHelper::makeUnique(); Loading Loading @@ -390,8 +394,8 @@ static jint android_media_AudioTrack_setup(JNIEnv *env, jobject thiz, jobject we sessionId, // audio session ID offload ? AudioTrack::TRANSFER_SYNC_NOTIF_CALLBACK : AudioTrack::TRANSFER_SYNC, (offload || encapsulationMode) ? &offloadInfo : NULL, -1, -1, // default uid, pid values (offload || encapsulationMode) ? &offloadInfo : NULL, Identity(), // default uid, pid values paa.get()); break; Loading @@ -417,7 +421,7 @@ static jint android_media_AudioTrack_setup(JNIEnv *env, jobject thiz, jobject we sessionId, // audio session ID AudioTrack::TRANSFER_SHARED, NULL, // default offloadInfo -1, -1, // default uid, pid values Identity(), // default uid, pid values paa.get()); break; Loading