media: Add initial support for msm8916

Enable initial media support for msm8916 target.

Change-Id: Ie76ce1161dc07cebe8f2a470859b06c0b477d5c1
mm-video-v4l2: venc: add support to configure initial qp

Enable setting initialqp and add support to allow setting initial
qp values to I P & B frames to encoder session.

Change-Id: I9bef96199c24ac64bff1f92dd6be3f256dc73220
mm-video-v4l2: venc: Add dynamic encoder settings support for 8916

To avoid DDR bus bandwidth issues on 8916 which has 1080p display panel,
it is required to set narrow search range and disable B-frames to lower bus
bandwidth access from venus sub system.

- Add support for narrow search range setting to set motion search range
- Disable B-frames, if encoding session resolution is more than 720p or wfd

Change-Id: Ie1630d8341bc9ad4f1964cdee3abb33fdde8ab0d
mm-core: Add 8916 target specific registry files

Add the OMX component registry files required for
8916 target.

Change-Id: I90704393c20e6927cdb2176c30eb3a95e002c38f
mm-core: 8916: Clean up HEVC hybrid and full DSP from registry table

Modify registry table to clean up HEVC hybrid and full DSP
solutions for 8916 target.

Change-Id: I57e3a1de0cf7e7ae61b54d89968e07b2abf75d93
mm-core: Add mpeg2 secure component role in 8916 registry table

During mpeg2 secure playback, the client calls the OMX_GetHandle
method which locates the component specified by the component name,
OMX.qcom.video.decoder.mpeg2.secure,and loads that component
into the memory.

This change adds mpeg2 secure component role in 8916 registry table.

Change-Id: Ie617a464ea866b11147c6d3b0d9d91637fad1341
mm-core: vdec: Add HEVC Hw video decoder support

Add new OMX component role for HEVC HW video decoder which
support on msm8939.

Change-Id: If4e77038d5213fa8973ff7f56d39bb87d0111830
mm-video: vidc: add support for 601 to 709 clamping in encoding

In meta mode, If input buffers received from Camera source contain 701 flag
then propagate same to video driver.

Change-Id: I184132d2e9cacc5249e132763b89b84fe3d13f04
mm-video: venc: handle zero-length invalid EOS buffers

Some clients (like GraphicsBufferSource) can queue meta buffer
with invalid handle for EOS, with filled length being empty.
Handle this case by queueing an internal color-conversion
buffer (if available) to propagate the EOS to output.
If a conversion buffer is not available, wait for a buffer
to be returned by the encoder.

Change-Id: Ib30e7063960939e7b764088afe9715f3c3d86d9f
mm-video: venc: Add property to enable narrow search range

Narrow search range is not required on 8916 target anymore
after the venus firmware version 21. Hence disabling narrow
search range parameter by adding a property command.
Use below property command to enable it when required.

adb shell setprop vidc.enc.narrow.searchrange 1

By default the property is disabled.

Change-Id: I1198646948d0b8f583c9c42a333fe01d7ea4d9d2
mm-video-v4l2: venc: Amend check for camera meta data buffer flags

Added a check to refer camera meta data buffer
flag only when it is allocated.

CRs-Fixed: 646476
Change-Id: Ie5dd9ef77af8b124801f83c91a4bcd78d365e755
mm-video: vidc: venc: add set ctrl to request sequence header

The omx component can explicitly request for sequence header
using the set ctrl id - V4L2_CID_MPEG_VIDC_VIDEO_REQUEST_SEQ_HEADER.
The omx component should not rely on the driver to
send sequence header on it's own.

Change-Id: Ie5c2adc11c15b84a7f659d75357a09b7758ea199
Kernel 3.10 compatibility

3.10 renamed a bunch of ioctls by prepending MSM_VIDC_ to them, so
make us compatible with those branches by aliasing these controls

Change-Id: I3f8dce6d172ab9b0d650f76ea36673f91d67728f