From 842729b158803187ca16df8d64c42f07b5495f1c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Odd=20Str=C3=A5b=C3=B8?= <oddstr13@openshell.no>
Date: Tue, 9 Apr 2024 18:04:30 +0200
Subject: [PATCH] Add version gate to strHdrType field

The strHdrType field is new to Kodi 20.
Fixes jellyfin/jellyfin-kodi#852
---
 jellyfin_kodi/objects/kodi/kodi.py    | 12 +++++++++---
 jellyfin_kodi/objects/kodi/queries.py |  7 +++++++
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/jellyfin_kodi/objects/kodi/kodi.py b/jellyfin_kodi/objects/kodi/kodi.py
index 9f7c9dad..74b93e33 100644
--- a/jellyfin_kodi/objects/kodi/kodi.py
+++ b/jellyfin_kodi/objects/kodi/kodi.py
@@ -3,7 +3,7 @@ from __future__ import division, absolute_import, print_function, unicode_litera
 
 ##################################################################################################
 
-from ...helper import values, LazyLogger
+from ...helper import values, LazyLogger, kodi_version
 
 from . import artwork
 from . import queries as QU
@@ -241,7 +241,10 @@ class Kodi(object):
 
                 track['FileId'] = file_id
                 track['Runtime'] = runtime
-                self.add_stream_video(*values(track, QU.add_stream_video_obj))
+                if kodi_version() < 20:
+                    self.add_stream_video(*values(track, QU.add_stream_video_obj_19))
+                else:
+                    self.add_stream_video(*values(track, QU.add_stream_video_obj))
 
             for track in streams['audio']:
 
@@ -252,7 +255,10 @@ class Kodi(object):
                 self.add_stream_sub(*values({'language': track, 'FileId': file_id}, QU.add_stream_sub_obj))
 
     def add_stream_video(self, *args):
-        self.cursor.execute(QU.add_stream_video, args)
+        if kodi_version() < 20:
+            self.cursor.execute(QU.add_stream_video_19, args)
+        else:
+            self.cursor.execute(QU.add_stream_video, args)
 
     def add_stream_audio(self, *args):
         self.cursor.execute(QU.add_stream_audio, args)
diff --git a/jellyfin_kodi/objects/kodi/queries.py b/jellyfin_kodi/objects/kodi/queries.py
index bab23e31..5bca095d 100644
--- a/jellyfin_kodi/objects/kodi/queries.py
+++ b/jellyfin_kodi/objects/kodi/queries.py
@@ -262,6 +262,13 @@ INSERT INTO     streamdetails(idFile, iStreamType, strVideoCodec, fVideoAspect,
 VALUES          (?, ?, ?, ?, ?, ?, ?, ?, ?)
 """
 add_stream_video_obj = ["{FileId}", 0, "{codec}", "{aspect}", "{width}", "{height}", "{Runtime}", "{3d}", "{hdrtype}"]
+# strHdrType is new to Kodi 20
+add_stream_video_19 = """
+INSERT INTO     streamdetails(idFile, iStreamType, strVideoCodec, fVideoAspect, iVideoWidth,
+                iVideoHeight, iVideoDuration, strStereoMode)
+VALUES          (?, ?, ?, ?, ?, ?, ?, ?)
+"""
+add_stream_video_obj_19 = ["{FileId}", 0, "{codec}", "{aspect}", "{width}", "{height}", "{Runtime}", "{3d}"]
 add_stream_audio = """
 INSERT INTO     streamdetails(idFile, iStreamType, strAudioCodec, iAudioChannels, strAudioLanguage)
 VALUES          (?, ?, ?, ?, ?)