Skip to content
Snippets Groups Projects
Commit 90924697 authored by Nicolas Pomepuy's avatar Nicolas Pomepuy
Browse files

Add a preferred resolution setting

Fixes #1939
parent c1ec13a9
No related branches found
No related tags found
1 merge request!934Add a preferred resolution setting
Pipeline #82702 passed with stage
in 2 minutes and 26 seconds
......@@ -145,6 +145,7 @@ object VLCOptions {
if (soundFontFile.exists()) {
options.add("--soundfont=${soundFontFile.path}")
}
options.add("--preferred-resolution=${pref.getString("preferred_resolution", "-1")!!}")
return options
}
......
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string-array name="server_protocols">
<item>FTP</item>
<item>FTPS</item>
<item>SFTP</item>
<!--<item>HTTP</item>-->
<!--<item>HTTPS</item>-->
<item>SMB</item>
<item>NFS</item>
</string-array>
<string-array name="language_entries">
<item>Albanian</item>
<item>Arabic</item>
<item>Armenian</item>
<item>Basque</item>
<item>Bengali</item>
<item>Bosnian</item>
<item>Breton</item>
<item>Bulgarian</item>
<item>Burmese</item>
<item>Catalan</item>
<item>Chinese</item>
<item>Croatian</item>
<item>Czech</item>
<item>Danish</item>
<item>Dutch</item>
<item>English</item>
<item>Esperanto</item>
<item>Estonian</item>
<item>Finnish</item>
<item>French</item>
<item>Galician</item>
<item>Georgian</item>
<item>German</item>
<item>Greek</item>
<item>Hebrew</item>
<item>Hindi</item>
<item>Hungarian</item>
<item>Icelandic</item>
<item>Indonesian</item>
<item>Italian</item>
<item>Japanese</item>
<item>Kazakh</item>
<item>Khmer</item>
<item>Korean</item>
<item>Latvian</item>
<item>Lithuanian</item>
<item>Luxembourgish</item>
<item>Macedonian</item>
<item>Malay</item>
<item>Malayalam</item>
<item>Mongolian</item>
<item>Norwegian</item>
<item>Occitan</item>
<item>Persian</item>
<item>Polish</item>
<item>Portuguese</item>
<item>Brazilian Portuguese</item>
<item>Romanian</item>
<item>Russian</item>
<item>Serbian</item>
<item>Sinhalese</item>
<item>Slovak</item>
<item>Slovenian</item>
<item>Spanish</item>
<item>Swahili</item>
<item>Swedish</item>
<item>Syriac</item>
<item>Tagalog</item>
<item>Tamil</item>
<item>Telugu</item>
<item>Thai</item>
<item>Turkish</item>
<item>Ukrainian</item>
<item>Urdu</item>
<item>Vietnamese</item>
</string-array>
<string-array name="language_values">
<item>alb</item>
<item>ara</item>
<item>arm</item>
<item>baq</item>
<item>ben</item>
<item>bos</item>
<item>bre</item>
<item>bul</item>
<item>bur</item>
<item>cat</item>
<item>chi</item>
<item>hrv</item>
<item>cze</item>
<item>dan</item>
<item>dut</item>
<item>eng</item>
<item>epo</item>
<item>est</item>
<item>fin</item>
<item>fre</item>
<item>glg</item>
<item>geo</item>
<item>ger</item>
<item>ell</item>
<item>heb</item>
<item>hin</item>
<item>hun</item>
<item>ice</item>
<item>ind</item>
<item>ita</item>
<item>jpn</item>
<item>kaz</item>
<item>khm</item>
<item>kor</item>
<item>lav</item>
<item>lit</item>
<item>ltz</item>
<item>mac</item>
<item>may</item>
<item>mal</item>
<item>mon</item>
<item>nor</item>
<item>oci</item>
<item>per</item>
<item>pol</item>
<item>por</item>
<item>pob</item>
<item>rum</item>
<item>rus</item>
<item>scc</item>
<item>sin</item>
<item>slo</item>
<item>slv</item>
<item>spa</item>
<item>swa</item>
<item>swe</item>
<item>syr</item>
<item>tgl</item>
<item>tam</item>
<item>tel</item>
<item>tha</item>
<item>tur</item>
<item>ukr</item>
<item>urd</item>
<item>vie</item>
</string-array>
<string-array name="subtitles_size_entries">
<item>@string/subtitles_size_small</item>
<item>@string/subtitles_size_normal</item>
<item>@string/subtitles_size_big</item>
<item>@string/subtitles_size_huge</item>
</string-array>
<string-array name="subtitles_size_values">
<item>19</item>
<item>16</item>
<item>13</item>
<item>10</item>
</string-array>
<string-array name="subtitles_color_entries">
<item>@string/subtitles_color_white</item>
<item>@string/subtitles_color_gray</item>
<item>@string/subtitles_color_pink</item>
<item>@string/subtitles_color_blue</item>
<item>@string/subtitles_color_yellow</item>
<item>@string/subtitles_color_green</item>
</string-array>
<string-array name="subtitles_color_values">
<item>16777215</item>
<item>12632256</item>
<item>16711935</item>
<item>65535</item>
<item>16776960</item>
<item>65280</item>
</string-array>
<string-array name="video_app_switch_action_titles" translatable="false">
<item>@string/stop</item>
<item>@string/play_as_audio_background</item>
<item>@string/play_pip_title</item>
</string-array>
<string-array name="video_app_switch_action_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<string-array name="hardware_acceleration_list">
<item>@string/automatic</item>
<item>@string/hardware_acceleration_disabled</item>
<item>@string/hardware_acceleration_decoding</item>
<item>@string/hardware_acceleration_full</item>
</string-array>
<string-array name="hardware_acceleration_values" translatable="false">
<item>-1</item>
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<string-array name="dev_hardware_decoder_list">
<item>@string/automatic</item>
<item>@string/dev_hardware_decoder_omx</item>
<item>@string/dev_hardware_decoder_omx_dr</item>
<item>@string/dev_hardware_decoder_mediacodec</item>
<item>@string/dev_hardware_decoder_mediacodec_dr</item>
</string-array>
<string-array name="dev_hardware_decoder_values" translatable="false">
<item>-1</item>
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
<string-array name="deblocking_list">
<item>@string/automatic</item>
<item>@string/deblocking_always</item>
<item>@string/deblocking_nonref</item>
<item>@string/deblocking_nonkey</item>
<item>@string/deblocking_all</item>
</string-array>
<string-array name="deblocking_values" translatable="false">
<item>-1</item>
<item>0</item>
<item>1</item>
<item>3</item>
<item>4</item>
</string-array>
<string-array name="screen_orientation_list">
<item>@string/screen_orientation_sensor</item>
<item>@string/screen_orientation_start_lock</item>
<item>@string/screen_orientation_landscape</item>
<item>@string/screen_orientation_portrait</item>
</string-array>
<string-array name="screen_orientation_values" translatable="false">
<item>99</item>
<item>100</item>
<item>101</item>
<item>102</item>
</string-array>
<string-array name="list_title_ellipsize_list">
<item>@string/list_title_ellipsize_default</item>
<item>@string/list_title_ellipsize_left</item>
<item>@string/list_title_ellipsize_right</item>
<item>@string/list_title_ellipsize_middle</item>
<item>@string/list_title_ellipsize_marquee</item>
</string-array>
<string-array name="list_title_ellipsize_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</string-array>
<string-array name="subtitles_encoding_list" tools:ignore="TypographyDashes">
<item>Default (Windows-1252)</item>
<item>Universal (UTF-8)</item>
<item>Universal (UTF-16)</item>
<item>Universal (big endian UTF-16)</item>
<item>Universal (little endian UTF-16)</item>
<item>Universal, Chinese (GB18030)</item>
<item>Western European (Latin-9)</item>
<item>Western European (Windows-1252)</item>
<item>Western European (IBM 00850)</item>
<item>Eastern European (Latin-2)</item>
<item>Eastern European (Windows-1250)</item>
<item>Esperanto (Latin-3)</item>
<item>Nordic (Latin-6)</item>
<item>Cyrillic (Windows-1251)</item>
<item>Russian (KOI8-R)</item>
<item>Ukrainian (KOI8-U)</item>
<item>Arabic (ISO 8859-6)</item>
<item>Arabic (Windows-1256)</item>
<item>Greek (ISO 8859-7)</item>
<item>Greek (Windows-1253)</item>
<item>Hebrew (ISO 8859-8)</item>
<item>Hebrew (Windows-1255)</item>
<item>Turkish (ISO 8859-9)</item>
<item>Turkish (Windows-1254)</item>
<item>Thai (TIS 620-2533/ISO 8859-11)</item>
<item>Thai (Windows-874)</item>
<item>Baltic (Latin-7)</item>
<item>Baltic (Windows-1257)</item>
<item>Celtic (Latin-8)</item>
<item>South-Eastern European (Latin-10)</item>
<item>Simplified Chinese (ISO-2022-CN-EXT)</item>
<item>Simplified Chinese Unix (EUC-CN)</item>
<item>Japanese (7-bits JIS/ISO-2022-JP-2)</item>
<item>Japanese Unix (EUC-JP)</item>
<item>Japanese (Shift JIS)</item>
<item>Korean (EUC-KR/CP949)</item>
<item>Korean (ISO-2022-KR)</item>
<item>Traditional Chinese (Big5)</item>
<item>Traditional Chinese Unix (EUC-TW)</item>
<item>Hong-Kong Supplementary (HKSCS)</item>
<item>Vietnamese (VISCII)</item>
<item>Vietnamese (Windows-1258)</item>
</string-array>
<string-array name="subtitles_encoding_values" translatable="false" tools:ignore="TypographyDashes">
<item></item>
<item>UTF-8</item>
<item>UTF-16</item>
<item>UTF-16BE</item>
<item>UTF-16LE</item>
<item>GB18030</item>
<item>ISO-8859-15</item>
<item>Windows-1252</item>
<item>IBM850</item>
<item>ISO-8859-2</item>
<item>Windows-1250</item>
<item>ISO-8859-3</item>
<item>ISO-8859-10</item>
<item>Windows-1251</item>
<item>KOI8-R</item>
<item>KOI8-U</item>
<item>ISO-8859-6</item>
<item>Windows-1256</item>
<item>ISO-8859-7</item>
<item>Windows-1253</item>
<item>ISO-8859-8</item>
<item>Windows-1255</item>
<item>ISO-8859-9</item>
<item>Windows-1254</item>
<item>ISO-8859-11</item>
<item>Windows-874</item>
<item>ISO-8859-13</item>
<item>Windows-1257</item>
<item>ISO-8859-14</item>
<item>ISO-8859-16</item>
<item>ISO-2022-CN-EXT</item>
<item>EUC-CN</item>
<item>ISO-2022-JP-2</item>
<item>EUC-JP</item>
<item>Shift_JIS</item>
<item>CP949</item>
<item>ISO-2022-KR</item>
<item>Big5</item>
<item>ISO-2022-TW</item>
<item>Big5-HKSCS</item>
<item>VISCII</item>
<item>Windows-1258</item>
</string-array>
<string-array name="aouts">
<item>@string/aout_audiotrack</item>
<item>@string/aout_opensles</item>
</string-array>
<string-array name="aouts_values" translatable="false">
<item>0</item>
<item>1</item>
</string-array>
<string-array name="casting_quality">
<item>@string/casting_quality_high</item>
<item>@string/casting_quality_medium</item>
<item>@string/casting_quality_low</item>
<item>@string/casting_quality_lowcpu</item>
</string-array>
<string-array name="casting_quality_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
<string-array name="opengl_list">
<item>@string/opengl_automatic</item>
<item>@string/opengl_on</item>
<item>@string/opengl_off</item>
</string-array>
<string-array name="opengl_values" translatable="false">
<item>-1</item>
<item>1</item>
<item>0</item>
</string-array>
<string-array name="chroma_formats_values" translatable="false">
<item>RV32</item>
<item>RV16</item>
<item>YV12</item>
</string-array>
<string-array name="chroma_formats" translatable="false">
<item>RGB 32-bit</item>
<item>RGB 16-bit</item>
<item>YUV</item>
</string-array>
<string-array name="daynight_mode_entries">
<item>@string/daynight_follow_system_title</item>
<!--item>@string/daynight_battery_title</item-->
<item>@string/daynight_title</item>
<item>@string/light_theme</item>
<item>@string/enable_black_theme</item>
</string-array>
<string-array name="daynight_mode_values">
<item>-1</item>
<!--item>3</item-->
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<string-array name="ask_confirmation_entries">
<item>@string/always</item>
<item>@string/never</item>
<item>@string/ask_confirmation</item>
</string-array>
<string-array name="ask_confirmation_values">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
</resources>
\ No newline at end of file
......@@ -372,6 +372,23 @@
<item>3</item>
</string-array>
<string-array name="preferred_resolution">
<item>@string/pref_resolution_best_available</item>
<item>Full HD (1080p)</item>
<item>HD (720p)</item>
<item>SD (480p)</item>
<item>LD (360p)</item>
<item>@string/pref_resolution_very_low</item>
</string-array>
<string-array name="preferred_resolution_values" translatable="false">
<item>-1</item>
<item>1080</item>
<item>720</item>
<item>480</item>
<item>360</item>
<item>240</item>
</string-array>
<string-array name="opengl_list">
<item>@string/opengl_automatic</item>
<item>@string/opengl_on</item>
......
......@@ -785,5 +785,9 @@
<string name="soundfont">MIDI SoundFont</string>
<string name="soundfont_summary">Pick a SoundFont file to play midi audio tracks</string>
<string name="search_prefs">Search settings</string>
<string name="preferred_resolution">Preferred video resolution</string>
<string name="preferred_resolution_summary">Maximum video quality for streams, when applicable, will be: %s</string>
<string name="pref_resolution_best_available">Best available</string>
<string name="pref_resolution_very_low">Very low definition (240p)</string>
</resources>
......@@ -23,19 +23,22 @@
package org.videolan.television.ui.preferences
import android.annotation.TargetApi
import android.content.SharedPreferences
import android.os.Build
import android.os.Bundle
import androidx.preference.Preference
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.ObsoleteCoroutinesApi
import org.videolan.resources.AndroidDevices
import org.videolan.resources.VLCInstance
import org.videolan.tools.*
import org.videolan.vlc.R
import org.videolan.vlc.gui.preferences.PreferencesActivity
@ExperimentalCoroutinesApi
@ObsoleteCoroutinesApi
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
class PreferencesVideo : BasePreferenceFragment() {
class PreferencesVideo : BasePreferenceFragment(), SharedPreferences.OnSharedPreferenceChangeListener {
override fun getXml() = R.xml.preferences_video
......@@ -54,4 +57,27 @@ class PreferencesVideo : BasePreferenceFragment() {
findPreference<Preference>(POPUP_KEEPSCREEN)?.isVisible = false
findPreference<Preference>(POPUP_FORCE_LEGACY)?.isVisible = false
}
override fun onStart() {
super.onStart()
preferenceScreen.sharedPreferences.registerOnSharedPreferenceChangeListener(this)
}
override fun onStop() {
super.onStop()
preferenceScreen.sharedPreferences
.unregisterOnSharedPreferenceChangeListener(this)
}
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String) {
when (key) {
VIDEO_HUD_TIMEOUT -> {
Settings.videoHudDelay = sharedPreferences.getString(VIDEO_HUD_TIMEOUT, "2")?.toInt() ?: 2
}
"preferred_resolution" -> {
VLCInstance.restart()
(activity as? PreferencesActivity)?.restartMediaPlayer()
}
}
}
}
......@@ -41,6 +41,13 @@
android:key="popup_force_legacy"
android:summary="@string/popup_force_legacy_summary"
android:title="@string/popup_force_legacy_title"/>
<ListPreference
android:defaultValue="-1"
android:entries="@array/preferred_resolution"
android:entryValues="@array/preferred_resolution_values"
android:key="preferred_resolution"
android:summary="@string/preferred_resolution_summary"
android:title="@string/preferred_resolution"/>
<ListPreference
app:singleLineTitle="false"
android:defaultValue="0"
......
......@@ -28,6 +28,7 @@ import androidx.preference.Preference
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.ObsoleteCoroutinesApi
import org.videolan.libvlc.util.AndroidUtil
import org.videolan.resources.VLCInstance
import org.videolan.tools.*
import org.videolan.vlc.R
......@@ -61,6 +62,10 @@ class PreferencesVideo : BasePreferenceFragment(), SharedPreferences.OnSharedPre
VIDEO_HUD_TIMEOUT -> {
Settings.videoHudDelay = sharedPreferences.getString(VIDEO_HUD_TIMEOUT, "2")?.toInt() ?: 2
}
"preferred_resolution" -> {
VLCInstance.restart()
(activity as? PreferencesActivity)?.restartMediaPlayer()
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment