Use Kodi video cache setting for transcoding

This commit is contained in:
tomkat83 2017-05-01 20:29:28 +02:00
parent 72ed20e47f
commit 65c31b1eaa
5 changed files with 50 additions and 5 deletions

View file

@ -2281,7 +2281,6 @@ class API():
'partIndex': self.part, 'partIndex': self.part,
'hasMDE': 1, 'hasMDE': 1,
'location': 'lan', 'location': 'lan',
'mediaBufferSize': '16384',
'subtitleSize': settings('subtitleSize') 'subtitleSize': settings('subtitleSize')
# 'copyts': 1, # 'copyts': 1,
# 'offset': 0, # Resume point # 'offset': 0, # Resume point

View file

@ -6,7 +6,8 @@ import logging
import xbmc import xbmc
import xbmcgui import xbmcgui
from utils import settings, window, language as lang, tryEncode from utils import settings, window, language as lang, tryEncode, \
get_advancessettings_xml_setting
import downloadutils import downloadutils
from userclient import UserClient from userclient import UserClient
@ -399,6 +400,16 @@ class InitialSetup():
log.info("Initial setup called.") log.info("Initial setup called.")
dialog = self.dialog dialog = self.dialog
# Get current Kodi video cache setting
cache = get_advancessettings_xml_setting(['cache', 'memorysize'])
if cache is not None:
cache = str(cache.text)
else:
# Kodi default cache
cache = '20971520'
log.info('Current Kodi video memory cache in bytes: %s' % cache)
settings('kodi_video_cache', value=cache)
# Optionally sign into plex.tv. Will not be called on very first run # Optionally sign into plex.tv. Will not be called on very first run
# as plexToken will be '' # as plexToken will be ''
settings('plex_status', value='Not logged in to plex.tv') settings('plex_status', value='Not logged in to plex.tv')

View file

@ -59,7 +59,8 @@ class PlayUtils():
quality={ quality={
'maxVideoBitrate': self.get_bitrate(), 'maxVideoBitrate': self.get_bitrate(),
'videoResolution': self.get_resolution(), 'videoResolution': self.get_resolution(),
'videoQuality': '100' 'videoQuality': '100',
'mediaBufferSize': int(settings('kodi_video_cache'))/1024,
})) }))
# Set playmethod property # Set playmethod property
window('plex_%s.playmethod' % playurl, value="Transcode") window('plex_%s.playmethod' % playurl, value="Transcode")

View file

@ -548,6 +548,40 @@ def __setSubElement(element, subelement):
return answ return answ
def get_advancessettings_xml_setting(node_list):
"""
Returns the etree element for nodelist (if it exists) and None if not set
node_list is a list of node names starting from the outside, ignoring the
outter advancedsettings. Example nodelist=['video', 'busydialogdelayms']
for the following xml would return the etree Element:
<busydialogdelayms>750</busydialogdelayms>
Example xml:
<?xml version="1.0" encoding="UTF-8" ?>
<advancedsettings>
<video>
<busydialogdelayms>750</busydialogdelayms>
</video>
</advancedsettings>
"""
path = tryDecode(xbmc.translatePath("special://profile/"))
try:
xmlparse = etree.parse("%sadvancedsettings.xml" % path)
except:
log.debug('Could not parse advancedsettings.xml, returning None')
return
root = xmlparse.getroot()
for node in node_list:
root = root.find(node)
if root is None:
break
return root
def advancedSettingsXML(): def advancedSettingsXML():
""" """
Kodi tweaks Kodi tweaks
@ -595,12 +629,11 @@ def sourcesXML():
try: try:
xmlparse = etree.parse(xmlpath) xmlparse = etree.parse(xmlpath)
except: # Document is blank or missing except: # Document is blank or missing
root = etree.Element('sources') root = etree.Element('sources')
else: else:
root = xmlparse.getroot() root = xmlparse.getroot()
video = root.find('video') video = root.find('video')
if video is None: if video is None:
video = etree.SubElement(root, 'video') video = etree.SubElement(root, 'video')

View file

@ -110,6 +110,7 @@
<setting id="bestQuality" type="bool" label="30541" default="false" /> <setting id="bestQuality" type="bool" label="30541" default="false" />
<setting id="bestTrailer" type="bool" label="30542" default="true" /> <setting id="bestTrailer" type="bool" label="30542" default="true" />
<setting id="force_transcode_pix" type="bool" label="30545" default="false" /> <setting id="force_transcode_pix" type="bool" label="30545" default="false" />
<setting id="kodi_video_cache" type="number" visible="false" default="20971520" />
</category> </category>
<category label="30544"><!-- artwork --> <category label="30544"><!-- artwork -->