Commit Graph

423 Commits

Author SHA1 Message Date
qctecmdr
812f40eff9 Merge "video: driver: use custom v4l2 ctrls in place of S/G_PARM on decoder" 2022-03-30 15:32:02 -07:00
qctecmdr
5e64d04cb5 Merge "video: driver: Add missing capability for HEIC encoding" 2022-03-30 15:32:02 -07:00
Deepa Guthyappa Madivalara
ab684e15f6 video driver: calculate power based on max rate
1. Remove load based admission control for decoder.
2. For decoder, use max of frame rate, operating rate,
    timestamp rate and input rate for power calculations.
3. For encoder, use max of frame rate and operating rate
    for power calculations.

Change-Id: Ibdb2d4b29438d7f656a27771953d10e0a0e72edd
2022-03-30 13:03:24 -07:00
qctecmdr
8c00483b2c Merge "video: driver: decouple min quality, CAC and quality boost" 2022-03-30 10:28:20 -07:00
Gaviraju Doddabettahalli Bettegowda
4c9f33d943 video: driver: Add missing capability for HEIC encoding
Added NV21 color format capability for HEIC encoding.

Change-Id: I5c559bdd5c2ec3e5eaf4ded9e766ffb02c0d81a7
Signed-off-by: Gaviraju Doddabettahalli Bettegowda <quic_gdoddabe@quicinc.com>
2022-03-30 20:06:23 +05:30
Dikshita Agarwal
f60ff0d92c video: driver: use custom v4l2 ctrls in place of S/G_PARM on decoder
Introduce new v4l2 controls to set frame rate and operating rate
on decoder as VIDIOC_S/G_PARM is not allowed on decoder.

fix: v4l2-compliance:S/G_PARM

Change-Id: I6c090c0ae541a086c73bb79564dd29ed4aa755b3
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
2022-03-29 11:45:17 -07:00
qctecmdr
a7c220a441 Merge "video-driver: Add support for saliency metadata" 2022-03-26 07:22:30 -07:00
qctecmdr
a5fd58a834 Merge "video: driver: Change v4l2 metadata controls to BITMASK type" 2022-03-24 19:50:39 -07:00
Manikanta Kanamarlapudi
ab51846ea0 video-driver: Add support for saliency metadata
Add support for saliency metadata control.

Change-Id: I6bfe54f58494a8189484bfbb3c2d989010fe3a2b
Signed-off-by: Manikanta Kanamarlapudi <quic_kmanikan@quicinc.com>
2022-03-24 23:35:33 +05:30
Mahesh Kumar Sharma
5ae6ad83d2 video: driver: decouple min quality, CAC and quality boost
Remove dependency between min quality, CAC and quality boost.
Accept quality boost value from client and if client did not
set then enable max quality boost upto 4k@60fps and disable after that.

Change-Id: I0685065b8dee8754aff2cf5f176a2f40e9e080dd
Signed-off-by: Mahesh Kumar Sharma <quic_smahesh@quicinc.com>
2022-03-23 19:20:20 -07:00
Akshata Sahukar
8ac3cc7120 video: driver: Change v4l2 metadata controls to BITMASK type
Change v4l2 metadata controls to V4L2_CTRL_TYPE_BITMASK type

Change-Id: I7f19b5dbf268351d368d9824cb52569e60116ebb
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2022-03-23 14:54:09 -07:00
Manikanta Kanamarlapudi
0ef0acb173 video-driver: Allow 96x96 for hevc encoder
Allow 96x96 for hevc encoder in waipio target.

Change-Id: If2b73e9b24c58562a20f2ccc8234cd58c52943ba
Signed-off-by: Manikanta Kanamarlapudi <quic_kmanikan@quicinc.com>
2022-03-23 23:00:49 +05:30
qctecmdr
2e1a127d25 Merge "video driver: calculate power based on input queuing rate" 2022-03-22 19:08:47 -07:00
Deepa Guthyappa Madivalara
dc38176276 video driver: calculate power based on input queuing rate
Use client input buffer queuing rate for power
calculations for non-realtime sessions

Change-Id: I498422ba1ae9ae96b782a2096dc0cd0aa7b05798
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
2022-03-22 14:21:35 -07:00
Manikanta Kanamarlapudi
21ab599454 video-driver: Allow 96x96 for hevc encoder
Allow 96x96 for hevc encoder.

Change-Id: I8d3d82b9f38278098cb0fedb71f1fd3f34648a35
Signed-off-by: Manikanta Kanamarlapudi <quic_kmanikan@quicinc.com>
2022-03-22 09:54:50 +05:30
Akshata Sahukar
d85f112d92 video: driver: Enable bitwise operations for metadata controls
Enable bitwise operations for metadata controls with below
mentioned bit definitions:
- ENABLE (BIT 0): Enable metadata.
- TX_INP (BIT 1): Client transfers metadata in input port.
- TX_OUT (BIT 2): Client transfers metadata in output port.
- RX_INP (BIT 3): Client receives metadata in input port.
- RX_OUT (BIT 4): Client receives metadata in output port.

Change-Id: Ie3d720528a383632c7766a5ccb09cead0f6b9428
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2022-03-18 13:26:00 -07:00
Deepa Guthyappa Madivalara
8f45e56c57 video: driver: remove support for diwali
Diwali chipset is not supported on kernel 5.15, hence removing it.

Change-Id: Ibeb69b5f6a4a5377a887c59d98f5571c971792bc
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
2022-03-17 13:13:11 -07:00
Darshana Patil
eef358cf9c video: driver: request api fixes for v4l2-compliance
- add support for prepare_buf
- check if client has configured invalid fd for metadata
  buffer fd control.

Change-Id: I576d02be05e4692a5ab45286895c34284f08651c
Signed-off-by: Darshana Patil <darshana@quicinc.com>
2022-03-14 16:44:15 -07:00
qctecmdr
70714739d7 Merge "video: driver: disable 100ms VBV delay and adaptive blur" 2022-03-11 17:02:12 -08:00
Mahesh Kumar Sharma
9e1771a074 video: driver: disable 100ms VBV delay and adaptive blur
Disable 100ms VBV delay and apaptive blur.

Change-Id: I7a2daa0636dead60d4ceeff9078563ec5f4572a9
Signed-off-by: Mahesh Kumar Sharma <quic_smahesh@quicinc.com>
2022-03-10 13:19:31 -08:00
Govindaraj Rajagopal
4f1180f1a6 video: driver: handle static and dynamic properties for decoder
Added change at decoder side to use adjust/set functions for
static(streamon) and dynamic(s_ctrl) cases.

Change-Id: I3d8c32baaf2fa2c3a077cc936a8ff2159ababfe3
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-03-08 19:46:05 +05:30
Mihir Ganu
de4872d103 video: driver: Update AV1D secure session capabilities
Add width and height limits to AV1D secure session
capabilities.

Change-Id: I8ebdb6818828073ec28597270a2cf72b3669a04b
Signed-off-by: Mihir Ganu <quic_mganu@quicinc.com>
2022-03-02 15:34:48 -08:00
Govindaraj Rajagopal
8b8d3ec47a video: driver: use static const at possible places
Use static const at all possible places to improve
the performance.

Change-Id: Ib9ac9eb7a15735949ae2a8ab727355e0626bc8ef
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-02-18 20:56:53 +05:30
qctecmdr
2d2e07aee9 Merge "video: driver: AV1 power changes" 2022-02-17 22:19:05 -08:00
Chinmay Sawarkar
48f1d09c2f video: driver: AV1 power changes
AV1 power changes.

Change-Id: If05c52cb6f30152b773389cc4127bf2514765170
Signed-off-by: Chinmay Sawarkar <quic_chinmays@quicinc.com>
2022-02-17 17:15:37 -08:00
Akshata Sahukar
22cc24de7f video: driver: Enhance fence support
- Introduce V4L2_EVENT_VIDC_METADATA to post fence fd returned in
  ETB metadata done buffer.
- V4L2_CID_MPEG_VIDC_SW_FENCE_FD g_ctrl support for client to get
  fence fd for requested fence id.
- Addition of fence delivery and subscribtion support.
- Fence property packetization to send to firmware via FTB buffer.

Change-Id: Ifb289849e352af2c4729aa95040bd83753979970
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2022-02-17 13:16:53 -08:00
qctecmdr
7373cc5efe Merge "video: driver: add request api controls for metadata" 2022-02-15 16:26:52 -08:00
qctecmdr
ef7ec4e390 Merge "video: driver: check proper DDR type" 2022-02-15 08:52:52 -08:00
Darshana Patil
7a27860070 video: driver: add request api controls for metadata
- Added an extension to enable sending input metadata
  via request.
- Added an extension for client to send input metadata
  buffer fd via request api.

Change-Id: I503ea2cbfb02831d9cfd475e83c94eee72545836
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2022-02-14 16:17:54 -08:00
Akshata Sahukar
0a5549a6a9 video: driver: decouple fence structure from video buffer
Decouple fence structure from video buffer. Also add some
misc fence flow setup support.

Change-Id: Ia4e223a3a288f0dae3238850685f3a73d4b9400a
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2022-02-14 09:46:11 -08:00
Mahesh Kumar Sharma
3552fff0cf video: driver: check proper DDR type
Different DDR types are required for different UBWC configs.
LPDDR5 and 5X are the only supported DDR types on Kailua.

Change-Id: I33e486bef79d919f0d790734acd4be05c51a39e0
Signed-off-by: Mahesh Kumar Sharma <quic_smahesh@quicinc.com>
2022-02-11 17:11:35 -08:00
Mahesh Kumar Sharma
4597327ed8 video: driver: change maximum frame rate to 480fps
In order to avoid performance issues when encoding
1280x720p frames with 960fps, change maximum frame
rate to 480fps on Kalama.

Change-Id: I0ca44ebf9524583a0a3ffc32423b0bb63acd0d47
Signed-off-by: Mahesh Kumar Sharma <quic_smahesh@quicinc.com>
2022-02-09 09:54:58 -08:00
qctecmdr
fe6594bcce Merge "video: driver: add support to send input meta buffer via request" 2022-02-07 20:52:22 -08:00
qctecmdr
ca802f423a Merge "video: driver: Update power down sequence" 2022-02-07 17:46:21 -08:00
Darshana Patil
9978dc376e video: driver: add support to send input meta buffer via request
Client can enable V4L2_CID_MPEG_VIDC_INPUT_METADATA_VIA_REQUEST_ENABLE
control and send input metadata buffer via request.

Change-Id: Icccdada8253d1d0291c01e2e539968141f7ddd2c
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2022-02-04 13:47:34 -08:00
Chinmay Sawarkar
000a10db56 video: driver: Port fixes from iris2 to iris3
1. Change format specifier and API clean-up
2. Remove HEIC from Lossless Encoding
3. add support for timestamp reorder
4. alter bitrate_mode child adjust sequence
5. disable dynamic low latency

Change-Id: I57d8150bac123cdfd8a0d14a2422246b87b4abfa
Signed-off-by: Chinmay Sawarkar <quic_chinmays@quicinc.com>
2022-02-03 16:02:23 -08:00
qctecmdr
dc71b3eaf1 Merge "video: driver: misc video changes" 2022-02-03 14:48:53 -08:00
Govindaraj Rajagopal
0ba80e3956 video: driver: misc video changes
[1] Remove CAP_FLAG_ROOT flag. Root willbe identified
    with has_parents() api.
[2] Replace field(struct msm_vidc_inst_cap) cap -> cap_id.
[3] Rename below pool apis.
    msm_memory_alloc    -> msm_memory_pool_alloc
	msm_memory_free     -> msm_memory_pool_free
[4] Remove struct msm_vidc_inst_cap_entry usage in inst.
	inst->firmware.list -> inst->firmware_list
	inst->children.list -> inst->children_list
[5] Organize msm_vidc_inst_capability_type enums in such
    a way that all parents placed first then children. It
	will save CPU cycles while preparing caps_list.

Change-Id: I376f4e6ddec37ce326c393fba133e19ba70bab09
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-02-03 09:58:19 +05:30
qctecmdr
4b2e594b7b Merge "video: driver: support for VP9 decoder frame rate and operating rate" 2022-02-02 18:37:16 -08:00
Mahesh Kumar Sharma
cf1a809434 video: driver: support for VP9 decoder frame rate and operating rate
Increase operating rate from 60fps to 120fps with vp9 decoder to allow
application to use vp9 decoder upto 120fps on kalama.
Support of frame rate and opertaing ratear upto 120fps for waipio T.

Change-Id: Ic9149bcb904c3e650f9e97d58080426236a1a4eb
Signed-off-by: Mahesh Kumar Sharma <quic_smahesh@quicinc.com>
2022-02-02 14:15:55 -08:00
qctecmdr
7f8fc5be92 Merge "video-driver: disable dynamic low latency" 2022-02-02 14:09:20 -08:00
Mihir Ganu
9bacc5d124 video: driver: Add HFI and internal buffer changes for AV1 DRAP
Add changes for AV1 DRAP (Delayed Random Access Point) handling:
1) Add config in kalama database to control DRAP and the HFI property
to set DRAP config.
2) Update buffer calculations:
- When DRAP is disabled, COMV buffer must be allocated
and PERSIST buffer must be allocated with total_ref_count = 0
- When DRAP is enabled, COMV buffer must not be allocated -
it is part of PERSIST buffer. Persist buffer must be allocated with
the max_width, max_height and total_ref_count configured for DRAP.

Change-Id: I2d2e8fd3f63ea8f9fc2845acd0b4e16ba4776a6b
Signed-off-by: Mihir Ganu <quic_mganu@quicinc.com>
2022-02-01 15:32:01 -08:00
Zhongbo Shi
afa424d529 video-driver: disable dynamic low latency
Dynamic low latency causes decoder input PSC triggered
for every IDR frame, leading to clock increasing.
And this also causes power higher
for VT call. Thus, need the following changes:

1. Disable dynamic low latency when low latency mode
is enabled;
2. DO NOT allow config low latency mode after
stream on.

Change-Id: Ia57f4c75617214b0352b263425ad9b445ff95524
Signed-off-by: Zhongbo Shi <quic_zhongbos@quicinc.com>
2022-02-01 13:54:45 -08:00
qctecmdr
0c0981b43c Merge "video: driver: allow five 4K resolution video sessions" 2022-01-28 19:01:20 -08:00
Darshana Patil
dce0ce7996 video: driver: add input metadata fd control
Added an extension to allow client to send
input metadata buffer fd via request api.

Change-Id: I8e05e53512b3f5dd31fa16ea64ee5d97ef2de7b4
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2022-01-28 13:14:31 -08:00
qctecmdr
57c103b1ad Merge "video: driver: add 120fps support for VP9 decoder" 2022-01-21 15:29:08 -08:00
Mahesh Kumar Sharma
eaa5db314a video: driver: add 120fps support for VP9 decoder
Increase framerate support from 60fps to 120fps with
vp9 decoder to allow clients to use vp9 decoder upto 120fps.

Change-Id: I1fdceeb6b7bfa96cb74706bba1d81969b1c08ec2
Signed-off-by: Mahesh Kumar Sharma <quic_smahesh@quicinc.com>
2022-01-21 09:02:32 -08:00
qctecmdr
4f566223c1 Merge "video: driver: add all intra encoding support" 2022-01-20 14:22:47 -08:00
Maheshwar Ajja
74c3b1bb63 video: driver: allow five 4K resolution video sessions
Allow five 4K resolution video sessions to support usecases
which needs five 4K sessions.

Change-Id: Iaf0d8f46d85f563fe45d4064baf9e9ec712e9241
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
2022-01-20 09:35:13 -08:00
qctecmdr
960ac904d2 Merge "video: driver: Add support for AV1 film grain" 2022-01-19 18:38:07 -08:00