va: dec, vpp: don't get buffer size from allocators
Since buffer size is now ignored by bufferpool there's no need to get tha value from the allocator. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1667>
This commit is contained in:
parent
e73b866fe0
commit
64eb0f0ed2
@ -1074,8 +1074,7 @@ _shall_copy_frames (GstVaH264Dec * self, GstVideoInfo * info)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
_try_allocator (GstVaH264Dec * self, GstAllocator * allocator, GstCaps * caps,
|
_try_allocator (GstVaH264Dec * self, GstAllocator * allocator, GstCaps * caps)
|
||||||
guint * size)
|
|
||||||
{
|
{
|
||||||
GstVaAllocationParams params = {
|
GstVaAllocationParams params = {
|
||||||
.usage_hint = VA_SURFACE_ATTRIB_USAGE_HINT_DECODER,
|
.usage_hint = VA_SURFACE_ATTRIB_USAGE_HINT_DECODER,
|
||||||
@ -1100,14 +1099,11 @@ _try_allocator (GstVaH264Dec * self, GstAllocator * allocator, GstCaps * caps,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (size)
|
|
||||||
*size = GST_VIDEO_INFO_SIZE (¶ms.info);
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstAllocator *
|
static GstAllocator *
|
||||||
_create_allocator (GstVaH264Dec * self, GstCaps * caps, guint * size)
|
_create_allocator (GstVaH264Dec * self, GstCaps * caps)
|
||||||
{
|
{
|
||||||
GstAllocator *allocator = NULL;
|
GstAllocator *allocator = NULL;
|
||||||
GstVaDisplay *display = NULL;
|
GstVaDisplay *display = NULL;
|
||||||
@ -1124,7 +1120,7 @@ _create_allocator (GstVaH264Dec * self, GstCaps * caps, guint * size)
|
|||||||
|
|
||||||
gst_object_unref (display);
|
gst_object_unref (display);
|
||||||
|
|
||||||
if (!_try_allocator (self, allocator, caps, size))
|
if (!_try_allocator (self, allocator, caps))
|
||||||
gst_clear_object (&allocator);
|
gst_clear_object (&allocator);
|
||||||
|
|
||||||
return allocator;
|
return allocator;
|
||||||
@ -1154,7 +1150,7 @@ gst_va_h264_dec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query)
|
|||||||
GstStructure *config;
|
GstStructure *config;
|
||||||
GstVideoInfo info;
|
GstVideoInfo info;
|
||||||
GstVaH264Dec *self = GST_VA_H264_DEC (decoder);
|
GstVaH264Dec *self = GST_VA_H264_DEC (decoder);
|
||||||
guint size, min, max;
|
guint size = 0, min, max;
|
||||||
gboolean update_pool = FALSE, update_allocator = FALSE, has_videoalignment;
|
gboolean update_pool = FALSE, update_allocator = FALSE, has_videoalignment;
|
||||||
|
|
||||||
gst_query_parse_allocation (query, &caps, NULL);
|
gst_query_parse_allocation (query, &caps, NULL);
|
||||||
@ -1225,7 +1221,7 @@ gst_va_h264_dec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!allocator) {
|
if (!allocator) {
|
||||||
if (!(allocator = _create_allocator (self, caps, &size)))
|
if (!(allocator = _create_allocator (self, caps)))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -393,8 +393,7 @@ _shall_copy_frames (GstVaVp8Dec * self, GstVideoInfo * info)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
_try_allocator (GstVaVp8Dec * self, GstAllocator * allocator, GstCaps * caps,
|
_try_allocator (GstVaVp8Dec * self, GstAllocator * allocator, GstCaps * caps)
|
||||||
guint * size)
|
|
||||||
{
|
{
|
||||||
GstVaAllocationParams params = {
|
GstVaAllocationParams params = {
|
||||||
.usage_hint = VA_SURFACE_ATTRIB_USAGE_HINT_DECODER,
|
.usage_hint = VA_SURFACE_ATTRIB_USAGE_HINT_DECODER,
|
||||||
@ -415,14 +414,11 @@ _try_allocator (GstVaVp8Dec * self, GstAllocator * allocator, GstCaps * caps,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (size)
|
|
||||||
*size = GST_VIDEO_INFO_SIZE (¶ms.info);
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstAllocator *
|
static GstAllocator *
|
||||||
_create_allocator (GstVaVp8Dec * self, GstCaps * caps, guint * size)
|
_create_allocator (GstVaVp8Dec * self, GstCaps * caps)
|
||||||
{
|
{
|
||||||
GstAllocator *allocator = NULL;
|
GstAllocator *allocator = NULL;
|
||||||
GstVaDisplay *display = NULL;
|
GstVaDisplay *display = NULL;
|
||||||
@ -439,7 +435,7 @@ _create_allocator (GstVaVp8Dec * self, GstCaps * caps, guint * size)
|
|||||||
|
|
||||||
gst_object_unref (display);
|
gst_object_unref (display);
|
||||||
|
|
||||||
if (!_try_allocator (self, allocator, caps, size))
|
if (!_try_allocator (self, allocator, caps))
|
||||||
gst_clear_object (&allocator);
|
gst_clear_object (&allocator);
|
||||||
|
|
||||||
return allocator;
|
return allocator;
|
||||||
@ -469,7 +465,7 @@ gst_va_vp8_dec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query)
|
|||||||
GstStructure *config;
|
GstStructure *config;
|
||||||
GstVideoInfo info;
|
GstVideoInfo info;
|
||||||
GstVaVp8Dec *self = GST_VA_VP8_DEC (decoder);
|
GstVaVp8Dec *self = GST_VA_VP8_DEC (decoder);
|
||||||
guint size, min, max;
|
guint size = 0, min, max;
|
||||||
gboolean update_pool = FALSE, update_allocator = FALSE;
|
gboolean update_pool = FALSE, update_allocator = FALSE;
|
||||||
|
|
||||||
gst_query_parse_allocation (query, &caps, NULL);
|
gst_query_parse_allocation (query, &caps, NULL);
|
||||||
@ -537,7 +533,7 @@ gst_va_vp8_dec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!allocator) {
|
if (!allocator) {
|
||||||
if (!(allocator = _create_allocator (self, caps, &size)))
|
if (!(allocator = _create_allocator (self, caps)))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -397,7 +397,7 @@ gst_va_vpp_set_context (GstElement * element, GstContext * context)
|
|||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
_try_allocator (GstVaVpp * self, GstAllocator * allocator, GstCaps * caps,
|
_try_allocator (GstVaVpp * self, GstAllocator * allocator, GstCaps * caps,
|
||||||
guint usage_hint, guint * size)
|
guint usage_hint)
|
||||||
{
|
{
|
||||||
GstVaAllocationParams params = {
|
GstVaAllocationParams params = {
|
||||||
.usage_hint = usage_hint,
|
.usage_hint = usage_hint,
|
||||||
@ -415,15 +415,11 @@ _try_allocator (GstVaVpp * self, GstAllocator * allocator, GstCaps * caps,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (size)
|
|
||||||
*size = GST_VIDEO_INFO_SIZE (¶ms.info);
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstAllocator *
|
static GstAllocator *
|
||||||
_create_allocator (GstVaVpp * self, GstCaps * caps, guint usage_hint,
|
_create_allocator (GstVaVpp * self, GstCaps * caps, guint usage_hint)
|
||||||
guint * size)
|
|
||||||
{
|
{
|
||||||
GstAllocator *allocator = NULL;
|
GstAllocator *allocator = NULL;
|
||||||
|
|
||||||
@ -434,7 +430,7 @@ _create_allocator (GstVaVpp * self, GstCaps * caps, guint usage_hint,
|
|||||||
allocator = gst_va_allocator_new (self->display, surface_formats);
|
allocator = gst_va_allocator_new (self->display, surface_formats);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_try_allocator (self, allocator, caps, usage_hint, size))
|
if (!_try_allocator (self, allocator, caps, usage_hint))
|
||||||
gst_clear_object (&allocator);
|
gst_clear_object (&allocator);
|
||||||
|
|
||||||
return allocator;
|
return allocator;
|
||||||
@ -508,7 +504,7 @@ gst_va_vpp_propose_allocation (GstBaseTransform * trans,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!allocator) {
|
if (!allocator) {
|
||||||
if (!(allocator = _create_allocator (self, caps, usage_hint, &size)))
|
if (!(allocator = _create_allocator (self, caps, usage_hint)))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -558,7 +554,7 @@ gst_va_vpp_decide_allocation (GstBaseTransform * trans, GstQuery * query)
|
|||||||
GstBufferPool *pool = NULL;
|
GstBufferPool *pool = NULL;
|
||||||
GstCaps *outcaps = NULL;
|
GstCaps *outcaps = NULL;
|
||||||
GstStructure *config;
|
GstStructure *config;
|
||||||
guint min, max, size, usage_hint = VA_SURFACE_ATTRIB_USAGE_HINT_VPP_WRITE;
|
guint min, max, size = 0, usage_hint = VA_SURFACE_ATTRIB_USAGE_HINT_VPP_WRITE;
|
||||||
gboolean update_pool, update_allocator;
|
gboolean update_pool, update_allocator;
|
||||||
|
|
||||||
gst_query_parse_allocation (query, &outcaps, NULL);
|
gst_query_parse_allocation (query, &outcaps, NULL);
|
||||||
@ -593,7 +589,7 @@ gst_va_vpp_decide_allocation (GstBaseTransform * trans, GstQuery * query)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!allocator) {
|
if (!allocator) {
|
||||||
if (!(allocator = _create_allocator (self, outcaps, usage_hint, &size)))
|
if (!(allocator = _create_allocator (self, outcaps, usage_hint)))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -983,7 +979,7 @@ _get_sinkpad_pool (GstVaVpp * self)
|
|||||||
|
|
||||||
size = GST_VIDEO_INFO_SIZE (&self->in_info);
|
size = GST_VIDEO_INFO_SIZE (&self->in_info);
|
||||||
|
|
||||||
allocator = _create_allocator (self, self->incaps, usage_hint, &size);
|
allocator = _create_allocator (self, self->incaps, usage_hint);
|
||||||
|
|
||||||
self->sinkpad_pool = _create_sinkpad_bufferpool (self->incaps, size, 0, 0,
|
self->sinkpad_pool = _create_sinkpad_bufferpool (self->incaps, size, 0, 0,
|
||||||
usage_hint, allocator, ¶ms);
|
usage_hint, allocator, ¶ms);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user