Modification Point:
1. Use enc configure object macro.
2. Use kmpp_obj_update to sync user cfg setup.
3. Distinguish between user mode and kernel mode for enc obj.
4. EncImpl only check codec related SET_CFG result.
5. Refactor SET_CFG flow.
6. Adapter jpeg q_mode feature.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
Change-Id: I2856acdf863189fdaa29121ad8bc007fe90b5ab5
1. Add rps_update_flag to indicate whether to update rps.
2. Fix global cfg data len for vdpu384a.
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I1c664c99f34f6dea940368496175273042b48b18
Platform: vepu_580/540/510
Spec: h265e
In tsvc mode, top p-frames not used as reference frames.
Change-Id: I0b285e5ed753e73321fd728389195f0e5b118874
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
Platform: General
Spec: av1
Reported-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I338545eb1fdb7e726c8c6f81c103061fd0dc9c9d
1. Add rc model in when force skip frm
2. Fix ref frm error when force pskip
3. Disable pskip when cfg force idr
4. Support pskip frm as ref frm
5. Support force skip frm as is_ref or non_ref
Change-Id: Ib138ab75a9df2c4521cb376e3a3d7fd30565ecd9
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
For av1, fix compatibility issues between rk3576 and rk3588
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: Ia779b06cda11366f69612663efd4e69c4b6b0b67
Support FBC, tile4x4, 400, 420
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
Change-Id: Ie0c1ab47447c605b96f75313734db8bab46e77c8
Add VEPU540/580 YUV400 format support in H.264 and H.265
Change-Id: Id62102dcdc42afea5c3485224d9b4e5bf25efbac
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
1. Add dpb hal_start/hal_end function to mark hal usage.
2. Use dpb_used in the dpb process flow and hal_used in hal flow.
3. Send dpb ptr to hal for hal notify.
4. Use reg_idx in enc_task to find the register buffer.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ib728a896826a3039682de75d6a8cc2d4dfe04e3d
Flush frame when there is a frame in the dpb with poc > cur poc.
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Ib3a1f0a8bcdf1fddfa1f5b3928ea1dfd43bd4635
num_views_minus1 maybe is -1, when type is RK_U8, the value is
255, num_views will be 256, correct num_views_minus1 should be
-1, num_views is 0.
crash backtrace:
0) 0x0000007f99216b64 in fill_picparams (p_Vid=0xd8065a0, pp=pp@entry=0xd8089c4)
at mpp/codec/dec/h264/h264d_fill.c:229
1) 0x0000007f9921632c in init_picture (currSlice=0xd805dc0)
at mpp/codec/dec/h264/h264d_init.c:2066
2) 0x0000007f9920ad38 in parse_loop (p_Dec=p_Dec@entry=0xd803c00)
at mpp/codec/dec/h264/h264d_parse.c:929
3) 0x0000007f99208abc in h264d_parse (decoder=0xd803c00, in_task=0xd80b770)
at mpp/codec/dec/h264/h264d_api.c:607
Change-Id: I2386f3a215027d2cda9a189bc49806f6358cf9ef
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
When decoding S picture, reference list with be force to set to only one
left. Slot flag should be cleared for the already marked buffers at
reference list. But decoded picture may not be correct if following AVS2
specification. So for S picture, keep those reference frames found by
doi_of_ref and replace the content of the first reference frame with
scene ref only.
Change-Id: I9f84fdd55acfc9cf9d65deb065ccf97c36de1321
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
When scene reference is used, ref list should not be modified directly,
otherwise slot options will encountering error.
Change-Id: I23627fc56c5d8e25e54e72868c926391127e31e6
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
1.support parsing dolby meta data from h265 and av1 streams.
2.support parsing vivid meta data from h265, and todo for avs2.
The hdr meta data will be append at the end of the frame data.
So it need a extra 4k buffer to store the hdr meta data.
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I50432633a7fb57c6f340e1966866f931bf7d8c43
pps_id out of range result in segment fault.
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
Change-Id: I0281eb83584d265d5a016fd157c24f3f8917dee9
Following elements didn't have a bound check in SPS as spec doesn't list
the bounds on these explicitly.
log2_min_cb_size, log2_diff_max_min_coding_block_size,
log2_min_tb_size and log2_diff_max_min_transform_block_size
Added appopriate error checks on these fields
Signed-off-by: Chen Jinsen <kevin.chen@rock-chips.com>
Change-Id: I4762f543726650855e5cd333c48a7c41cf0fee0f
optimize the size of some structures as blow:
1. H264dVideoCtx_t
2. H264dCurCtx_t
3. DXVA_Slice_H264_Long
Change-Id: If3d7ca2f8d92d2a590767a97324537700848ab90
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Add hw capability to parser and check resolustion based on
hardware capability.
Change-Id: I6f7ff7a56d0e46d6ca9cb0dcd547e74fd15d7bc1
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
if sps_id&&pps_id has not change,then regards as not need to
refill spspps buffer data.
Change-Id: I7616d913800b1b4865999f11ce6fb7e71fabc41f
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
When jpeg encoder enable partition encoding the following items should
be check:
1. IMPORTANT: This implement is only for single encoder usage that is
hardware can only support this feature without context swith between
different frame encoding.
2. Check input split mode and split arg.
3. Update bitstream address and msb/lsb for each partition encoding.
4. Update mcu height for each encoding.
5. Change restart marker for each encoding.
Change-Id: Ie4e4dea4f66d4f0a1aeca15c8b542d8ada723477
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>