Add V4L2_QCOM_BUF_FLAG_EOS in an effort to rename V4L2_BUF_FLAG_EOS,
as this is a vendor extension. Once all clients migrate to the QCOM
variant, V4L2_BUF_FLAG_EOS will be removed.
Change-Id: I3f50d787e8e674f101f4a6e8bfc80237aeea0702
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
Change needed to support hevc hybrid decoder
in v4l2 video driver.
Change-Id: I830ccc7c180a3b09d8046873f9fa1daf195f6b65
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
For high resolutions and bit rates, H.264 spec
defined new level. This change adds support to
pass LEVEL 5.2 to FW.
Change-Id: I2298989734450a4f5eee285326afacc4a0836b41
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
VP8 specification does not define level or profile concept but
specify a version. The OpenMax IL version 1.1.2 specify a single
profile and multiple levels for VP8 codec, the levels are indeed the
version numbers. The way of setting the codec version using level
field comes from the definitions at OpenMax IL. Since is a single
profile, level value is use to set-up the version but FW expects the
version value to be pass in the profile field, for that reason
incoming level is copy to FW profile.
Change-Id: I1ddc47b7a25efd1d31bed18e54c2b576427d1564
Signed-off-by: Jorge Solano Altamirano <jsolano@codeaurora.org>
In cases the driver's frameskipping is unacceptable, provide a tuning
parameter that controls the skip frequency. fpsvariance is the
percentage for the fps that the driver can overshoot by, which allows
for the driver to skip fewer frames. fpsvariance == 0 forces the driver
to strictly observe the fps, whereas fpsvariance == 100, allows the
driver to completely ignore the fps, allowing to run in a free-running
mode.
Change-Id: Ic25da25807008416246287e2d804d9bd64165320
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
FW returns UNSUPPORTED_INPUT flags in EBD message if
the bitstream is not supported by Venus FW. This needs
to be informed to client to handle the session properly.
Change-Id: Ib5048f6edb69511c2f4ab6cbf481e11302de00fb
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
For VP8 some frames are used only for decoding and not for display.
FW sends FBD with DROP_FRAME flag set for this frames.These are queued
to driver by setting DROP_FRAME flag. Clients can decide how to handle
these FBD's.
Change-Id: I278637871e4fdeef8b4089b5e04596de88a543ad
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
Add capabilities to optimize input buffers memory usage by using a
single ring buffer and at the same time provide to firmware a
contiguous buffer to handle frame assembly internally avoiding memory
copies.
Change-Id: I37badbb86b6990c9bf47a86042290c0a1052b68c
Signed-off-by: Jorge Solano Altamirano <jsolano@codeaurora.org>
Due to an errant conflict resolution, V4L2_CID_MPEG_VIDC_VIDEO_H264_\
VUI_TIMING_INFO and V4L2_CID_MPEG_VIDC_VIDEO_SYNC_FRAME_DECODE share
the same constant value. This commit assigns a new constant to
VUI_TIMING_INFO.
Change-Id: I34170dc1e5de9d5d0ff37d56112cf2b59ea7eefc
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
V4L2_CID_MPEG_VIDC_SET_PERF_LEVEL allows for clients to request higher
than normal performance from the core.
Change-Id: I0cd4e56854f35bacd2aa26146e990e0537b3909f
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
This commit allows encoder clients to choose Constrained High
profile when encoding.
Change-Id: I0860367022bcdfab7d1a410b985f1a95fc6361cc
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
Remove unused control introduced by QCOM for setting performance mode
for the WFD driver. The WFD driver now uses
V4L2_CID_MPEG_VIDC_SET_PERF_LEVEL.
Change-Id: I10c6350209e5910ee3b63b74b51c2ac6a48bb115
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
When FW did error concealment it sets DATA_CORRUPT flag in
FBD message. This information need to be updated with client
so that client can decide not to display frame.
This change implements the functionality.
Change-Id: I6071427e33612b2786ba1fcbf075b06e7152c1c9
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
ISDB-T full seg feature needs ASPECT_RATIO, SEQDISP
and DATA_CORRUPT extradata types for MPEG2 codec.
Add support to convey this information to client.
Change-Id: I94b3e00bfc0a5a45433ac30942d6235ecca0dde4
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
I-frame and IDR-frame for v4l2 clients was same, there was no way to
differentiate them. Adding separate flag for IDR helps clients
differentiate I from IDR.
CRs-fixed: 471371 473864
Change-Id: I4a945d9ad256bfb305a11aace91245f99e241798
Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org>
For some CODECS, some frames are used only for decoding but
not for display. This information needs to be conveyed through
DECODEONLY flag. Add support to send this flag to client.
Change-Id: I878677bdf98692288887bb3c70e645b13f4abc85
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
Changes required to support decode of HEVC
bitstreams
Change-Id: Ic0e18815af2547e42fcc3e26c2fa93355061d31f
Signed-off-by: Arun Menon <menon@codeaurora.org>
Add support to enable slice delivery mode feature. Driver will now be
getting one slice in each buffer. This mode is valid only for h264 and
when slicing is MB based. This will improve the performance in
streaming scenario as client can start streaming each slice instead
of waiting for the entire frame.
Change-Id: Iffc03a951f94a543a905cad4c15ad08b6b5718af
Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org>
Drop whitespace, unused Kconfigs, and bad Makefile entries. Undo
code movement, remove dead function, and delete entire files that
we don't compile that make our code divergent from upstream. No
functional difference.
Change-Id: I1150b3d4b317fb5180c5d26e2366dccb28a6bf43
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Add support for timeinfo and aspect ratio extradata
by setting the corresponding properties to Venus FW.
Change-Id: Ie33a451c8088d4bfe169c770fa054a73cdfcf78f
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
[smuckle@codeaurora.org: backported from msm-3.7]
Signed-off-by: Steve Muckle <smuckle@codeaurora.org>
GOB control was missing in v4l2 framework, so GOB settings could not
be conveyed to firmware. This change adds the GOB support in v4l2
framework and driver.
CRs-fixed: 433888
Change-Id: Ia276782042ba1b275ec4350b64183c14ada000be
Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org>
Add new flag for NAL EOS type. This flag is used to
send EOS to userspace if EOS is detected by FW using NAL.
Change-Id: I6886c010232b7822fd6c21b0b072884cb7493eef
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
Rename some controls for consistent naming. Also use QCOM defined
controls rather than reusing ones intended for other vendors.
Change-Id: I684f31b59a69362dd44cebb7a59a3ef2b78297aa
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
Poor video quality is observed as VUI fps information is not present in
the encoded bit stream. Add support for VUI timing info in video driver
and an additional V4L2 control to set from user space.
Change-Id: I3594903cb897920ea2ef93208644ac8c6ca5d5d9
CRs-Fixed: 399017
Signed-off-by: Srinu Gorle <sgorle@codeaurora.org>
Add control to enable extradata. Client can use this
control to enable a particular extradata for gathering
additional information about the associated buffer.
Change-Id: Ib39c614997cd43bee68fccac00d623ddd8caaf9b
Signed-off-by: Vinay Kalia <vkalia@codeaurora.org>
Changes required to protect and unprotect buffer
memory for secure video playback.
Change-Id: Ia918e35142852b9cb51275972692914d4b78bfb9
Signed-off-by: Vinay Kalia <vkalia@codeaurora.org>
Add support for thumbnail mode decode. This reduces
the memory requirements from HW.
Change-Id: I7f54cc618759b366389e748527b051524fb2c20b
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
Add support to process Watchdog timeout and sys error
with SSR framework and reporting event bck to userspace.
Change-Id: Ie12a15044dd01cb0ceab82d4f29d612db2955b8d
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
Add new V4L2 control to set AU delimiter for AVC.
Change-Id: I099c016de941b16c7e646474e371315224abe6bf
CRs-Fixed: 389030
Signed-off-by: Srinu Gorle <sgorle@codeaurora.org>
Add v4l2 control V4L2_CID_QCOM_VIDEO_SYNC_FRAME_SEQ_HDR, this control
configures video hardware to enable/disable codecconfig data to be
packed with every syncframe. This has to be configured before
encoding starts.
CRs-fixed: 396716
Change-Id: I14bf83cb8583656a6a040be4f38ec0e5dea36a25
Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org>
Add support to flush input/output buffers. This will flush
the buffers being held by firmware or video driver and
return them to client. This operation is usually used
by an application during seek operation or while
closing the driver.
Change-Id: I61d3d8f94eeeeeea0e4c40460bebfd7873f428df
Signed-off-by: Vinay Kalia <vkalia@codeaurora.org>
Adds support for codec config flag to be passed
to driver. This flag indicates that the buffer
associated contains codec specific data.
Change-Id: I80cfedc02dfc1efc8727f97e90ac2100e47d2f2a
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
Add vendor specific controls to get and set the profile and
level of H263 clips.
Change-Id: I79e6eeb8eb2eb4ff3f5cbbe3b537e7b60ff1372a
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
Flushing the core is now done with the V4L2_DEC_QCOM_CMD_FLUSH ioctl
rather than V4L2_DEC_CMD_STOP. The latter is confusing and the
arguments specified by the V4L2 spec do not allow for flushing the input
and and output buffers seperately.
Change-Id: I53e18e06c4e09ee8496bdcc337b4798f22911708
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
Adds new event type to convey about the resources
requirement.
Change-Id: I7ea67231c247dc983463a02b828c10adc486b60d
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
During the migration from kernel 3.0 to 3.4, V4L2 framework changed.
This requires changes from video driver. This change makes video
driver code compatible with kernel 3.4.
Change-Id: I12fb28e4b7c261c9755fbb62bb6bb8ea299d5272
Signed-off-by: Vinay Kalia <vkalia@codeaurora.org>
Adds events for video codecs so that clients can be
notified of important events asynchronously.
Change-Id: I0177bdc6249306ed580aca5ec2ed434174a57ba7
Signed-off-by: Vinay Kalia <vkalia@codeaurora.org>
Added Support for Effects like saturtaion,contrast for YUV sensor
CRs-Fixed: 352316
Change-Id: If278755849a866e84069ce517b2f1f6c67294980
Signed-off-by: Katta Santhisindhu <kattas@codeaurora.org>
Add support for userspace to push the video core clock to maximum
supported by hardware.
Change-Id: Ida6618fd77bc24fe043885306083249546797054
CRs-Fixed: 361108
Signed-off-by: Srinu Gorle <sgorle@codeaurora.org>
* commit 'AU_LINUX_ANDROID_ICS.04.00.04.00.130': (39 commits)
msm: vidc: Add support for DIVX 4/5/6
msm_fb: display: Set the minimal sleep time for DSI PHY Initialisation
board: 8930: add debounce interval for gpio-keys
regulator: Extend of_get_regulator_init_data to support non-DT consumers
regulator: pm8xxx-regulator: Add slew_rate platform data parameter
crypto: Fix initialization of array variable.
arm: free all .init memory when CONFIG_STRICT_MEMORY_RWX is set
msm: clock-copper: Remove block reset ability from most clocks
msm: clock-local2: Fix local_vote_clk_reset to use right to_*_clk macro
EHCI: HSIC: Add support for suspend, resume and URB logging
arm/dt: msm-pm8941: Change boost regulator register address to 0xA000
msm: camera: Move server code into seperate file.
msm: camera: Close camera gracefully in case of userspace crash
media: dvb: mpq: Support getting decoder's buffer status
Bluetooth: Wait for wcnss to be ready after SSR
msm: msm_sdcc: Add device tree support for SDCC controllers
msm: display: Change DSI escape clock to byte clock
msm: clock-8960: Change source of DSI escape clock to byte clock
ASOC: msm: Enable mpq8064 machine driver.
EHCI: HSIC: Set the interrupt threshold control value to 8ms
...
Signed-off-by: Steve Muckle <smuckle@codeaurora.org>