v4l2: STREAMOFF command wait worker thread exit/cleanup with condition broadcast

worker thread may become conditionaly wait after
one-time broadcast from STREAMOFF command
tests: add vp8/jpeg support for v4l2decode

jpeg may have one frame only, take special care of it
jpeg may output as IMC1/IMC3, we fix the output format to NV12
to simplify frame dump
tests: use decodehelp.h in v4l2decode
tests: add possibleWait(), it helps one frame jpeg display
tests: fix typo for decodecapi_LDADD
x11: continue fix for non-x11 build
fix issue for surfacepool
jpegdec: always create a new VaapiPicture for each jpeg frame

the previous frame may not rendered yet
tests: update on process_cmdline()
tests: DecodeStreamOutput, use DRM backend, missing return
h264enc: bugfix, do not lost flags from codedbuffer
encodebase: we only support cqp yet
decode: export frame as surfaceID

it can be used for surface sharing in transcoding
benefit suppressed video rendering as well
discurage to use it for video rendering
tests: add DecodeStreamOutputNull for non-rendering test
tests: add rendered frame count in DecodeStreamOutput and decode fps
tests: work around frame size issues

the reported frame size from yami is the VASurface/VAImage resolution,
which may be different from real frame size, for example:
 - vp8 dynamic change resolution
 - VASurface/VAImage size does additional alignment, for example 1080->1088
decode: use IS_NAL_UNIT flag of h264 decoder to avoid scan start code another time
encoder: add VideoFrameRawData as input
tests: encoder use VideoFrameRawData as input
tests: add enocde input from decoder