When GOP is set to 60 that is the same as the default GOP by
application, igop at reference module isn't set as expected, that leads
to CPB not be cleaned correctly and IDR frame won't be encoded.
see [issue](https://redmine.rock-chips.com/issues/374780)
Change-Id: I2f1030cab700aa560dea07284b820a73c637631e
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
NOTE: low delay path should be used with slice encoding.
Change-Id: I75b774fc5dbbc910d5aa722c4eeffe255415efbb
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
User data set is for multiple user data with uuid.
Change-Id: Iad952961ab6242ff3a14f554410144bebd3801ba
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
1. Add MppDev output for all encoder.
2. Update HalInfo to MppDev on each header update.
Change-Id: I8fce811dda7232740042917c9738bc11253ee672
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
1. In some case cmd_send is increased but param is not write to memory
then the mpp_enc_proc_cfg function may read zero param.
Add extra sem_t to sync cmd / param value.
2. Move MppEncCfgSet to the bottom of encoder.
3. Add control return value path.
Change-Id: Iddc4e690d8e0e45d2922c6666dc5fd9c4d57fef2
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
When the frame is not encoded do not set ready flag in header status.
Change-Id: I21980d48a5abedc562de9875e24466fea5315121
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
1. Separate rc_frm_end to rc_frm_check_reenc and rc_frm_end.
2. Add drop mode parameter copy in H.264/H.265 encoder.
3. Separate normal encoding process and reenc/drop flow.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ica29eb6d5e700fb51c4019e39c42f4918857ac71
1. Add rk_venc_rc.h for rate control definitions.
2. Add drop parameter to set_rc_cfg.
Change-Id: Iab27a1505ba187f512815f7ab00cd0ea7f863cb8
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
when select avbr must set target_bps max_bps min_bps,in still scene
will used min_bps for enc, in the moving scene will max_bps for enc.
and final avg bit will get close to target_bps
Change-Id: I84b2878c7e76b18a593ca2a0d99c0c8f26a2d557
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
MPP_ENC_SEI_MODE_DISABLE : no debug sei at all.
MPP_ENC_SEI_MODE_ONE_SEQ : Add debug sei on each IDR frame.
MPP_ENC_SEI_MODE_ONE_FRAME : Add debug sei on each frame.
Change-Id: I6c40e447de7f97ce1e433c3ac5adbf2c6be3de40
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
The reencode flow should be clean before rc_end.
Change-Id: I9567f1533979ef4f1e3feb61f7a530166daf30d0
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
1.when input set rotation 0->90->180, due to 0->90 w&h will sawp
if only set 90->180 w&h no change will cause error,so when
rotatio must recheck w&h
2.when input is fbc no support rotation and mirror
Change-Id: I4e77b10e25fd66caccaa131be8a9063570f1e3df
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
1. Add keep_cpb flag to keep the cpb status on refs cfg changed.
2. Add hdr_need_update check flag for resend header.
3. Add force flag implement in refs process.
4. Do not resend header on max_tid change only.
5. When gop is update the cpb should restart.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I2eb3191ce6f45ccea081fa861e4927abae96ff2b
Use has_meta to check input frame has meta data or not. Otherwise each
frame will have a metadata.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I166346b668fe5ec46032d5c27a7a368fe2fea3b1
There force reference frame user configure is added to encoder task.
Change-Id: I4482a831f988f47913c6e1d0385ccbdd0cd46031
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
When qp limit in codec_cfg is changed the rc_cfg should be also updated.
Change-Id: Ia5da305c015e6bc11836b6c358ddee6be51e819a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>