From 2d14dc888a3c121167d64b45088dbc3414dbe147 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20De=CC=81fago?= Date: Mon, 23 Nov 2020 14:00:57 +0100 Subject: [PATCH] Fix segments incorrectly displayed in the info panel for livestreams without DVR This fixes issue #236. --- Sources/SRGLetterbox/SRGLetterboxViewController~tvos.m | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Sources/SRGLetterbox/SRGLetterboxViewController~tvos.m b/Sources/SRGLetterbox/SRGLetterboxViewController~tvos.m index 58dd852ee..6dafa1b6b 100644 --- a/Sources/SRGLetterbox/SRGLetterboxViewController~tvos.m +++ b/Sources/SRGLetterbox/SRGLetterboxViewController~tvos.m @@ -655,6 +655,12 @@ - (void)continuousPlaybackViewController:(SRGContinuousPlaybackViewController *) NSMutableArray *navigationMarkers = [NSMutableArray array]; for (SRGSegment *segment in segments) { + SRGMediaPlayerController *mediaPlayerController = playerViewController.controller; + CMTimeRange segmentTimeRange = [segment.srg_markRange timeRangeForMediaPlayerController:mediaPlayerController]; + if (! CMTimeRangeContainsTime(mediaPlayerController.timeRange, segmentTimeRange.start)) { + continue; + } + AVMutableMetadataItem *titleItem = [[AVMutableMetadataItem alloc] init]; titleItem.identifier = AVMetadataCommonIdentifierTitle; titleItem.value = segment.title; @@ -671,7 +677,6 @@ - (void)continuousPlaybackViewController:(SRGContinuousPlaybackViewController *) artworkItem.value = UIImagePNGRepresentation(image); artworkItem.extendedLanguageTag = @"und"; // Apparently not required, but added for safety / consistency - CMTimeRange segmentTimeRange = [segment.srg_markRange timeRangeForMediaPlayerController:self.playerViewController.controller]; AVTimedMetadataGroup *navigationMarker = [[AVTimedMetadataGroup alloc] initWithItems:@[ titleItem.copy, artworkItem.copy ] timeRange:segmentTimeRange]; [navigationMarkers addObject:navigationMarker]; }