After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 765095 - vaapipostproc: doesn't resize when allocation query is different from negotiation caps and same color format
vaapipostproc: doesn't resize when allocation query is different from negotia...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer-vaapi
git master
Other Linux
: Normal normal
: 1.9.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-04-15 10:48 UTC by Víctor Manuel Jáquez Leal
Modified: 2016-04-29 08:44 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
sample file (1.44 MB, application/octet-stream)
2016-04-15 10:48 UTC, Víctor Manuel Jáquez Leal
  Details
vaapispostproc: resize if negotiated and allocation caps are different (2.34 KB, patch)
2016-04-15 16:08 UTC, Víctor Manuel Jáquez Leal
committed Details | Review

Description Víctor Manuel Jáquez Leal 2016-04-15 10:48:53 UTC
Created attachment 326081 [details]
sample file

Since bug 753914, in vaapidecode, the allocation query can be different from the negotiated caps.

When connecting to the vaapipostproc (as in vaapidecodebin the postprocessor will resize the frame to the negotiated, __if and only if__, some other parameter is activated to avoid the passthrough. If it is not, the surface won't be mapped into a image.

Test case: forcing the passthrough

gst-launch-1.0 filesrc location=sample.264 ! h264parse ! vaapidecodebin ! \
     video/x-raw, format=NV12 ! videoconvert ! ximagesink 

The solution might be either:

1\ use the same parameters in the postproc allocation query which might required a similar patch in gstbasetransform as in bug 764421

2\ Break the passthrough if the allocation query is different from the negotiation caps, forcing the resizing
Comment 1 Víctor Manuel Jáquez Leal 2016-04-15 16:08:21 UTC
Created attachment 326115 [details] [review]
vaapispostproc: resize if negotiated and allocation caps are different

Since commit 859a2b2, in vaapidecode, allocation query can be different from
the negotiated caps.

When connecting the vaapidecoder to the vaapipostprocessor, the last one will
resize the frame to the negotiated, if and only if, some other parameter is
activated to avoid the passthrough. If it is not, the surface won't be mapped
into a image. If not, the image won't be resized and the output buffer would be
mapped.

This patch will break the passthrough if the allocation query is different
from the negotiation caps, forcing the resizing.
Comment 2 Víctor Manuel Jáquez Leal 2016-04-22 15:16:52 UTC
Comment on attachment 326115 [details] [review]
vaapispostproc: resize if negotiated and allocation caps are different

commit e519f2ea79c4bc174c9bd495d86acaf749933705
Author: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
Date:   Fri Apr 15 17:57:25 2016 +0200

    vaapipostproc: resize if negotiated and allocation caps are different