mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 08:46:40 +00:00
v4l2codecs: Always chain up to parent decide_allocation function for all codecs
Apply the changes to the codecs previously left out, fixing playback
issues seen with VP9.
See: 70ff80a873
("v4l2codecs: Always chain up to parent decide_allocation function")
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5896>
This commit is contained in:
parent
75b7e5fcb3
commit
a64f2bf628
3 changed files with 18 additions and 0 deletions
|
@ -368,6 +368,11 @@ gst_v4l2_codec_av1_dec_decide_allocation (GstVideoDecoder * decoder,
|
|||
GstV4l2CodecAV1Dec *self = GST_V4L2_CODEC_AV1_DEC (decoder);
|
||||
guint min = 0, num_bitstream;
|
||||
|
||||
/* If we are streaming here, then it means there is nothing allocation
|
||||
* related in the new state and allocation can be ignored */
|
||||
if (self->streaming)
|
||||
goto no_internal_changes;
|
||||
|
||||
self->has_videometa = gst_query_find_allocation_meta (query,
|
||||
GST_VIDEO_META_API_TYPE, NULL);
|
||||
|
||||
|
@ -401,6 +406,7 @@ gst_v4l2_codec_av1_dec_decide_allocation (GstVideoDecoder * decoder,
|
|||
|
||||
self->src_pool = gst_v4l2_codec_pool_new (self->src_allocator, &self->vinfo);
|
||||
|
||||
no_internal_changes:
|
||||
/* Our buffer pool is internal, we will let the base class create a video
|
||||
* pool, and use it if we are running out of buffers or if downstream does
|
||||
* not support GstVideoMeta */
|
||||
|
|
|
@ -337,6 +337,11 @@ gst_v4l2_codec_mpeg2_dec_decide_allocation (GstVideoDecoder * decoder,
|
|||
GstV4l2CodecMpeg2Dec *self = GST_V4L2_CODEC_MPEG2_DEC (decoder);
|
||||
guint min = 0, num_bitstream;
|
||||
|
||||
/* If we are streaming here, then it means there is nothing allocation
|
||||
* related in the new state and allocation can be ignored */
|
||||
if (self->streaming)
|
||||
goto no_internal_changes;
|
||||
|
||||
self->has_videometa = gst_query_find_allocation_meta (query,
|
||||
GST_VIDEO_META_API_TYPE, NULL);
|
||||
|
||||
|
@ -357,6 +362,7 @@ gst_v4l2_codec_mpeg2_dec_decide_allocation (GstVideoDecoder * decoder,
|
|||
GST_PAD_SRC, self->min_pool_size + min + 4);
|
||||
self->src_pool = gst_v4l2_codec_pool_new (self->src_allocator, &self->vinfo);
|
||||
|
||||
no_internal_changes:
|
||||
/* Our buffer pool is internal, we will let the base class create a video
|
||||
* pool, and use it if we are running out of buffers or if downstream does
|
||||
* not support GstVideoMeta */
|
||||
|
|
|
@ -553,6 +553,11 @@ gst_v4l2_codec_vp9_dec_decide_allocation (GstVideoDecoder * decoder,
|
|||
guint min = 0;
|
||||
guint num_bitstream;
|
||||
|
||||
/* If we are streaming here, then it means there is nothing allocation
|
||||
* related in the new state and allocation can be ignored */
|
||||
if (self->streaming)
|
||||
goto no_internal_changes;
|
||||
|
||||
self->has_videometa = gst_query_find_allocation_meta (query,
|
||||
GST_VIDEO_META_API_TYPE, NULL);
|
||||
|
||||
|
@ -586,6 +591,7 @@ gst_v4l2_codec_vp9_dec_decide_allocation (GstVideoDecoder * decoder,
|
|||
|
||||
self->src_pool = gst_v4l2_codec_pool_new (self->src_allocator, &self->vinfo);
|
||||
|
||||
no_internal_changes:
|
||||
/* Our buffer pool is internal, we will let the base class create a video
|
||||
* pool, and use it if we are running out of buffers or if downstream does
|
||||
* not support GstVideoMeta */
|
||||
|
|
Loading…
Reference in a new issue