msm: vidc: Add support for setting initial qp

Adds support to set initial qp, thereby allowing the client to set
initial qp for I,P, and B frames.

Change-Id: Ie956651bde85e800d97a0007769af9aec8ca16a4
Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org>
msm: vidc: Amend calculation of buffer sizes in VENUS_BUFFER_SIZE

Add 8KB worth of padding for extradata. This is required to accommodate
some of the larger extradata types that didn't fit into the residual
space between the actual buffer size and its aligned size.

Change-Id: I0bc1602246f706094b7f92c9115b2496505debde
CRs-Fixed: 647378
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
msm: vidc: Expose extradata size to userspace

Previously, the extradata size was included within VENUS_BUFFER_SIZE
and callers (primarily in userspace) wouldn't know how much extra
padding was added to the buffer size. Exposing it allows userspace to
query directly instead of doing guesswork.

Change-Id: I11b736aaaad64dce15d614d58fbb46a29014a93d
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
msm: vidc: Add AFD and CC metadata support to extradata

Add support and control for setting Active format
description and closed caption meta data in the
extradata. FW parses metadata and adds it to the
extradata. Client can use control to parse extradata
for the metadata information.

Change-Id: I9416ef2661ec66644246bf2e9d4207f024977097
Signed-off-by: Jayasena Sangaraboina <jsanga@codeaurora.org>
msm: vidc: Add support for different errors

When hardware is overloaded or when max number of clients are
reached in driver or firmware, hardware error is sent to video
client. This change is to replace hardware error with actual
errors.

Change-Id: If15fd272320f7a0e85f5abe9fb6863cc7292bda9
CRs-fixed: 575852
Signed-off-by: Deepak Verma <dverma@codeaurora.org>
msm: vidc: Change in input buffer size calculation

Right now, input buffer size is calculated based on
maximum supported height and width returned from FW.
These values are not true representation as they are
calculated for rotation usecase. Driver needs to use
max MB supported from FW. This change fixes the same.

CRs-Fixed: 599818
Signed-off-by: Manikanta Sivapala <msivap@codeaurora.org>

Conflicts:
	drivers/media/platform/msm/vidc/msm_vdec.c

Change-Id: Ibd73490c9b42bb88d68b835941ebe764a15aaaf9
msm: vidc: add new control for limiting i/p buffer size

Take the minimum of the size calculated by driver using
max width and height supported and the size set by client
for input buffers. Change interface to get input and
output buffer sizes.

Change-Id: Ida75a5718013cc852df74ea69a3b4e9a0c47d4a6
Signed-off-by: Manikanta Sivapala <msivap@codeaurora.org>