summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2004-03-06 01:01:28 +0000
committerDavid Schleef <ds@schleef.org>2004-03-06 01:01:28 +0000
commit740ad5455d601df58412d0e01769d6d280359f2c (patch)
tree57fc238b8a031814478cc0113f4259f914cd8bc5
parent9331801a627de7006d19eb1cf3313dd32f6fb3e0 (diff)
gst/udp/gstudpsrc.c: Check for unfixed caps and throw an element error. (bug #136334)
Original commit message from CVS: * gst/udp/gstudpsrc.c: (gst_udpsrc_get): Check for unfixed caps and throw an element error. (bug #136334)
-rw-r--r--ChangeLog5
-rw-r--r--gst/udp/gstudpsrc.c10
2 files changed, 14 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 4c0a2cf1..4e3e48d0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2004-03-05 David Schleef <ds@schleef.org>
+ * gst/udp/gstudpsrc.c: (gst_udpsrc_get): Check for unfixed
+ caps and throw an element error. (bug #136334)
+
+2004-03-05 David Schleef <ds@schleef.org>
+
* ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_srcgetcaps),
(gst_faad_chain): Fix negotiation.
* ext/librfb/gstrfbsrc.c: (gst_rfbsrc_handle_src_event): Add
diff --git a/gst/udp/gstudpsrc.c b/gst/udp/gstudpsrc.c
index 6aced281..66bcd268 100644
--- a/gst/udp/gstudpsrc.c
+++ b/gst/udp/gstudpsrc.c
@@ -234,9 +234,17 @@ gst_udpsrc_get (GstPad *pad)
buf[ret] = '\0';
doc = xmlParseMemory(buf, ret);
caps = gst_caps_load_thyself(doc->xmlRootNode);
+ if (caps == NULL) {
+ return NULL;
+ }
/* foward the connect, we don't signal back the result here... */
- gst_pad_try_set_caps (udpsrc->srcpad, caps);
+ if (gst_caps_is_fixed (caps)) {
+ gst_pad_try_set_caps (udpsrc->srcpad, caps);
+ } else {
+ GST_ERROR ("caps %" GST_PTR_FORMAT, caps);
+ GST_ELEMENT_ERROR (udpsrc, CORE, NEGOTIATION, (NULL), ("Got unfixed caps from peer"));
+ }
#endif
g_free (buf);