encode: support specified fourcc for data input

fix the previous quality issue: data input is I420, while surface is NV12
set encode test default fps to 30 to avoid exception
trace: init yami trace at the begining of test

add lock for trace init
set encode default fps to 30
encode/v4l2: add YUY2 input data format support
tests: support input fourcc for encode test

add '-N' option for encode frameCount
tests: add camera input for encode

add id in VideoEncRawBuffer for camera buffer recycle
tests: use camera input in h264encode test

./h264encode -i /dev/video0 -s YUY2 -W 640 -H 480 -c AVC -o out.h264  && ./decode -i out.h264
tests/v4l2: use EncodeStreamInput(including camera) in v4l2encode test

improve EncodeStreamInputFile accept 'userptr' mode:
copy data into giving buffer (since v4l2encode input buffer can't be
recycled immediately)
tests: correct fourcc mistake between vaapi/mesa mapping
tests: fix vp8 parser mistake

the mistake lead to decode the final frame twice.
tests/camerainput: refine code

guess fourcc from input file name
move m_dataMode to EncodeInputCamera
use pure virtual for isEOS().
tests/decode: Word around one driver issue
driver fail to bit match for NV12->I420 conversion when frmae size is not even.