summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2008-11-25 16:26:16 +0000
committerWim Taymans <wim.taymans@gmail.com>2008-11-25 16:26:16 +0000
commitc25b0fcb9272712c67adc5d3855aa583b35c42d5 (patch)
treec89dd35d041d0019c3a82442ab381f3130543f3b
parent6ab4698b95bed4ca4032b791d84f26fd2e11224a (diff)
gst/autodetect/: Post an error when we can't set the internal ghostpad target.
Original commit message from CVS: * gst/autodetect/gstautoaudiosink.c: (gst_auto_audio_sink_detect): * gst/autodetect/gstautoaudiosrc.c: (gst_auto_audio_src_detect): * gst/autodetect/gstautovideosink.c: (gst_auto_video_sink_reset), (gst_auto_video_sink_detect): * gst/autodetect/gstautovideosrc.c: (gst_auto_video_src_detect): Post an error when we can't set the internal ghostpad target.
-rw-r--r--ChangeLog9
-rw-r--r--gst/autodetect/gstautoaudiosink.c11
-rw-r--r--gst/autodetect/gstautoaudiosrc.c11
-rw-r--r--gst/autodetect/gstautovideosink.c13
-rw-r--r--gst/autodetect/gstautovideosrc.c11
5 files changed, 50 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 864787de..60fe3198 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2008-11-25 Wim Taymans <wim.taymans@collabora.co.uk>
+ * gst/autodetect/gstautoaudiosink.c: (gst_auto_audio_sink_detect):
+ * gst/autodetect/gstautoaudiosrc.c: (gst_auto_audio_src_detect):
+ * gst/autodetect/gstautovideosink.c: (gst_auto_video_sink_reset),
+ (gst_auto_video_sink_detect):
+ * gst/autodetect/gstautovideosrc.c: (gst_auto_video_src_detect):
+ Post an error when we can't set the internal ghostpad target.
+
+2008-11-25 Wim Taymans <wim.taymans@collabora.co.uk>
+
* gst/videocrop/gstvideocrop.c: (gst_video_crop_init),
(gst_video_crop_transform), (gst_video_crop_transform_caps),
(gst_video_crop_set_caps), (gst_video_crop_set_property):
diff --git a/gst/autodetect/gstautoaudiosink.c b/gst/autodetect/gstautoaudiosink.c
index e3785390..4ed1ba9e 100644
--- a/gst/autodetect/gstautoaudiosink.c
+++ b/gst/autodetect/gstautoaudiosink.c
@@ -361,7 +361,9 @@ gst_auto_audio_sink_detect (GstAutoAudioSink * sink)
/* attach ghost pad */
GST_DEBUG_OBJECT (sink, "Re-assigning ghostpad");
targetpad = gst_element_get_static_pad (sink->kid, "sink");
- gst_ghost_pad_set_target (GST_GHOST_PAD (sink->pad), targetpad);
+ if (!gst_ghost_pad_set_target (GST_GHOST_PAD (sink->pad), targetpad))
+ goto target_failed;
+
gst_object_unref (targetpad);
GST_DEBUG_OBJECT (sink, "done changing auto audio sink");
@@ -374,6 +376,13 @@ no_sink:
("Failed to find a supported audio sink"));
return FALSE;
}
+target_failed:
+ {
+ GST_ELEMENT_ERROR (sink, LIBRARY, INIT, (NULL),
+ ("Failed to set target pad"));
+ gst_object_unref (targetpad);
+ return FALSE;
+ }
}
static GstStateChangeReturn
diff --git a/gst/autodetect/gstautoaudiosrc.c b/gst/autodetect/gstautoaudiosrc.c
index 8e23490a..8d352c55 100644
--- a/gst/autodetect/gstautoaudiosrc.c
+++ b/gst/autodetect/gstautoaudiosrc.c
@@ -362,7 +362,9 @@ gst_auto_audio_src_detect (GstAutoAudioSrc * src)
/* attach ghost pad */
GST_DEBUG_OBJECT (src, "Re-assigning ghostpad");
targetpad = gst_element_get_static_pad (src->kid, "src");
- gst_ghost_pad_set_target (GST_GHOST_PAD (src->pad), targetpad);
+ if (!gst_ghost_pad_set_target (GST_GHOST_PAD (src->pad), targetpad))
+ goto target_failed;
+
gst_object_unref (targetpad);
GST_DEBUG_OBJECT (src, "done changing auto audio source");
@@ -375,6 +377,13 @@ no_src:
("Failed to find a supported audio source"));
return FALSE;
}
+target_failed:
+ {
+ GST_ELEMENT_ERROR (src, LIBRARY, INIT, (NULL),
+ ("Failed to set target pad"));
+ gst_object_unref (targetpad);
+ return FALSE;
+ }
}
static GstStateChangeReturn
diff --git a/gst/autodetect/gstautovideosink.c b/gst/autodetect/gstautovideosink.c
index 6f309e88..d1427c70 100644
--- a/gst/autodetect/gstautovideosink.c
+++ b/gst/autodetect/gstautovideosink.c
@@ -157,7 +157,7 @@ gst_auto_video_sink_reset (GstAutoVideoSink * sink)
sink->kid = gst_element_factory_make ("fakesink", "tempsink");
gst_bin_add (GST_BIN (sink), sink->kid);
- /* pad */
+ /* pad, setting this target should always work */
targetpad = gst_element_get_static_pad (sink->kid, "sink");
gst_ghost_pad_set_target (GST_GHOST_PAD (sink->pad), targetpad);
gst_object_unref (targetpad);
@@ -352,7 +352,9 @@ gst_auto_video_sink_detect (GstAutoVideoSink * sink)
/* attach ghost pad */
GST_DEBUG_OBJECT (sink, "Re-assigning ghostpad");
targetpad = gst_element_get_static_pad (sink->kid, "sink");
- gst_ghost_pad_set_target (GST_GHOST_PAD (sink->pad), targetpad);
+ if (!gst_ghost_pad_set_target (GST_GHOST_PAD (sink->pad), targetpad))
+ goto target_failed;
+
gst_object_unref (targetpad);
GST_DEBUG_OBJECT (sink, "done changing auto video sink");
@@ -365,6 +367,13 @@ no_sink:
("Failed to find a supported video sink"));
return FALSE;
}
+target_failed:
+ {
+ GST_ELEMENT_ERROR (sink, LIBRARY, INIT, (NULL),
+ ("Failed to set target pad"));
+ gst_object_unref (targetpad);
+ return FALSE;
+ }
}
static GstStateChangeReturn
diff --git a/gst/autodetect/gstautovideosrc.c b/gst/autodetect/gstautovideosrc.c
index d542178e..1de2160b 100644
--- a/gst/autodetect/gstautovideosrc.c
+++ b/gst/autodetect/gstautovideosrc.c
@@ -353,7 +353,9 @@ gst_auto_video_src_detect (GstAutoVideoSrc * src)
/* attach ghost pad */
GST_DEBUG_OBJECT (src, "Re-assigning ghostpad");
targetpad = gst_element_get_static_pad (src->kid, "src");
- gst_ghost_pad_set_target (GST_GHOST_PAD (src->pad), targetpad);
+ if (!gst_ghost_pad_set_target (GST_GHOST_PAD (src->pad), targetpad))
+ goto target_failed;
+
gst_object_unref (targetpad);
GST_DEBUG_OBJECT (src, "done changing auto video source");
@@ -366,6 +368,13 @@ no_src:
("Failed to find a supported video source"));
return FALSE;
}
+target_failed:
+ {
+ GST_ELEMENT_ERROR (src, LIBRARY, INIT, (NULL),
+ ("Failed to set target pad"));
+ gst_object_unref (targetpad);
+ return FALSE;
+ }
}
static GstStateChangeReturn