mm-core: synchronize OpenMax headers with AOSP counterparts

Update the video headers, retaining the enhancements.
Also use standard coding types (like VP8 instead of VPX)
and map the extended codec-types to standard types wherever
applicable.
Update HEVC profile/level enumeration values to follow the
spec nomenclature.

Change-Id: I1d9f42b91526892f535a76d0760819f4dd41332d
mm-video-v4l2: vdec: Set correct filled-length for color-converted buffers

Query the image-size of color-converted buffer from converter, sans
the padding and alignment.

Change-Id: Ifbe7229b5e963a20538547fe543be019b161db7b
mm-video: Release driver buffers correctly

Release driver buffers when all component buffers are
released. This is needed as component may transition
back to idle state from loaded state, and prepare_buf
will fail if the buffers are not unregistered from
driver.

Change-Id: Ie25eaf7287ff05b5f403d0463eff83020716c9f9
Merge "mm-core: synchronize OpenMax headers with AOSP counterparts"
Merge "mm-video-v4l2: vdec: Set correct filled-length for color-converted buffers"
Merge "mm-video: Release driver buffers correctly"
 mm-video: vdec: hevc: hybrid: Call request buffer after configure

 Whenever the client flushes and reconfigures the hevc hybrid decoder,
 buffer requirement is not called again, this makes the driver buffer
 queue empty and ETB will fail. So, adding it.

Change-Id: I0fb290f245ad28b932d45d484d518a9027f05962
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: 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-v4l2: vdec: fix invalid stride and scanlines issue

Update only frame width and height and not stride and scanlines
in FBD as we don't get stride and scanlines from the driver,
otherwise, invalid stride and scanlines are received by the
client when crop parameters change event is detected in FBD.

Change-Id: I858c80340b928306ca8ae0c8b58c4b8374549704
Merge "Revert "mm-video-v4l2: Update video resolution when updating crop""
Merge "mm-video: vdec: Correct video driver's crop parameters handling"
Merge "mm-video: vdec: Get updated resolution along with output buffers"
Merge "mm-video-v4l2: vdec: fix invalid stride and scanlines issue"
Merge " mm-video: vdec: hevc: hybrid: Call request buffer after configure"
mm-core: synchronize OpenMax headers with AOSP counterparts

Update the video headers, retaining the enhancements.
Also use standard coding types (like VP8 instead of VPX)
and map the extended codec-types to standard types wherever
applicable.
Update HEVC profile/level enumeration values to follow the
spec nomenclature.

Change-Id: I1d9f42b91526892f535a76d0760819f4dd41332d
mm-video-v4l2: vdec: Set correct filled-length for color-converted buffers

Query the image-size of color-converted buffer from converter, sans
the padding and alignment.

Change-Id: Ifbe7229b5e963a20538547fe543be019b161db7b
mm-video: Release driver buffers correctly

Release driver buffers when all component buffers are
released. This is needed as component may transition
back to idle state from loaded state, and prepare_buf
will fail if the buffers are not unregistered from
driver.

Change-Id: Ie25eaf7287ff05b5f403d0463eff83020716c9f9
mm-video-v4l2: venc: Correct buffer index selection

meta_mode_enable reflects whether the component is using meta
buffers or the input mem pointer. Use this flag (instead of
mUseProxyColorFormat) when computing the buffer index to ensure
that a valid index is selected.

For non-color-conversion input buffers, the component should return
IL client buffers instead of meta buffers. For opaque input buffers
(which also do not require color-conversion), return meta buffers to
the base layer instead of client buffers.

b/17664960

Author: <lenhardw@codeaurora.org>
Change-Id: I0722edbb739140415b49e183be910730f450766c