1. constraint the range of input argument.
2. add flip config, equal to vertical mirror transformation.
3. add mirroring_ext and rotation_ext to config set, for supporting
GET_CFG control.
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
Change-Id: I01c0b9187a18851354e81b5f08afc6dcaaba8365
A ext 64 bytes are required for each col tile boundary
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I3d6b64579b4f881354c015e556c69ea126d5976a
Add finalized flag to avoid double free error which happened on C++
static destruction function order error.
If ~MppMemPoolService is called first in __cxa_finalize then another C++
static destruction function call mpp_mem_pool function later it will
cause double free crash.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I14862e74d7987e30cccbcbaaee21170d92aa62d9
due to ref is bidirection if only select before, some case will
get fail when ref poc all after current poc, so select error ref
base used min(abs(cur_poc - ref_poc[i])) in current ref list
Change-Id: Ib6796d0e4313601ded245c6b41a4fa0c19668de7
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
When the last packet sends empty data, h264d_prepare
returns in advance, causing the previous nalu to not
be saved normally, resulting in the loss of the last
frame of data.
Change-Id: Ic519b4326935d82b2534e7442c0ba5175885cef2
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
After receiving the last packet of data, the program exits
without parsing, resulting in the frame loss of the last
packet of data.
Change-Id: I2effe7ae111402d8318095c016269f27467cb987
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Fixed the problem that the I frame could not be judged correctly,
resulting in the wrong flag of the I frame to be set.
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: Ieeeb7c70d440f720808fabc6918b04b20f63565c
Before re-encode the bit_real and the quality_real should be be clear.
Change-Id: I724c93fa49feaef7194a0a10c6278527aa51598a
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
On yuv case skip frame decoding if it can't found right refer frame.
Change-Id: Ibd29bee262010bccb5e9fcebe94674eab9e62b6e
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
Auto tile cfg will let encoder auto split picture into tiles
according to platform encoder core number.
When enabled on RK3588 all picture will be splited into two tiles.
Encoder cfg string: h265:auto_tile
Change-Id: I3bd91a7781fc2c7e0b43bf2e3be775a5b8098d78
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
Fix the problem that the program crashes
when the source size is less than 65x65
Change-Id: I4519cb0d70c651845cd46a23bcb2243d365450c5
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Some stream encoded from xavs2 might not have `aec_lcu_stuffing_bit` set
correctly. Disable this check at CABAC module from hardware to make
decoder contiune to work instead of reseting.
Change-Id: If38624e1469debcdb1c8aecf356aa69f10521633
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
So we need check the fbc by format and return error.
Change-Id: I634e4189866e8d01eede35f9573620f3ab75ce56
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
For external control, fastplay is turned off by default.
For internal, judge whether to start fastplay according to
different poc modes.
External control has higher priority.
Change-Id: Ifd79267dbafa68b4f46699f3eff5b954d17a2e89
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
1. Use flatten MppDecCfgInfo to replace MppCfgApi
2. Flatten the trie nodes and info nodes with string name together.
3. Refactor the decoder config setup process.
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
Change-Id: Ia9f24abde4e37f0a1ac4e7ec237b876a54e4aef7
If an unsupported fmt is configured first and fails,
reconfiguring the correct fmt will not take affect.
rootcause: the value of fmt used for checking is wrong.
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Ied1e7fa99589fbe1631c4d5f022ea44dcba2883e
When buffer is realloced then enlarged new memory is not initialized.
Extra memset is required.
Change-Id: Iad395b56125eb5c67ce8aed50bc1c4bed2a6826e
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: Wenjie Yang <ywj@rock-chips.com>
For a specific video source, it is stuck at the last position.
Turning on fast play or closing iep can avoid the stuck.
The reason for the stuck is that the idle task cannot be obtained when
processing eos, resulting in the failure of the eos frame to return.
Change-Id: Id78d968dc8f526f9fd195dac7bdbd97fafc1f569
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>