Graphe des révisions

795 Révisions

Auteur SHA1 Message Date
qctecmdr
cf5a48074b Merge "video: driver: introduce metadata size macro" 2022-04-29 13:19:19 -07:00
Mahesh Kumar Sharma
a079cc43f3 video: driver: preprocessing pass required additional cycles and bw
Encoder preprocessing feature requires additional cycles
and bw to support this feature if it is enabled.

Change-Id: I46de42dd0cb0d5a7cd9fdf00beeaefd50e40798e
Signed-off-by: Mahesh Kumar Sharma <quic_smahesh@quicinc.com>
2022-04-28 17:02:55 -07:00
Darshana Patil
808cebd0b4 video: driver: introduce metadata size macro
introduce encode input and output metadata
size macro in the interface file.

Change-Id: I40776018c5c3278d40a426c2afde4d56e90066e2
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2022-04-28 14:36:19 -07:00
qctecmdr
c39eec6e2e Merge "video: driver: superframe metabuffer fix" 2022-04-28 10:01:42 -07:00
Govindaraj Rajagopal
31272040c3 video: driver: fix dmabuf leak issue in queue init sequence
In __interface_queues_init() api somtimes map() call is failing.
Map failure scenario we were not freeing allocated memory. So
added change to cleanup allocated memory incase of map failure
scenario.

Change-Id: I04b196e55a5f080a4ec973aa166f7e1b6525a58c
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-04-27 16:35:44 +05:30
Darshana Patil
ef97be4b75 video: driver: superframe metabuffer fix
with request api, c2 hal sets 2MB as
input metadata buffer size for encoder.
Hence amend superframe meta buffer size
sanity condition.

Change-Id: I6c837bb85471b5e4be25811922081d1160761464
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2022-04-26 22:34:32 -07:00
Akshata Sahukar
047ed11bf7 video: driver: add restrictions for dec fence enablement
- Allow dec sw fence enablement only if decode order is set and
 non interlace type session.
- Enable low latency mode if sw fence is enabled.
- Signal fence if FBD length > 0.

Change-Id: Ib59c2de51f621b796e68fe2aba68d9fca3ff4272
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2022-04-26 13:28:13 -07:00
qctecmdr
3cbfc66709 Merge "video: driver: fix decoder output port crop info" 2022-04-25 21:43:18 -07:00
qctecmdr
e115a1410e Merge "video-driver: Add Null Pointer check for response_workq" 2022-04-25 16:34:33 -07:00
Darshana Patil
bb8c08f6cd video: driver: fix decoder output port crop info
crop width and height should be calculated using
left and top as references.

Change-Id: I463cdc9557dab3ae7200cb6aaf60fce399571d30
Signed-off-by: Darshana Patil <darshana@quicinc.com>
2022-04-25 13:53:00 -07:00
Roopangkumar Patel
0f28bde3c5 video: driver: Change to support ROI with CBR
- Enable ROI for VBR, CBR_CFR, CBR_CFR bitrate modes.
 - Disable ROI feature, when rotation, downscaling/scaling
   enable,
 - Disable adaptive blur, when ROI feature is enable.

Change-Id: If645a255bca93b90fe5cee5a735d7ffcd2a6bc5c
Signed-off-by: Roopangkumar Patel <quic_rooppate@quicinc.com>
2022-04-24 21:56:05 -07:00
Vedang Nagar
30cee602ed video-driver: Add Null Pointer check for response_workq
Add Null Pointer check for response_workq inside
cancel_response_work_sync function.

Change-Id: I574034b8937ade601cb9cda3f91c3c3bcf2c3e1e
Signed-off-by: Vedang Nagar <quic_vnagar@quicinc.com>
2022-04-24 21:06:06 -07:00
Deepa Guthyappa Madivalara
59b8019b9d video: driver: amend priorities to allow more sessions
1. adjust client set non-realtime priroty with NRT_PRIORITY_OFFSET (2)
2. if total mbps is more than max_mbps
    a. allow encode session by reducing decoder sessions priority by 1
    b. allow decode session by moving it to non-realtime session
        in order to not disturb the ongoing sessions

Change-Id: I96fd2ac75c123d681982fb9a2c06ac51d15bd59a
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
2022-04-22 11:55:29 -07:00
Deepa Guthyappa Madivalara
8a1d57af0e video: driver: add comments for kernel space logs
adding comments to avoid changes in kernel space
logs that are used by post processing scripts

Change-Id: I66ee9743866d12c740c3791b92534eaf7601436d
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
2022-04-15 17:35:09 -07:00
qctecmdr
e7a0e95217 Merge "video: driver: add macros for kernel space logs" 2022-04-14 18:23:36 -07:00
Deepa Guthyappa Madivalara
7e9d5106f6 video: driver: add macros for kernel space logs
adding kernel space logs used by post processing
scripts as macros to avoid changes in them.

Change-Id: Iea0fb0514c134767f063902ff98fd756898ef7c4
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
2022-04-14 15:06:12 -07:00
qctecmdr
524675dc5e Merge "video: driver: createbufs and controls v4l2-compliance fixes" 2022-04-13 16:45:34 -07:00
Govindaraj Rajagopal
f47f897e4a video: driver: split platform database entries into 2 parts
Divided database entries into 2 parts

[1] struct msm_platform_inst_capability -> it tracks cap_id,
domain, codec, min, max, step, default, v4l2_id, hfi_id, flags.
[2] struct msm_platform_inst_cap_dependency -> this will track
cap_id, domain, codec, parents, childrens, adjust and set
callbacks.

It will help to reduce number of database entries.

Change-Id: I692968b0f6804b45371e8cf4af6407e57df54bb9
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-04-12 15:25:59 +05:30
Darshana Patil
0602d95bd9 video: driver: createbufs and controls v4l2-compliance fixes
when create_bufs ioctl is called for meta port, v4l2
framework calls queue_setup with num_planes as 1.
fixed the num_planes condition by updating it for only
input and output ports.
removed a condition to check if client has set unsupported
bits for metadata controls.

Change-Id: I0faf2cfc2827af7d3992bda63a04d4203f13c9e1
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2022-04-11 17:33:36 -07:00
qctecmdr
6b08ced7fe Merge "video: driver: fix corner cases in caps_list preparation" 2022-04-11 16:58:20 -07:00
qctecmdr
e0b25f7772 Merge "video: driver: Error handling for HW overload" 2022-04-11 16:58:20 -07:00
Govindaraj Rajagopal
a820f65654 video: driver: fix corner cases in caps_list preparation
during opt_list iteration, eligible node gets added into
root_list but if incase that node is having children then
child nodes were not getting added into opt_list. So added
change to address this corner case.

Change-Id: Ie402a9d57b5b00cb94ef30e2345c8c4580fc8f69
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
2022-04-11 14:42:38 +05:30
Akshata Sahukar
ae362a4130 video: driver: Set 1 stage for Byte based Slice mode
Set 1 stage for Byte based Slice mode.

Change-Id: I9924535234e202e83d6f33b03ebc7de578e7aa48
Signed-off-by: Akshata Sahukar <asahukar@quicinc.com>
2022-04-08 22:02:14 -07:00
Mahesh Kumar Sharma
508f4a0282 video: driver: inline preprocessing improvement
For VPSS, FW requests more bandwidth from HW.
In order to support inline processing, FW introduced
request preprcess property.

Enble this property only when following conditions are met:
- CAC-BRS is required
- don't have EVA stats.
- Upto 4k@60 fps, max( frame rate, operating rate) <= 60

Change-Id: I3cf83483d9320e5dfe20617b37a54b9d5fbcffd8
Signed-off-by: Mahesh Kumar Sharma <quic_smahesh@quicinc.com>
2022-04-08 18:52:52 -07:00
Deepa Guthyappa Madivalara
cbeeaa8c64 video: driver: Error handling for HW overload
- send '-ENOMEM' after max mbps is reached

Change-Id: I6d597021046ea375f2131c2e40ac07d1aebdd9b8
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
2022-04-08 10:18:52 -07:00
Darshana Patil
2d69ee17ae video: driver: remove support of s_parm/g_parm for decoder
remove support of s_parm/g_parm for decoder

Change-Id: I5b35b33610eb96bbfc26181c8c249316ee65b31b
2022-04-07 15:27:43 -07:00
qctecmdr
5969b7c252 Merge "video driver: cleanup input rate list" 2022-04-07 09:32:39 -07:00
Deepa Guthyappa Madivalara
ff9dde7cc1 video driver: cleanup input rate list
cleanup input rate list

Change-Id: I5e64481280f5b1e04aae6439c57c6e1b97ad7395
2022-04-06 15:36:03 -07:00
Deepa Guthyappa Madivalara
fdef18ef50 video driver: remove session priority handling
1. Removes depenceny of priority from frame rate
    and operating rate.
2. Removes changing priority from s_param

Change-Id: Iec51173eab5a3d59b841315549d1420df422d37f
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
2022-04-06 09:22:38 -07:00
qctecmdr
3183f5831b Merge "video: driver: keep all platform common api in a single file" 2022-04-01 11:33:47 -07:00
qctecmdr
c1f317aa10 Merge "video: driver: modify key frame marking for hevc/avc codecs" 2022-04-01 11:33:47 -07:00
Akshata Sahukar
1933eb75bd video: driver: modify key frame marking for hevc/avc codecs
Mark I Frame as Key frames for all codecs.

Change-Id: I4fc73c076a93a959f4ed97ec65398ac3315af602
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2022-04-01 10:52:22 -07:00
Ankush Mitra
6d48bb4854 video: driver: keep all platform common api in a single file
update msm_vidc_platform.c to keep all common API's
and macro's in a single file to avoid redundancy.

Change-Id: I43869f54514ab8c531b6e27b84ce0a6c1f1806ce
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
2022-04-01 01:29:40 -07:00
Dikshita Agarwal
8f0e12cc93 video: driver: add support for cyclic intra refresh
Currently driver supports only random intra refresh, extend
it to support cyclic intra refresh too.
Cyclic intra refresh is supported dynamically as well.
- If intra refresh type is set and num of LCU’s to be refreshed
  are non-zero before session start, intra refresh will be enabled
  throughout the session.
  Any further dynamic settings in the number of LCU’s including 0
  will be honored accordingly.
- If intra refresh type is set and num of LCU’s to be refreshed are zero
  before session start, intra refresh will be disabled.
  When client sets it to non-zero value dynamically, driver will set
  HFI_PROP_REQUEST_SYNC_FRAME with
  HFI_SYNC_FRAME_REQUEST_WITH_PREFIX_SEQ_HDR.
  Driver needs to send HFI_PROP_REQUEST_SYNC_FRAME only at time of
  CIR Enable, no need to send at time of disable/enable again.

Change-Id: I10a2fb22d131353721ee658213ed807ce0794009
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
2022-04-01 11:08:19 +05:30
Akshata Sahukar
0abd877e95 video: driver: fix for fence support
- Add METADATA_PICTURE_TYPE support.
- some fixes for fence support.

Change-Id: Icd2285aa9fef57775122e9d2433f1e5d708ccdd3
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
2022-03-31 16:43:00 -07:00
qctecmdr
f1918f5314 Merge "video driver: calculate power based on max rate" 2022-03-31 07:49:35 -07:00
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
3c9409b72f Merge "video: driver: fix v4l2-compliance failure for private codecs" 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
Darshana Patil
733a7f8bcd video: driver: fix v4l2-compliance failure for private codecs
v4l2-compliance test does not support private codecs. Hence
added check to not return HEIC codec when enum_fmt is called.

Change-Id: Iff6fbb45b436e39e8b7c181859dbc1519338d003
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2022-03-29 15:17:55 -07:00
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
Darshana Patil
accb365696 video: driver: v4l2 compliance fixes for test formats
v4l2 compliance fixes for test formats

fixes:
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
test VIDIOC_G_FMT: OK
test VIDIOC_TRY_FMT: OK
test VIDIOC_S_FMT: OK

Change-Id: I23c193ab5785bb10d070fa3085678d9669f53a92
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
2022-03-28 11:58:06 -07:00
qctecmdr
5fd0e0a094 Merge "video: driver: update input, output and crop dimensions" 2022-03-26 23:24:19 -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
Maheshwar Ajja
db8a8959e2 video: driver: update input, output and crop dimensions
Update input, output and crop resolution based in client provided
resolution on input port as per the v4l2 compliance test expectation.

Change-Id: I56f197d72cc132f38c00842b28b23b20c508cf23
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
2022-03-23 20:11:42 +05:30
qctecmdr
2e1a127d25 Merge "video driver: calculate power based on input queuing rate" 2022-03-22 19:08:47 -07:00
qctecmdr
552a6f9470 Merge "video: driver: update condition to allow dynamic controls" 2022-03-22 18:50:33 -07:00