mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 12:11:13 +00:00
video: add gst_video_decoder_allocate_output_frame_with_params
It adds a third argument to pass GstBufferPoolAcquireParams to gst_buffer_pool_acquire_buffer. If a user subclasses GstBufferPoolAcquireParams, this allows to pass an updated param to the underlying buffer pool at each gst_video_decoder_allocate_output_frame_with_params call. https://bugzilla.gnome.org/show_bug.cgi?id=773165
This commit is contained in:
parent
e73eb54908
commit
3bf893e12a
3 changed files with 26 additions and 1 deletions
|
@ -2876,6 +2876,7 @@ GstVideoDecoderClass
|
||||||
gst_video_decoder_add_to_frame
|
gst_video_decoder_add_to_frame
|
||||||
gst_video_decoder_allocate_output_buffer
|
gst_video_decoder_allocate_output_buffer
|
||||||
gst_video_decoder_allocate_output_frame
|
gst_video_decoder_allocate_output_frame
|
||||||
|
gst_video_decoder_allocate_output_frame_full
|
||||||
gst_video_decoder_get_allocator
|
gst_video_decoder_get_allocator
|
||||||
gst_video_decoder_get_buffer_pool
|
gst_video_decoder_get_buffer_pool
|
||||||
gst_video_decoder_drop_frame
|
gst_video_decoder_drop_frame
|
||||||
|
|
|
@ -3955,6 +3955,27 @@ failed_allocation:
|
||||||
GstFlowReturn
|
GstFlowReturn
|
||||||
gst_video_decoder_allocate_output_frame (GstVideoDecoder *
|
gst_video_decoder_allocate_output_frame (GstVideoDecoder *
|
||||||
decoder, GstVideoCodecFrame * frame)
|
decoder, GstVideoCodecFrame * frame)
|
||||||
|
{
|
||||||
|
return gst_video_decoder_allocate_output_frame_with_params (decoder, frame,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gst_video_decoder_allocate_output_frame_with_params:
|
||||||
|
* @decoder: a #GstVideoDecoder
|
||||||
|
* @frame: a #GstVideoCodecFrame
|
||||||
|
* @params: a #GstBufferPoolAcquireParams
|
||||||
|
*
|
||||||
|
* Same as #gst_video_decoder_allocate_output_frame except it allows passing
|
||||||
|
* #GstBufferPoolAcquireParams to the sub call gst_buffer_pool_acquire_buffer.
|
||||||
|
*
|
||||||
|
* Returns: %GST_FLOW_OK if an output buffer could be allocated
|
||||||
|
*
|
||||||
|
* Since: 1.12
|
||||||
|
*/
|
||||||
|
GstFlowReturn
|
||||||
|
gst_video_decoder_allocate_output_frame_with_params (GstVideoDecoder *
|
||||||
|
decoder, GstVideoCodecFrame * frame, GstBufferPoolAcquireParams * params)
|
||||||
{
|
{
|
||||||
GstFlowReturn flow_ret;
|
GstFlowReturn flow_ret;
|
||||||
GstVideoCodecState *state;
|
GstVideoCodecState *state;
|
||||||
|
@ -3988,7 +4009,7 @@ gst_video_decoder_allocate_output_frame (GstVideoDecoder *
|
||||||
GST_LOG_OBJECT (decoder, "alloc buffer size %d", num_bytes);
|
GST_LOG_OBJECT (decoder, "alloc buffer size %d", num_bytes);
|
||||||
|
|
||||||
flow_ret = gst_buffer_pool_acquire_buffer (decoder->priv->pool,
|
flow_ret = gst_buffer_pool_acquire_buffer (decoder->priv->pool,
|
||||||
&frame->output_buffer, NULL);
|
&frame->output_buffer, params);
|
||||||
|
|
||||||
GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
|
GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
|
||||||
|
|
||||||
|
|
|
@ -391,6 +391,9 @@ gsize gst_video_decoder_get_pending_frame_size (GstVideoDecoder *decode
|
||||||
|
|
||||||
GstBuffer *gst_video_decoder_allocate_output_buffer (GstVideoDecoder * decoder);
|
GstBuffer *gst_video_decoder_allocate_output_buffer (GstVideoDecoder * decoder);
|
||||||
|
|
||||||
|
GstFlowReturn gst_video_decoder_allocate_output_frame_with_params (GstVideoDecoder *decoder,
|
||||||
|
GstVideoCodecFrame * frame,
|
||||||
|
GstBufferPoolAcquireParams *params);
|
||||||
GstFlowReturn gst_video_decoder_allocate_output_frame (GstVideoDecoder *decoder,
|
GstFlowReturn gst_video_decoder_allocate_output_frame (GstVideoDecoder *decoder,
|
||||||
GstVideoCodecFrame *frame);
|
GstVideoCodecFrame *frame);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue