aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorda-anda <da-anda@xbmc.org>2014-01-22 16:02:47 +0100
committerJonathan Marshall <jmarshall@never.you.mind>2014-02-27 11:53:06 +1300
commitbd82b521a2589c7fbfb3a4ccfbc57a9c36e056b6 (patch)
treeeeb3d91f5cd4000be80ebe084b3cba7a099880de
parent8c8d906adf2a82147a66b3409b600ff8d113afe9 (diff)
[settings] cleanup video decoding settings (hw-accel + frame-multi-threaded) by moving them to their own settings category
-rwxr-xr-xlanguage/English/strings.po48
-rw-r--r--system/settings/android.xml14
-rw-r--r--system/settings/darwin_ios.xml9
-rw-r--r--system/settings/darwin_osx.xml9
-rw-r--r--system/settings/rbp.xml13
-rw-r--r--system/settings/settings.xml370
-rw-r--r--xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp5
-rw-r--r--xbmc/settings/VideoSettings.h6
8 files changed, 292 insertions, 182 deletions
diff --git a/language/English/strings.po b/language/English/strings.po
index 6885a52fca..dd02310691 100755
--- a/language/English/strings.po
+++ b/language/English/strings.po
@@ -5992,12 +5992,14 @@ msgctxt "#13438"
msgid "Allow hardware acceleration (amcodec)"
msgstr ""
+#: system/settings/settings.xml
msgctxt "#13439"
msgid "Allow hardware acceleration (MediaCodec)"
msgstr ""
+#: system/settings/settings.xml
msgctxt "#13440"
-msgid "Allow frame-multi-threaded decoding"
+msgid "Allow multi threaded software decoding"
msgstr ""
#: system/settings/settings.xml
@@ -6066,7 +6068,25 @@ msgctxt "#13452"
msgid "Enable this option to use hardware acceleration for VC-1 based codecs. If disabled the CPU will be used instead. Especially VC-1 Interlaced fails hard on Intel hardware."
msgstr ""
-#empty strings from id 13453 to 13499
+#. Label for a setting to configure the video decoding method
+#: system/settings/settings.xml
+msgctxt "#13454"
+msgid "Decoding method"
+msgstr ""
+
+#. Option for video related setting #13454: Decoding method
+#: system/settings/settings.xml
+msgctxt "#13455"
+msgid "Software"
+msgstr ""
+
+#. Option for video related setting #13454: Decoding method
+#: system/settings/settings.xml
+msgctxt "#13456"
+msgid "Hardware accelerated"
+msgstr ""
+
+#empty strings from id 13457 to 13499
#: system/settings/settings.xml
msgctxt "#13500"
@@ -6664,7 +6684,13 @@ msgctxt "#14100"
msgid "Stop ripping CD"
msgstr ""
-#empty strings from id 14101 to 15011
+#. Name of a settings category related to video playback
+#: system/settings/settings.xml
+msgctxt "#14101"
+msgid "Acceleration"
+msgstr ""
+
+#empty strings from id 14102 to 15011
#: xbmc/video/VideoDatabase.cpp
msgctxt "#15012"
@@ -15111,7 +15137,7 @@ msgstr ""
#. Description of setting "Videos -> Playback -> Allow frame-multi-threaded decoding" with label #13440
#: system/settings/settings.xml
msgctxt "#36423"
-msgid "Use frame-multi-threaded decoding instead of hardware accelerated decoding (less reliable than default single thread mode)."
+msgid "Enables frame-multi-threaded software decoding (less reliable than the default single threaded mode)."
msgstr ""
#: system/settings/settings.xml
@@ -15145,7 +15171,19 @@ msgctxt "#36429"
msgid "Select this if the audio out connection only supports multichannel audio as Dolby Digital 5.1, such as an SPDIF connection. If your system supports LPCM multichannel sound via HDMI, leave this disabled."
msgstr ""
-#empty strings from id 36430 to 36499
+#. Description for setting category #14101: Video Acceleration
+#: system/settings/settings.xml
+msgctxt "#36430"
+msgid "Configure how video processing will be accelerated. This includes things like decoding and scaling."
+msgstr ""
+
+#. Description for video related setting #13454: Decoding mode
+#: system/settings/settings.xml
+msgctxt "#36431"
+msgid "Defines whether video decoding should be performed in software (requires more CPU) or with hardware acceleration where possible."
+msgstr ""
+
+#empty strings from id 36432 to 36499
#end reservation
#: system/settings/settings.xml
diff --git a/system/settings/android.xml b/system/settings/android.xml
index 54d8f571b8..0aad89597c 100644
--- a/system/settings/android.xml
+++ b/system/settings/android.xml
@@ -8,10 +8,13 @@
</category>
</section>
<section id="videos">
- <category id="videoplayer">
- <group id="2">
- <setting id="videoplayer.usestagefright" type="boolean" label="13436" help="36260">
+ <category id="videoacceleration">
+ <group id="3">
+ <setting id="videoplayer.usestagefright" type="boolean" parent="videoplayer.decodingmethod" label="13436" help="36260">
<requirement>HAVE_LIBSTAGEFRIGHTDECODER</requirement>
+ <dependencies>
+ <dependency type="enable" setting="videoplayer.decodingmethod" operator="is">1</dependency>
+ </dependencies>
<level>2</level>
<default>true</default>
<updates>
@@ -19,8 +22,11 @@
</updates>
<control type="toggle" />
</setting>
- <setting id="videoplayer.usemediacodec" type="boolean" label="13439" help="36544">
+ <setting id="videoplayer.usemediacodec" type="boolean" parent="videoplayer.decodingmethod" label="13439" help="36544">
<visible>HAS_MEDIACODEC</visible>
+ <dependencies>
+ <dependency type="enable" setting="videoplayer.decodingmethod" operator="is">1</dependency>
+ </dependencies>
<level>2</level>
<default>true</default>
<updates>
diff --git a/system/settings/darwin_ios.xml b/system/settings/darwin_ios.xml
index 1d67f9bb8c..af1b19dd1d 100644
--- a/system/settings/darwin_ios.xml
+++ b/system/settings/darwin_ios.xml
@@ -3,9 +3,6 @@
<section id="videos">
<category id="videoplayer">
<group id="2">
- <setting id="videoplayer.hqscalers">
- <visible>false</visible>
- </setting>
<setting id="videoplayer.adjustrefreshrate">
<visible>false</visible>
</setting>
@@ -14,6 +11,12 @@
</setting>
</group>
</category>
+ <category id="videoacceleration">
+ <group id="1">
+ <setting id="videoplayer.hqscalers">
+ <visible>false</visible>
+ </setting>
+ </category>
</section>
<section id="music">
<category id="audiocds">
diff --git a/system/settings/darwin_osx.xml b/system/settings/darwin_osx.xml
index aa1b414de1..0a772775a8 100644
--- a/system/settings/darwin_osx.xml
+++ b/system/settings/darwin_osx.xml
@@ -10,9 +10,12 @@
</category>
</section>
<section id="videos">
- <category id="videoplayer">
- <group id="2">
- <setting id="videoplayer.usevda" type="boolean" label="13429" help="36160">
+ <category id="videoacceleration">
+ <group id="3">
+ <setting id="videoplayer.usevda" type="boolean" parent="videoplayer.decodingmethod" label="13429" help="36160">
+ <dependencies>
+ <dependency type="enable" setting="videoplayer.decodingmethod" operator="is">1</dependency>
+ </dependencies>
<level>2</level>
<default>true</default>
<control type="toggle" />
diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml
index 290d809cf9..6f5889f5c2 100644
--- a/system/settings/rbp.xml
+++ b/system/settings/rbp.xml
@@ -3,15 +3,16 @@
<section id="videos">
<category id="videoplayer">
<group id="2">
- <setting id="videoplayer.rendermethod">
- <visible>false</visible>
- </setting>
- <setting id="videoplayer.hqscalers">
- <visible>false</visible>
- </setting>
<setting id="videoplayer.synctype">
<visible>false</visible>
</setting>
+ </group>
+ </category>
+ <category id="videoacceleration">
+ <group id="1">
+ <visible>false</visible>
+ </group>
+ <group id="3">
<setting id="videoplayer.useframemtdec">
<visible>false</visible>
</setting>
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
index f23094b3a6..2eb2e64e08 100644
--- a/system/settings/settings.xml
+++ b/system/settings/settings.xml
@@ -387,6 +387,126 @@
</setting>
</group>
<group id="2">
+ <setting id="videoplayer.adjustrefreshrate" type="integer" label="170" help="36164">
+ <level>2</level>
+ <default>0</default> <!-- ADJUST_REFRESHRATE_OFF -->
+ <constraints>
+ <options>
+ <option label="351">0</option> <!-- ADJUST_REFRESHRATE_OFF -->
+ <option label="36035">1</option> <!-- ADJUST_REFRESHRATE_ALWAYS -->
+ <option label="36036">2</option> <!-- ADJUST_REFRESHRATE_ON_STARTSTOP -->
+ </options>
+ </constraints>
+ <control type="spinner" format="string" />
+ </setting>
+ <setting id="videoplayer.pauseafterrefreshchange" type="integer" parent="videoplayer.adjustrefreshrate" label="13550" help="36165">
+ <level>2</level>
+ <default>0</default>
+ <constraints>
+ <options>refreshchangedelays</options>
+ </constraints>
+ <dependencies>
+ <dependency type="enable" setting="videoplayer.adjustrefreshrate" operator="!is">0</dependency> <!-- ADJUST_REFRESHRATE_OFF -->
+ </dependencies>
+ <control type="spinner" format="string" />
+ </setting>
+ <setting id="videoplayer.usedisplayasclock" type="boolean" label="13510" help="36166">
+ <level>2</level>
+ <default>false</default>
+ <control type="toggle" />
+ </setting>
+ <setting id="videoplayer.synctype" type="integer" parent="videoplayer.usedisplayasclock" label="13500" help="36167">
+ <level>2</level>
+ <default>2</default> <!-- SYNC_RESAMPLE -->
+ <constraints>
+ <options>
+ <option label="13501">0</option> <!-- SYNC_DISCON -->
+ <option label="13502">1</option> <!-- SYNC_SKIPDUP -->
+ <option label="13503">2</option> <!-- SYNC_RESAMPLE -->
+ </options>
+ </constraints>
+ <dependencies>
+ <dependency type="enable" setting="videoplayer.usedisplayasclock" operator="is">true</dependency>
+ </dependencies>
+ <control type="spinner" format="string" />
+ </setting>
+ <setting id="videoplayer.maxspeedadjust" type="number" label="13504" help="36168">
+ <level>4</level>
+ <default>5.0</default>
+ <constraints>
+ <minimum>0.0</minimum>
+ <step>0.1</step>
+ <maximum>10.0</maximum>
+ </constraints>
+ <dependencies>
+ <dependency type="enable">
+ <and>
+ <condition setting="videoplayer.usedisplayasclock" operator="is">true</condition>
+ <condition setting="videoplayer.synctype" operator="is">2</condition> <!-- SYNC_RESAMPLE -->
+ </and>
+ </dependency>
+ </dependencies>
+ <control type="spinner" format="number" />
+ </setting>
+ <setting id="videoplayer.errorinaspect" type="integer" label="22021" help="36170">
+ <level>2</level>
+ <default>0</default>
+ <constraints>
+ <minimum label="231">0</minimum>
+ <step>1</step>
+ <maximum>20</maximum>
+ </constraints>
+ <control type="spinner" format="string">
+ <formatlabel>14047</formatlabel>
+ </control>
+ </setting>
+ <setting id="videoplayer.stretch43" type="integer" label="173" help="36171">
+ <level>1</level>
+ <default>0</default> <!-- ViewModeNormal -->
+ <constraints>
+ <options>
+ <option label="630">0</option> <!-- ViewModeNormal -->
+ <option label="633">3</option> <!-- ViewModeWideZoom -->
+ <option label="634">4</option> <!-- ViewModeStretch16x9 -->
+ <option label="631">1</option> <!-- ViewModeZoom -->
+ </options>
+ </constraints>
+ <control type="spinner" format="string" />
+ </setting>
+ </group>
+ <group id="3">
+ <setting id="videoplayer.teletextenabled" type="boolean" label="23050" help="36174">
+ <level>1</level>
+ <default>true</default>
+ <control type="toggle" />
+ </setting>
+ <setting id="videoplayer.teletextscale" type="boolean" label="23055" help="36175">
+ <level>1</level>
+ <default>true</default>
+ <control type="toggle" />
+ </setting>
+ </group>
+ <group id="4">
+ <setting id="videoplayer.stereoscopicplaybackmode" type="integer" label="36520" help="36537">
+ <level>2</level>
+ <default>0</default>
+ <constraints>
+ <options>
+ <option label="36521">0</option> <!-- ASK -->
+ <option label="36522">1</option> <!-- Preferred mode -->
+ </options>
+ </constraints>
+ <control type="spinner" format="integer" delayed="true"/>
+ </setting>
+ <setting id="videoplayer.quitstereomodeonstop" type="boolean" label="36526" help="36538">
+ <level>2</level>
+ <default>true</default>
+ <control type="toggle" />
+ </setting>
+ </group>
+ </category>
+ <category id="videoacceleration" label="14101" help="36430">
+ <group id="1">
<setting id="videoplayer.rendermethod" type="integer" label="13415" help="36153">
<level>2</level>
<default>0</default> <!-- RENDER_METHOD_AUTO -->
@@ -395,7 +515,7 @@
</constraints>
<control type="spinner" format="string" />
</setting>
- <setting id="videoplayer.hqscalers" type="integer" label="13435" help="36154">
+ <setting id="videoplayer.hqscalers" type="integer" parent="videoplayer.rendermethod" label="13435" help="36154">
<level>2</level>
<default>0</default>
<constraints>
@@ -407,7 +527,53 @@
<formatlabel>14047</formatlabel>
</control>
</setting>
- <setting id="videoplayer.useframemtdec" type="boolean" label="13440" help="36423">
+ <setting id="videoplayer.usepbo" type="boolean" parent="videoplayer.rendermethod" label="13424" help="36163">
+ <requirement>HAS_GL</requirement>
+ <dependencies>
+ <dependency type="enable" setting="videoplayer.rendermethod" operator="is">1</dependency> <!-- only supported with ARB -->
+ </dependencies>
+ <level>4</level>
+ <default>true</default>
+ <control type="toggle" />
+ </setting>
+ </group>
+ <group id="2">
+ <requirement>
+ <and>
+ <or>
+ <condition>HAS_GL</condition>
+ <condition>HAS_GLESv2</condition>
+ </or>
+ <condition>HAVE_LIBVDPAU</condition>
+ </and>
+ </requirement>
+ <setting id="videoplayer.vdpauUpscalingLevel" type="boolean" label="13121" help="36173">
+ <level>4</level>
+ <default>false</default>
+ <control type="toggle" />
+ </setting>
+ <setting id="videoplayer.vdpau_allow_xrandr" type="boolean" label="13122" help="36172">
+ <level>4</level>
+ <default>false</default>
+ <control type="toggle" />
+ </setting>
+ </group>
+ <group id="3">
+ <setting id="videoplayer.decodingmethod" type="integer" label="13454" help="36431">
+ <level>2</level>
+ <default>1</default>
+ <constraints>
+ <options>
+ <option label="13455">0</option> <!-- Software -->
+ <option label="13456">1</option> <!-- Hardware -->
+ </options>
+ </constraints>
+ <control type="spinner" format="integer" />
+ </setting>
+ <setting id="videoplayer.useframemtdec" type="boolean" parent="videoplayer.decodingmethod" label="13440" help="36423">
+ <dependencies>
+ <dependency type="enable" setting="videoplayer.decodingmethod" operator="is">0</dependency>
+ </dependencies>
<level>2</level>
<default>false</default>
<control type="toggle" />
@@ -415,7 +581,7 @@
<setting id="videoplayer.useamcodec" type="boolean" label="13438" help="36422">
<requirement>HAVE_AMCODEC</requirement>
<dependencies>
- <dependency type="enable" setting="videoplayer.useframemtdec" operator="is">false</dependency> <!-- disable when frame threading is active -->
+ <dependency type="enable" setting="videoplayer.decodingmethod" operator="is">1</dependency>
</dependencies>
<level>2</level>
<default>true</default>
@@ -427,7 +593,7 @@
<setting id="videoplayer.usevdpau" type="boolean" label="13425" help="36155">
<requirement>HAVE_LIBVDPAU</requirement>
<dependencies>
- <dependency type="enable" setting="videoplayer.useframemtdec" operator="is">false</dependency> <!-- disable when frame threading is active -->
+ <dependency type="enable" setting="videoplayer.decodingmethod" operator="is">1</dependency>
</dependencies>
<level>2</level>
<default>true</default>
@@ -441,7 +607,7 @@
<dependency type="enable">
<and>
<condition setting="videoplayer.usevdpau" operator="is">true</condition> <!-- USE VDPAU -->
- <condition setting="videoplayer.useframemtdec" operator="is">false</condition> <!-- disable when frame threading is active -->
+ <condition setting="videoplayer.decodingmethod" operator="is">1</condition>
</and>
</dependency>
</dependencies>
@@ -452,7 +618,12 @@
<level>3</level>
<default>true</default>
<dependencies>
- <dependency type="enable" setting="videoplayer.usevdpau" operator="is">true</dependency> <!-- USE VDPAU -->
+ <dependency type="enable">
+ <and>
+ <condition setting="videoplayer.usevdpau" operator="is">true</condition> <!-- USE VDPAU -->
+ <condition setting="videoplayer.decodingmethod" operator="is">1</condition>
+ </and>
+ </dependency>
<dependency type="visible" on="property" name="codecoptionvisible" setting="videoplayer.usevdpaumpeg2" operator="is">true</dependency>
</dependencies>
<control type="toggle" />
@@ -462,7 +633,12 @@
<level>3</level>
<default>false</default>
<dependencies>
- <dependency type="enable" setting="videoplayer.usevdpau" operator="is">true</dependency> <!-- USE VDPAU -->
+ <dependency type="enable">
+ <and>
+ <condition setting="videoplayer.usevdpau" operator="is">true</condition> <!-- USE VDPAU -->
+ <condition setting="videoplayer.decodingmethod" operator="is">1</condition>
+ </and>
+ </dependency>
<dependency type="visible" on="property" name="codecoptionvisible" setting="videoplayer.usevdpaumpeg4" operator="is">true</dependency>
</dependencies>
<control type="toggle" />
@@ -472,7 +648,12 @@
<level>3</level>
<default>true</default>
<dependencies>
- <dependency type="enable" setting="videoplayer.usevdpau" operator="is">true</dependency> <!-- USE VDPAU -->
+ <dependency type="enable">
+ <and>
+ <condition setting="videoplayer.usevdpau" operator="is">true</condition> <!-- USE VDPAU -->
+ <condition setting="videoplayer.decodingmethod" operator="is">1</condition>
+ </and>
+ </dependency>
<dependency type="visible" on="property" name="codecoptionvisible" setting="videoplayer.usevdpauvc1" operator="is">true</dependency>
</dependencies>
<control type="toggle" />
@@ -480,7 +661,7 @@
<setting id="videoplayer.usevaapi" type="boolean" label="13426" help="36156">
<requirement>HAVE_LIBVA</requirement>
<dependencies>
- <dependency type="enable" setting="videoplayer.useframemtdec" operator="is">false</dependency> <!-- disable when frame threading is active -->
+ <dependency type="enable" setting="videoplayer.decodingmethod" operator="is">1</dependency>
</dependencies>
<level>2</level>
<default>true</default>
@@ -489,7 +670,12 @@
<setting id="videoplayer.usevaapimpeg2" type="boolean" parent="videoplayer.usevaapi" label="13447" help="13448">
<requirement>HAVE_LIBVA</requirement>
<dependencies>
- <dependency type="visible" setting="videoplayer.usevaapi" operator="is">true</dependency>
+ <dependency type="enable">
+ <and>
+ <condition setting="videoplayer.usevaapi" operator="is">true</condition>
+ <condition setting="videoplayer.decodingmethod" operator="is">1</condition>
+ </and>
+ </dependency>
<dependency type="visible" on="property" name="codecoptionvisible" setting="videoplayer.usevaapimpeg2" operator="is">true</dependency>
</dependencies>
<level>3</level>
@@ -499,7 +685,12 @@
<setting id="videoplayer.usevaapimpeg4" type="boolean" parent="videoplayer.usevaapi" label="13449" help="13450">
<requirement>HAVE_LIBVA</requirement>
<dependencies>
- <dependency type="visible" setting="videoplayer.usevaapi" operator="is">true</dependency>
+ <dependency type="enable">
+ <and>
+ <condition setting="videoplayer.usevaapi" operator="is">true</condition>
+ <condition setting="videoplayer.decodingmethod" operator="is">1</condition>
+ </and>
+ </dependency>
<dependency type="visible" on="property" name="codecoptionvisible" setting="videoplayer.usevaapimpeg4" operator="is">true</dependency>
</dependencies>
<level>3</level>
@@ -509,7 +700,12 @@
<setting id="videoplayer.usevaapivc1" type="boolean" parent="videoplayer.usevaapi" label="13451" help="13452">
<requirement>HAVE_LIBVA</requirement>
<dependencies>
- <dependency type="visible" setting="videoplayer.usevaapi" operator="is">true</dependency>
+ <dependency type="enable">
+ <and>
+ <condition setting="videoplayer.usevaapi" operator="is">true</condition>
+ <condition setting="videoplayer.decodingmethod" operator="is">1</condition>
+ </and>
+ </dependency>
<dependency type="visible" on="property" name="codecoptionvisible" setting="videoplayer.usevaapivc1" operator="is">true</dependency>
</dependencies>
<level>3</level>
@@ -519,7 +715,7 @@
<setting id="videoplayer.usedxva2" type="boolean" label="13427" help="36158">
<requirement>HasDXVA2</requirement>
<dependencies>
- <dependency type="enable" setting="videoplayer.useframemtdec" operator="is">false</dependency> <!-- disable when frame threading is active -->
+ <dependency type="enable" setting="videoplayer.decodingmethod" operator="is">1</dependency>
</dependencies>
<level>2</level>
<default>true</default>
@@ -528,7 +724,7 @@
<setting id="videoplayer.usechd" type="boolean" label="13428" help="36159">
<requirement>HasCrystalHDDevice</requirement>
<dependencies>
- <dependency type="enable" setting="videoplayer.useframemtdec" operator="is">false</dependency> <!-- disable when frame threading is active -->
+ <dependency type="enable" setting="videoplayer.decodingmethod" operator="is">1</dependency>
</dependencies>
<level>2</level>
<default>true</default>
@@ -537,7 +733,7 @@
<setting id="videoplayer.useomx" type="boolean" label="13430" help="36161">
<requirement>HAVE_LIBOPENMAX</requirement>
<dependencies>
- <dependency type="enable" setting="videoplayer.useframemtdec" operator="is">false</dependency> <!-- disable when frame threading is active -->
+ <dependency type="enable" setting="videoplayer.decodingmethod" operator="is">1</dependency>
</dependencies>
<level>2</level>
<default>true</default>
@@ -549,150 +745,6 @@
<default>true</default>
<control type="toggle" />
</setting>
- <setting id="videoplayer.usepbo" type="boolean" label="13424" help="36163">
- <requirement>HAS_GL</requirement>
- <level>4</level>
- <default>true</default>
- <control type="toggle" />
- </setting>
- <setting id="videoplayer.adjustrefreshrate" type="integer" label="170" help="36164">
- <level>2</level>
- <default>0</default> <!-- ADJUST_REFRESHRATE_OFF -->
- <constraints>
- <options>
- <option label="351">0</option> <!-- ADJUST_REFRESHRATE_OFF -->
- <option label="36035">1</option> <!-- ADJUST_REFRESHRATE_ALWAYS -->
- <option label="36036">2</option> <!-- ADJUST_REFRESHRATE_ON_STARTSTOP -->
- </options>
- </constraints>
- <control type="spinner" format="string" />
- </setting>
- <setting id="videoplayer.pauseafterrefreshchange" type="integer" parent="videoplayer.adjustrefreshrate" label="13550" help="36165">
- <level>2</level>
- <default>0</default>
- <constraints>
- <options>refreshchangedelays</options>
- </constraints>
- <dependencies>
- <dependency type="enable" setting="videoplayer.adjustrefreshrate" operator="!is">0</dependency> <!-- ADJUST_REFRESHRATE_OFF -->
- </dependencies>
- <control type="spinner" format="string" />
- </setting>
- <setting id="videoplayer.usedisplayasclock" type="boolean" label="13510" help="36166">
- <level>2</level>
- <default>false</default>
- <control type="toggle" />
- </setting>
- <setting id="videoplayer.synctype" type="integer" parent="videoplayer.usedisplayasclock" label="13500" help="36167">
- <level>2</level>
- <default>2</default> <!-- SYNC_RESAMPLE -->
- <constraints>
- <options>
- <option label="13501">0</option> <!-- SYNC_DISCON -->
- <option label="13502">1</option> <!-- SYNC_SKIPDUP -->
- <option label="13503">2</option> <!-- SYNC_RESAMPLE -->
- </options>
- </constraints>
- <dependencies>
- <dependency type="enable" setting="videoplayer.usedisplayasclock" operator="is">true</dependency>
- </dependencies>
- <control type="spinner" format="string" />
- </setting>
- <setting id="videoplayer.maxspeedadjust" type="number" label="13504" help="36168">
- <level>4</level>
- <default>5.0</default>
- <constraints>
- <minimum>0.0</minimum>
- <step>0.1</step>
- <maximum>10.0</maximum>
- </constraints>
- <dependencies>
- <dependency type="enable">
- <and>
- <condition setting="videoplayer.usedisplayasclock" operator="is">true</condition>
- <condition setting="videoplayer.synctype" operator="is">2</condition> <!-- SYNC_RESAMPLE -->
- </and>
- </dependency>
- </dependencies>
- <control type="spinner" format="number" />
- </setting>
- <setting id="videoplayer.errorinaspect" type="integer" label="22021" help="36170">
- <level>2</level>
- <default>0</default>
- <constraints>
- <minimum label="231">0</minimum>
- <step>1</step>
- <maximum>20</maximum>
- </constraints>
- <control type="spinner" format="string">
- <formatlabel>14047</formatlabel>
- </control>
- </setting>
- <setting id="videoplayer.stretch43" type="integer" label="173" help="36171">
- <level>1</level>
- <default>0</default> <!-- ViewModeNormal -->
- <constraints>
- <options>
- <option label="630">0</option> <!-- ViewModeNormal -->
- <option label="633">3</option> <!-- ViewModeWideZoom -->
- <option label="634">4</option> <!-- ViewModeStretch16x9 -->
- <option label="631">1</option> <!-- ViewModeZoom -->
- </options>
- </constraints>
- <control type="spinner" format="string" />
- </setting>
- <setting id="videoplayer.vdpau_allow_xrandr" type="boolean" label="13122" help="36172">
- <requirement>HAVE_LIBVDPAU</requirement>
- <level>4</level>
- <default>false</default>
- <control type="toggle" />
- </setting>
- </group>
- <group id="3">
- <requirement>
- <and>
- <or>
- <condition>HAS_GL</condition>
- <condition>HAS_GLESv2</condition>
- </or>
- <condition>HAVE_LIBVDPAU</condition>
- </and>
- </requirement>
- <setting id="videoplayer.vdpauUpscalingLevel" type="boolean" label="13121" help="36173">
- <level>4</level>
- <default>false</default>
- <control type="toggle" />
- </setting>
- </group>
- <group id="4">
- <setting id="videoplayer.teletextenabled" type="boolean" label="23050" help="36174">
- <level>1</level>
- <default>true</default>
- <control type="toggle" />
- </setting>
- <setting id="videoplayer.teletextscale" type="boolean" label="23055" help="36175">
- <level>1</level>
- <default>true</default>
- <control type="toggle" />
- </setting>
- </group>
- <group id="5">
- <setting id="videoplayer.stereoscopicplaybackmode" type="integer" label="36520" help="36537">
- <level>2</level>
- <default>0</default>
- <constraints>
- <options>
- <option label="36521">0</option> <!-- ASK -->
- <option label="36522">1</option> <!-- Preferred mode -->
- </options>
- </constraints>
- <control type="spinner" format="integer" delayed="true"/>
- </setting>
- <setting id="videoplayer.quitstereomodeonstop" type="boolean" label="36526" help="36538">
- <level>2</level>
- <default>true</default>
- <control type="toggle" />
- </setting>
</group>
</category>
<category id="myvideos" label="14081" help="36601">
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
index a028d5e920..9b6a34df86 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
@@ -34,6 +34,7 @@
#endif
#include "settings/AdvancedSettings.h"
#include "settings/Settings.h"
+#include "settings/VideoSettings.h"
#include "utils/log.h"
#include "boost/shared_ptr.hpp"
#include "threads/Atomics.h"
@@ -70,7 +71,7 @@ enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx
CDVDVideoCodecFFmpeg* ctx = (CDVDVideoCodecFFmpeg*)avctx->opaque;
// if frame threading is enabled hw accel is not allowed
- if(!ctx->IsHardwareAllowed() || CSettings::Get().GetBool("videoplayer.useframemtdec"))
+ if((EDECODEMETHOD) CSettings::Get().GetInt("videoplayer.decodingmethod") != VS_DECODEMETHOD_HARDWARE || !ctx->IsHardwareAllowed())
return ctx->m_dllAvCodec.avcodec_default_get_format(avctx, fmt);
const PixelFormat * cur = fmt;
@@ -249,7 +250,7 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Keep default threading for Hi10p: %d",
m_pCodecContext->thread_type);
}
- else if (CSettings::Get().GetBool("videoplayer.useframemtdec"))
+ else if ((EDECODEMETHOD) CSettings::Get().GetInt("videoplayer.decodingmethod") == VS_DECODEMETHOD_SOFTWARE && CSettings::Get().GetBool("videoplayer.useframemtdec"))
{
CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Keep default threading %d by videoplayer.useframemtdec",
m_pCodecContext->thread_type);
diff --git a/xbmc/settings/VideoSettings.h b/xbmc/settings/VideoSettings.h
index 293f363bc6..32a2e8dcae 100644
--- a/xbmc/settings/VideoSettings.h
+++ b/xbmc/settings/VideoSettings.h
@@ -92,6 +92,12 @@ enum ESCALINGMETHOD
VS_SCALINGMETHOD_MAX // do not use and keep as last enum value.
};
+enum EDECODEMETHOD
+{
+ VS_DECODEMETHOD_SOFTWARE=0,
+ VS_DECODEMETHOD_HARDWARE=1
+};
+
typedef enum {
ViewModeNormal = 0,
ViewModeZoom,