diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c index 791004e595..852f191700 100644 --- a/gst-libs/gst/audio/gstaudiodecoder.c +++ b/gst-libs/gst/audio/gstaudiodecoder.c @@ -2921,3 +2921,30 @@ done: return buffer; } + +/** + * gst_audio_decoder_get_allocator: + * @dec: a #GstAudioDecoder + * @allocator: (out) (allow-none) (transfer full): the #GstAllocator + * used + * @params: (out) (allow-none) (transfer full): the + * #GstAllocatorParams of @allocator + * + * Lets #GstAudioDecoder sub-classes to know the memory @allocator + * used by the base class and its @params. + * + * Unref the @allocator after use it. + */ +void +gst_audio_decoder_get_allocator (GstAudioDecoder * dec, + GstAllocator ** allocator, GstAllocationParams * params) +{ + g_return_if_fail (GST_IS_AUDIO_DECODER (dec)); + + if (allocator) + *allocator = dec->priv->ctx.allocator ? + gst_object_ref (dec->priv->ctx.allocator) : NULL; + + if (params) + *params = dec->priv->ctx.params; +} diff --git a/gst-libs/gst/audio/gstaudiodecoder.h b/gst-libs/gst/audio/gstaudiodecoder.h index cbc2464c52..4132dbb1b7 100644 --- a/gst-libs/gst/audio/gstaudiodecoder.h +++ b/gst-libs/gst/audio/gstaudiodecoder.h @@ -344,6 +344,10 @@ void gst_audio_decoder_set_needs_format (GstAudioDecoder * dec, gboolean gst_audio_decoder_get_needs_format (GstAudioDecoder * dec); +void gst_audio_decoder_get_allocator (GstAudioDecoder * dec, + GstAllocator ** allocator, + GstAllocationParams * params); + void gst_audio_decoder_merge_tags (GstAudioDecoder * dec, const GstTagList * tags, GstTagMergeMode mode);