Add-on paths: don't fail playback with an empty video

This commit is contained in:
croneter 2018-12-24 17:44:52 +01:00
parent a9f51f9ac4
commit 4fb4643ac0
5 changed files with 2 additions and 34 deletions

Binary file not shown.

View file

@ -62,10 +62,3 @@ class PlayState(object):
self.force_transcode = False self.force_transcode = False
# Which Kodi player is/has been active? (either int 1, 2 or 3) # Which Kodi player is/has been active? (either int 1, 2 or 3)
self.active_players = set() self.active_players = set()
# Failsafe for throwing an empty video back to Kodi's setResolvedUrl to set
# up our own playlist from the very beginning
self.pkc_caused_stop = False
# Flag if the 0 length PKC video has already failed so we can start resolving
# playback (set in player.py)
self.pkc_caused_stop_done = True

View file

@ -82,16 +82,11 @@ class KodiMonitor(xbmc.Monitor):
with app.APP.lock_playqueues: with app.APP.lock_playqueues:
self._hack_addon_paths_replay_video() self._hack_addon_paths_replay_video()
elif data.get('end'): elif data.get('end'):
if app.PLAYSTATE.pkc_caused_stop is True: with app.APP.lock_playqueues:
app.PLAYSTATE.pkc_caused_stop = False _playback_cleanup(ended=True)
LOG.debug('PKC caused this playback stop - ignoring')
else:
with app.APP.lock_playqueues:
_playback_cleanup(ended=True)
else: else:
with app.APP.lock_playqueues: with app.APP.lock_playqueues:
_playback_cleanup() _playback_cleanup()
app.PLAYSTATE.pkc_caused_stop_done = True
app.SYNC.suspend_sync = False app.SYNC.suspend_sync = False
elif method == 'Playlist.OnAdd': elif method == 'Playlist.OnAdd':
with app.APP.lock_playqueues: with app.APP.lock_playqueues:

View file

@ -204,14 +204,6 @@ def _playback_init(plex_id, plex_type, playqueue, pos):
else: else:
trailers = True trailers = True
LOG.debug('Playing trailers: %s', trailers) LOG.debug('Playing trailers: %s', trailers)
if RESOLVE:
# Sleep a bit to let setResolvedUrl do its thing - bit ugly
sleep_timer = 0
while not app.PLAYSTATE.pkc_caused_stop_done:
app.APP.monitor.waitForAbort(0.05)
sleep_timer += 1
if sleep_timer > 100:
break
playqueue.clear() playqueue.clear()
if plex_type != v.PLEX_TYPE_CLIP: if plex_type != v.PLEX_TYPE_CLIP:
# Post to the PMS to create a playqueue - in any case due to Companion # Post to the PMS to create a playqueue - in any case due to Companion
@ -268,14 +260,8 @@ def _ensure_resolve(abort=False):
will be destroyed. will be destroyed.
""" """
if RESOLVE: if RESOLVE:
LOG.debug('Passing dummy path to Kodi')
# if not state.CONTEXT_MENU_PLAY:
# Because playback won't start with context menu play
app.PLAYSTATE.pkc_caused_stop = True
app.PLAYSTATE.pkc_caused_stop_done = False
if not abort: if not abort:
result = pickler.Playback_Successful() result = pickler.Playback_Successful()
result.listitem = PKCListItem(path=v.NULL_VIDEO)
pickler.pickle_me(result) pickler.pickle_me(result)
else: else:
# Shows PKC error message # Shows PKC error message

View file

@ -120,12 +120,6 @@ EXTERNAL_SUBTITLE_TEMP_PATH = try_decode(xbmc.translatePath(
# Multiply Plex time by this factor to receive Kodi time # Multiply Plex time by this factor to receive Kodi time
PLEX_TO_KODI_TIMEFACTOR = 1.0 / 1000.0 PLEX_TO_KODI_TIMEFACTOR = 1.0 / 1000.0
# We're "failing" playback with a video of 0 length
NULL_VIDEO = os.path.join(ADDON_FOLDER,
'addons',
ADDON_ID,
'empty_video.mp4')
# Playlist stuff # Playlist stuff
PLAYLIST_PATH = os.path.join(KODI_PROFILE, 'playlists') PLAYLIST_PATH = os.path.join(KODI_PROFILE, 'playlists')
PLAYLIST_PATH_MIXED = os.path.join(PLAYLIST_PATH, 'mixed') PLAYLIST_PATH_MIXED = os.path.join(PLAYLIST_PATH, 'mixed')