mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-25 09:40:37 +00:00
go to READY if there is a gst_element_error
Original commit message from CVS: go to READY if there is a gst_element_error
This commit is contained in:
parent
2f553735fe
commit
6d4838bb87
1 changed files with 11 additions and 0 deletions
|
@ -80,6 +80,7 @@ static void gst_play_set_property (GObject *object, guint prop_id,
|
||||||
const GValue *value, GParamSpec *pspec);
|
const GValue *value, GParamSpec *pspec);
|
||||||
static void gst_play_get_property (GObject *object, guint prop_id,
|
static void gst_play_get_property (GObject *object, guint prop_id,
|
||||||
GValue *value, GParamSpec *pspec);
|
GValue *value, GParamSpec *pspec);
|
||||||
|
static void callback_pipeline_error (GObject *object, GstObject *orig, gchar *error, GstPlay* play);
|
||||||
static void callback_pipeline_state_change (GstElement *element, GstElementState old,
|
static void callback_pipeline_state_change (GstElement *element, GstElementState old,
|
||||||
GstElementState state, GstPlay *play);
|
GstElementState state, GstPlay *play);
|
||||||
static void callback_pipeline_deep_notify (GstElement *element, GstElement *orig,
|
static void callback_pipeline_deep_notify (GstElement *element, GstElement *orig,
|
||||||
|
@ -361,6 +362,7 @@ gst_play_new (GstPlayPipeType pipe_type, GError **error)
|
||||||
/* connect to pipeline events */
|
/* connect to pipeline events */
|
||||||
g_signal_connect (G_OBJECT (play->pipeline), "deep_notify", G_CALLBACK (callback_pipeline_deep_notify), play);
|
g_signal_connect (G_OBJECT (play->pipeline), "deep_notify", G_CALLBACK (callback_pipeline_deep_notify), play);
|
||||||
g_signal_connect (G_OBJECT (play->pipeline), "state_change", G_CALLBACK (callback_pipeline_state_change), play);
|
g_signal_connect (G_OBJECT (play->pipeline), "state_change", G_CALLBACK (callback_pipeline_state_change), play);
|
||||||
|
g_signal_connect (G_OBJECT (play->pipeline), "error", G_CALLBACK (callback_pipeline_error), play);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (play->volume){
|
if (play->volume){
|
||||||
|
@ -393,6 +395,15 @@ gst_play_dispose (GObject *object)
|
||||||
g_mutex_free(play->video_bin_mutex);
|
g_mutex_free(play->video_bin_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
callback_pipeline_error (GObject *object, GstObject *orig, gchar *error, GstPlay* play)
|
||||||
|
{
|
||||||
|
g_print ("Pipeline error: %s\n", error);
|
||||||
|
if (gst_element_get_state(play->pipeline) == GST_STATE_PLAYING){
|
||||||
|
gst_element_set_state(play->pipeline, GST_STATE_READY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
callback_pipeline_deep_notify (GstElement *element, GstElement *orig, GParamSpec *param, GstPlay* play)
|
callback_pipeline_deep_notify (GstElement *element, GstElement *orig, GParamSpec *param, GstPlay* play)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue