From c392bd2fd286b4f0922497e8c2761b640e17473d Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Fri, 16 May 2025 14:12:21 +0530 Subject: [PATCH] Fix: Duration computation from playlist --- mobile/lib/services/preview_video_store.dart | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 732050197c..c8e4d7aa89 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -653,13 +653,21 @@ class PreviewVideoStore { int? parseDurationFromHLS(String playlist) { final lines = playlist.split("\n"); + double totalDuration = 0.0; for (final line in lines) { - if (line.startsWith("#EXT-X-TARGETDURATION")) { - final duration = line.split(":").last.trim(); - return int.tryParse(duration); + if (line.startsWith("#EXTINF:")) { + // Extract duration value (e.g., "#EXTINF:2.400000," → "2.400000") + final durationStr = line.substring( + 8, + line.length - 1, + ); + final duration = double.tryParse(durationStr); + if (duration != null) { + totalDuration += duration; + } } } - return null; + return totalDuration > 0 ? totalDuration.round() : null; } Future<(String, String)> _getPreviewUrl(EnteFile file) async {