diff --git a/resources/language/English/strings.xml b/resources/language/English/strings.xml
index d77f45eb..1ce559a3 100644
--- a/resources/language/English/strings.xml
+++ b/resources/language/English/strings.xml
@@ -407,6 +407,7 @@
Recently Added: Append season- and episode-number SxxExx
Would you like to download additional artwork from FanArtTV? Sync will be slower!
Sync when screensaver is deactivated
+ Force Transcode Hi10P
Log-out Plex Home User
diff --git a/resources/language/German/strings.xml b/resources/language/German/strings.xml
index 03b85bfe..8d4634c4 100644
--- a/resources/language/German/strings.xml
+++ b/resources/language/German/strings.xml
@@ -346,6 +346,7 @@
"Zuletzt hinzugefügt": Staffel und Episode anfügen, SxxExx
Zusätzliche Bilder von FanArtTV herunterladen? Die Synchronisierung wird länger dauern!
Sync wenn Bildschirmschoner deaktiviert wird
+ Hi10p Codec Transkodierung erzwingen
Plex Home Benutzer abmelden:
diff --git a/resources/lib/PlexAPI.py b/resources/lib/PlexAPI.py
index 0b982ea5..8cfa5eae 100644
--- a/resources/lib/PlexAPI.py
+++ b/resources/lib/PlexAPI.py
@@ -1672,28 +1672,20 @@ class API():
'width': xxx, e.g. '1920'
'aspectratio': xxx, e.g. '1.78'
'bitrate': xxx, e.g. 10642 (an int!)
- 'container': xxx e.g. 'mkv'
+ 'container': xxx e.g. 'mkv',
+ 'bitDepth': xxx e.g. '8', '10'
}
"""
-
- videocodec = self.getDataFromPartOrMedia('videoCodec')
- resolution = self.getDataFromPartOrMedia('videoResolution')
- height = self.getDataFromPartOrMedia('height')
- width = self.getDataFromPartOrMedia('width')
- aspectratio = self.getDataFromPartOrMedia('aspectratio')
- bitrate = self.getDataFromPartOrMedia('bitrate')
- container = self.getDataFromPartOrMedia('container')
-
- videoCodec = {
- 'videocodec': videocodec,
- 'resolution': resolution,
- 'height': height,
- 'width': width,
- 'aspectratio': aspectratio,
- 'bitrate': bitrate,
- 'container': container
+ return {
+ 'videocodec': self.getDataFromPartOrMedia('videoCodec'),
+ 'resolution': self.getDataFromPartOrMedia('videoResolution'),
+ 'height': self.getDataFromPartOrMedia('height'),
+ 'width': self.getDataFromPartOrMedia('width'),
+ 'aspectratio': self.getDataFromPartOrMedia('aspectratio'),
+ 'bitrate': self.getDataFromPartOrMedia('bitrate'),
+ 'container': self.getDataFromPartOrMedia('container'),
+ 'bitDepth': self.getDataFromPartOrMedia('bitDepth')
}
- return videoCodec
def getExtras(self):
"""
diff --git a/resources/lib/playutils.py b/resources/lib/playutils.py
index b8f68a76..db59a5a4 100644
--- a/resources/lib/playutils.py
+++ b/resources/lib/playutils.py
@@ -100,7 +100,7 @@ class PlayUtils():
self.logMsg("User chose to not direct play", 1)
return False
- if self.h265enabled():
+ if self.mustTranscode():
return False
path = self.API.validatePlayurl(self.API.getFilePath(),
@@ -161,9 +161,12 @@ class PlayUtils():
self.logMsg("Failed to find file.", 1)
return False
- def h265enabled(self):
+ def mustTranscode(self):
"""
- Returns True if we need to transcode
+ Returns True if we need to transcode because
+ - codec is in h265
+ - 10bit video codec
+ if the corresponding file settings are set to 'true'
"""
videoCodec = self.API.getVideoCodec()
self.logMsg("videoCodec: %s" % videoCodec, 2)
@@ -182,6 +185,10 @@ class PlayUtils():
"%s, transcoding limit resolution: %s"
% (resolution, h265), 1)
return True
+ if (utils.settings('transcodeHi10P') == 'true' and
+ videoCodec['bitDepth'] == '10'):
+ self.logMsg('Option to transcode 10bit video content enabled.', 1)
+ return True
return False
@@ -194,7 +201,7 @@ class PlayUtils():
# User forcing to play via HTTP
self.logMsg("User chose to transcode", 1)
return False
- if self.h265enabled():
+ if self.mustTranscode():
return False
# Verify the bitrate
if not self.isNetworkSufficient():
diff --git a/resources/settings.xml b/resources/settings.xml
index b4680aaf..1b8e119b 100644
--- a/resources/settings.xml
+++ b/resources/settings.xml
@@ -98,6 +98,7 @@
+