@@ -36,10 +36,8 @@ public final class DeviceUtils {
3636 private static Boolean isTV = null ;
3737 private static Boolean isFireTV = null ;
3838
39- /*
40- * Devices that do not support media tunneling
41- */
4239
40+ // region: devices not supporting media tunneling
4341 /**
4442 * Formuler Z8 Pro, Z8, CC, Z Alpha, Z+ Neo.
4543 */
@@ -55,11 +53,53 @@ public final class DeviceUtils {
5553 */
5654 private static final boolean REALTEKATV = Build .VERSION .SDK_INT == 25
5755 && Build .DEVICE .equals ("RealtekATV" );
56+ /**
57+ * <p>Phillips 4K (O)LED TV.</p>
58+ * Supports custom ROMs with different API levels
59+ */
60+ private static final boolean PH7M_EU_5596 = Build .VERSION .SDK_INT >= 26
61+ && Build .DEVICE .equals ("PH7M_EU_5596" );
5862 /**
5963 * Philips QM16XE.
6064 */
6165 private static final boolean QM16XE_U = Build .VERSION .SDK_INT == 23
6266 && Build .DEVICE .equals ("QM16XE_U" );
67+ /**
68+ * <p>Sony Bravia VH1.</p>
69+ * Processor: MT5895
70+ */
71+ private static final boolean BRAVIA_VH1 = Build .VERSION .SDK_INT == 29
72+ && Build .DEVICE .equals ("BRAVIA_VH1" );
73+ /**
74+ * <p>Sony Bravia VH2.</p>
75+ * This includes model A90J.
76+ */
77+ private static final boolean BRAVIA_VH2 = Build .VERSION .SDK_INT == 29
78+ && Build .DEVICE .equals ("BRAVIA_VH2" );
79+ /**
80+ * <p>Sony Bravia Android TV platform 2.</p>
81+ * Uses a MediaTek MT5891 (MT5596) SoC.
82+ * @see <a href="https://github.com/CiNcH83/bravia_atv2">
83+ * https://github.com/CiNcH83/bravia_atv2</a>
84+ */
85+ private static final boolean BRAVIA_ATV2 = Build .DEVICE .equals ("BRAVIA_ATV2" );
86+ /**
87+ * <p>Sony Bravia Android TV platform 3 4K.</p>
88+ * Uses ARM MT5891 and a {@link #BRAVIA_ATV2} motherboard.
89+ * @see <a href="https://browser.geekbench.com/v4/cpu/9101105">
90+ * https://browser.geekbench.com/v4/cpu/9101105</a>
91+ */
92+ private static final boolean BRAVIA_ATV3_4K = Build .DEVICE .equals ("BRAVIA_ATV3_4K" );
93+ /**
94+ * Panasonic 4KTV-JUP.
95+ */
96+ private static final boolean TX_50JXW834 = Build .DEVICE .equals ("TX_50JXW834" );
97+ /**
98+ * <p>Bouygtel4K / Bouygues Telecom Bbox 4K.</p>
99+ * Reported at https://github.com/TeamNewPipe/NewPipe/pull/10122#issuecomment-1638475769
100+ */
101+ private static final boolean HMB9213NW = Build .DEVICE .equals ("HMB9213NW" );
102+ // endregion
63103
64104 private DeviceUtils () {
65105 }
@@ -251,7 +291,7 @@ public static int getWindowHeight(@NonNull final WindowManager windowManager) {
251291 }
252292
253293 /**
254- * Some devices have broken tunneled video playback but claim to support it.
294+ * <p> Some devices have broken tunneled video playback but claim to support it.</p>
255295 * See https://github.com/TeamNewPipe/NewPipe/issues/5911
256296 * @Note Add a new {@link org.schabi.newpipe.settings.SettingMigrations.Migration} which calls
257297 * {@link org.schabi.newpipe.settings.NewPipeSettings#setMediaTunneling(Context)}
@@ -263,6 +303,13 @@ public static boolean shouldSupportMediaTunneling() {
263303 return !HI3798MV200
264304 && !CVT_MT5886_EU_1G
265305 && !REALTEKATV
266- && !QM16XE_U ;
306+ && !QM16XE_U
307+ && !BRAVIA_VH1
308+ && !BRAVIA_VH2
309+ && !BRAVIA_ATV2 // crash caused by exiting full screen
310+ && !BRAVIA_ATV3_4K // crash caused by exiting full screen
311+ && !PH7M_EU_5596
312+ && !TX_50JXW834
313+ && !HMB9213NW ; // crash caused by exiting full screen
267314 }
268315}
0 commit comments