mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-05 09:06:50 +08:00
[enc]: fix IDR not encoded problem
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>
This commit is contained in:
@@ -138,6 +138,7 @@ MPP_RET mpp_enc_init_v2(MppEnc *enc, MppEncInitCfg *cfg)
|
||||
mpp_enc_ref_cfg_init(&p->cfg.ref_cfg);
|
||||
ret = mpp_enc_ref_cfg_copy(p->cfg.ref_cfg, mpp_enc_ref_default());
|
||||
ret = mpp_enc_refs_set_cfg(p->refs, mpp_enc_ref_default());
|
||||
mpp_enc_refs_set_rc_igop(p->refs, p->cfg.rc.gop);
|
||||
|
||||
sem_init(&p->enc_reset, 0, 0);
|
||||
sem_init(&p->cmd_start, 0, 0);
|
||||
|
@@ -591,6 +591,12 @@ MPP_RET mt_test_res_init(MpiEncMtCtxInfo *info)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = p->mpi->control(p->ctx, MPP_ENC_GET_CFG, p->cfg);
|
||||
if (ret) {
|
||||
mpp_err_f("get enc cfg failed ret %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = test_mt_cfg_setup(info);
|
||||
if (ret) {
|
||||
mpp_err_f("test mpp setup failed ret %d\n", ret);
|
||||
|
@@ -917,6 +917,12 @@ void *enc_test(void *arg)
|
||||
goto MPP_TEST_OUT;
|
||||
}
|
||||
|
||||
ret = p->mpi->control(p->ctx, MPP_ENC_GET_CFG, p->cfg);
|
||||
if (ret) {
|
||||
mpp_err_f("get enc cfg failed ret %d\n", ret);
|
||||
goto MPP_TEST_OUT;
|
||||
}
|
||||
|
||||
ret = test_mpp_enc_cfg_setup(info);
|
||||
if (ret) {
|
||||
mpp_err_f("test mpp setup failed ret %d\n", ret);
|
||||
|
Reference in New Issue
Block a user