gstmediafile: Correctly report unknown duration
authorIvan Molodetskikh <yalterz@gmail.com>
Sat, 4 Dec 2021 08:48:30 +0000 (11:48 +0300)
committerIvan Molodetskikh <yalterz@gmail.com>
Sat, 4 Dec 2021 08:48:30 +0000 (11:48 +0300)
When loading .mp3 files the duration is initially unknown. Before this
change it was reported as a large integer (since GST_CLOCK_TIME_NONE is
-1). Now it's correctly reported as 0.

modules/media/gtkgstmediafile.c

index 6f09d1dbc89cb37068bdc27c71f3768ef43ea755..0fead35bfa21d167aeb4b988f47f34546d3c0c9a 100644 (file)
@@ -137,11 +137,13 @@ gtk_gst_media_file_ensure_prepared (GtkGstMediaFile *self)
   media_info = gst_player_get_media_info (self->player);
   if (media_info)
     {
+      GstClockTime duration = gst_player_media_info_get_duration (media_info);
+
       gtk_media_stream_stream_prepared (GTK_MEDIA_STREAM (self),
                                         gst_player_media_info_get_audio_streams (media_info) != NULL,
                                         gst_player_media_info_get_video_streams (media_info) != NULL,
                                         gst_player_media_info_is_seekable (media_info),
-                                        FROM_GST_TIME (gst_player_media_info_get_duration (media_info)));
+                                        duration == GST_CLOCK_TIME_NONE ? 0 : FROM_GST_TIME (duration));
 
       g_object_unref (media_info);
     }