Adding a lot of sanity checks

Original commit message from CVS:
Adding a lot of sanity checks
Checking if vis pad is connected before linking/unlinking
This commit is contained in:
Julien Moutte 2003-04-10 13:20:02 +00:00
parent 646db378d5
commit a9bd477470
2 changed files with 61 additions and 21 deletions

View file

@ -152,8 +152,9 @@ gst_play_set_property ( GObject *object,
const GValue *value, const GValue *value,
GParamSpec *pspec) GParamSpec *pspec)
{ {
GstPlay *play = GST_PLAY (object); GstPlay *play;
g_return_if_fail (object != NULL);
play = GST_PLAY (object);
g_return_if_fail (GST_IS_PLAY (play)); g_return_if_fail (GST_IS_PLAY (play));
switch (prop_id) { switch (prop_id) {
@ -178,8 +179,9 @@ gst_play_get_property ( GObject *object,
GValue *value, GValue *value,
GParamSpec *pspec) GParamSpec *pspec)
{ {
GstPlay *play = GST_PLAY (object); GstPlay *play;
g_return_if_fail (object != NULL);
play = GST_PLAY (object);
g_return_if_fail (GST_IS_PLAY (play)); g_return_if_fail (GST_IS_PLAY (play));
switch (prop_id) { switch (prop_id) {
@ -242,7 +244,8 @@ gst_play_tick_callback (GstPlay *play)
{ {
gint secs; gint secs;
g_return_val_if_fail(GST_IS_PLAY(play), FALSE); g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
play->clock = gst_bin_get_clock (GST_BIN (play->pipeline)); play->clock = gst_bin_get_clock (GST_BIN (play->pipeline));
play->time_nanos = gst_clock_get_time(play->clock); play->time_nanos = gst_clock_get_time(play->clock);
@ -293,7 +296,8 @@ gst_play_default_idle_add ( GSourceFunc function,
static gboolean static gboolean
gst_play_idle_callback (GstPlay *play) gst_play_idle_callback (GstPlay *play)
{ {
g_return_val_if_fail(GST_IS_PLAY(play), FALSE); g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
return gst_bin_iterate (GST_BIN (play->pipeline)); return gst_bin_iterate (GST_BIN (play->pipeline));
} }
@ -304,7 +308,8 @@ gst_play_idle_signal (GstPlay *play)
GstPlaySignal *signal; GstPlaySignal *signal;
gint queue_length; gint queue_length;
g_return_val_if_fail(GST_IS_PLAY(play), FALSE); g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
signal = g_async_queue_try_pop(play->signal_queue); signal = g_async_queue_try_pop(play->signal_queue);
if (signal == NULL){ if (signal == NULL){
@ -457,6 +462,8 @@ callback_pipeline_state_change ( GstElement *element,
{ {
GstPlaySignal *signal; GstPlaySignal *signal;
g_return_if_fail (play != NULL);
g_return_if_fail (element != NULL);
g_return_if_fail (GST_IS_ELEMENT (element)); g_return_if_fail (GST_IS_ELEMENT (element));
g_return_if_fail (GST_IS_PLAY (play)); g_return_if_fail (GST_IS_PLAY (play));
g_return_if_fail (element == play->pipeline); g_return_if_fail (element == play->pipeline);
@ -689,6 +696,7 @@ gst_play_seek_to_time ( GstPlay *play,
gboolean video_seek_worked = FALSE; gboolean video_seek_worked = FALSE;
gboolean visualisation_seek_worked = FALSE; gboolean visualisation_seek_worked = FALSE;
g_return_if_fail (play != NULL);
g_return_if_fail (GST_IS_PLAY (play)); g_return_if_fail (GST_IS_PLAY (play));
if (time_nanos < 0LL){ if (time_nanos < 0LL){
play->seek_time = 0LL; play->seek_time = 0LL;
@ -757,6 +765,7 @@ gst_play_set_idle_timeout_funcs ( GstPlay *play,
GstPlayTimeoutAdd timeout_add_func, GstPlayTimeoutAdd timeout_add_func,
GstPlayIdleAdd idle_add_func) GstPlayIdleAdd idle_add_func)
{ {
g_return_if_fail (play != NULL);
g_return_if_fail (GST_IS_PLAY (play)); g_return_if_fail (GST_IS_PLAY (play));
play->timeout_add_func = timeout_add_func; play->timeout_add_func = timeout_add_func;
play->idle_add_func = idle_add_func; play->idle_add_func = idle_add_func;
@ -782,6 +791,8 @@ gst_play_get_sink_element ( GstPlay *play,
const GList *pads = NULL; const GList *pads = NULL;
gboolean has_src, has_correct_type; gboolean has_src, has_correct_type;
g_return_val_if_fail (play != NULL, NULL);
g_return_val_if_fail (element != NULL, NULL);
g_return_val_if_fail (GST_IS_PLAY (play), NULL); g_return_val_if_fail (GST_IS_PLAY (play), NULL);
g_return_val_if_fail (GST_IS_ELEMENT (element), NULL); g_return_val_if_fail (GST_IS_ELEMENT (element), NULL);
@ -885,9 +896,9 @@ GstElementStateReturn
gst_play_set_state ( GstPlay *play, gst_play_set_state ( GstPlay *play,
GstElementState state) GstElementState state)
{ {
g_return_val_if_fail (play != NULL, GST_STATE_FAILURE);
g_return_val_if_fail (GST_IS_PLAY (play), GST_STATE_FAILURE); g_return_val_if_fail (GST_IS_PLAY (play), GST_STATE_FAILURE);
g_return_val_if_fail (GST_IS_ELEMENT(play->pipeline), GST_STATE_FAILURE); g_return_val_if_fail (GST_IS_ELEMENT(play->pipeline), GST_STATE_FAILURE);
/*g_print("setting state to %d\n", state);*/
return gst_element_set_state(play->pipeline, state); return gst_element_set_state(play->pipeline, state);
} }
@ -903,6 +914,7 @@ gst_play_set_state ( GstPlay *play,
GstElementState GstElementState
gst_play_get_state (GstPlay *play) gst_play_get_state (GstPlay *play)
{ {
g_return_val_if_fail (play != NULL, GST_STATE_FAILURE);
g_return_val_if_fail (GST_IS_PLAY (play), GST_STATE_FAILURE); g_return_val_if_fail (GST_IS_PLAY (play), GST_STATE_FAILURE);
g_return_val_if_fail (play->pipeline, GST_STATE_FAILURE); g_return_val_if_fail (play->pipeline, GST_STATE_FAILURE);
@ -923,6 +935,7 @@ gst_play_set_location ( GstPlay *play,
const gchar *location) const gchar *location)
{ {
GstElementState current_state; GstElementState current_state;
g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY (play), FALSE); g_return_val_if_fail (GST_IS_PLAY (play), FALSE);
g_return_val_if_fail (location != NULL, FALSE); g_return_val_if_fail (location != NULL, FALSE);
@ -964,6 +977,7 @@ gchar*
gst_play_get_location (GstPlay *play) gst_play_get_location (GstPlay *play)
{ {
gchar* location; gchar* location;
g_return_val_if_fail (play != NULL, NULL);
g_return_val_if_fail (GST_IS_PLAY (play), NULL); g_return_val_if_fail (GST_IS_PLAY (play), NULL);
g_return_val_if_fail (GST_IS_ELEMENT(play->source), NULL); g_return_val_if_fail (GST_IS_ELEMENT(play->source), NULL);
g_object_get (G_OBJECT (play->source), "location", &location, NULL); g_object_get (G_OBJECT (play->source), "location", &location, NULL);
@ -981,6 +995,7 @@ void
gst_play_set_volume ( GstPlay *play, gst_play_set_volume ( GstPlay *play,
gfloat volume) gfloat volume)
{ {
g_return_if_fail (play != NULL);
g_return_if_fail (GST_IS_PLAY (play)); g_return_if_fail (GST_IS_PLAY (play));
g_object_set(G_OBJECT(play->vol_dparam), "value_float", volume, NULL); g_object_set(G_OBJECT(play->vol_dparam), "value_float", volume, NULL);
@ -999,6 +1014,7 @@ gst_play_get_volume (GstPlay *play)
{ {
gfloat volume; gfloat volume;
g_return_val_if_fail (play != NULL, 0);
g_return_val_if_fail (GST_IS_PLAY (play), 0); g_return_val_if_fail (GST_IS_PLAY (play), 0);
g_object_get(G_OBJECT(play->vol_dparam), "value_float", &volume, NULL); g_object_get(G_OBJECT(play->vol_dparam), "value_float", &volume, NULL);
@ -1017,6 +1033,7 @@ void
gst_play_set_mute ( GstPlay *play, gst_play_set_mute ( GstPlay *play,
gboolean mute) gboolean mute)
{ {
g_return_if_fail (play != NULL);
g_return_if_fail (GST_IS_PLAY (play)); g_return_if_fail (GST_IS_PLAY (play));
g_object_set (G_OBJECT (play->volume), "mute", mute, NULL); g_object_set (G_OBJECT (play->volume), "mute", mute, NULL);
@ -1035,6 +1052,7 @@ gst_play_get_mute (GstPlay *play)
{ {
gboolean mute; gboolean mute;
g_return_val_if_fail (play != NULL, 0);
g_return_val_if_fail (GST_IS_PLAY (play), 0); g_return_val_if_fail (GST_IS_PLAY (play), 0);
g_object_get (G_OBJECT (play->volume), "mute", &mute, NULL); g_object_get (G_OBJECT (play->volume), "mute", &mute, NULL);
@ -1061,6 +1079,8 @@ gboolean
gst_play_set_data_src ( GstPlay *play, gst_play_set_data_src ( GstPlay *play,
GstElement *data_src) GstElement *data_src)
{ {
g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (data_src != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY (play), FALSE); g_return_val_if_fail (GST_IS_PLAY (play), FALSE);
g_return_val_if_fail (GST_IS_ELEMENT (data_src), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (data_src), FALSE);
@ -1089,6 +1109,8 @@ gboolean
gst_play_set_video_sink ( GstPlay *play, gst_play_set_video_sink ( GstPlay *play,
GstElement *video_sink) GstElement *video_sink)
{ {
g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (video_sink != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY (play), FALSE); g_return_val_if_fail (GST_IS_PLAY (play), FALSE);
g_return_val_if_fail (GST_IS_ELEMENT (video_sink), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (video_sink), FALSE);
@ -1117,6 +1139,8 @@ gboolean
gst_play_set_audio_sink ( GstPlay *play, gst_play_set_audio_sink ( GstPlay *play,
GstElement *audio_sink) GstElement *audio_sink)
{ {
g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (audio_sink != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY (play), FALSE); g_return_val_if_fail (GST_IS_PLAY (play), FALSE);
g_return_val_if_fail (GST_IS_ELEMENT (audio_sink), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (audio_sink), FALSE);
@ -1267,12 +1291,3 @@ gst_play_new ( GstPlayPipeType pipe_type,
return play; return play;
} }

View file

@ -27,6 +27,8 @@ gst_play_default_set_data_src ( GstPlay *play,
GstElement *datasrc, GstElement *datasrc,
GstElement* parent) GstElement* parent)
{ {
g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (datasrc != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY (play), FALSE); g_return_val_if_fail (GST_IS_PLAY (play), FALSE);
g_return_val_if_fail (GST_IS_ELEMENT (datasrc), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (datasrc), FALSE);
@ -125,7 +127,7 @@ static gboolean
gst_play_audiot_setup ( GstPlay *play, gst_play_audiot_setup ( GstPlay *play,
GError **error) GError **error)
{ {
g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE); g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
/* creating gst_thread */ /* creating gst_thread */
@ -183,6 +185,8 @@ static gboolean
gst_play_audiot_set_audio ( GstPlay *play, gst_play_audiot_set_audio ( GstPlay *play,
GstElement *audio_sink) GstElement *audio_sink)
{ {
g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (audio_sink != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE); g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
g_return_val_if_fail (GST_IS_ELEMENT (audio_sink), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (audio_sink), FALSE);
@ -219,7 +223,8 @@ static gboolean
gst_play_audiot_set_auto ( GstPlay *play, gst_play_audiot_set_auto ( GstPlay *play,
GstElement *autoplugger) GstElement *autoplugger)
{ {
g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (autoplugger != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY (play), FALSE); g_return_val_if_fail (GST_IS_PLAY (play), FALSE);
g_return_val_if_fail (GST_IS_ELEMENT (autoplugger), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (autoplugger), FALSE);
@ -251,6 +256,7 @@ gst_play_audioht_setup ( GstPlay *play,
{ {
GstElement *audio_thread, *audio_queue; GstElement *audio_thread, *audio_queue;
g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE); g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
/* /*
@ -337,6 +343,8 @@ gst_play_audioht_set_audio ( GstPlay *play,
{ {
GstElement *audio_thread; GstElement *audio_thread;
g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (audio_sink != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE); g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
g_return_val_if_fail (GST_IS_ELEMENT (audio_sink), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (audio_sink), FALSE);
@ -377,6 +385,8 @@ gst_play_audioht_set_auto ( GstPlay *play,
{ {
GstElement *audio_thread; GstElement *audio_thread;
g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (autoplugger != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE); g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
g_return_val_if_fail (GST_IS_ELEMENT (autoplugger), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (autoplugger), FALSE);
@ -413,6 +423,7 @@ gst_play_video_setup ( GstPlay *play,
GstElement *video_queue, *video_bin; GstElement *video_queue, *video_bin;
GstElement *work_thread, *colorspace; GstElement *work_thread, *colorspace;
g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE); g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
/* creating pipeline */ /* creating pipeline */
@ -558,7 +569,10 @@ gst_play_video_set_data_src ( GstPlay *play,
GstElement *datasrc) GstElement *datasrc)
{ {
GstElement *work_thread; GstElement *work_thread;
g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (datasrc != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE); g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
g_return_val_if_fail (GST_IS_ELEMENT(datasrc), FALSE);
work_thread = g_hash_table_lookup(play->other_elements, "work_thread"); work_thread = g_hash_table_lookup(play->other_elements, "work_thread");
return gst_play_default_set_data_src(play, datasrc, work_thread); return gst_play_default_set_data_src(play, datasrc, work_thread);
@ -572,6 +586,7 @@ gst_play_video_set_auto ( GstPlay *play,
GstElement *audio_bin, *video_bin, *work_thread; GstElement *audio_bin, *video_bin, *work_thread;
g_return_val_if_fail (play != NULL, FALSE); g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (autoplugger != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE); g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
g_return_val_if_fail (GST_IS_ELEMENT (autoplugger), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (autoplugger), FALSE);
@ -607,6 +622,8 @@ gst_play_video_set_video ( GstPlay *play,
{ {
GstElement *video_mate, *video_bin; GstElement *video_mate, *video_bin;
g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (video_sink != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE); g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
g_return_val_if_fail (GST_IS_ELEMENT (video_sink), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (video_sink), FALSE);
@ -651,6 +668,8 @@ gst_play_video_set_audio ( GstPlay *play,
{ {
GstElement *audio_bin; GstElement *audio_bin;
g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (audio_sink != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE); g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
g_return_val_if_fail (GST_IS_ELEMENT (audio_sink), FALSE); g_return_val_if_fail (GST_IS_ELEMENT (audio_sink), FALSE);
@ -1172,6 +1191,7 @@ gst_play_connect_visualisation ( GstPlay *play,
gboolean connect) gboolean connect)
{ {
GstPad *tee_vis_pad, *vis_video_thread_pad; GstPad *tee_vis_pad, *vis_video_thread_pad;
gboolean connected = FALSE;
g_return_val_if_fail (play != NULL, FALSE); g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE); g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
@ -1181,10 +1201,15 @@ gst_play_connect_visualisation ( GstPlay *play,
vis_video_thread_pad = g_hash_table_lookup( play->other_elements, vis_video_thread_pad = g_hash_table_lookup( play->other_elements,
"vis_video_thread_pad"); "vis_video_thread_pad");
if (connect) { if (gst_pad_get_peer (vis_video_thread_pad) != NULL)
connected = TRUE;
else
connected = FALSE;
if ( (connect) && (!connected) ) {
gst_pad_link (tee_vis_pad, vis_video_thread_pad); gst_pad_link (tee_vis_pad, vis_video_thread_pad);
} }
else { else if ( (!connect) && (connected) ){
gst_pad_unlink (tee_vis_pad, vis_video_thread_pad); gst_pad_unlink (tee_vis_pad, vis_video_thread_pad);
} }