From e02a164a363a1cfad6f2327ab42e39090b2c0298 Mon Sep 17 00:00:00 2001 From: Vincent Penquerc'h Date: Thu, 10 Nov 2011 14:37:02 +0000 Subject: [PATCH] vorbisenc: fix getcaps ignoring filter caps --- ext/vorbis/gstvorbisenc.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/ext/vorbis/gstvorbisenc.c b/ext/vorbis/gstvorbisenc.c index 8460b76..ab309af 100644 --- a/ext/vorbis/gstvorbisenc.c +++ b/ext/vorbis/gstvorbisenc.c @@ -302,11 +302,21 @@ static GstCaps * gst_vorbis_enc_getcaps (GstAudioEncoder * enc, GstCaps * filter) { GstVorbisEnc *vorbisenc = GST_VORBISENC (enc); + GstCaps *caps; if (vorbisenc->sinkcaps == NULL) vorbisenc->sinkcaps = gst_vorbis_enc_generate_sink_caps (); - return gst_audio_encoder_proxy_getcaps (enc, vorbisenc->sinkcaps); + if (filter) { + GstCaps *int_caps = gst_caps_intersect_full (filter, vorbisenc->sinkcaps, + GST_CAPS_INTERSECT_FIRST); + caps = gst_audio_encoder_proxy_getcaps (enc, int_caps); + gst_caps_unref (int_caps); + } else { + caps = gst_audio_encoder_proxy_getcaps (enc, vorbisenc->sinkcaps); + } + + return caps; } static gint64 -- 2.7.4