Граф коммитов

373 Коммитов

Автор SHA1 Сообщение Дата
Darshana Patil
e7c7a2fb02 video-driver: add decode QP metadata support
add v4l2 extension and necassary support for
decoder QP metadata.

Change-Id: I364ef9b7b3a63bef0a59c955018bc8456f12d03f
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-05-14 13:43:16 -07:00
qctecmdr
992a58254f Merge "video: driver: update proper state in vb2_buffer_done" 2021-05-11 20:49:09 -07:00
qctecmdr
6f7a39d1d4 Merge "video: driver: report system error when packet validation fails" 2021-05-11 18:24:02 -07:00
Akshata Sahukar
967d049715 video: driver: Support max 1 enh HB layer when cvp is disabled
Allow max 1 enh layers when cvp metadata is disabled for HB
layer type.

Change-Id: If6e33462e8be36a4ca1fb1f253875678b697c05a
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-05-11 16:47:14 -07:00
Akshata Sahukar
4a81629d7c video: driver: report system error when packet validation fails
Report system error when packet validation fails to avoid
unpredictable failures.

Change-Id: I196c21aba1d19846fe766585e4955b3aca3fd59e
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-05-11 13:12:26 -07:00
qctecmdr
849dab200f Merge "video: driver: handle race condition in msm_vidc_core_init" 2021-05-11 00:44:17 -07:00
qctecmdr
4837c16676 Merge "video: driver: add frame_skip mode control setting for heic" 2021-05-10 18:11:09 -07:00
Govindaraj Rajagopal
9a7e929dfe video: driver: handle race condition in msm_vidc_core_init
Core is moved to init state before completing full init sequence.
So subsequent new open request assumes core is already inited and
attempts to initiate a hfi_session with firmware, which is not
correct and core_init is a sync cmd, so core->lock() is released,
so that reverse thread can issue sys_init_done. But new session is
acquiring core->lock() and corroupting core->init_done.task_list
completion structure variable i.e leading to list_corruption issues.
So added change to address these issues.

Change-Id: I0b983a06b8ea58134ea93831246309c9ccbdf0d1
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-05-10 17:20:58 +05:30
Govindaraj Rajagopal
57180ce6f2 video: driver: update proper state in vb2_buffer_done
V4l2 clears buffer state related flags. So for driver errors
send state as error to avoid skipping V4L2_BUF_FLAG_ERROR
flag at v4l2 side.

Change-Id: Ifcb96d390746a71e8dbcf261f718439ef9ecfc91
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-05-10 10:48:15 +05:30
Qiwei Liu
2e2fbdb7e5 video: driver: support non-zero data_offset
In V4L2 definition, bytesused contains both data_offset
and actual payload size, whereas in HFI definition, data_size
only contain actual payload size after data_offset.
Add conversions to correctly support non-zero data_offset.

Change-Id: Ib581e942e39e0adbb673c53d1b31e669bdb2b998
Signed-off-by: Qiwei Liu <qiweil@codeaurora.org>
2021-05-07 07:31:39 -07:00
Govindaraj Rajagopal
0995dfc215 video: driver: add frame_skip mode control setting for heic
Added V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE support for
heic codec type.

Change-Id: I4eaca697729c45ebf72067a9d34a7dc8d607f0fa
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-05-07 14:21:48 +05:30
qctecmdr
cfd1584e2a Merge "video: driver: add support for main10StillPic profile" 2021-05-06 23:16:26 -07:00
Akshata Sahukar
1739ce7b92 video: driver: modify blur resolution setting and fix b_frames
[1] External blur is disbled to firmware if either blur width or
    blur height exceeds driver crop width or crop height.
    Also, it is disabled when both blur width and blur height is
    equal to blur width and blur height.
[2] fix b_frame adjustment calculation formula.

Change-Id: I71458b72095542f12c31094f7b9fc3bd34a7c66b
Signed-off-by: Akshata Sahukar <asahukar@quicinc.com>
2021-05-06 14:01:02 -07:00
Govindaraj Rajagopal
f05007686d video: driver: add support for main10StillPic profile
Added support for V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10_STILL_PICTURE.
It willbe used in 10bit image encoding usecases.

Change-Id: I14877547f1f4792eefb0ea6bcecf2643627c125a
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-05-06 22:09:25 +05:30
Govindaraj Rajagopal
03db3bfd7f video: driver: add check_session_supported for session admission
- check total mbps is within range(including current session)
- check total mbpf is within range(including current session)
- image session:
    - decode: Only non-secure allowed
    - encode: check basic image_encode requirements
        - wxh should be within allowed cap range
        - only linear fmt
        - input & output is 512 aligned
        - only CQ bitrate mode
        - GOP size should be zero
        - b-frame count is zero
        - timedelta based RC disabled
        - still-pic profile for 8bit and main10 for 10bit
- interlace resolution should be less than (1920*1088)/256.
- reject odd input or output resolution
- output resolution is with in inst->cap [min, max] range.
- current session mbpf is less than inst->cap[MBPF].max

Change-Id: I81c46950a8ef5b64bf5ac94564613998b1079b52
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2021-05-04 14:21:57 -07:00
qctecmdr
1ecbcd6110 Merge "video: driver: fix layer bitrate dynamic setting" 2021-05-04 11:30:31 -07:00
qctecmdr
ebefd21553 Merge "video: driver: tune bitdepth settings" 2021-05-04 11:30:30 -07:00
qctecmdr
c4692136e5 Merge "video: driver: avoid race between core_timeout and handle_response" 2021-05-04 11:30:30 -07:00
qctecmdr
090dae75e4 Merge "Revert "video: driver: power collapse only if no sessions present"" 2021-05-04 11:30:30 -07:00
Govindaraj Rajagopal
8b019a5057 video: driver: tune bitdepth settings
if any one of the luma/chroma is not 8 bit, then treat as
10 bit content. So expose only 10-bit colorfmts for such
contents during enumFmt ioctl.

Change-Id: Ied6bacae25aa900918744730807a476f5762d49d
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-05-04 22:39:09 +05:30
Akshata Sahukar
78bd0f54eb video: driver: fix layer bitrate dynamic setting
Fix the issue where bitrate cap database value is
incorrectly updated to dynamically client set layer bitrate
value when layer bitarte is not set.

Change-Id: I0f66c056c8ea0d053f8347dd003b61193258687e
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-05-03 19:12:33 -07:00
qctecmdr
db185fcf81 Merge "video: driver: free children and firmware list memory" 2021-05-03 15:24:29 -07:00
qctecmdr
5f1d6bd23a Merge "video: driver: fix to allocate enc VPSS buffers in CB7" 2021-05-03 13:28:53 -07:00
Govindaraj Rajagopal
b0997af910 video: driver: avoid race between core_timeout and handle_response
In fwd thread, for sync cmd timeout, core->response_packet willbe
freed as part of venus_hfi_core_deinit. So i.e leading to a crash
at reverse thread, which is, in the middle of processing response
packet as part of handle_response api. So added change to avoid
this race issue.

Change-Id: Ice7e52c46e8858c89439c17213a08d01b358fe9d
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-05-03 18:26:08 +05:30
Akshata Sahukar
ce09f77e44 video: driver: free children and firmware list memory
To avoid memory leakage, clean children and firmware lists
at session close, error cases, and at the end of each usage.

Change-Id: I1eadbf81da207bd987c50428c0c7cf4967a8885f
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-04-30 18:42:34 -07:00
qctecmdr
401b0010e7 Merge "video: driver: tune image_encode_session settings" 2021-04-30 12:22:31 -07:00
qctecmdr
4aeaa73378 Merge "video: driver: Add support to blur property" 2021-04-30 12:22:31 -07:00
Akshata Sahukar
3c72173fec video: driver: fix to allocate enc VPSS buffers in CB7
Allocate VPSS buffers in venus_ns_pixel region instead of
venus_ns to avoid bitstream corruption for downscale plus
rotation usecases.

Change-Id: Iab03f23d30c8476c90e958411944db058582a9fb
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-04-30 11:58:32 -07:00
Govindaraj Rajagopal
35b7d34429 video: driver: tune image_encode_session settings
[1] Increase min_output buffer_count from 1 to 4.
[2] Enable FRAME_RC_ENABLE cap for image session.
    default - RC_CQ mode.

Change-Id: Iad3166fe37733e9d9ccde1dca29af8c7b825cc98
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-04-30 22:13:45 +05:30
qctecmdr
94ea0d5c5c Merge "video: driver: Check failures during session close" 2021-04-29 23:05:04 -07:00
Mihir Ganu
18e731edaa video: driver: Check failures during session close
Check if cmd queue write failed and return the error code
during session close.

Change-Id: Iaa4579cdb8ad5f622623c957a781ab0a9104153d
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2021-04-29 20:50:18 -07:00
Govindaraj Rajagopal
429e6efffd video: driver: fix system_error handling
Do not process next packet, if system_error is received.
As part of system_error handling core>respose_pkt will
be freed. So parsing beyond system_error packet might
lead to use-after-free issues. So added change to avoid
processing next set of pkts, if system_error is received.

Change-Id: Ibb767a5664e38cb720cba6416b6080f0aea4d919
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-04-29 12:47:21 +05:30
Akshata Sahukar
1c5f23e13b video: driver: Add support to blur property
[1] Add support to adjust and set blur type and blur
    resolution.
[2] Modify flip to not allow dynamic flip enablement
    when external blur is enabled.

Change-Id: I730f452c143ba8c8e15402d1c1ec3a0617bd583c
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-04-28 16:29:12 -07:00
Mihir Ganu
1f2e561f7c Revert "video: driver: power collapse only if no sessions present"
This reverts commit ae79a4b181.

Change-Id: I4d064975d91a061cb0e94e06be1f8bf87255dac2
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2021-04-28 10:25:27 -07:00
Darshana Patil
550a5599b9 video: driver: fix decode conceal colour
fix decode conceal colour

Change-Id: I2db138d68459a1e2c929acab31ff41c3b316e3b6
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-04-27 21:39:50 -07:00
qctecmdr
b85c9199af Merge "video: driver: refine power settings" 2021-04-27 20:34:02 -07:00
qctecmdr
e1a2a69904 Merge "video: driver: reduce output buffer count for thumbnail usecase" 2021-04-27 20:34:02 -07:00
qctecmdr
6432f03393 Merge "Revert "video: driver: reset last_buffer_dequeued flag for streamoff case"" 2021-04-27 20:34:02 -07:00
qctecmdr
eea79fdade Merge "video: driver: handle core init failure cases" 2021-04-27 20:34:02 -07:00
qctecmdr
e7bfa08f49 Merge "video: driver: Modify default values for VBV Delay and Peak Bitrate" 2021-04-27 20:34:02 -07:00
Akshata Sahukar
450a9e0e20 video: driver: Modify default values for VBV Delay and Peak Bitrate
Modify cap values for below properties:
[1] VBV Dealy: default as 300, min as 100, and max as 300
[2] Peak bitrate: default as avg bitrate set by client.

Change-Id: Ic9533e8a40e789128e5baa975bf1a0355e373e08
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-04-27 10:14:12 -07:00
Govindaraj Rajagopal
e0637a30b8 video: driver: refine power settings
Added change to address below 2 issues.

[1] buffer_counter is not getting incremented for batching usecase,
it always runs with max clk and bus votes. So moved buffer_counter
increment logic to msm_vidc_queue_buffer, so that it will be used
for all usecases.

[2] iris2 clock calculations were using core->capabilities but all
needed infos were present in inst->capabilities. So junk values from
core->capabilities was used in clock calculations and values always
shooting to highest corner.

Change-Id: I0927899244b5de2bd46d238100fdaecd78c6fe28
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-04-27 18:58:51 +05:30
Govindaraj Rajagopal
803defe0e7 Revert "video: driver: reset last_buffer_dequeued flag for streamoff case"
This reverts commit 816f15fbcf.

Change-Id: I686627e75ba9dc79b857159e85f142d3fc211745
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-04-27 12:05:23 +05:30
Govindaraj Rajagopal
5a374e3ed4 video: driver: reduce output buffer count for thumbnail usecase
Update output buffer min & extracount, if thumbnail mode is set
and also tune extracount at input psc sequence.

Change-Id: I77b28198257d127454ee3e9b2a307e1931547e8f
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-04-27 11:43:39 +05:30
Akshata Sahukar
90658c5592 video: driver: Add support to print decode/encode stats
Add support to calculate and print encode and decode
time, and average time consumption per fbd sample.

Change-Id: I5e867833d1d88285bfebc8c9b9a593e3ed975ed5
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-04-26 16:26:38 -07:00
Mihir Ganu
cf3fd457b3 video: driver: Enable flip and rotation
Enable encoder flip and rotation preprocessing features.

Change-Id: Icb0448c2d09fbe9504e3f58701cd2653dc4559b0
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-04-23 16:44:42 -07:00
qctecmdr
f594a33c13 Merge "video: driver: Add support for enc downscaling" 2021-04-21 18:31:17 -07:00
Maheshwar Ajja
03c7742be5 video: driver: handle core init failure cases
Core init failure is handled properly in order to avoid
undefined or unexpected errors while doing core deinitialized.

Change-Id: I89e234e6d9286b993547080551ba54ee7e643e59
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2021-04-21 17:48:11 -07:00
qctecmdr
17347ff881 Merge "video: driver: increase max buffer count" 2021-04-19 20:01:44 -07:00
Maheshwar Ajja
30d2ef55b4 video: driver: increase max buffer count
Increase max buffer count to release the buffers,

Change-Id: I34774a8e99c7a5c78f79e8ca101e6135a22e7f30
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2021-04-19 19:20:49 -07:00