From 18f530978be95f39aaf53fe9dd7dea70149365a7 Mon Sep 17 00:00:00 2001 From: He Junyan Date: Thu, 4 Feb 2021 15:05:55 +0800 Subject: plugins: postproc: Fix a problem of propose_allocation when passthrough. We should query the downstream element to answer a precise allocation query when the passthrough mode is enabled. The current way still decides the allocation by the postproc itself. The pipeline such as: gst-launch-1.0 -v filesrc location=xxx.264 ! h264parse ! vaapih264dec ! \ vaapipostproc ! fakevideosink silent=false sync=true will lose some info such as the GST_VIDEO_META_API_TYPE. Part-of: --- gst/vaapi/gstvaapipostproc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gst/vaapi/gstvaapipostproc.c b/gst/vaapi/gstvaapipostproc.c index 5f7d9cd8..052ee4fa 100644 --- a/gst/vaapi/gstvaapipostproc.c +++ b/gst/vaapi/gstvaapipostproc.c @@ -1801,6 +1801,13 @@ gst_vaapipostproc_propose_allocation (GstBaseTransform * trans, gint allocation_width, allocation_height; gint negotiated_width, negotiated_height; + /* passthrough query, we just bypass to the peer */ + if (decide_query == NULL) { + return GST_BASE_TRANSFORM_CLASS + (gst_vaapipostproc_parent_class)->propose_allocation (trans, + decide_query, query); + } + /* advertise to upstream that we can handle crop meta */ if (decide_query) gst_query_add_allocation_meta (query, GST_VIDEO_CROP_META_API_TYPE, NULL); -- cgit v1.2.3