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 @@ +