Loading core/jni/android_media_AudioSystem.cpp +2 −5 Original line number Original line Diff line number Diff line Loading @@ -161,7 +161,6 @@ static struct { jfieldID mMixType; jfieldID mMixType; jfieldID mCallbackFlags; jfieldID mCallbackFlags; jfieldID mToken; jfieldID mToken; jfieldID mVirtualDeviceId; } gAudioMixFields; } gAudioMixFields; static jclass gAudioFormatClass; static jclass gAudioFormatClass; Loading Loading @@ -2313,7 +2312,7 @@ static jint convertAudioMixFromNative(JNIEnv *env, jobject *jAudioMix, const Aud jstring deviceAddress = env->NewStringUTF(nAudioMix.mDeviceAddress.c_str()); jstring deviceAddress = env->NewStringUTF(nAudioMix.mDeviceAddress.c_str()); *jAudioMix = env->NewObject(gAudioMixClass, gAudioMixCstor, jAudioMixingRule, jAudioFormat, *jAudioMix = env->NewObject(gAudioMixClass, gAudioMixCstor, jAudioMixingRule, jAudioFormat, nAudioMix.mRouteFlags, nAudioMix.mCbFlags, nAudioMix.mDeviceType, nAudioMix.mRouteFlags, nAudioMix.mCbFlags, nAudioMix.mDeviceType, deviceAddress, jBinderToken, nAudioMix.mVirtualDeviceId); deviceAddress, jBinderToken); return AUDIO_JAVA_SUCCESS; return AUDIO_JAVA_SUCCESS; } } Loading Loading @@ -2348,7 +2347,6 @@ static jint convertAudioMixToNative(JNIEnv *env, AudioMix *nAudioMix, const jobj aiBinder(AIBinder_fromJavaBinder(env, jToken), &AIBinder_decStrong); aiBinder(AIBinder_fromJavaBinder(env, jToken), &AIBinder_decStrong); nAudioMix->mToken = AIBinder_toPlatformBinder(aiBinder.get()); nAudioMix->mToken = AIBinder_toPlatformBinder(aiBinder.get()); nAudioMix->mVirtualDeviceId = env->GetIntField(jAudioMix, gAudioMixFields.mVirtualDeviceId); jint status = convertAudioMixingRuleToNative(env, jRule, &(nAudioMix->mCriteria)); jint status = convertAudioMixingRuleToNative(env, jRule, &(nAudioMix->mCriteria)); env->DeleteLocalRef(jRule); env->DeleteLocalRef(jRule); Loading Loading @@ -3678,7 +3676,7 @@ int register_android_media_AudioSystem(JNIEnv *env) gAudioMixCstor = gAudioMixCstor = GetMethodIDOrDie(env, audioMixClass, "<init>", GetMethodIDOrDie(env, audioMixClass, "<init>", "(Landroid/media/audiopolicy/AudioMixingRule;Landroid/" "(Landroid/media/audiopolicy/AudioMixingRule;Landroid/" "media/AudioFormat;IIILjava/lang/String;Landroid/os/IBinder;I)V"); "media/AudioFormat;IIILjava/lang/String;Landroid/os/IBinder;)V"); } } gAudioMixFields.mRule = GetFieldIDOrDie(env, audioMixClass, "mRule", gAudioMixFields.mRule = GetFieldIDOrDie(env, audioMixClass, "mRule", "Landroid/media/audiopolicy/AudioMixingRule;"); "Landroid/media/audiopolicy/AudioMixingRule;"); Loading @@ -3691,7 +3689,6 @@ int register_android_media_AudioSystem(JNIEnv *env) gAudioMixFields.mMixType = GetFieldIDOrDie(env, audioMixClass, "mMixType", "I"); gAudioMixFields.mMixType = GetFieldIDOrDie(env, audioMixClass, "mMixType", "I"); gAudioMixFields.mCallbackFlags = GetFieldIDOrDie(env, audioMixClass, "mCallbackFlags", "I"); gAudioMixFields.mCallbackFlags = GetFieldIDOrDie(env, audioMixClass, "mCallbackFlags", "I"); gAudioMixFields.mToken = GetFieldIDOrDie(env, audioMixClass, "mToken", "Landroid/os/IBinder;"); gAudioMixFields.mToken = GetFieldIDOrDie(env, audioMixClass, "mToken", "Landroid/os/IBinder;"); gAudioMixFields.mVirtualDeviceId = GetFieldIDOrDie(env, audioMixClass, "mVirtualDeviceId", "I"); jclass audioFormatClass = FindClassOrDie(env, "android/media/AudioFormat"); jclass audioFormatClass = FindClassOrDie(env, "android/media/AudioFormat"); gAudioFormatClass = MakeGlobalRefOrDie(env, audioFormatClass); gAudioFormatClass = MakeGlobalRefOrDie(env, audioFormatClass); Loading media/java/android/media/AudioManager.java +1 −2 Original line number Original line Diff line number Diff line Loading @@ -5453,8 +5453,7 @@ public class AudioManager { String regId = service.registerAudioPolicy(policy.getConfig(), policy.cb(), String regId = service.registerAudioPolicy(policy.getConfig(), policy.cb(), policy.hasFocusListener(), policy.isFocusPolicy(), policy.isTestFocusPolicy(), policy.hasFocusListener(), policy.isFocusPolicy(), policy.isTestFocusPolicy(), policy.isVolumeController(), policy.isVolumeController(), projection == null ? null : projection.getProjection(), projection == null ? null : projection.getProjection()); policy.getAttributionSource()); if (regId == null) { if (regId == null) { return ERROR; return ERROR; } else { } else { Loading media/java/android/media/AudioRecord.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -789,7 +789,7 @@ public class AudioRecord implements AudioRouting, MicrophoneDirection, private @NonNull AudioRecord buildAudioPlaybackCaptureRecord() { private @NonNull AudioRecord buildAudioPlaybackCaptureRecord() { AudioMix audioMix = mAudioPlaybackCaptureConfiguration.createAudioMix(mFormat); AudioMix audioMix = mAudioPlaybackCaptureConfiguration.createAudioMix(mFormat); MediaProjection projection = mAudioPlaybackCaptureConfiguration.getMediaProjection(); MediaProjection projection = mAudioPlaybackCaptureConfiguration.getMediaProjection(); AudioPolicy audioPolicy = new AudioPolicy.Builder(/*context=*/ mContext) AudioPolicy audioPolicy = new AudioPolicy.Builder(/*context=*/ null) .setMediaProjection(projection) .setMediaProjection(projection) .addMix(audioMix).build(); .addMix(audioMix).build(); Loading Loading @@ -853,7 +853,7 @@ public class AudioRecord implements AudioRouting, MicrophoneDirection, .setFormat(mFormat) .setFormat(mFormat) .setRouteFlags(AudioMix.ROUTE_FLAG_LOOP_BACK) .setRouteFlags(AudioMix.ROUTE_FLAG_LOOP_BACK) .build(); .build(); AudioPolicy audioPolicy = new AudioPolicy.Builder(mContext).addMix(audioMix).build(); AudioPolicy audioPolicy = new AudioPolicy.Builder(null).addMix(audioMix).build(); if (AudioManager.registerAudioPolicyStatic(audioPolicy) != 0) { if (AudioManager.registerAudioPolicyStatic(audioPolicy) != 0) { throw new UnsupportedOperationException("Error: could not register audio policy"); throw new UnsupportedOperationException("Error: could not register audio policy"); } } Loading media/java/android/media/AudioTrack.java +1 −2 Original line number Original line Diff line number Diff line Loading @@ -1353,8 +1353,7 @@ public class AudioTrack extends PlayerBase .setRouteFlags(AudioMix.ROUTE_FLAG_LOOP_BACK) .setRouteFlags(AudioMix.ROUTE_FLAG_LOOP_BACK) .build(); .build(); AudioPolicy audioPolicy = AudioPolicy audioPolicy = new AudioPolicy.Builder(/*context=*/ mContext).addMix(audioMix).build(); new AudioPolicy.Builder(/*context=*/ null).addMix(audioMix).build(); if (AudioManager.registerAudioPolicyStatic(audioPolicy) != 0) { if (AudioManager.registerAudioPolicyStatic(audioPolicy) != 0) { throw new UnsupportedOperationException("Error: could not register audio policy"); throw new UnsupportedOperationException("Error: could not register audio policy"); } } Loading media/java/android/media/IAudioService.aidl +1 −3 Original line number Original line Diff line number Diff line Loading @@ -18,7 +18,6 @@ package android.media; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothDevice; import android.content.ComponentName; import android.content.ComponentName; import android.content.AttributionSource; import android.media.AudioAttributes; import android.media.AudioAttributes; import android.media.AudioDeviceAttributes; import android.media.AudioDeviceAttributes; import android.media.AudioFormat; import android.media.AudioFormat; Loading Loading @@ -362,8 +361,7 @@ interface IAudioService { String registerAudioPolicy(in AudioPolicyConfig policyConfig, String registerAudioPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb, boolean hasFocusListener, boolean isFocusPolicy, in IAudioPolicyCallback pcb, boolean hasFocusListener, boolean isFocusPolicy, boolean isTestFocusPolicy, boolean isTestFocusPolicy, boolean isVolumeController, in IMediaProjection projection, boolean isVolumeController, in IMediaProjection projection); in AttributionSource attributionSource); oneway void unregisterAudioPolicyAsync(in IAudioPolicyCallback pcb); oneway void unregisterAudioPolicyAsync(in IAudioPolicyCallback pcb); Loading Loading
core/jni/android_media_AudioSystem.cpp +2 −5 Original line number Original line Diff line number Diff line Loading @@ -161,7 +161,6 @@ static struct { jfieldID mMixType; jfieldID mMixType; jfieldID mCallbackFlags; jfieldID mCallbackFlags; jfieldID mToken; jfieldID mToken; jfieldID mVirtualDeviceId; } gAudioMixFields; } gAudioMixFields; static jclass gAudioFormatClass; static jclass gAudioFormatClass; Loading Loading @@ -2313,7 +2312,7 @@ static jint convertAudioMixFromNative(JNIEnv *env, jobject *jAudioMix, const Aud jstring deviceAddress = env->NewStringUTF(nAudioMix.mDeviceAddress.c_str()); jstring deviceAddress = env->NewStringUTF(nAudioMix.mDeviceAddress.c_str()); *jAudioMix = env->NewObject(gAudioMixClass, gAudioMixCstor, jAudioMixingRule, jAudioFormat, *jAudioMix = env->NewObject(gAudioMixClass, gAudioMixCstor, jAudioMixingRule, jAudioFormat, nAudioMix.mRouteFlags, nAudioMix.mCbFlags, nAudioMix.mDeviceType, nAudioMix.mRouteFlags, nAudioMix.mCbFlags, nAudioMix.mDeviceType, deviceAddress, jBinderToken, nAudioMix.mVirtualDeviceId); deviceAddress, jBinderToken); return AUDIO_JAVA_SUCCESS; return AUDIO_JAVA_SUCCESS; } } Loading Loading @@ -2348,7 +2347,6 @@ static jint convertAudioMixToNative(JNIEnv *env, AudioMix *nAudioMix, const jobj aiBinder(AIBinder_fromJavaBinder(env, jToken), &AIBinder_decStrong); aiBinder(AIBinder_fromJavaBinder(env, jToken), &AIBinder_decStrong); nAudioMix->mToken = AIBinder_toPlatformBinder(aiBinder.get()); nAudioMix->mToken = AIBinder_toPlatformBinder(aiBinder.get()); nAudioMix->mVirtualDeviceId = env->GetIntField(jAudioMix, gAudioMixFields.mVirtualDeviceId); jint status = convertAudioMixingRuleToNative(env, jRule, &(nAudioMix->mCriteria)); jint status = convertAudioMixingRuleToNative(env, jRule, &(nAudioMix->mCriteria)); env->DeleteLocalRef(jRule); env->DeleteLocalRef(jRule); Loading Loading @@ -3678,7 +3676,7 @@ int register_android_media_AudioSystem(JNIEnv *env) gAudioMixCstor = gAudioMixCstor = GetMethodIDOrDie(env, audioMixClass, "<init>", GetMethodIDOrDie(env, audioMixClass, "<init>", "(Landroid/media/audiopolicy/AudioMixingRule;Landroid/" "(Landroid/media/audiopolicy/AudioMixingRule;Landroid/" "media/AudioFormat;IIILjava/lang/String;Landroid/os/IBinder;I)V"); "media/AudioFormat;IIILjava/lang/String;Landroid/os/IBinder;)V"); } } gAudioMixFields.mRule = GetFieldIDOrDie(env, audioMixClass, "mRule", gAudioMixFields.mRule = GetFieldIDOrDie(env, audioMixClass, "mRule", "Landroid/media/audiopolicy/AudioMixingRule;"); "Landroid/media/audiopolicy/AudioMixingRule;"); Loading @@ -3691,7 +3689,6 @@ int register_android_media_AudioSystem(JNIEnv *env) gAudioMixFields.mMixType = GetFieldIDOrDie(env, audioMixClass, "mMixType", "I"); gAudioMixFields.mMixType = GetFieldIDOrDie(env, audioMixClass, "mMixType", "I"); gAudioMixFields.mCallbackFlags = GetFieldIDOrDie(env, audioMixClass, "mCallbackFlags", "I"); gAudioMixFields.mCallbackFlags = GetFieldIDOrDie(env, audioMixClass, "mCallbackFlags", "I"); gAudioMixFields.mToken = GetFieldIDOrDie(env, audioMixClass, "mToken", "Landroid/os/IBinder;"); gAudioMixFields.mToken = GetFieldIDOrDie(env, audioMixClass, "mToken", "Landroid/os/IBinder;"); gAudioMixFields.mVirtualDeviceId = GetFieldIDOrDie(env, audioMixClass, "mVirtualDeviceId", "I"); jclass audioFormatClass = FindClassOrDie(env, "android/media/AudioFormat"); jclass audioFormatClass = FindClassOrDie(env, "android/media/AudioFormat"); gAudioFormatClass = MakeGlobalRefOrDie(env, audioFormatClass); gAudioFormatClass = MakeGlobalRefOrDie(env, audioFormatClass); Loading
media/java/android/media/AudioManager.java +1 −2 Original line number Original line Diff line number Diff line Loading @@ -5453,8 +5453,7 @@ public class AudioManager { String regId = service.registerAudioPolicy(policy.getConfig(), policy.cb(), String regId = service.registerAudioPolicy(policy.getConfig(), policy.cb(), policy.hasFocusListener(), policy.isFocusPolicy(), policy.isTestFocusPolicy(), policy.hasFocusListener(), policy.isFocusPolicy(), policy.isTestFocusPolicy(), policy.isVolumeController(), policy.isVolumeController(), projection == null ? null : projection.getProjection(), projection == null ? null : projection.getProjection()); policy.getAttributionSource()); if (regId == null) { if (regId == null) { return ERROR; return ERROR; } else { } else { Loading
media/java/android/media/AudioRecord.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -789,7 +789,7 @@ public class AudioRecord implements AudioRouting, MicrophoneDirection, private @NonNull AudioRecord buildAudioPlaybackCaptureRecord() { private @NonNull AudioRecord buildAudioPlaybackCaptureRecord() { AudioMix audioMix = mAudioPlaybackCaptureConfiguration.createAudioMix(mFormat); AudioMix audioMix = mAudioPlaybackCaptureConfiguration.createAudioMix(mFormat); MediaProjection projection = mAudioPlaybackCaptureConfiguration.getMediaProjection(); MediaProjection projection = mAudioPlaybackCaptureConfiguration.getMediaProjection(); AudioPolicy audioPolicy = new AudioPolicy.Builder(/*context=*/ mContext) AudioPolicy audioPolicy = new AudioPolicy.Builder(/*context=*/ null) .setMediaProjection(projection) .setMediaProjection(projection) .addMix(audioMix).build(); .addMix(audioMix).build(); Loading Loading @@ -853,7 +853,7 @@ public class AudioRecord implements AudioRouting, MicrophoneDirection, .setFormat(mFormat) .setFormat(mFormat) .setRouteFlags(AudioMix.ROUTE_FLAG_LOOP_BACK) .setRouteFlags(AudioMix.ROUTE_FLAG_LOOP_BACK) .build(); .build(); AudioPolicy audioPolicy = new AudioPolicy.Builder(mContext).addMix(audioMix).build(); AudioPolicy audioPolicy = new AudioPolicy.Builder(null).addMix(audioMix).build(); if (AudioManager.registerAudioPolicyStatic(audioPolicy) != 0) { if (AudioManager.registerAudioPolicyStatic(audioPolicy) != 0) { throw new UnsupportedOperationException("Error: could not register audio policy"); throw new UnsupportedOperationException("Error: could not register audio policy"); } } Loading
media/java/android/media/AudioTrack.java +1 −2 Original line number Original line Diff line number Diff line Loading @@ -1353,8 +1353,7 @@ public class AudioTrack extends PlayerBase .setRouteFlags(AudioMix.ROUTE_FLAG_LOOP_BACK) .setRouteFlags(AudioMix.ROUTE_FLAG_LOOP_BACK) .build(); .build(); AudioPolicy audioPolicy = AudioPolicy audioPolicy = new AudioPolicy.Builder(/*context=*/ mContext).addMix(audioMix).build(); new AudioPolicy.Builder(/*context=*/ null).addMix(audioMix).build(); if (AudioManager.registerAudioPolicyStatic(audioPolicy) != 0) { if (AudioManager.registerAudioPolicyStatic(audioPolicy) != 0) { throw new UnsupportedOperationException("Error: could not register audio policy"); throw new UnsupportedOperationException("Error: could not register audio policy"); } } Loading
media/java/android/media/IAudioService.aidl +1 −3 Original line number Original line Diff line number Diff line Loading @@ -18,7 +18,6 @@ package android.media; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothDevice; import android.content.ComponentName; import android.content.ComponentName; import android.content.AttributionSource; import android.media.AudioAttributes; import android.media.AudioAttributes; import android.media.AudioDeviceAttributes; import android.media.AudioDeviceAttributes; import android.media.AudioFormat; import android.media.AudioFormat; Loading Loading @@ -362,8 +361,7 @@ interface IAudioService { String registerAudioPolicy(in AudioPolicyConfig policyConfig, String registerAudioPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb, boolean hasFocusListener, boolean isFocusPolicy, in IAudioPolicyCallback pcb, boolean hasFocusListener, boolean isFocusPolicy, boolean isTestFocusPolicy, boolean isTestFocusPolicy, boolean isVolumeController, in IMediaProjection projection, boolean isVolumeController, in IMediaProjection projection); in AttributionSource attributionSource); oneway void unregisterAudioPolicyAsync(in IAudioPolicyCallback pcb); oneway void unregisterAudioPolicyAsync(in IAudioPolicyCallback pcb); Loading