diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt index e82050beb0..81a37d48be 100644 --- a/docs/libs/gst-plugins-base-libs-sections.txt +++ b/docs/libs/gst-plugins-base-libs-sections.txt @@ -2876,6 +2876,7 @@ GstVideoDecoderClass gst_video_decoder_add_to_frame gst_video_decoder_allocate_output_buffer gst_video_decoder_allocate_output_frame +gst_video_decoder_allocate_output_frame_full gst_video_decoder_get_allocator gst_video_decoder_get_buffer_pool gst_video_decoder_drop_frame diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c index eb9dd29820..4b9209caac 100644 --- a/gst-libs/gst/video/gstvideodecoder.c +++ b/gst-libs/gst/video/gstvideodecoder.c @@ -3955,6 +3955,27 @@ failed_allocation: GstFlowReturn gst_video_decoder_allocate_output_frame (GstVideoDecoder * 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; GstVideoCodecState *state; @@ -3988,7 +4009,7 @@ gst_video_decoder_allocate_output_frame (GstVideoDecoder * GST_LOG_OBJECT (decoder, "alloc buffer size %d", num_bytes); flow_ret = gst_buffer_pool_acquire_buffer (decoder->priv->pool, - &frame->output_buffer, NULL); + &frame->output_buffer, params); GST_VIDEO_DECODER_STREAM_UNLOCK (decoder); diff --git a/gst-libs/gst/video/gstvideodecoder.h b/gst-libs/gst/video/gstvideodecoder.h index 02e6753851..b314c4f297 100644 --- a/gst-libs/gst/video/gstvideodecoder.h +++ b/gst-libs/gst/video/gstvideodecoder.h @@ -391,6 +391,9 @@ gsize gst_video_decoder_get_pending_frame_size (GstVideoDecoder *decode 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, GstVideoCodecFrame *frame);