[Android] Apply Chromecast options to LibVLC
Jean-Baptiste Kempf
jb at videolan.org
Tue Jan 23 19:44:57 CET 2018
Why not on the media?
On Tue, 23 Jan 2018, at 18:31, Geoffrey Métais wrote:
> vlc-android | branch: chromecast | Geoffrey Métais
> <geoffrey.metais at gmail.com> | Tue Jan 23 10:51:43 2018 +0100|
> [7e8506d0f60e0f79245cfad69c742f7ab229632e] | committer: Geoffrey Métais
>
> Apply Chromecast options to LibVLC
>
> > https://code.videolan.org/videolan/vlc-android/commit/7e8506d0f60e0f79245cfad69c742f7ab229632e
> ---
>
> .../vlc/gui/preferences/PreferencesCasting.kt | 19 ++++++++++++++++++-
> vlc-android/src/org/videolan/vlc/util/VLCOptions.java | 15 ++++++---------
> 2 files changed, 24 insertions(+), 10 deletions(-)
>
> diff --git a/vlc-android/src/org/videolan/vlc/gui/preferences/
> PreferencesCasting.kt b/vlc-android/src/org/videolan/vlc/gui/
> preferences/PreferencesCasting.kt
> index 2137dbced..2d15c34cf 100644
> --- a/vlc-android/src/org/videolan/vlc/gui/preferences/
> PreferencesCasting.kt
> +++ b/vlc-android/src/org/videolan/vlc/gui/preferences/
> PreferencesCasting.kt
> @@ -22,11 +22,28 @@
> */
> package org.videolan.vlc.gui.preferences
>
> +import android.content.SharedPreferences
> +import android.os.Bundle
> import org.videolan.vlc.R
> +import org.videolan.vlc.util.VLCInstance
>
> -class PreferencesCasting : BasePreferenceFragment() {
> +class PreferencesCasting : BasePreferenceFragment(),
> SharedPreferences.OnSharedPreferenceChangeListener {
>
> override fun getTitleId() = R.string.casting_category
>
> override fun getXml() = R.xml.preferences_casting
> +
> + override fun onCreate(savedInstanceState: Bundle?) {
> + super.onCreate(savedInstanceState)
> +
> preferenceScreen.sharedPreferences.registerOnSharedPreferenceChangeListener(this)
> + }
> +
> + override fun onSharedPreferenceChanged(sharedPreferences:
> SharedPreferences?, key: String?) {
> + when (key) {
> + "casting_passthrough", "casting_quality" -> {
> + VLCInstance.restart()
> + (activity as?
> PreferencesActivity)?.restartMediaPlayer()
> + }
> + }
> + }
> }
> \ No newline at end of file
> diff --git a/vlc-android/src/org/videolan/vlc/util/VLCOptions.java b/
> vlc-android/src/org/videolan/vlc/util/VLCOptions.java
> index 1438e9efc..e10677ad7 100644
> --- a/vlc-android/src/org/videolan/vlc/util/VLCOptions.java
> +++ b/vlc-android/src/org/videolan/vlc/util/VLCOptions.java
> @@ -31,10 +31,9 @@ import org.videolan.libvlc.MediaPlayer;
> import org.videolan.libvlc.util.AndroidUtil;
> import org.videolan.libvlc.util.HWDecoderUtil;
> import org.videolan.libvlc.util.VLCUtil;
> +import org.videolan.medialibrary.media.MediaWrapper;
> import org.videolan.vlc.R;
> -import org.videolan.vlc.RendererDelegate;
> import org.videolan.vlc.VLCApplication;
> -import org.videolan.medialibrary.media.MediaWrapper;
>
> import java.io.File;
> import java.util.ArrayList;
> @@ -126,7 +125,11 @@ public class VLCOptions {
> options.add("--keystore-file");
> options.add(new File(context.getDir("keystore",
> Context.MODE_PRIVATE), "file").getAbsolutePath());
>
> + //Chromecast
> options.add(verboseMode ? "-vv" : "-v");
> + if (pref.getBoolean("casting_passthrough", true))
> options.add("--sout-chromecast-audio-passthrough");
> + else options.add("--no-sout-chromecast-audio-passthrough");
> + options.add("--sout-chromecast-conversion-
> quality="+pref.getString("casting_quality", "2"));
>
> return options;
> }
> @@ -181,10 +184,10 @@ public class VLCOptions {
> boolean noVideo = (flags & MediaWrapper.MEDIA_VIDEO) == 0;
> final boolean paused = (flags & MediaWrapper.MEDIA_PAUSED) !=
> 0;
> int hardwareAcceleration = HW_ACCELERATION_DISABLED;
> + final SharedPreferences pref =
> PreferenceManager.getDefaultSharedPreferences(context);
>
> if (!noHardwareAcceleration) {
> try {
> - final SharedPreferences pref =
> PreferenceManager.getDefaultSharedPreferences(context);
> hardwareAcceleration =
> Integer.parseInt(pref.getString("hardware_acceleration", "-1"));
> } catch (NumberFormatException ignored) {}
> }
> @@ -200,12 +203,6 @@ public class VLCOptions {
>
> if (noVideo) media.addOption(":no-video");
> if (paused) media.addOption(":start-paused");
> -
> - if (RendererDelegate.INSTANCE.getSelectedRenderer() != null) {
> - final SharedPreferences pref =
> PreferenceManager.getDefaultSharedPreferences(context);
> - media.addOption(":sout-chromecast-audio-
> passthrough="+pref.getBoolean("casting_passthrough", true));
> - media.addOption(":sout-chromecast-conversion-
> quality="+pref.getString("casting_quality", "2"));
> - }
> }
>
> private static MediaPlayer.Equalizer
> getEqualizerSetFromSettings(SharedPreferences pref) {
>
> _______________________________________________
> Android mailing list
> Android at videolan.org
> https://mailman.videolan.org/listinfo/android
--
Jean-Baptiste Kempf - President
+33 672 704 734
More information about the Android
mailing list