Commit Graph

177 Commits

Author SHA1 Message Date
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
qctecmdr
960ac904d2 Merge "video: driver: Add support for AV1 film grain" 2022-01-19 18:38:07 -08:00
Mihir Ganu
85730716a8 video: driver: Add support for AV1 film grain
Add support to handle AV1 bitstreams with flim grain
for both UBWC and linear colorformats.

Change-Id: Ica07853d992c566c3471dc007ad8c22aba796dd4
Signed-off-by: Mihir Ganu <quic_mganu@quicinc.com>
2022-01-18 12:43:59 -08:00
Mahesh Kumar Sharma
d1351838e3 video: driver: CBR and Blur handling enhancements
This change is made to support 100ms VBV delay for
aggressive rate control in iris3 hw.
Video buffer verifer helps to ensure that encoded stream
doesn't overflow or underflow the decoder's buffer.
iris3 hw is capable to decode data in 100ms VBV buffer window.

Adaptive Blur (Internal encoder feature): This is other enhancement
which supports adaptive blur feature on iris3 for CBR_VFR
(Constant bit rate_Variable frame rate)/CBR_CFR
(Constant bit rate_Constant frame rate) rc types apart from
already supported VBR_CFR. Unlike iris2, there is no need to enable CAC.

Below are the listed scenarios when it is enabled/disabled on iris3-
- Supported only for 8 bits encoding (H.264 & H.265).
- By default enabled for VBR_CFR/CBR_VFR/CBR_CFR RC without CAC enabled.
- No dependency on CAC to be enabled.
- Adaptive Blur is disabled if minquality_VBR is enabled
- Adaptive Blur is supported for 3 RC types: VBR_CFR, CBR_VFR & CBR_CFR
- If any one of the features (scalar/external blur) enabled, encoder
  disables adaptive-blur.
- Static property available to disable adaptive blur feature

Below are the listed scenarios when it is enabled/disabled on iris2-
- Supported only for 8 bits encoding (H.264 & H.265).
- By default enabled for VBR_CFR RC type with CAC enabled.
- Dependency on CAC to be enabled.
- Adaptive Blur is disabled if CAC is disabled
- Adaptive Blur is disabled if minquality_VBR is enabled
- Adaptive Blur is not supported for any other RC types except: VBR_CFR
- If any one of the features (scalar/external blur) enabled, encoder
  disables adaptive-blur.
- Static property available to disable adaptive blur feature

For backward compatibilty:

- Removed CAC as parent from msm_vidc_kalama.c.
- Removed cac query from msm_vidc_adjust_blur_type in msm_vidc_control.c.

- Moved legacy code to newly created function msm_vidc_adjust_blur_type_iris2().
- Added msm_vidc_adjust_blur_type_iris2 in BLUR_TYPES in msm_vidc_waipio.c

Change-Id: I49dec7e2574496d1b32babde55c0187866ca21d2
Signed-off-by: Mahesh Kumar Sharma <quic_smahesh@quicinc.com>
2022-01-13 19:51:47 -08:00
Deepa Guthyappa Madivalara
3a05f79ac1 video: driver: add all intra encoding support
add ALL_INTRA database entry and its dependecies.
impletment adjust functions. imported from waipio.

Change-Id: Iaddb6cd59d3c3e69570bb5347ebf396622524875
Signed-off-by: DEEPA GUTHYAPPA MADIVALARA <quic_dmadival@quicinc.com>
2022-01-13 15:28:47 -08:00
Govindaraj Rajagopal
037ff5f9f8 video-driver: diwali: Add 4096x2304 support
Add 4096x2304 resolution support across
all diwali sku's.

Change-Id: Icebe180db15464c21737be9c17ff9cd2677a6d25
Signed-off-by: Priyanka Gujjula <quic_pgujjula@quicinc.com>
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-01-13 17:29:22 +05:30
Govindaraj Rajagopal
6500833abf video-driver: diwali: Update bitrate, heic dec spec
Update encoder bitrate to 160Mbps and HEIC
dec spec to HEVC decode.

Change-Id: I7ab3ba47b0f87d2f396cdf05a4dcf3a5e9a14543
Signed-off-by: Priyanka Gujjula <quic_pgujjula@quicinc.com>
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-01-13 17:29:22 +05:30
Govindaraj Rajagopal
f101f90626 video: driver: alter bitrate_mode child adjust sequence
CAC depends on MIN_QUALITY feature, but due to incorrect child
adjust sequence(in BITRATE_MODE cap), CAC got adjusted first
before MIN_QUALITY. So CAC is getting enabled unnecessarily.
Added change to address this issue.

Change-Id: I179d66672576faa7dbbbaef53319efcab21fd82b
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-01-13 17:29:22 +05:30
Govindaraj Rajagopal
1e55de3d4a video: driver: add support for timestamp reorder
Added support for timestamp reorder. It is default
disabled.

Change-Id: I51a6fc785860081b651fc67f443132cb2675b9fd
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-01-13 17:29:22 +05:30
Priyanka Gujjula
0dec23c1bd video-driver: diwali: Sort clock corners
Sort allowed clock corners for diwali
v1 & v2 variants.

Change-Id: Ic561cd4a0e7abcb0f239b294fa81807621f3ebdb
Signed-off-by: Priyanka Gujjula <quic_pgujjula@quicinc.com>
2022-01-13 17:29:22 +05:30
DEEPA GUTHYAPPA MADIVALARA
9f70e5b5e3 video: driver: update max 4k sessions allowed
Increasing the allowed 4k sessions to 6 inorder to support
concurrent 5 UHD instance

Change-Id: Icd3b0b2d5eb3d2ff0d7ca5f86f1c60f91c85f621
Signed-off-by: DEEPA GUTHYAPPA MADIVALARA <quic_dmadival@quicinc.com>
2022-01-12 15:11:11 -08:00
Mihir Ganu
1b5a6b1d6f video: driver: Add support for AV1 dynamic frame resolution change
AV1 bitstream frames can have different resolutions than
sequence resolutions. Subscribe to BITSTREAM_RESOLUTION and
CROP_OFFSETS metadatas and exopose them to clients so that
clients can receive per-frame resolution and crop.

Change-Id: I7c0503f25ddde201979d13ff18028681f685d649
Signed-off-by: Mihir Ganu <quic_mganu@quicinc.com>
2021-12-17 10:58:35 -08:00
Mihir Ganu
2f7df152f2 video: driver: Add support to set AV1 operating point
Add support to set AV1 operating point to firmware.

Change-Id: If0f31c2bf04cb6d4f783264fb3ce706b1bf98261
Signed-off-by: Mihir Ganu <quic_mganu@quicinc.com>
2021-12-16 14:53:26 -08:00
Mihir Ganu
a723e35a03 video: driver: Add support to set AV1 bitstream format
Add support to set AV1 decoder bitstream format
(low-overhead or Annex-B).

Change-Id: Ie36eefe0488bf33af91802c0bee51b3fec2024ac
Signed-off-by: Mihir Ganu <quic_mganu@quicinc.com>
2021-12-14 14:10:52 -08:00
Mihir Ganu
04304a466f video: driver: Add changes to enable AV1 Decoder
Add definitions, controls and codec-specific handling
to enable AV1 Decoder.

Change-Id: Ica2f4e298e43aa713188d3374f8705688d0ed912
Signed-off-by: Mihir Ganu <quic_mganu@quicinc.com>
2021-12-09 16:59:23 -08:00
qctecmdr
a70db18aaa Merge "video: driver: Enable mmrm in kailua" 2021-12-03 14:19:13 -08:00
Chinmay Sawarkar
aa49b0d94d video: driver: Enable mmrm in kailua
Enable MMRM in Kailua core data.

Change-Id: Ibf1f1cbdde46419d4d033d68a452668d68acb3fc
Signed-off-by: Chinmay Sawarkar <quic_chinmays@quicinc.com>
2021-12-02 11:15:24 -08:00
Mihir Ganu
3c17bb9c3d video: driver: Use correct macros for fps calculations
Use correct macros and values for fps calculations
in kalama platform files.

Change-Id: Ib58903228032b1107363a98ce21b3bcb95aca0f5
Signed-off-by: Mihir Ganu <quic_mganu@quicinc.com>
2021-12-01 10:01:28 -08:00
Praveen Chavan
53d5efcd7c Merge branch 'video-kernel-waipio.lnx.1.0' into kailua_1.0 2021-11-29 13:38:02 -08:00
Mihir Ganu
9456cc40fb video: driver: Add support for kalama/iris3 platform
Add the required config and platform files to enable
kalama platform with iris3 VPU.

Change-Id: Ia65d2212b946d0d37fc99e30e25fe408882bdec3
Signed-off-by: Mihir Ganu <quic_mganu@quicinc.com>
2021-11-18 22:56:07 -08:00
Priyanka Gujjula
d0dcdf3171 video-driver: diwali: Update batching spec
Update batching spec to 1080p@120 for diwali
v0, v1 & disable batching for v2.

Change-Id: I57f8b33bddc4cd6ee2a637a6d64683fc1b37ab33
Signed-off-by: Priyanka Gujjula <quic_pgujjula@quicinc.com>
2021-11-18 22:14:02 +05:30
Priyanka Gujjula
5645c4fa45 video: driver: diwali: Correct H264 dec level
Publish h264 decode level value with in the
supported level.

Change-Id: Id1cecdfda0336eec3fdba7ad994d2381351065c5
Signed-off-by: Priyanka Gujjula <quic_pgujjula@quicinc.com>
2021-11-15 00:17:20 +05:30
qctecmdr
55da89b96e Merge "video: driver: diwali: read efuse from sw_range4" 2021-11-12 13:32:02 -08:00
qctecmdr
f07ad2e9e0 Merge "video: driver: diwali: Add core caps" 2021-11-10 13:22:35 -08:00
qctecmdr
20f95b6bdc Merge "video: driver: diwali: Add v1 & v2 inst caps" 2021-11-10 13:22:34 -08:00
Priyanka Gujjula
4b9c19e5e5 video: driver: diwali: read efuse from sw_range4
HLOS doesnot have access to raw region. Instead,
read from sw_range4 region which are sense
registers for raw region.

Change-Id: I662266b6557756d9bf6ef687f81b7869a792e7f7
Signed-off-by: Priyanka Gujjula <quic_pgujjula@quicinc.com>
2021-11-10 14:24:28 +05:30
Priyanka Gujjula
9c57700ac9 video: driver: diwali: Add v1 & v2 inst caps
Add instance data for v1 and v2 sku's.

Change-Id: I13a03ebb55d2ccb9044ac667054fc3aadbd2977f
Signed-off-by: Priyanka Gujjula <quic_pgujjula@quicinc.com>
2021-11-08 12:38:43 +05:30
Priyanka Gujjula
dcaf028bf8 video: driver: diwali_v0: Update inst caps
Correct instance data for diwali_v0.

Change-Id: Ibeae49fd7f10ebfd8ab7c939666ffbff106a7efe
Signed-off-by: Priyanka Gujjula <quic_pgujjula@quicinc.com>
2021-11-08 12:21:31 +05:30
Priyanka Gujjula
41d0edcaa2 video: driver: diwali: Add core caps
Add core caps for all diwali variants

Change-Id: I8917c574becd5923b7767404f81c01341ba29276
Signed-off-by: Priyanka Gujjula <quic_pgujjula@quicinc.com>
2021-11-03 16:29:34 +05:30
Priyanka Gujjula
043ab4c9f7 video: driver: diwali: Add SKU clock data
Add clock corners for diwali v1 and v2
variants.

Change-Id: I1322dada7dafed10cb17b9ab4bcef45f102d371c
Signed-off-by: Priyanka Gujjula <quic_pgujjula@quicinc.com>
2021-11-03 15:50:32 +05:30
Priyanka Gujjula
f352311f44 video: driver: Add diwali SKU's
Add support for diwali AA/AB(v1) & AC(v2) SKU.

Change-Id: I8afdf0529016e9cdbe72da8e57d7f35194cf9026
Signed-off-by: Priyanka Gujjula <quic_pgujjula@quicinc.com>
2021-11-03 15:47:21 +05:30
Priyanka Gujjula
e710c6f974 video: driver: diwali: Configure hbb value
Configure hbb value as '14' for lp4
ddr variant.

Change-Id: Id3fa3028f38dabb81d1b1fc5b117c6d10e4d45b5
Signed-off-by: Priyanka Gujjula <quic_pgujjula@quicinc.com>
2021-11-03 15:44:48 +05:30
Priyanka Gujjula
c3440c6ade video: driver: Add support for diwali variant
Add support for diwali variants.

Change-Id: Idf322e674818642a9c886fe8707e5ff8f64c4db5
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
Signed-off-by: Priyanka Gujjula <quic_pgujjula@quicinc.com>
2021-11-03 07:39:48 +05:30
Priyanka Gujjula
e786da48eb video: driver: Use max fps from inst caps
Use maximum framerate from published
instance caps to make it platform
agnostic.

Change-Id: I319768e722774969287abb9e782ddbece7593ff9
Signed-off-by: Priyanka Gujjula <quic_pgujjula@quicinc.com>
2021-10-25 21:38:58 +05:30
Priyanka Gujjula
4970193ad1 video-driver: add mmrm query support
[1] Disable MMRM if platform feature
    does not support.
[2] Query for scaling support from
    mmrm driver and enable/disable
    based on queried support
    accordingly.

Change-Id: I34cf9a9e150b0823828507e3f5d680aae6eb14d4
Signed-off-by: Priyanka Gujjula <quic_pgujjula@quicinc.com>
2021-10-21 23:16:13 +05:30
qctecmdr
b1c38f2133 Merge "video: driver: add all intra encoding support" 2021-10-06 13:26:49 -07:00
Darshana Patil
fc6c35e8de video: driver: add all intra encoding support
add ALL_INTRA database entry and its dependencies.
implement adjust functions.

Change-Id: Ib4522666b6c2ef7dcb5adf9110a2fd5d2daf4654
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-10-04 10:40:32 -07:00
Akshata Sahukar
6df2a1bfcd video: driver: enable lossless encoding via debuf fs property
enable lossless encoding via debuf fs property "lossless_encoding".

Change-Id: Ic7f7341ecf3ad07e55434339a0c5789334bf7929
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-10-01 11:54:06 -07:00
Akshata Sahukar
98dfab8584 video: driver: prioritize MIN_QUALITY adjustment over BLUR_TYPES
MIN_QUALITY is parent of BLUR_TYPES, hence prioritize MIN_QUALITY
control adjustment over BLUR_TYPES.

Change-Id: I8498760d7b3ecd1546c2be43d2ae945781d4a84d
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-09-17 14:57:57 -07:00
Gaviraju Doddabettahalli Bettegowda
9110a87846 video: driver: Update msm_vidc statistics delay from command-line
Currently, statistics is printing for every 2 second
And these delay is hardcoded.
So changes added to update the statistics delay from the command-line.

- adb shell "echo 200 > /d/msm_vidc/core/stats_delay_ms"
- adb shell cat /d/msm_vidc/core/stats_delay_ms

Use above command to update & read statistics delay.

Change-Id: I523a870203ee460d1dba8208b798f28253407e73
Signed-off-by: Gaviraju Doddabettahalli Bettegowda <gdoddabe@codeaurora.org>
2021-09-09 11:24:23 +05:30
qctecmdr
404bc1d0cb Merge "video: driver: allow two 8k sessions support" 2021-08-27 10:01:26 -07:00
Darshana Patil
e17abd45c1 video: driver: limit max number of sessions based on resolution
add checks to limit max number of sessions supported based on
resolution.
max number of 720P sessions: 16
max number of 1080P sessions: 8
max number of 4K sessions: 4
max number of 8K sessions: 2

Change-Id: I2a784a0d28ba050923bdc7f42a21ee9801d01d86
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-08-26 15:51:34 -07:00
Darshana Patil
b965b9307f video: driver: allow two 8k sessions support
Allow one 8k + one 4k realtime sessions.
Maximum allow two 8K sessions which includes RT and NRT sessions.

Change-Id: I68acfc4942c5c930bed7d9584cd82f2667010136
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-08-26 15:51:23 -07:00
Manikanta Kanamarlapudi
6ace5b4227 msm: vidc: update capabilities as per PRD
update profile/level capabilities as per
PRD.

Change-Id: If1c4ff304a5febaeb3a567416d7c66eaca0f47c4
Signed-off-by: Manikanta Kanamarlapudi <kmanikan@codeaurora.org>
2021-08-16 11:16:30 +05:30
Darshana Patil
05270719fb video: driver: add max num reorder frames support
add support for HFI_PROP_MAX_NUM_REORDER_FRAMES.
add ctrl for this metadata for avc and hevc.

Change-Id: I9a7b95f130e58f810255aff23e9b605304841072
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-08-09 11:39:57 -07:00
Govindaraj Rajagopal
5c297b7d26 video: driver: print buffer statistics once at every sec
- Added change to print buffer statistics like total and avg
etb, ebd, ftb, fbd counts, client set fps, actual fps,
bitrate values in 1 sec window and these stats currently
configured to print at every 1sec boundary.
- Convert meta buffer prints to low level logs.

Change-Id: I1c93eea90fbd5460eb51bbf133c513157003d51e
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-07-22 19:13:19 +05:30
Akshata Sahukar
c533b92361 video: driver: Disable RGBA/RGBAC encoder
Since CTSEncodeDecode test cannot handle BT 709LR,
disabled HW RGBA encoding.

Change-Id: Ic451d8444a2ec502ded7fba008233b2e288826bf
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-07-19 14:15:04 -07:00
Akshata Sahukar
942f406c42 video: driver: Cap chroma qp offset value other than -12 as 0
Cap chroma qp offset value other than -12 as 0.

Change-Id: I0ca9c4844ab835a9365e695f38deff90768191aa
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-07-15 10:23:02 -07:00