1. The kernel object is provide by /dev/kmpp_objs
2. Use kobj interface name to query its info from kernel.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I638890b39a62b7a992896e8047d4bed33400f912
The extra data(sps/pps) will be lost when the following flow occur:
push extra data -> reset -> push idr data.
Change-Id: I5f371291d5e7bcc27aad18ce6ae180b00fd76bd7
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
In TSVC with multiple LTR frames case, there may be more than two base
layer frames between two LTR frames with different index. Replaceing
LTR frames into 1st short-term reference when calculating cpb size will
not get a correct result.
Change-Id: Ib68e8c4e733cef2192d70d03c02d29ff814cf011
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
Platform: Linux,General
Error case:
When decoding an MPEG4 source, it is unable to properly
configure split_parse. need_split is only initialized
during init.
Solution:
Use the split_parse parameter in the dec_cfg.
From: redmine #526753
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I89eb4dc8fcc2a1b00d73d359979770f7afefe0d3
Frame type can be configured in all encoding fmt.
Change-Id: I9cd0c4417514376dcce29924f8456f36d525ef6b
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
1. No need to encode IDR when fps_in is changed. So remove it from
`check_resend_hdr`
2. If application do not want any IDR encoded when only fps is changed,
call `mpp_enc_cfg_s32(cfg, "rc:fps_chg_no_idr", 0);` when
initializing.
3. Keeping CPB when only SPS, PPS are updated without IDR encoded for
H.264 encoder.
Change-Id: I034dd789a3f24318004d942624eb10240f7db2e9
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
Note that the PSNR derived from SSE may not equals to PSNR from video
analyser. Because SSE returned from hardware is consist of both luma and
chroma samples. And SSE of chroma samples multiplied by some weight.
But the difference is within 1db, usually no more than 0.5db.
Change-Id: I294d473c656f39ce98dd0768cd6945ee38e89b14
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
When the profile idc is high profile and constraint_set3_flag=1,it must
obey some rules of high 10 intra profile, such as contain only IDR pictures.
Reference the h264 clause A.2.8 introduction.
Change-Id: I9f886925a3810bc4ad9c7e70ebdc2194354c6eb5
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
MppSysCfg is used to config and query mpp gloabl parameters.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I132746e07b55040b582878adaef209ce73147da1
Platform: General
Error case:
When info changing, setting the output format to fbc
causes buffer usage exceptions.
Solution:
Add the MPP_DEC_SET_FRAME_INFO command.
From: Product Department 2 czl
Change-Id: I779ca93b461bf220d64e3d4846128ce2f67ffc89
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
1. solving deinterlace mode changes when video is
progressive at detection mode. Frame output
order will be wrong for the first 10 frames.
2. solving the issue that ff_mode judge will not
be updated when info changes.
Change-Id: I85ef0abe7af972dbe9ee7965f2c17de78330c506
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
tips:
if set this in alloc_frame, it may error and set the meta
in first missing ref frame, not in current frame.
Change-Id: I76ecadd7566e151b0795a4918efb4112881417ed
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
Generally, stream length is equal to packet size,
which is set outside.
It is better to use stream length when exactly set
Change-Id: I2f5b6eaf263ce3c26b0ff12dac2f0f3f61483f3f
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
Platform: rk3575/vdpu383
Error case:
The idr frame (frm0) does not update the cdf, and then frm1,
when using the cdf, mistakenly uses the cdf of the previous
gop instead of the default cdf
Solution:
At the beginning of GOP, reset all validity flags
Reported-by: Detlev Casanova <detlev.casanova@collabora.com>
Source: av1.video.es
Change-Id: I72152664d1c4275cb39f657c94ed4ba89a076465
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Platform: rk3576/vdpu383
Error case:
The idr frame (frm0) does not update the cdf, and then
frm1 uses the invalid cdf of frm0, causing core timeout
Solution:
Add a flag to determine whether the cdf is valid
Reported-by: Detlev Casanova <detlev.casanova@collabora.com>
Source: av1.rk3576.failure.obu
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I72d08877d40368976794ba3bcabf4e939d4fa047
For H.264 and H.265 encoder on RK3588, when input source is YUV, keep
input source. For RGB, transalting according range setting from API.
Change-Id: Icf0ffdb80d7fcc4027b8bd7b9b7fd673fc6e3b0b
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
Platform: General
Error case:
The output format is initialized to fbc, and then converted to yuv
during info change
Solution:
In the SLOTS_FRAME_INFO case, improve the copy of frame information
From: Product Department 2, android15 youtube verification
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: Ia78f1272c506ec1ff5e0789fd26b36e3cb1d63b1