From b294b6e4f9a3dc24bcdce28f0a9c45eda8755f1f Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Tue, 23 May 2023 02:13:08 +0200 Subject: GLMediaPlayer: Add setAudioChannelLimit(..), correlating with AudioSink.setChannelLimit() .. May be utilized to enforce 1 channel (mono) downsampling in combination with JOAL/OpenAL to experience spatial 3D position effects. --- .../classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java') diff --git a/src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java b/src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java index d6bbbdc5d..7b86b012d 100644 --- a/src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java +++ b/src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java @@ -346,6 +346,12 @@ public class FFMPEGMediaPlayer extends GLMediaPlayerImpl { } else { audioSink = AudioSinkFactory.createDefault(FFMPEGMediaPlayer.class.getClassLoader()); } + { + final int audioChannelLimit = getAudioChannelLimit(); + if( audioChannelLimit >= 1 ) { + audioSink.setChannelLimit(audioChannelLimit); + } + } final AudioFormat preferredAudioFormat = audioSink.getPreferredFormat(); if(DEBUG) { System.err.println("initStream: p2 aid "+aid+", preferred "+preferredAudioFormat+" on "+audioSink+", "+this); @@ -385,7 +391,7 @@ public class FFMPEGMediaPlayer extends GLMediaPlayerImpl { } else { resStreamLocS = streamLocS; } - final int aMaxChannelCount = audioSink.getMaxSupportedChannels(); + final int aMaxChannelCount = preferredAudioFormat.channelCount; final int aPrefSampleRate = preferredAudioFormat.sampleRate; // setStream(..) issues updateAttributes*(..), and defines avChosenAudioFormat, vid, aid, .. etc if(DEBUG) { -- cgit v1.2.3