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>
Add support to the driver to properly configure the Venus core for
various DIVX formats.
Change-Id: Ica6411936a09edfc3aa4ca321c781ff22948742a
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
AU_LINUX_ANDROID_ICS.04.00.04.00.126 from msm-3.0.
First parent is from google/android-3.4.
* commit 'AU_LINUX_ANDROID_ICS.04.00.04.00.126': (8712 commits)
PRNG: Device tree entry for qrng device.
vidc:1080p: Set video core timeout value for Thumbnail mode
msm: sps: improve the debugging support in SPS driver
board-8064 msm: Overlap secure and non secure video firmware heaps.
msm: clock: Add handoff ops for 7x30 and copper XO clocks
msm_fb: display: Wait for external vsync before DTV IOMMU unmap
msm: Fix ciruclar dependency in debug UART settings
msm: gdsc: Add GDSC regulator driver for msm-copper
defconfig: Enable Mobicore Driver.
mobicore: Add mobicore driver.
mobicore: rename variable to lower case.
mobicore: rename folder.
mobicore: add makefiles
mobicore: initial import of kernel driver
ASoC: msm: Add SLIMBUS_2_RX CPU DAI
board-8064-gpio: Update FUNC for EPM SPI CS
msm_fb: display: Remove chicken bit config during video playback
mmc: msm_sdcc: enable the sanitize capability
msm-fb: display: lm2 writeback support on mpq platfroms
msm_fb: display: Disable LVDS phy & pll during panel off
...
Signed-off-by: Steve Muckle <smuckle@codeaurora.org>
Implement changes in the driver to support decoding of Divx311
bitstreams
Change-Id: Ie4e05c9161d89b866f9f36ca1865a9b64bc51240
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
As discussed during the 2011 V4L-DVB workshop, the API in dvb/video.h should
be replaced by a proper V4L2 API. This patch turns the VIDEO_(TRY_)DECODER_CMD
ioctls into proper V4L2 ioctls.
Change-Id: I8f293613c833b40ffa62e814c0d88a55ea0c7f13
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Vinay Kalia <vkalia@codeaurora.org>
Adds control definitions in v4l2 framework needed for
configuring video codec properties. Userspace clients
and in-kernel clients can make calls into video driver
to set/change codec properties like codec, profile, level,
resolution, bitrate, ratecontrol, framerate.
Change-Id: I6396106af69b2686a78b83d5833cd60a1c6d4cef
Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org>
- Adds video encoding and decoding functionality.
- Implements v4l2 interface based driver for interacting
with userspace modules to perform video encoding and
decoding.
- Implements kernel API for interacting with kernel
modules like Wifi display(encoder) and V4L2 based
DVB(decoder).
Change-Id: Iadb83b60139e659ae7f66e5dc38c46fef52ca99d
Signed-off-by: Vinay Kalia <vkalia@codeaurora.org>
Adds API to request for a particular performance
level from video core. This is needed for Wi-fi
display (WFD) to reduce end to end latency.
Change-Id: Ib4133b8cd62ccad286be1984f944911754b887c5
Signed-off-by: Vinay Kalia <vkalia@codeaurora.org>
A possibility to preallocate and initialise buffers of different sizes
in V4L2 is required for an efficient implementation of a snapshot
mode. This patch adds two new ioctl()s: VIDIOC_CREATE_BUFS and
VIDIOC_PREPARE_BUF and defines respective data structures.
Change-Id: Idb6c1e11f1665201f77c73168bb5a8de84b538eb
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org>
Merge Upstream's stable 3.0.21 branch into msm-3.0
This consists 814 commits and some merge conflicts.
The merge conflicts are because of some local changes to
msm-3.0 as well as some conflicts between google's tree and
the upstream tree.
Conflicts:
arch/arm/kernel/head.S
drivers/bluetooth/ath3k.c
drivers/bluetooth/btusb.c
drivers/mmc/core/core.c
drivers/tty/serial/serial_core.c
drivers/usb/host/ehci-hub.c
drivers/usb/serial/qcserial.c
fs/namespace.c
fs/proc/base.c
Change-Id: I62e2edbe213f84915e27f8cd6e4f6ce23db22a21
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
Make the VIDIOC_G/S_SELECTION ioctls documentation more consistent
with the rest of media Docbook, use capital letters where necessary
and correct few minor errors.
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
V4L clients should be able to specify the video header to be present
in all I-frame (as it is common in many broadcasting scenarios). By
specifying this mode, V4L clients will receive sps/pps information
prepended to all I-frames.
Change-Id: Ia93b1d0a59b8d1abf13d1bdb8de494f13ebe1c95
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
The V4L2_CID_JPEG_CLASS control class is intended to expose various
adjustable parameters of JPEG encoders and decoders. Following controls
are defined:
- V4L2_CID_JPEG_CHROMA_SUBSAMPLING,
- V4L2_CID_JPEG_RESTART_INTERVAL,
- V4L2_CID_JPEG_COMPRESSION_QUALITY,
- V4L2_CID_JPEG_ACTIVE_MARKER.
This covers only a part of relevant standard specifications. More
controls should be added in future if required.
The purpose of V4L2_CID_JPEG_CLASS class is also to replace some
functionality covered by VIDIOC_S/G_JPEGCOMP ioctls, i.e. the JPEG
markers presence and compression quality control. The applications
and drivers should switch from the ioctl to control based API, as
described in the subsequent patches for the Media API DocBook.
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
As discussed during the 2011 V4L-DVB workshop we want to create a proper V4L2
decoder API that replaces the DVBv5 API that has been used until now.
This adds the four controls necessary to be able to switch ivtv over to this
new API.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
As discussed during the 2011 V4L-DVB workshop, the API in dvb/video.h should
be replaced by a proper V4L2 API. This patch turns the VIDEO_(TRY_)DECODER_CMD
ioctls into proper V4L2 ioctls.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
v4l2_qcom_frameskip is a QCOM specific parameter to be used with
VIDIO_S_PARM to indicate that the driver might take up to
maxframeinterval nanoseconds in providing the next buffer.
Driver supports this parameter if the V4L2_CAP_QCOM_FRAMESKIP capability
is set in VIDIO_G_PARM.
Change-Id: Iebbd012b9cc75395b1e165349e7e2d9d7a77160a
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
Add fourcc definitions and documentation for the following
compressed formats: H264, H264 without start codes,
MPEG1/2/4 ES, XVID, VC1 Annex G and Annex L compliant.
Change-Id: Ibd87db4f72793310871ebd7a178e9593c4b54d33
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
commit 6c06108be5 upstream.
If ctrls->count is too high the multiplication could overflow and
array_size would be lower than expected. Mauro and Hans Verkuil
suggested that we cap it at 1024. That comes from the maximum
number of controls with lots of room for expantion.
$ grep V4L2_CID include/linux/videodev2.h | wc -l
211
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
If V4L2_CAP_DEVICE_CAPS is set, then the new device_caps field is filled with
the capabilities of the opened device node.
The capabilities field traditionally contains the capabilities of the physical
device, being a superset of all capabilities available at the several device
nodes. E.g., if you open /dev/video0, then if it contains VBI caps then that means
that there is a corresponding vbi node as well. And the capabilities field of
both the video and vbi nodes should contain identical caps.
However, it would be very useful to also have a capabilities field that contains
just the caps for the currently open device, hence the new CAP bit and field.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (655 commits)
[media] revert patch: HDIC HD29L2 DMB-TH USB2.0 reference design driver
mb86a20s: Add a few more register settings at the init seq
mb86a20s: Group registers into the same line
[media] [PATCH] don't reset the delivery system on DTV_CLEAR
[media] [BUG] it913x-fe fix typo error making SNR levels unstable
[media] cx23885: Query the CX25840 during enum_input for status
[media] cx25840: Add support for g_input_status
[media] rc-videomate-m1f.c Rename to match remote controler name
[media] drivers: media: au0828: Fix dependency for VIDEO_AU0828
[media] convert drivers/media/* to use module_platform_driver()
[media] drivers: video: cx231xx: Fix dependency for VIDEO_CX231XX_DVB
[media] Exynos4 JPEG codec v4l2 driver
[media] doc: v4l: selection: choose pixels as units for selection rectangles
[media] v4l: s5p-tv: mixer: fix setup of VP scaling
[media] v4l: s5p-tv: mixer: add support for selection API
[media] v4l: emulate old crop API using extended crop/compose API
[media] doc: v4l: add documentation for selection API
[media] doc: v4l: add binary images for selection API
[media] v4l: add support for selection api
[media] hd29l2: fix review findings
...
This patch introduces new api for a precise control of cropping and composing
features for video devices. The new ioctls are VIDIOC_S_SELECTION and
VIDIOC_G_SELECTION.
Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Add control definitions and documentation for controls
specific to codec devices.
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Change-Id: I94e1be196120988cfee2420ba6bd342eece1f481
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
If ctrls->count is too high the multiplication could overflow and
array_size would be lower than expected. Mauro and Hans Verkuil
suggested that we cap it at 1024. That comes from the maximum
number of controls with lots of room for expantion.
$ grep V4L2_CID include/linux/videodev2.h | wc -l
211
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>