mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-12 21:40:19 +00:00
gstmedia: Ensure we prepare files without duration
In particular this fixes playback of images. Fixes #3810
This commit is contained in:
parent
72012113fd
commit
06be1f8b52
@ -127,17 +127,8 @@ g_io_module_query (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gtk_gst_media_file_position_updated_cb (GstPlayer *player,
|
gtk_gst_media_file_ensure_prepared (GtkGstMediaFile *self,
|
||||||
GstClockTime time,
|
gint64 duration)
|
||||||
GtkGstMediaFile *self)
|
|
||||||
{
|
|
||||||
gtk_media_stream_update (GTK_MEDIA_STREAM (self), FROM_GST_TIME (time));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
gtk_gst_media_file_duration_changed_cb (GstPlayer *player,
|
|
||||||
GstClockTime duration,
|
|
||||||
GtkGstMediaFile *self)
|
|
||||||
{
|
{
|
||||||
if (gtk_media_stream_is_prepared (GTK_MEDIA_STREAM (self)))
|
if (gtk_media_stream_is_prepared (GTK_MEDIA_STREAM (self)))
|
||||||
return;
|
return;
|
||||||
@ -146,7 +137,25 @@ gtk_gst_media_file_duration_changed_cb (GstPlayer *player,
|
|||||||
TRUE,
|
TRUE,
|
||||||
TRUE,
|
TRUE,
|
||||||
TRUE,
|
TRUE,
|
||||||
FROM_GST_TIME (duration));
|
duration);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_gst_media_file_position_updated_cb (GstPlayer *player,
|
||||||
|
GstClockTime time,
|
||||||
|
GtkGstMediaFile *self)
|
||||||
|
{
|
||||||
|
gtk_gst_media_file_ensure_prepared (self, 0);
|
||||||
|
|
||||||
|
gtk_media_stream_update (GTK_MEDIA_STREAM (self), FROM_GST_TIME (time));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_gst_media_file_duration_changed_cb (GstPlayer *player,
|
||||||
|
GstClockTime duration,
|
||||||
|
GtkGstMediaFile *self)
|
||||||
|
{
|
||||||
|
gtk_gst_media_file_ensure_prepared (self, FROM_GST_TIME (duration));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -176,6 +185,8 @@ static void
|
|||||||
gtk_gst_media_file_end_of_stream_cb (GstPlayer *player,
|
gtk_gst_media_file_end_of_stream_cb (GstPlayer *player,
|
||||||
GtkGstMediaFile *self)
|
GtkGstMediaFile *self)
|
||||||
{
|
{
|
||||||
|
gtk_gst_media_file_ensure_prepared (self, 0);
|
||||||
|
|
||||||
if (gtk_media_stream_get_ended (GTK_MEDIA_STREAM (self)))
|
if (gtk_media_stream_get_ended (GTK_MEDIA_STREAM (self)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user