ext/mad/gstmad.c: fixed caps leak

Original commit message from CVS:
2004-03-06  Christophe Fergeau  <teuf@gnome.org>

* ext/mad/gstmad.c: (gst_mad_chain): fixed caps leak
This commit is contained in:
Christophe Fergeau 2004-03-06 18:22:51 +00:00
parent 91ade2eb86
commit e81c3184bb
2 changed files with 18 additions and 10 deletions

View file

@ -1,3 +1,7 @@
2004-03-06 Christophe Fergeau <teuf@gnome.org>
* ext/mad/gstmad.c: (gst_mad_chain): fixed caps leak
2004-03-06 Thomas Vander Stichele <thomas at apestaart dot org>
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_new):

View file

@ -1234,20 +1234,24 @@ gst_mad_chain (GstPad *pad, GstData *_data)
gst_mad_update_info (mad);
if (mad->channels != nchannels || mad->rate != rate) {
if (mad->stream.options & MAD_OPTION_HALFSAMPLERATE)
GstCaps *caps;
if (mad->stream.options & MAD_OPTION_HALFSAMPLERATE)
rate >>=1;
/* we set the caps even when the pad is not connected so they
* can be gotten for streaminfo */
gst_pad_set_explicit_caps (mad->srcpad,
gst_caps_new_simple ("audio/x-raw-int",
"endianness", G_TYPE_INT, G_BYTE_ORDER,
"signed", G_TYPE_BOOLEAN, TRUE,
"width", G_TYPE_INT, 16,
"depth", G_TYPE_INT, 16,
"rate", G_TYPE_INT, rate,
"channels", G_TYPE_INT, nchannels,
NULL));
caps = gst_caps_new_simple ("audio/x-raw-int",
"endianness", G_TYPE_INT, G_BYTE_ORDER,
"signed", G_TYPE_BOOLEAN, TRUE,
"width", G_TYPE_INT, 16,
"depth", G_TYPE_INT, 16,
"rate", G_TYPE_INT, rate,
"channels", G_TYPE_INT, nchannels,
NULL);
gst_pad_set_explicit_caps (mad->srcpad, caps);
gst_caps_free (caps);
mad->channels = nchannels;
mad->rate = rate;
}