mm-video: vidc: Add OMX Vdec hevc component support for 8916

Modify make file to compile OMX Vdec HEVC SwVdec component
for 8916 target and modify the component code to use IOMMU
heap id instead of ADSP heap id.

Change-Id: I66ed9643a310f4ffd43d4a6f95961009395f580a

mm-video: vidc: Add port reconfig support to HEVC FULL SW

Add port reconfig support to OMX component for
HEVC full software solution.

Change-Id: I3f93d0533c83dd93cdf2c94b3a84781288ca3f33
CRs-Fixed: 645631

mm-video: vidc: Update codec config flag appropriately

Update codec config flag appropriately for HEVC full
SW. Also, fix heap corruption by freeing swvdec
output buffer pointer during free buffer.

Change-Id: I473504940214afce5011e2947b0d0cf47c5bde21
CRs-Fixed: 642370

mm-video: vidc: Add adaptive playback support for HEVC full SW

Add adaptive playback support for HEVC full SW and also
modify codec config flag appropriately.
Added error handling for SwVdec APIs

Change-Id: Ia531215da914e8d9e675acdabcc5d8a5b872988b
CRs-Fixed: 645631

mm-video: vidc: Added handling of error event from HEVC core module

Report hw error to client upon getting error event from HEVC core

CRs-Fixed: 652414

Change-Id: Ia182d67285752bfd9e742b4218b28ec0821efeab

mm-video-v4l2: Adjust p-frame count if b-frame count is modified

If the b-frame count is modified due to system limitations,
then the p-frame count needs to be adjusted so that i-frames
are returned at proper intervals.

Change-Id: I1d0daef40381086ee43174f8a276f7e7f6359123

mm-video: add hevc secure decoder component on 8939

Register a secure role for hevc decoder

Change-Id: Id0a763e47f479de174db55ff8067739332c7c6f3

mm-video: vidc: Switch HEVC over to the standard component

For targets which have Venus support for HEVC (8084 and 8092) use the
default component for decoder sessions.  This allows the specialised HEVC
component (libOmxVdecHevc) to be Q6 specific.

Change-Id: Ia1d47c0361b1c9261d29758590e3c2b89cd09ecd

mm-video: Define compatibility ioctls for 3.10 in HEVC SW decoder

Change-Id: I209b1369cf70f7e7b41124c850a0b26f20a02cf5
Don't build this dashplayer on 8916

 * Use the newer on in mm-dash instead.

Change-Id: I247208fd6439acf47566e399c3549067638b8da3
mm-video: venc: Fix CTS issues in 8916 target

Limit the max supported capabilities of 8916 target
same as 8226 target to resolve CTS failures.

Change-Id: I99bebb149c70b4c111730f6016317958bb6c87df
venc: Set max supported AVC level to OMX_VIDEO_AVCLevel42 on 8916

 * Venus supports this level and it's needed for HSR.

Change-Id: I5bc6a77ff14cebbc8457fdf23636185d054ba203
Revert "mm-video-v4l2: Update video resolution when updating crop"

This reverts commit 1fb9417d029fe2bd1478ffcf8dde4f2355b2aaf8.
Reverting the change because video resolution is not expected
to be updated based on the crop parameters from video driver.
Alternatively change-id I22ddc9961a271eea379a08534c769f2842142d8f
will resolve the failure.

Change-Id: I3954cadec21eb6c8da40c792d87995f817be1efb
mm-video: vdec: Correct video driver's crop parameters handling

Remove updating video resolution when crop parameters are changed
Update video resolution only when "port settings changed sufficient"
event is received from the driver. Make sure the video resolution
is updated after all the pending fbds are rendered with the old
resolution by queuing the event in ftb queue instead of cmd queue.

Change-Id: I22ddc9961a271eea379a08534c769f2842142d8f
mm_video: vidc: Update buffer geometry with stride and scanline

Update buffer geometry dimensions using stride and snanline.
Earlier it was updated conditionally to handle downscalar case.
Now component is fetching all updated dimensions in case of
crop event, so stride and scanline can be used for the same.

Change-Id: If44a6df8498bff2ce39c9428b3708adbee7b8542
mm-video: vdec: Get updated resolution along with output buffers

In case of smooth streaming the driver width/height might be
be updated multiple times before VIDIOC_G_FMT call was made to
the driver to get first updated width/height itself if the input
sequence has Header(w1xh1), AU data, Header(w2xh2), AU data and so on.
So client need to get the width/height along with output buffer itself
to update the display with correct width/height for every output frame
and skip calling VIDIOC_G_FMT to driver to get width/height.

Change-Id: I31992315a84350ddb7a43577dc70235ad9a8bc8f
mm-video: vidc: Avoid setting invalid timestamp of eos NAL

In arbitrary mode when eos NAL is appened at the end, while
coalscing with destination buffer, the actual timestamp is
overwritten with LLONG_MAX. This will lead to error log and
setting the flag V4L2_QCOM_BUF_TIMESTAMP_INVALID in driver,
which is not needed.

Change-Id: I87a63c4cb9d8259280b781cdd553050580809e8e
Fix an aliasing violation

Change-Id: If154386c27fcdd46e194fb4c8fae696334d4bf1d