Add video player switch for multi-thread decoding
authorulion <ulion2002@gmail.com>
Mon, 21 Oct 2013 08:58:58 +0000 (16:58 +0800)
committerulion <ulion2002@gmail.com>
Fri, 8 Nov 2013 15:29:18 +0000 (23:29 +0800)
language/English/strings.po
system/settings/settings.xml
xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp

index 5096061..93e3446 100755 (executable)
@@ -5991,7 +5991,11 @@ msgctxt "#13439"
 msgid "Allow hardware acceleration (MediaCodec)"
 msgstr ""
 
-#empty strings from id 13440 to 13499
+msgctxt "#13440"
+msgid "Frame Multi Threaded Decoding (less reliable)"
+msgstr ""
+
+#empty strings from id 13441 to 13499
 
 #: system/settings/settings.xml
 msgctxt "#13500"
@@ -14537,7 +14541,12 @@ msgctxt "#36422"
 msgid "Enable hardware video decode using AMLogic decoder"
 msgstr ""
 
-#empty strings from id 36423 to 36499
+#: system/settings/settings.xml
+msgctxt "#36423"
+msgid "Use ffmpeg frame multiple thread decoding when hardware decoding not working or disabled. (less reliable than default single thread mode)"
+msgstr ""
+
+#empty strings from id 36424 to 36499
 #end reservation
 
 #: system/settings/settings.xml
index 3556adb..8fe7c8f 100644 (file)
           <default>true</default>
           <control type="toggle" />
         </setting>
+        <setting id="videoplayer.useframemtdec" type="boolean" label="13440" help="36423">
+          <level>2</level>
+          <default>false</default>
+          <control type="toggle" />
+        </setting>
         <setting id="videoplayer.adjustrefreshrate" type="integer" label="170" help="36164">
           <level>2</level>
           <default>0</default> <!-- ADJUST_REFRESHRATE_OFF -->
index 143675a..3b316ae 100644 (file)
@@ -253,6 +253,11 @@ 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"))
+  {
+    CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Keep default threading %d by videoplayer.useframemtdec",
+                        m_pCodecContext->thread_type);
+  }
   else
     m_pCodecContext->thread_type = FF_THREAD_SLICE;