vaapipostproc: advertise crop meta is handled
authorU. Artie Eoff <ullysses.a.eoff@intel.com>
Tue, 20 Aug 2019 21:22:57 +0000 (14:22 -0700)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Fri, 30 Aug 2019 17:01:55 +0000 (17:01 +0000)
commit6700f642fc3ee7b20bc69c18f160bed60e881691
treecef9773e5679562af32680e0f8e25786c4bf69b8
parentf52d545fd04e969f7b1cee6e439fae9b9495fcfd
vaapipostproc: advertise crop meta is handled

Advertise to upstream that vaapipostproc can handle
crop meta.

When used in conjunction with videocrop plugin, the
videocrop plugin will only do in-place transform on the
crop meta when vaapipostproc advertises the ability to
handle it.  This allows vaapipostproc to apply the crop
meta on the output buffer using vaapi acceleration.
Without this advertisement, the videocrop plugin will
crop the output buffer directly via software methods,
which is not what we desire.

vaapipostproc will not apply the crop meta if downstream
advertises crop meta handling; vaapipostproc will just
forward the crop meta to downstream.  If crop meta is
not advertised by downstream, then vaapipostproc will
apply the crop meta.

Examples:

1. vaapipostproc will forward crop meta to vaapisink
 gst-launch-1.0 videotestsrc \
  ! videocrop left=10 \
  ! vaapipostproc \
  ! vaapisink

2. vaapipostproc will do the cropping
 gst-launch-1.0 videotestsrc \
  ! videocrop left=10 \
  ! vaapipostproc \
  ! identity drop-allocation=1 \
  ! vaapisink
gst/vaapi/gstvaapipostproc.c
gst/vaapi/gstvaapipostproc.h