For non referenced frame encoding when dual cores working together for
each tile of the frame, the core, generally it is core-1, processing the
right tile will spend twice of time comparing to the other core. Turing
off dchs solves this problem.
Change-Id: Iaec076c838115f3cbc3fdbebfadf4fb4a0138aec
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
The problematic process is as follows:
set_cfg -> prep change is changed
get_hdr -> not clear the prep change
set_cfg -> prep change is still detected and
causing idr frames to be regenerated
Signed-off-by: Xinhuang Li <buluess.li@rock-chips.com>
Change-Id: I270690e573e7b419695872e4d098bd2bf2599924
The problematic process is as follows:
set_cfg -> codec change is changed
get_hdr -> not clear the codec change
set idr -> codec change is still detected and sps/pps
is added repeatedly
Signed-off-by: Xinhuang Li <buluess.li@rock-chips.com>
Change-Id: If8decbba5010b271af45a6cf022863bcb2660a3d
1. Add fbc mode adjust callback function to buf_slot. So the external
user can change fbc mode on info change by SET_FRAME_INFO control.
When we change fbc mode the return MppFrame buf_size must be check to
insure buffer is enough for new fbc mode.
2. When parser notify info change there will be a info change slot
MppFrame which must be changed also when external user change fbc mode.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ic4f8764e410c796abffeb6b31924643c0eac0656
Merge some reg config from kmpp branch to fix quality of encoded images.
Change-Id: Idf13e15e2d3570b83c5248d2a074dcb48bb50f7d
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
Slice header should be amended when poc type configured by user is
different with hardware encoder generated.
Change-Id: Ifa458be9a11a5346afb2abd3337c836ced9f95e8
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
1. For normal Smart-P mode, if TSVC is not enabled, temporal_id can be
zero, and no need to add prefix NAL.
2. For RK3588 H.264 dual core encoders working concurrently, redundant
prefix_nal should also be removed, if prefix NALU is empty.
Change-Id: I89aca4f0cf418afb48e39a141107c5f4491a1ce1
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
The first prefix NAL of new frame is stored in the end of current
frame in mpp split, which introduces loss of prefix NAL.
There are some methods to debug:
1. mark the position of the first prefix NAL of new frame as the
start position of next frame.
2. store the first prefix NAL of new frame, and copy prefix to the
next frame.
3. store all the headers of NALs between last slice of current frame
and first slice of next frame.
Method 1 is invalid when the prefix NAL cross two packets.
Method 2 is complex to expand to store NAL of other type.
Method 3 is applied in this patch.
Change-Id: I76d962268d28c2d796845cb2bc136b73f26b5ea6
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
For MVC bitstream, the DPB size of base view may not be equal to the
higher layer view. So DPB of the smaller one needs to be enlarged.
Change-Id: Iebaf9d49824e41e393329334df1f6a9518a876db
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
When SEI payload has prevention code, paser should skip it.
Change-Id: I426bcb415199cc78b2f7211860b9a339e15d5122
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
In split mode, it is only possible to determine whether the
previous frame's segmentation for decoding and PTS update is
completed when the second packet is received. However, in
cases where the second packet starts with SPS (Sequence
Parameter Set) and PPS (Picture Parameter Set), we only
terminate the segmentation for decoding of the previous frame
without updating the PTS. This results in two consecutive
frames with duplicate PTS values.
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
Change-Id: I1e55a8fee9e18b62e538f4e5a263c6b8ffc2f087
Fix sei parse issue case by the prevention bytes not being removed.
Note:
The quantity of emulation prevention bytes is not
included in the size payloadSize of an SEI payload.
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Id03d7d4c7874e2a1b33c4963bb410680fffa8e73
The quantity of emulation prevention bytes is not
included in the size payloadSize of an SEI payload.
So add PSEUDO_CODE_H264_H265_SEI type for sei payload parse.
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I92554de98ffca2f81785aa81b2f652099dbe6ae9