summaryrefslogtreecommitdiffstats
path: root/ext
diff options
context:
space:
mode:
authorBenjamin Otte <otte@gnome.org>2004-04-05 17:47:30 +0000
committerBenjamin Otte <otte@gnome.org>2004-04-05 17:47:30 +0000
commite6b112c25e12e7cceabfbf0e0ab5ee48d84649d1 (patch)
tree48846df0c4a74ca499bf349dbacaac1cb70b3022 /ext
parent65d6fd009de2875a0ab58adfab1403b7225217b8 (diff)
ext/esd/esdmon.c: fix nonterminated vararg and memleak
Original commit message from CVS: * ext/esd/esdmon.c: (gst_esdmon_get): fix nonterminated vararg and memleak
Diffstat (limited to 'ext')
-rw-r--r--ext/esd/esdmon.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/ext/esd/esdmon.c b/ext/esd/esdmon.c
index d06af758..e202a3e4 100644
--- a/ext/esd/esdmon.c
+++ b/ext/esd/esdmon.c
@@ -245,20 +245,22 @@ gst_esdmon_get (GstPad * pad)
return NULL;
}
if (!GST_PAD_CAPS (pad)) {
- gint sign = (esdmon->depth == 8 ? FALSE : TRUE);
+ GstCaps *caps = gst_caps_new_simple ("audio/x-raw-int",
+ "endianness", G_TYPE_INT, G_BYTE_ORDER,
+ "signed", G_TYPE_BOOLEAN, esdmon->depth == 8 ? FALSE : TRUE,
+ "width", G_TYPE_INT, esdmon->depth,
+ "depth", G_TYPE_INT, esdmon->depth,
+ "rate", G_TYPE_INT, esdmon->frequency,
+ "channels", G_TYPE_INT, esdmon->channels,
+ NULL);
/* set caps on src pad */
- if (gst_pad_set_explicit_caps (esdmon->srcpad,
- gst_caps_new_simple ("audio/x-raw-int",
- "endianness", G_TYPE_INT, G_BYTE_ORDER,
- "signed", G_TYPE_BOOLEAN, sign,
- "width", G_TYPE_INT, esdmon->depth,
- "depth", G_TYPE_INT, esdmon->depth,
- "rate", G_TYPE_INT, esdmon->frequency,
- "channels", G_TYPE_INT, esdmon->channels)) <= 0) {
+ if (gst_pad_set_explicit_caps (esdmon->srcpad, caps) <= 0) {
GST_ELEMENT_ERROR (esdmon, CORE, NEGOTIATION, (NULL), (NULL));
+ gst_caps_free (caps);
return NULL;
}
+ gst_caps_free (caps);
}
GST_BUFFER_SIZE (buf) = readbytes;