The function parameters were extended without spotting another
user with their own local prototype.
Observed as misaligned exception when using video_render.
The advanced deinterlaced algorithm wanted 16 extra lines of height on
SAND images as a scratchpad. vc_image had been hacked to add those lines
to each and every SAND image.
HEVC decode uses SAND but doesn't care about that context, and will never
support interlaced content.
Remove the +16 lines from vc_image, and add specify it as a vpitch when
creating the image from within the decoder.
The HEVC block and various others don't require tall mode, it's only
the H264 codec block that has to keep the column stride below
64kB.
Switch the default configuration to NOT require tall mode.
All the users of SAND with the H264 block are currently internal
to the VPU (video decode will vc_image_convert, or pass an opaque
VC_IMAGE_T. Camera to video_encode either goes via planar, or is
passing a VC_IMAGE_T).
Add a flag to these when creating the images to request tall mode.
Thew case_VC_IMAGE_ANY_TFORMAT macro was missing VC_IMAGE_TF_U8
and VC_IMAGE_TF_V8, so computing the pitch was failing.
The case described in https://github.com/raspberrypi/userland/issues/433
is fixed with this.
interface/vctypes/vc_image_structs.h gained all the
VC_IMAGE structures, but they didn't removed from
helpers/vc_image/vc_image.h.
Remove this duplication.
Update RaspiStill framework to provide access to the new EGL image
targets that provide a fastpath for mapping the individual YUV planes to
one byte per pixel GL_LUMINANCE buffers. These are still accessed as OES
textures so this is effectively a greyscale image created from a single
plane of a MMAL buffer.
Also added some example code (yuv, sobel) that demonstrates how to use
the new EGL image targets.
Also, add -gc to the command line to capture the GL frame-buffer as a TGA file.
Thanks to Tim Gover