audiodecoder: getter for allocator

Sometimes the decoder would use the allocator for something else than just
allocating output buffers, for example, querying different parameters.

This patch expose a getter accessor for the negotiated memory allocator.
This commit is contained in:
Víctor Manuel Jáquez Leal 2012-08-07 17:24:33 +02:00 committed by Sebastian Dröge
parent 936ec3eb8f
commit f7f0c55e5f
2 changed files with 31 additions and 0 deletions

View file

@ -2921,3 +2921,30 @@ done:
return buffer; 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;
}

View file

@ -344,6 +344,10 @@ void gst_audio_decoder_set_needs_format (GstAudioDecoder * dec,
gboolean gst_audio_decoder_get_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, void gst_audio_decoder_merge_tags (GstAudioDecoder * dec,
const GstTagList * tags, GstTagMergeMode mode); const GstTagList * tags, GstTagMergeMode mode);