From 431213552433fee651f43b8c028b193de99e78fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Chv=C3=ADla?= <miso.chvila@gmail.com>
Date: Tue, 15 Sep 2020 00:12:29 +0200
Subject: [PATCH] playutils: Prettify audio/subs track selection dialog

* Capitalize language in the track title
* Capitalize channel layout in the track title (e.g. 'Stereo')
* Remove track index from the title - users generally don't care what
the # is
* Use commercial names for the audio codecs (e.g. 'Dolby Digital'
instead of 'ac3')
* Always show codec name for subtitle tracks
---
 jellyfin_kodi/helper/playutils.py | 31 +++++++++++++++++++++++++------
 1 file changed, 25 insertions(+), 6 deletions(-)

diff --git a/jellyfin_kodi/helper/playutils.py b/jellyfin_kodi/helper/playutils.py
index d6b5259d..628a2d49 100644
--- a/jellyfin_kodi/helper/playutils.py
+++ b/jellyfin_kodi/helper/playutils.py
@@ -526,6 +526,23 @@ class PlayUtils(object):
 
         return path
 
+    def get_commercial_codec_name(self, codec, profile):
+        NAMES = {
+            'ac3': 'Dolby Digital',
+            'eac3': 'Dolby Digital+',
+            'truehd': 'Dolby TrueHD',
+            'dts': 'DTS'
+        }
+
+        if profile == 'DTS-HD MA':
+            return 'DTS-HD Master Audio'
+        if profile == 'DTS-HD HRA':
+            return 'DTS-HD High Resolution Audio'
+        if codec in NAMES:
+            return NAMES[codec]
+
+        return codec.upper()
+
     def get_audio_subs(self, source, audio=None, subtitle=None):
 
         ''' For transcoding only
@@ -546,22 +563,24 @@ class PlayUtils(object):
 
             if stream_type == 'Audio':
 
-                codec = stream['Codec']
-                channel = stream.get('ChannelLayout', "")
+                profile = stream['Profile'] if 'Profile' in stream else None
+                codec = self.get_commercial_codec_name(stream['Codec'], profile)
+                channel = stream.get('ChannelLayout', "").capitalize()
 
                 if 'Language' in stream:
-                    track = "%s - %s - %s %s" % (index, stream['Language'], codec, channel)
+                    track = "%s - %s %s" % (stream['Language'].capitalize(), codec, channel)
                 else:
-                    track = "%s - %s %s" % (index, codec, channel)
+                    track = "%s %s" % (codec, channel)
 
                 audio_streams[track] = index
 
             elif stream_type == 'Subtitle':
+                codec = self.get_commercial_codec_name(stream['Codec'], None)
 
                 if 'Language' in stream:
-                    track = "%s - %s" % (index, stream['Language'])
+                    track = "%s - %s" % (stream['Language'].capitalize(), codec)
                 else:
-                    track = "%s - %s" % (index, stream['Codec'])
+                    track = "%s" % codec
 
                 if stream['IsDefault']:
                     track = "%s - Default" % track