cleanups, mem fix

Original commit message from CVS:
cleanups, mem fix
This commit is contained in:
Thomas Vander Stichele 2004-06-17 19:07:00 +00:00
parent aabfd87d93
commit 7dfdfad793

View File

@ -188,16 +188,19 @@ static GstCaps *
gst_tcpclientsrc_getcaps (GstPad * pad) gst_tcpclientsrc_getcaps (GstPad * pad)
{ {
GstTCPClientSrc *src; GstTCPClientSrc *src;
GstCaps *caps = NULL;
src = GST_TCPCLIENTSRC (GST_OBJECT_PARENT (pad)); src = GST_TCPCLIENTSRC (GST_OBJECT_PARENT (pad));
if (!GST_FLAG_IS_SET (src, GST_TCPCLIENTSRC_OPEN)) if (!GST_FLAG_IS_SET (src, GST_TCPCLIENTSRC_OPEN))
return gst_caps_new_any (); caps = gst_caps_new_any ();
else if (src->caps)
if (src->caps) caps = gst_caps_copy (src->caps);
return src->caps; else
caps = gst_caps_new_any ();
return gst_caps_new_any (); GST_DEBUG_OBJECT (src, "returning caps %" GST_PTR_FORMAT, caps);
g_assert (GST_IS_CAPS (caps));
return caps;
} }
static GstData * static GstData *
@ -445,7 +448,6 @@ gst_tcpclientsrc_init_receive (GstTCPClientSrc * this)
if (this->protocol == GST_TCP_PROTOCOL_TYPE_GDP) { if (this->protocol == GST_TCP_PROTOCOL_TYPE_GDP) {
/* if we haven't received caps yet, we should get them first */ /* if we haven't received caps yet, we should get them first */
if (!this->caps_received) { if (!this->caps_received) {
gchar *string;
GstCaps *caps; GstCaps *caps;
GST_DEBUG_OBJECT (this, "getting caps through GDP"); GST_DEBUG_OBJECT (this, "getting caps through GDP");
@ -454,11 +456,15 @@ gst_tcpclientsrc_init_receive (GstTCPClientSrc * this)
("Could not read caps through GDP")); ("Could not read caps through GDP"));
return FALSE; return FALSE;
} }
if (!GST_IS_CAPS (caps)) {
GST_ELEMENT_ERROR (this, RESOURCE, READ, (NULL),
("Could not read caps through GDP"));
return FALSE;
}
GST_DEBUG_OBJECT (this, "Received caps through GDP: %" GST_PTR_FORMAT,
caps);
this->caps_received = TRUE; this->caps_received = TRUE;
this->caps = caps; this->caps = caps;
string = gst_caps_to_string (caps);
GST_DEBUG_OBJECT (this, "Received caps through GDP: %s", string);
g_free (string);
} }
} }
return TRUE; return TRUE;
@ -471,6 +477,11 @@ gst_tcpclientsrc_close (GstTCPClientSrc * this)
close (this->sock_fd); close (this->sock_fd);
this->sock_fd = -1; this->sock_fd = -1;
} }
this->caps_received = FALSE;
if (this->caps) {
gst_caps_free (this->caps);
this->caps = NULL;
}
GST_FLAG_UNSET (this, GST_TCPCLIENTSRC_OPEN); GST_FLAG_UNSET (this, GST_TCPCLIENTSRC_OPEN);
} }