From b7ed874c09a3df6c5c59ac6bb7d17ac84cc9135b Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Fri, 23 Oct 2020 16:44:11 +0200 Subject: [PATCH 01/12] Remove direct play support for avi with libvlc (cherry picked from commit 4b23951f6d65354487dd44590556837eacee4252) --- .../org/jellyfin/androidtv/util/ProfileHelper.java | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/app/src/main/java/org/jellyfin/androidtv/util/ProfileHelper.java b/app/src/main/java/org/jellyfin/androidtv/util/ProfileHelper.java index 4cd5b430db..e8c0ca569a 100644 --- a/app/src/main/java/org/jellyfin/androidtv/util/ProfileHelper.java +++ b/app/src/main/java/org/jellyfin/androidtv/util/ProfileHelper.java @@ -172,7 +172,6 @@ public static void setVlcOptions(DeviceProfile profile, boolean isLiveTv) { ContainerTypes.OGM, ContainerTypes.OGV, ContainerTypes.M2V, - ContainerTypes.AVI, ContainerTypes.MPG, ContainerTypes.MPEG, ContainerTypes.MP4, @@ -236,20 +235,11 @@ public static void setVlcOptions(DeviceProfile profile, boolean isLiveTv) { new ProfileCondition(ProfileConditionType.GreaterThanEqual, ProfileConditionValue.RefFrames, "2"), }); - ContainerProfile videoContainerProfile = new ContainerProfile(); - videoContainerProfile.setType(DlnaProfileType.Video); - videoContainerProfile.setContainer(ContainerTypes.AVI); - videoContainerProfile.setConditions(new ProfileCondition[] - { - new ProfileCondition(ProfileConditionType.NotEquals, ProfileConditionValue.VideoCodecTag, "xvid"), - }); - CodecProfile videoAudioCodecProfile = new CodecProfile(); videoAudioCodecProfile.setType(CodecType.VideoAudio); videoAudioCodecProfile.setConditions(new ProfileCondition[]{new ProfileCondition(ProfileConditionType.LessThanEqual, ProfileConditionValue.AudioChannels, "6")}); profile.setCodecProfiles(new CodecProfile[]{getHevcProfile(), h264MainProfile, videoAudioCodecProfile}); - profile.setContainerProfiles(new ContainerProfile[] {videoContainerProfile}); profile.setSubtitleProfiles(new SubtitleProfile[]{ getSubtitleProfile("srt", SubtitleDeliveryMethod.External), getSubtitleProfile("srt", SubtitleDeliveryMethod.Embed), From 6f84fd704e8a8248c1aead08010c23162d92b1c1 Mon Sep 17 00:00:00 2001 From: "Mr. Chip53" Date: Tue, 6 Oct 2020 00:14:20 -0500 Subject: [PATCH 02/12] Fix Live TV tiles aspect ratio in CardPresenter.java (cherry picked from commit 47b466beb771c6d1503d4b86d1ac117757b2ca09) --- .../org/jellyfin/androidtv/presentation/CardPresenter.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/jellyfin/androidtv/presentation/CardPresenter.java b/app/src/main/java/org/jellyfin/androidtv/presentation/CardPresenter.java index 1542b46afa..c3f1fe4d41 100644 --- a/app/src/main/java/org/jellyfin/androidtv/presentation/CardPresenter.java +++ b/app/src/main/java/org/jellyfin/androidtv/presentation/CardPresenter.java @@ -26,6 +26,7 @@ import java.util.Date; import org.jellyfin.apiclient.model.dto.BaseItemDto; +import org.jellyfin.apiclient.model.dto.BaseItemType; import org.jellyfin.apiclient.model.dto.UserItemDataDto; import org.jellyfin.apiclient.model.entities.LocationType; import org.jellyfin.apiclient.model.livetv.ChannelInfoDto; @@ -100,7 +101,10 @@ public void setItem(BaseRowItem m, String imageType, int lHeight, int pHeight, i } else if (imageType.equals(ImageType.THUMB)) { aspect = ImageUtils.ASPECT_RATIO_16_9; } else { - aspect = Utils.getSafeValue(ImageUtils.getImageAspectRatio(itemDto, m.getPreferParentThumb()), ImageUtils.ASPECT_RATIO_7_9); + if (itemDto.getBaseItemType() == BaseItemType.UserView) + aspect = ImageUtils.ASPECT_RATIO_16_9; + else + aspect = Utils.getSafeValue(ImageUtils.getImageAspectRatio(itemDto, m.getPreferParentThumb()), ImageUtils.ASPECT_RATIO_7_9); } switch (itemDto.getBaseItemType()) { case Audio: From b13e6923d7ab832b4db429cb989495a5777d731e Mon Sep 17 00:00:00 2001 From: "Mr. Chip53" Date: Tue, 6 Oct 2020 18:33:05 -0500 Subject: [PATCH 03/12] Move Live TV tile fix to ImageUtils and add check that only applies if tile has Primary image (cherry picked from commit 49fd2ce2da8adb819ff0b1a1c6f64bf52e593b70) --- .../org/jellyfin/androidtv/presentation/CardPresenter.java | 5 +---- .../main/java/org/jellyfin/androidtv/util/ImageUtils.java | 3 +++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/jellyfin/androidtv/presentation/CardPresenter.java b/app/src/main/java/org/jellyfin/androidtv/presentation/CardPresenter.java index c3f1fe4d41..16e5e9ddff 100644 --- a/app/src/main/java/org/jellyfin/androidtv/presentation/CardPresenter.java +++ b/app/src/main/java/org/jellyfin/androidtv/presentation/CardPresenter.java @@ -101,10 +101,7 @@ public void setItem(BaseRowItem m, String imageType, int lHeight, int pHeight, i } else if (imageType.equals(ImageType.THUMB)) { aspect = ImageUtils.ASPECT_RATIO_16_9; } else { - if (itemDto.getBaseItemType() == BaseItemType.UserView) - aspect = ImageUtils.ASPECT_RATIO_16_9; - else - aspect = Utils.getSafeValue(ImageUtils.getImageAspectRatio(itemDto, m.getPreferParentThumb()), ImageUtils.ASPECT_RATIO_7_9); + aspect = Utils.getSafeValue(ImageUtils.getImageAspectRatio(itemDto, m.getPreferParentThumb()), ImageUtils.ASPECT_RATIO_7_9); } switch (itemDto.getBaseItemType()) { case Audio: diff --git a/app/src/main/java/org/jellyfin/androidtv/util/ImageUtils.java b/app/src/main/java/org/jellyfin/androidtv/util/ImageUtils.java index 823c4faa55..39862a1c8f 100644 --- a/app/src/main/java/org/jellyfin/androidtv/util/ImageUtils.java +++ b/app/src/main/java/org/jellyfin/androidtv/util/ImageUtils.java @@ -45,6 +45,9 @@ public static Double getImageAspectRatio(BaseItemDto item, boolean preferParentT } } + if (item.getBaseItemType() == BaseItemType.UserView && item.getHasPrimaryImage()) + return ImageUtils.ASPECT_RATIO_16_9; + return item.getPrimaryImageAspectRatio() != null ? item.getPrimaryImageAspectRatio() : ASPECT_RATIO_7_9; } From 351e43eebce3b6c4799e23dce44366916d3b6499 Mon Sep 17 00:00:00 2001 From: "Mr. Chip53" Date: Tue, 6 Oct 2020 18:47:08 -0500 Subject: [PATCH 04/12] Unused import (cherry picked from commit 6435fbd49d2b2915d7e40624475bd5fd0fc011bc) --- .../java/org/jellyfin/androidtv/presentation/CardPresenter.java | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/org/jellyfin/androidtv/presentation/CardPresenter.java b/app/src/main/java/org/jellyfin/androidtv/presentation/CardPresenter.java index 16e5e9ddff..1542b46afa 100644 --- a/app/src/main/java/org/jellyfin/androidtv/presentation/CardPresenter.java +++ b/app/src/main/java/org/jellyfin/androidtv/presentation/CardPresenter.java @@ -26,7 +26,6 @@ import java.util.Date; import org.jellyfin.apiclient.model.dto.BaseItemDto; -import org.jellyfin.apiclient.model.dto.BaseItemType; import org.jellyfin.apiclient.model.dto.UserItemDataDto; import org.jellyfin.apiclient.model.entities.LocationType; import org.jellyfin.apiclient.model.livetv.ChannelInfoDto; From 3fd08c9b3979885afb11b68c7d8f675168115a25 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Tue, 29 Sep 2020 21:39:05 +0200 Subject: [PATCH 05/12] Fix keyboard not closing when focus is lost (cherry picked from commit 30d6d81ab5bf1b0aab4f7444cfc3acb0837dcd49) --- .../base/KeyboardFocusChangeListener.kt | 16 ++++++++++++++++ .../util/apiclient/AuthenticationHelper.java | 4 ++++ 2 files changed, 20 insertions(+) create mode 100644 app/src/main/java/org/jellyfin/androidtv/base/KeyboardFocusChangeListener.kt diff --git a/app/src/main/java/org/jellyfin/androidtv/base/KeyboardFocusChangeListener.kt b/app/src/main/java/org/jellyfin/androidtv/base/KeyboardFocusChangeListener.kt new file mode 100644 index 0000000000..28c6c4e144 --- /dev/null +++ b/app/src/main/java/org/jellyfin/androidtv/base/KeyboardFocusChangeListener.kt @@ -0,0 +1,16 @@ +package org.jellyfin.androidtv.ui.shared + +import android.content.Context +import android.view.View +import android.view.inputmethod.InputMethodManager + +class KeyboardFocusChangeListener : View.OnFocusChangeListener { + override fun onFocusChange(v : View?, hasFocus : Boolean) { + if (v != null) { + (v.context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager).apply { + if (!hasFocus) hideSoftInputFromWindow(v.windowToken, 0) + else showSoftInput(v, 0) + } + } + } +} diff --git a/app/src/main/java/org/jellyfin/androidtv/util/apiclient/AuthenticationHelper.java b/app/src/main/java/org/jellyfin/androidtv/util/apiclient/AuthenticationHelper.java index cf381e6e26..9e9a4e49b7 100644 --- a/app/src/main/java/org/jellyfin/androidtv/util/apiclient/AuthenticationHelper.java +++ b/app/src/main/java/org/jellyfin/androidtv/util/apiclient/AuthenticationHelper.java @@ -16,6 +16,7 @@ import org.jellyfin.androidtv.startup.SelectServerActivity; import org.jellyfin.androidtv.startup.SelectUserActivity; import org.jellyfin.androidtv.util.DelayedMessage; +import org.jellyfin.androidtv.ui.shared.KeyboardFocusChangeListener; import org.jellyfin.androidtv.util.Utils; import java.io.IOException; @@ -39,6 +40,7 @@ public static void enterManualServerAddress(final Activity activity) { final EditText address = new EditText(activity); address.setHint(activity.getString(R.string.lbl_ip_hint)); address.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI); + address.setOnFocusChangeListener(new KeyboardFocusChangeListener()); new AlertDialog.Builder(activity) .setTitle(activity.getString(R.string.lbl_enter_server_address)) .setMessage(activity.getString(R.string.lbl_valid_server_address)) @@ -61,6 +63,7 @@ public void onClick(DialogInterface dialog, int whichButton) { public static void enterManualUser(final Activity activity) { final EditText userName = new EditText(activity); userName.setInputType(InputType.TYPE_CLASS_TEXT); + userName.setOnFocusChangeListener(new KeyboardFocusChangeListener()); new AlertDialog.Builder(activity) .setTitle(activity.getString(R.string.lbl_enter_user_name)) .setView(userName) @@ -74,6 +77,7 @@ public void onClick(DialogInterface dialog, int whichButton) { TvApp.getApplication().getLogger().Debug("Entered user: %s", userValue); final EditText userPw = new EditText(activity); userPw.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); + userPw.setOnFocusChangeListener(new KeyboardFocusChangeListener()); new AlertDialog.Builder(activity) .setTitle(activity.getString(R.string.lbl_enter_user_pw)) .setView(userPw) From 3048b9570460c62aaeadccd010fcd11777ec4a42 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Tue, 29 Sep 2020 16:11:20 -0400 Subject: [PATCH 06/12] Remove unneeded null check (cherry picked from commit b9d521d57e6180b87bfc59711aaa6eb075156804) --- .../androidtv/base/KeyboardFocusChangeListener.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/jellyfin/androidtv/base/KeyboardFocusChangeListener.kt b/app/src/main/java/org/jellyfin/androidtv/base/KeyboardFocusChangeListener.kt index 28c6c4e144..ce732be252 100644 --- a/app/src/main/java/org/jellyfin/androidtv/base/KeyboardFocusChangeListener.kt +++ b/app/src/main/java/org/jellyfin/androidtv/base/KeyboardFocusChangeListener.kt @@ -5,12 +5,10 @@ import android.view.View import android.view.inputmethod.InputMethodManager class KeyboardFocusChangeListener : View.OnFocusChangeListener { - override fun onFocusChange(v : View?, hasFocus : Boolean) { - if (v != null) { - (v.context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager).apply { - if (!hasFocus) hideSoftInputFromWindow(v.windowToken, 0) - else showSoftInput(v, 0) - } + override fun onFocusChange(v : View, hasFocus : Boolean) { + (v.context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager).apply { + if (!hasFocus) hideSoftInputFromWindow(v.windowToken, 0) + else showSoftInput(v, 0) } } } From f58412f34629ff6ee0c1dcbf93aa1bf6c795f602 Mon Sep 17 00:00:00 2001 From: William King Date: Wed, 22 Jul 2020 02:13:37 +0200 Subject: [PATCH 07/12] Fix VLC atmos support (cherry picked from commit ecbb1880628a42dce8031ec18d772c5e351c0202) --- .../androidtv/playback/MediaManager.java | 8 +++++-- .../androidtv/playback/VideoManager.java | 24 ++++++++++++------- .../androidtv/util/ProfileHelper.java | 2 +- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/jellyfin/androidtv/playback/MediaManager.java b/app/src/main/java/org/jellyfin/androidtv/playback/MediaManager.java index 21976ecb9e..8b683a3971 100644 --- a/app/src/main/java/org/jellyfin/androidtv/playback/MediaManager.java +++ b/app/src/main/java/org/jellyfin/androidtv/playback/MediaManager.java @@ -227,8 +227,12 @@ public void onPlayerError(ExoPlaybackException error) { mLibVLC = new LibVLC(TvApp.getApplication(), options); mVlcPlayer = new org.videolan.libvlc.MediaPlayer(mLibVLC); - mVlcPlayer.setAudioOutput(Utils.downMixAudio() ? "opensles_android" : "android_audiotrack"); - mVlcPlayer.setAudioOutputDevice("hdmi"); + if(!Utils.downMixAudio()) { + mVlcPlayer.setAudioDigitalOutputEnabled(true); + } else { + mVlcPlayer.setAudioOutput("opensles_android"); + } + mVlcHandler.setOnProgressListener(new PlaybackListener() { @Override diff --git a/app/src/main/java/org/jellyfin/androidtv/playback/VideoManager.java b/app/src/main/java/org/jellyfin/androidtv/playback/VideoManager.java index cca73a1278..2991f8cd39 100644 --- a/app/src/main/java/org/jellyfin/androidtv/playback/VideoManager.java +++ b/app/src/main/java/org/jellyfin/androidtv/playback/VideoManager.java @@ -105,6 +105,7 @@ protected void buildTextRenderers(Context context, TextOutput output, Looper out } }).build(); + mExoPlayerView = view.findViewById(R.id.exoPlayerView); mExoPlayerView.setPlayer(mExoPlayer); mExoPlayer.addListener(new Player.EventListener() { @@ -437,16 +438,24 @@ public void setAudioDelay(long value) { public long getAudioDelay() { return mVlcPlayer != null ? mVlcPlayer.getAudioDelay() / 1000 : 0;} public void setCompatibleAudio() { - if (!nativeMode) { - mVlcPlayer.setAudioOutput("opensles_android"); - mVlcPlayer.setAudioOutputDevice("hdmi"); - } + if (!nativeMode) { + mVlcPlayer.setAudioOutput("opensles_android"); + mVlcPlayer.setAudioOutputDevice("hdmi"); + } } public void setAudioMode() { if (!nativeMode) { - mVlcPlayer.setAudioOutput(Utils.downMixAudio() ? "opensles_android" : "android_audiotrack"); - mVlcPlayer.setAudioOutputDevice("hdmi"); + setVlcAudioOptions(); + } + } + + private void setVlcAudioOptions() { + + if(!Utils.downMixAudio()) { + mVlcPlayer.setAudioDigitalOutputEnabled(true); + } else { + mVlcPlayer.setAudioOutput("opensles_android"); } } @@ -502,8 +511,7 @@ private void createPlayer(int buffer, boolean isInterlaced) { TvApp.getApplication().getLogger().Info("Network buffer set to %d", buffer); mVlcPlayer = new org.videolan.libvlc.MediaPlayer(mLibVLC); - mVlcPlayer.setAudioOutput(Utils.downMixAudio() ? "opensles_android" : "android_audiotrack"); - mVlcPlayer.setAudioOutputDevice("hdmi"); + setVlcAudioOptions(); mSurfaceHolder.addCallback(mSurfaceCallback); diff --git a/app/src/main/java/org/jellyfin/androidtv/util/ProfileHelper.java b/app/src/main/java/org/jellyfin/androidtv/util/ProfileHelper.java index e8c0ca569a..9b95d45caf 100644 --- a/app/src/main/java/org/jellyfin/androidtv/util/ProfileHelper.java +++ b/app/src/main/java/org/jellyfin/androidtv/util/ProfileHelper.java @@ -237,7 +237,7 @@ public static void setVlcOptions(DeviceProfile profile, boolean isLiveTv) { CodecProfile videoAudioCodecProfile = new CodecProfile(); videoAudioCodecProfile.setType(CodecType.VideoAudio); - videoAudioCodecProfile.setConditions(new ProfileCondition[]{new ProfileCondition(ProfileConditionType.LessThanEqual, ProfileConditionValue.AudioChannels, "6")}); + videoAudioCodecProfile.setConditions(new ProfileCondition[]{new ProfileCondition(ProfileConditionType.LessThanEqual, ProfileConditionValue.AudioChannels, "8")}); profile.setCodecProfiles(new CodecProfile[]{getHevcProfile(), h264MainProfile, videoAudioCodecProfile}); profile.setSubtitleProfiles(new SubtitleProfile[]{ From 8bb184357ef7d117a00b1107e25e12136a59e659 Mon Sep 17 00:00:00 2001 From: William King Date: Tue, 21 Jul 2020 17:19:22 -0700 Subject: [PATCH 08/12] remove tabs (cherry picked from commit c921fcdc2deb0adbfd9d9c6b3f88e40ab6cd8f93) --- .../androidtv/util/ProfileHelper.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/jellyfin/androidtv/util/ProfileHelper.java b/app/src/main/java/org/jellyfin/androidtv/util/ProfileHelper.java index 9b95d45caf..d8266d0b10 100644 --- a/app/src/main/java/org/jellyfin/androidtv/util/ProfileHelper.java +++ b/app/src/main/java/org/jellyfin/androidtv/util/ProfileHelper.java @@ -241,18 +241,18 @@ public static void setVlcOptions(DeviceProfile profile, boolean isLiveTv) { profile.setCodecProfiles(new CodecProfile[]{getHevcProfile(), h264MainProfile, videoAudioCodecProfile}); profile.setSubtitleProfiles(new SubtitleProfile[]{ - getSubtitleProfile("srt", SubtitleDeliveryMethod.External), - getSubtitleProfile("srt", SubtitleDeliveryMethod.Embed), - getSubtitleProfile("subrip", SubtitleDeliveryMethod.Embed), - getSubtitleProfile("ass", SubtitleDeliveryMethod.Embed), - getSubtitleProfile("ssa", SubtitleDeliveryMethod.Embed), - getSubtitleProfile("pgs", SubtitleDeliveryMethod.Embed), - getSubtitleProfile("pgssub", SubtitleDeliveryMethod.Embed), - getSubtitleProfile("dvdsub", SubtitleDeliveryMethod.Embed), - getSubtitleProfile("vtt", SubtitleDeliveryMethod.Embed), - getSubtitleProfile("sub", SubtitleDeliveryMethod.Embed), - getSubtitleProfile("smi", SubtitleDeliveryMethod.Embed), - getSubtitleProfile("idx", SubtitleDeliveryMethod.Embed) + getSubtitleProfile("srt", SubtitleDeliveryMethod.External), + getSubtitleProfile("srt", SubtitleDeliveryMethod.Embed), + getSubtitleProfile("subrip", SubtitleDeliveryMethod.Embed), + getSubtitleProfile("ass", SubtitleDeliveryMethod.Embed), + getSubtitleProfile("ssa", SubtitleDeliveryMethod.Embed), + getSubtitleProfile("pgs", SubtitleDeliveryMethod.Embed), + getSubtitleProfile("pgssub", SubtitleDeliveryMethod.Embed), + getSubtitleProfile("dvdsub", SubtitleDeliveryMethod.Embed), + getSubtitleProfile("vtt", SubtitleDeliveryMethod.Embed), + getSubtitleProfile("sub", SubtitleDeliveryMethod.Embed), + getSubtitleProfile("smi", SubtitleDeliveryMethod.Embed), + getSubtitleProfile("idx", SubtitleDeliveryMethod.Embed) }); } From 4c78705215ca32b093ee45d464a7e439d064ec35 Mon Sep 17 00:00:00 2001 From: William King Date: Wed, 22 Jul 2020 19:20:01 -0700 Subject: [PATCH 09/12] address hdmi setting (cherry picked from commit c57454b3661e9557e419601ed37726087c831b32) --- .../java/org/jellyfin/androidtv/playback/MediaManager.java | 1 + .../java/org/jellyfin/androidtv/playback/VideoManager.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/jellyfin/androidtv/playback/MediaManager.java b/app/src/main/java/org/jellyfin/androidtv/playback/MediaManager.java index 8b683a3971..925073d0a0 100644 --- a/app/src/main/java/org/jellyfin/androidtv/playback/MediaManager.java +++ b/app/src/main/java/org/jellyfin/androidtv/playback/MediaManager.java @@ -231,6 +231,7 @@ public void onPlayerError(ExoPlaybackException error) { mVlcPlayer.setAudioDigitalOutputEnabled(true); } else { mVlcPlayer.setAudioOutput("opensles_android"); + mVlcPlayer.setAudioOutputDevice("hdmi"); } diff --git a/app/src/main/java/org/jellyfin/androidtv/playback/VideoManager.java b/app/src/main/java/org/jellyfin/androidtv/playback/VideoManager.java index 2991f8cd39..1e68603d18 100644 --- a/app/src/main/java/org/jellyfin/androidtv/playback/VideoManager.java +++ b/app/src/main/java/org/jellyfin/androidtv/playback/VideoManager.java @@ -453,9 +453,10 @@ public void setAudioMode() { private void setVlcAudioOptions() { if(!Utils.downMixAudio()) { + mVlcPlayer.setAudioOutput("android_audiotrack"); mVlcPlayer.setAudioDigitalOutputEnabled(true); } else { - mVlcPlayer.setAudioOutput("opensles_android"); + setCompatibleAudio(); } } From 42278541ec8dce28e2619f64b123bcfc1be35b12 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Fri, 21 Aug 2020 14:38:32 -0400 Subject: [PATCH 10/12] Add missing setAudioOutput call (cherry picked from commit 66d03cb48a6360d05caf62c44ac974110256bda0) --- .../main/java/org/jellyfin/androidtv/playback/MediaManager.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/org/jellyfin/androidtv/playback/MediaManager.java b/app/src/main/java/org/jellyfin/androidtv/playback/MediaManager.java index 925073d0a0..3224490eba 100644 --- a/app/src/main/java/org/jellyfin/androidtv/playback/MediaManager.java +++ b/app/src/main/java/org/jellyfin/androidtv/playback/MediaManager.java @@ -228,6 +228,7 @@ public void onPlayerError(ExoPlaybackException error) { mVlcPlayer = new org.videolan.libvlc.MediaPlayer(mLibVLC); if(!Utils.downMixAudio()) { + mVlcPlayer.setAudioOutput("android_audiotrack"); mVlcPlayer.setAudioDigitalOutputEnabled(true); } else { mVlcPlayer.setAudioOutput("opensles_android"); From 54c89eed51d9348c63b2ae063f166f7b260f943f Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Thu, 22 Oct 2020 23:57:02 -0400 Subject: [PATCH 11/12] Update to latest libvlc release (cherry picked from commit a3e961ed00a37024cfede4b10f5962243b00a18a) --- app/build.gradle.kts | 2 +- .../main/java/org/jellyfin/androidtv/playback/VideoManager.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 69b0bc4071..08cc54b4c8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -67,7 +67,7 @@ dependencies { // Media players implementation("com.amazon.android:exoplayer:2.11.3") - implementation("org.videolan.android:libvlc-all:3.2.5") + implementation("org.videolan.android:libvlc-all:3.3.2") // Image utility implementation("com.squareup.picasso:picasso:2.3.2") diff --git a/app/src/main/java/org/jellyfin/androidtv/playback/VideoManager.java b/app/src/main/java/org/jellyfin/androidtv/playback/VideoManager.java index 1e68603d18..daaa36d9c7 100644 --- a/app/src/main/java/org/jellyfin/androidtv/playback/VideoManager.java +++ b/app/src/main/java/org/jellyfin/androidtv/playback/VideoManager.java @@ -31,9 +31,9 @@ import org.jellyfin.apiclient.model.dto.MediaSourceInfo; import org.jellyfin.apiclient.model.entities.MediaStream; import org.jellyfin.apiclient.model.entities.MediaStreamType; -import org.videolan.libvlc.IVLCVout; import org.videolan.libvlc.LibVLC; import org.videolan.libvlc.Media; +import org.videolan.libvlc.interfaces.IVLCVout; import java.util.ArrayList; import java.util.List; From b59e442783ad4d91bde951b2c6e9808074ac9e25 Mon Sep 17 00:00:00 2001 From: Niels van Velzen Date: Fri, 11 Dec 2020 23:00:09 +0100 Subject: [PATCH 12/12] Bump version --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 08cc54b4c8..70f4d02376 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -13,8 +13,8 @@ android { targetSdkVersion(29) // Release version - versionCode = 909 - versionName = "0.11.4" + versionCode = 910 + versionName = "0.11.5" } compileOptions {