diff options
author | sfan5 <sfan5@live.de> | 2023-08-06 17:09:13 +0200 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2023-08-08 20:15:20 +0200 |
commit | dae03406208a19c08244418271f329707896a8b6 (patch) | |
tree | ab3d4cbf2560dc4c3c75d258e19c2352e9e8d1ae /audio/out | |
parent | 9faf9932a48d6ff52493eee9d58672d17269bbd0 (diff) | |
download | mpv-dae03406208a19c08244418271f329707896a8b6.tar.bz2 mpv-dae03406208a19c08244418271f329707896a8b6.tar.xz |
ao_audiotrack: support media role
maybe this is good for something, who knows
Diffstat (limited to 'audio/out')
-rw-r--r-- | audio/out/ao_audiotrack.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/audio/out/ao_audiotrack.c b/audio/out/ao_audiotrack.c index a66dbbeec8..1f2f069964 100644 --- a/audio/out/ao_audiotrack.c +++ b/audio/out/ao_audiotrack.c @@ -150,12 +150,14 @@ struct JNIAudioTrack { struct JNIAudioAttributes { jclass clazz; jint CONTENT_TYPE_MOVIE; + jint CONTENT_TYPE_MUSIC; jint USAGE_MEDIA; struct MPJniField mapping[]; } AudioAttributes = {.mapping = { #define OFFSET(member) offsetof(struct JNIAudioAttributes, member) {"android/media/AudioAttributes", NULL, NULL, MP_JNI_CLASS, OFFSET(clazz), 0}, {"android/media/AudioAttributes", "CONTENT_TYPE_MOVIE", "I", MP_JNI_STATIC_FIELD_AS_INT, OFFSET(CONTENT_TYPE_MOVIE), 0}, + {"android/media/AudioAttributes", "CONTENT_TYPE_MUSIC", "I", MP_JNI_STATIC_FIELD_AS_INT, OFFSET(CONTENT_TYPE_MUSIC), 0}, {"android/media/AudioAttributes", "USAGE_MEDIA", "I", MP_JNI_STATIC_FIELD_AS_INT, OFFSET(USAGE_MEDIA), 0}, {0} #undef OFFSET @@ -301,7 +303,9 @@ static int AudioTrack_New(struct ao *ao) MP_JNI_EXCEPTION_LOG(ao); tmp = MP_JNI_CALL_OBJECT(attr_builder, AudioAttributesBuilder.setUsage, AudioAttributes.USAGE_MEDIA); MP_JNI_DELETELOCAL(tmp); - tmp = MP_JNI_CALL_OBJECT(attr_builder, AudioAttributesBuilder.setContentType, AudioAttributes.CONTENT_TYPE_MOVIE); + jint content_type = (ao->init_flags & AO_INIT_MEDIA_ROLE_MUSIC) ? + AudioAttributes.CONTENT_TYPE_MUSIC : AudioAttributes.CONTENT_TYPE_MOVIE; + tmp = MP_JNI_CALL_OBJECT(attr_builder, AudioAttributesBuilder.setContentType, content_type); MP_JNI_DELETELOCAL(tmp); jobject attr = MP_JNI_CALL_OBJECT(attr_builder, AudioAttributesBuilder.build); MP_JNI_DELETELOCAL(attr_builder); |