diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/SpoofVideoStreamsPatch.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/SpoofVideoStreamsPatch.java index 8275f9c71..a1de3d0be 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/SpoofVideoStreamsPatch.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/SpoofVideoStreamsPatch.java @@ -39,7 +39,7 @@ public class SpoofVideoStreamsPatch { @Nullable private static volatile AppLanguage languageOverride; - private static volatile ClientType preferredClient = ClientType.ANDROID_VR_1_61_48; + private static volatile ClientType preferredClient = ClientType.ANDROID_VR_1_43_32; /** * @return If this patch was included during patching. diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java index da200ef67..e9672d1ff 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java @@ -18,28 +18,20 @@ public class SpoofVideoStreamsPatch { * Injection point. */ public static void setClientOrderToUse() { - final boolean forceAVC = Settings.FORCE_AVC_CODEC.get(); - - // VR 1.61 uses VP9/AV1, and cannot force AVC. ClientType client = Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get(); - if (forceAVC && client == ANDROID_VR_1_61_48) { - client = ANDROID_VR_1_43_32; // Use VR 1.43 instead. + + + if (Settings.FORCE_AVC_CODEC.get() && client == ANDROID_VR_1_61_48) { + // VR 1.61 uses VP9/AV1, and cannot force AVC. Use 1.43 instead. + client = ANDROID_VR_1_43_32; } - List availableClients = forceAVC - ? List.of( + List availableClients = List.of( ANDROID_VR_1_43_32, VISIONOS, ANDROID_CREATOR, ANDROID_VR_1_61_48, - IPADOS) - : List.of( - ANDROID_VR_1_61_48, - VISIONOS, - ANDROID_CREATOR, - ANDROID_VR_1_43_32, - IPADOS - ); + IPADOS); app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.setClientsToUse( availableClients, client); diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java index cfe87af71..e8c21aca1 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java @@ -356,7 +356,7 @@ public class Settings extends BaseSettings { public static final BooleanSetting EXTERNAL_BROWSER = new BooleanSetting("revanced_external_browser", TRUE, true); public static final BooleanSetting SPOOF_DEVICE_DIMENSIONS = new BooleanSetting("revanced_spoof_device_dimensions", FALSE, true, "revanced_spoof_device_dimensions_user_dialog_message"); - public static final EnumSetting SPOOF_VIDEO_STREAMS_CLIENT_TYPE = new EnumSetting<>("revanced_spoof_video_streams_client_type", ClientType.ANDROID_VR_1_61_48, true, parent(SPOOF_VIDEO_STREAMS)); + public static final EnumSetting SPOOF_VIDEO_STREAMS_CLIENT_TYPE = new EnumSetting<>("revanced_spoof_video_streams_client_type", ClientType.ANDROID_VR_1_43_32, true, parent(SPOOF_VIDEO_STREAMS)); public static final BooleanSetting DEBUG_PROTOBUFFER = new BooleanSetting("revanced_debug_protobuffer", FALSE, false, "revanced_debug_protobuffer_user_dialog_message", parent(BaseSettings.DEBUG)); diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofStreamingDataSideEffectsPreference.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofStreamingDataSideEffectsPreference.java index 9dee0b0c5..919aed6c6 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofStreamingDataSideEffectsPreference.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofStreamingDataSideEffectsPreference.java @@ -83,12 +83,17 @@ public class SpoofStreamingDataSideEffectsPreference extends Preference { String summary = str("revanced_spoof_video_streams_about_no_audio_tracks"); switch (clientType) { - case ANDROID_VR_1_61_48 -> - summary += '\n' + str("revanced_spoof_video_streams_about_no_stable_volume"); case ANDROID_CREATOR -> - summary += '\n' + str("revanced_spoof_video_streams_about_no_av1") - + '\n' + str("revanced_spoof_video_streams_about_no_stable_volume") - + '\n' + str("revanced_spoof_video_streams_about_no_force_original_audio"); + summary += '\n' + str("revanced_spoof_video_streams_about_no_stable_volume") + + '\n' + str("revanced_spoof_video_streams_about_no_av1") + + '\n' + str("revanced_spoof_video_streams_about_no_force_original_audio"); + case ANDROID_VR_1_43_32 -> + summary += '\n' + str("revanced_spoof_video_streams_about_no_stable_volume") + + '\n' + str("revanced_spoof_video_streams_about_no_av1"); + case ANDROID_VR_1_61_48 -> + summary = str("revanced_spoof_video_streams_about_dropped_frames") + + '\n' + summary + + '\n' + str("revanced_spoof_video_streams_about_no_stable_volume"); case IPADOS -> summary = str("revanced_spoof_video_streams_about_playback_failure") + '\n' + str("revanced_spoof_video_streams_about_no_av1"); diff --git a/patches/src/main/resources/addresources/values/arrays.xml b/patches/src/main/resources/addresources/values/arrays.xml index f89f52c2d..b2fa4a885 100644 --- a/patches/src/main/resources/addresources/values/arrays.xml +++ b/patches/src/main/resources/addresources/values/arrays.xml @@ -137,12 +137,14 @@ - Android VR + Android VR 1.43 + Android VR 1.61 Android Studio visionOS iPadOS + ANDROID_VR_1_43_32 ANDROID_VR_1_61_48 ANDROID_CREATOR VISIONOS diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index a23b530ae..0bdd13f86 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -1687,6 +1687,7 @@ Limitations: • Audio track menu is missing • No AV1 video codec • Stable volume is not available + • Playback may stutter or drop frames • Kids videos may not play when logged out or in incognito mode • Force original audio is not available