summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Moutte <julien@moutte.net>2003-04-10 13:20:02 +0000
committerJulien Moutte <julien@moutte.net>2003-04-10 13:20:02 +0000
commita9bd47747075f3b0e712c44731794e3ef3f3b865 (patch)
treece98c76c32dc53e7a3978550bfc0d0dfcc8861f4
parent646db378d5342e9878527a3665923ac69289b4a1 (diff)
downloadgst-plugins-bad-a9bd47747075f3b0e712c44731794e3ef3f3b865.tar.gz
gst-plugins-bad-a9bd47747075f3b0e712c44731794e3ef3f3b865.tar.bz2
gst-plugins-bad-a9bd47747075f3b0e712c44731794e3ef3f3b865.zip
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
-rw-r--r--gst-libs/gst/play/play.old.c49
-rw-r--r--gst-libs/gst/play/playpipelines.c33
2 files changed, 61 insertions, 21 deletions
diff --git a/gst-libs/gst/play/play.old.c b/gst-libs/gst/play/play.old.c
index 88a370d5..dd322896 100644
--- a/gst-libs/gst/play/play.old.c
+++ b/gst-libs/gst/play/play.old.c
@@ -152,8 +152,9 @@ gst_play_set_property ( GObject *object,
const GValue *value,
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));
switch (prop_id) {
@@ -178,8 +179,9 @@ gst_play_get_property ( GObject *object,
GValue *value,
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));
switch (prop_id) {
@@ -242,7 +244,8 @@ gst_play_tick_callback (GstPlay *play)
{
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->time_nanos = gst_clock_get_time(play->clock);
@@ -293,7 +296,8 @@ gst_play_default_idle_add ( GSourceFunc function,
static gboolean
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));
}
@@ -304,7 +308,8 @@ gst_play_idle_signal (GstPlay *play)
GstPlaySignal *signal;
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);
if (signal == NULL){
@@ -457,6 +462,8 @@ callback_pipeline_state_change ( GstElement *element,
{
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_PLAY (play));
g_return_if_fail (element == play->pipeline);
@@ -689,6 +696,7 @@ gst_play_seek_to_time ( GstPlay *play,
gboolean video_seek_worked = FALSE;
gboolean visualisation_seek_worked = FALSE;
+ g_return_if_fail (play != NULL);
g_return_if_fail (GST_IS_PLAY (play));
if (time_nanos < 0LL){
play->seek_time = 0LL;
@@ -757,6 +765,7 @@ gst_play_set_idle_timeout_funcs ( GstPlay *play,
GstPlayTimeoutAdd timeout_add_func,
GstPlayIdleAdd idle_add_func)
{
+ g_return_if_fail (play != NULL);
g_return_if_fail (GST_IS_PLAY (play));
play->timeout_add_func = timeout_add_func;
play->idle_add_func = idle_add_func;
@@ -782,6 +791,8 @@ gst_play_get_sink_element ( GstPlay *play,
const GList *pads = NULL;
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_ELEMENT (element), NULL);
@@ -885,9 +896,9 @@ GstElementStateReturn
gst_play_set_state ( GstPlay *play,
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_ELEMENT(play->pipeline), GST_STATE_FAILURE);
- /*g_print("setting state to %d\n", state);*/
return gst_element_set_state(play->pipeline, state);
}
@@ -903,6 +914,7 @@ gst_play_set_state ( GstPlay *play,
GstElementState
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 (play->pipeline, GST_STATE_FAILURE);
@@ -923,6 +935,7 @@ gst_play_set_location ( GstPlay *play,
const gchar *location)
{
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 (location != NULL, FALSE);
@@ -964,6 +977,7 @@ gchar*
gst_play_get_location (GstPlay *play)
{
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_ELEMENT(play->source), NULL);
g_object_get (G_OBJECT (play->source), "location", &location, NULL);
@@ -981,6 +995,7 @@ void
gst_play_set_volume ( GstPlay *play,
gfloat volume)
{
+ g_return_if_fail (play != NULL);
g_return_if_fail (GST_IS_PLAY (play));
g_object_set(G_OBJECT(play->vol_dparam), "value_float", volume, NULL);
@@ -999,6 +1014,7 @@ gst_play_get_volume (GstPlay *play)
{
gfloat volume;
+ g_return_val_if_fail (play != NULL, 0);
g_return_val_if_fail (GST_IS_PLAY (play), 0);
g_object_get(G_OBJECT(play->vol_dparam), "value_float", &volume, NULL);
@@ -1017,6 +1033,7 @@ void
gst_play_set_mute ( GstPlay *play,
gboolean mute)
{
+ g_return_if_fail (play != NULL);
g_return_if_fail (GST_IS_PLAY (play));
g_object_set (G_OBJECT (play->volume), "mute", mute, NULL);
@@ -1035,6 +1052,7 @@ gst_play_get_mute (GstPlay *play)
{
gboolean mute;
+ g_return_val_if_fail (play != NULL, 0);
g_return_val_if_fail (GST_IS_PLAY (play), 0);
g_object_get (G_OBJECT (play->volume), "mute", &mute, NULL);
@@ -1061,6 +1079,8 @@ gboolean
gst_play_set_data_src ( GstPlay *play,
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_ELEMENT (data_src), FALSE);
@@ -1089,6 +1109,8 @@ gboolean
gst_play_set_video_sink ( GstPlay *play,
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_ELEMENT (video_sink), FALSE);
@@ -1117,6 +1139,8 @@ gboolean
gst_play_set_audio_sink ( GstPlay *play,
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_ELEMENT (audio_sink), FALSE);
@@ -1267,12 +1291,3 @@ gst_play_new ( GstPlayPipeType pipe_type,
return play;
}
-
-
-
-
-
-
-
-
-
diff --git a/gst-libs/gst/play/playpipelines.c b/gst-libs/gst/play/playpipelines.c
index 163d1a2d..dc977bcf 100644
--- a/gst-libs/gst/play/playpipelines.c
+++ b/gst-libs/gst/play/playpipelines.c
@@ -27,6 +27,8 @@ gst_play_default_set_data_src ( GstPlay *play,
GstElement *datasrc,
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_ELEMENT (datasrc), FALSE);
@@ -125,7 +127,7 @@ static gboolean
gst_play_audiot_setup ( GstPlay *play,
GError **error)
{
-
+ g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
/* creating gst_thread */
@@ -183,6 +185,8 @@ static gboolean
gst_play_audiot_set_audio ( GstPlay *play,
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_ELEMENT (audio_sink), FALSE);
@@ -219,7 +223,8 @@ static gboolean
gst_play_audiot_set_auto ( GstPlay *play,
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_ELEMENT (autoplugger), FALSE);
@@ -251,6 +256,7 @@ gst_play_audioht_setup ( GstPlay *play,
{
GstElement *audio_thread, *audio_queue;
+ g_return_val_if_fail (play != NULL, 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;
+ 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_ELEMENT (audio_sink), FALSE);
@@ -377,6 +385,8 @@ gst_play_audioht_set_auto ( GstPlay *play,
{
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_ELEMENT (autoplugger), FALSE);
@@ -413,6 +423,7 @@ gst_play_video_setup ( GstPlay *play,
GstElement *video_queue, *video_bin;
GstElement *work_thread, *colorspace;
+ g_return_val_if_fail (play != NULL, FALSE);
g_return_val_if_fail (GST_IS_PLAY(play), FALSE);
/* creating pipeline */
@@ -558,7 +569,10 @@ gst_play_video_set_data_src ( GstPlay *play,
GstElement *datasrc)
{
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_ELEMENT(datasrc), FALSE);
work_thread = g_hash_table_lookup(play->other_elements, "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;
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_ELEMENT (autoplugger), FALSE);
@@ -607,6 +622,8 @@ gst_play_video_set_video ( GstPlay *play,
{
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_ELEMENT (video_sink), FALSE);
@@ -651,6 +668,8 @@ gst_play_video_set_audio ( GstPlay *play,
{
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_ELEMENT (audio_sink), FALSE);
@@ -1172,6 +1191,7 @@ gst_play_connect_visualisation ( GstPlay *play,
gboolean connect)
{
GstPad *tee_vis_pad, *vis_video_thread_pad;
+ gboolean connected = FALSE;
g_return_val_if_fail (play != NULL, 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");
- 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);
}
- else {
+ else if ( (!connect) && (connected) ){
gst_pad_unlink (tee_vis_pad, vis_video_thread_pad);
}