diff options
author | Thiago Santos <thiagoss@osg.samsung.com> | 2015-08-15 07:30:26 -0300 |
---|---|---|
committer | Thiago Santos <thiagoss@osg.samsung.com> | 2015-08-15 13:51:35 -0300 |
commit | 5c56635e97084357de4c1ca74ce71456b214caa0 (patch) | |
tree | 1b295939f1fea410108ba7a224c52752cd0c8d6e | |
parent | 8cc2e1a76bede42099cd03cbb5e351aac63ea4b4 (diff) |
avauddec: let audiodecoder call the default pad query handler
Avoids repeating the same handling in many decoders
-rw-r--r-- | ext/libav/gstavauddec.c | 25 |
1 files changed, 2 insertions, 23 deletions
diff --git a/ext/libav/gstavauddec.c b/ext/libav/gstavauddec.c index fbce56f..2418e00 100644 --- a/ext/libav/gstavauddec.c +++ b/ext/libav/gstavauddec.c @@ -53,8 +53,6 @@ static gboolean gst_ffmpegauddec_set_format (GstAudioDecoder * decoder, GstCaps * caps); static GstFlowReturn gst_ffmpegauddec_handle_frame (GstAudioDecoder * decoder, GstBuffer * inbuf); -static gboolean gst_ffmpegauddec_sink_query (GstAudioDecoder * decoder, - GstQuery * query); static gboolean gst_ffmpegauddec_negotiate (GstFFMpegAudDec * ffmpegdec, AVCodecContext * context, AVFrame * frame, gboolean force); @@ -135,8 +133,6 @@ gst_ffmpegauddec_class_init (GstFFMpegAudDecClass * klass) gstaudiodecoder_class->flush = GST_DEBUG_FUNCPTR (gst_ffmpegauddec_flush); gstaudiodecoder_class->propose_allocation = GST_DEBUG_FUNCPTR (gst_ffmpegauddec_propose_allocation); - gstaudiodecoder_class->sink_query = - GST_DEBUG_FUNCPTR (gst_ffmpegauddec_sink_query); } static void @@ -153,6 +149,8 @@ gst_ffmpegauddec_init (GstFFMpegAudDec * ffmpegdec) ffmpegdec->frame = av_frame_alloc (); GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (ffmpegdec)); + gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST + (ffmpegdec), TRUE); gst_audio_decoder_set_drainable (GST_AUDIO_DECODER (ffmpegdec), TRUE); gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (ffmpegdec), TRUE); @@ -208,25 +206,6 @@ gst_ffmpegauddec_close (GstFFMpegAudDec * ffmpegdec, gboolean reset) } static gboolean -gst_ffmpegauddec_sink_query (GstAudioDecoder * decoder, GstQuery * query) -{ - gboolean ret; - - switch (GST_QUERY_TYPE (query)) { - case GST_QUERY_ACCEPT_CAPS: - /* resort to the default accept-caps query handling to skip the videodecoder handling */ - ret = - gst_pad_query_default (GST_AUDIO_DECODER_SINK_PAD (decoder), - GST_OBJECT_CAST (decoder), query); - break; - default: - ret = gst_audio_decoder_sink_query_default (decoder, query); - break; - } - return ret; -} - -static gboolean gst_ffmpegauddec_start (GstAudioDecoder * decoder) { GstFFMpegAudDec *ffmpegdec = (GstFFMpegAudDec *) decoder; |