}
static GstCaps *
-gst_vorbis_enc_sink_getcaps (GstPad * pad)
+gst_vorbis_enc_sink_getcaps (GstPad * pad, GstCaps * filter)
{
GstVorbisEnc *vorbisenc = GST_VORBISENC (GST_PAD_PARENT (pad));
if (vorbisenc->sinkcaps == NULL)
vorbisenc->sinkcaps = gst_vorbis_enc_generate_sink_caps ();
- return gst_caps_ref (vorbisenc->sinkcaps);
+ if (filter)
+ return gst_caps_intersect_full (filter, vorbisenc->sinkcaps,
+ GST_CAPS_INTERSECT_FIRST);
+ else
+ return gst_caps_ref (vorbisenc->sinkcaps);
}
static gboolean
gsize size;
/* get the headers into the caps, passing them to vorbis as we go */
- caps = gst_caps_make_writable (gst_pad_get_caps (parse->srcpad));
+ caps = gst_caps_make_writable (gst_pad_get_caps (parse->srcpad, NULL));
vorbis_parse_set_header_on_caps (parse, caps);
GST_DEBUG_OBJECT (parse, "here are the caps: %" GST_PTR_FORMAT, caps);
gst_pad_set_caps (parse->srcpad, caps);