diff --git a/test/mpi_enc_mt_test.cpp b/test/mpi_enc_mt_test.cpp index 0f333311..23b32be5 100644 --- a/test/mpi_enc_mt_test.cpp +++ b/test/mpi_enc_mt_test.cpp @@ -379,11 +379,11 @@ MPP_RET test_mt_cfg_setup(MpiEncMtCtxInfo *info) case MPP_ENC_RC_MODE_CBR : case MPP_ENC_RC_MODE_VBR : case MPP_ENC_RC_MODE_AVBR : { - mpp_enc_cfg_set_s32(cfg, "rc:qp_init", -1); - mpp_enc_cfg_set_s32(cfg, "rc:qp_max", 51); - mpp_enc_cfg_set_s32(cfg, "rc:qp_min", 10); - mpp_enc_cfg_set_s32(cfg, "rc:qp_max_i", 51); - mpp_enc_cfg_set_s32(cfg, "rc:qp_min_i", 10); + mpp_enc_cfg_set_s32(cfg, "rc:qp_init", cmd->qp_init ? cmd->qp_init : -1); + mpp_enc_cfg_set_s32(cfg, "rc:qp_max", cmd->qp_max ? cmd->qp_max : 51); + mpp_enc_cfg_set_s32(cfg, "rc:qp_min", cmd->qp_min ? cmd->qp_min : 10); + mpp_enc_cfg_set_s32(cfg, "rc:qp_max_i", cmd->qp_max_i ? cmd->qp_max_i : 51); + mpp_enc_cfg_set_s32(cfg, "rc:qp_min_i", cmd->qp_min_i ? cmd->qp_min_i : 10); mpp_enc_cfg_set_s32(cfg, "rc:qp_ip", 2); } break; default : { @@ -393,18 +393,18 @@ MPP_RET test_mt_cfg_setup(MpiEncMtCtxInfo *info) } break; case MPP_VIDEO_CodingVP8 : { /* vp8 only setup base qp range */ - mpp_enc_cfg_set_s32(cfg, "rc:qp_init", 40); - mpp_enc_cfg_set_s32(cfg, "rc:qp_max", 127); - mpp_enc_cfg_set_s32(cfg, "rc:qp_min", 0); - mpp_enc_cfg_set_s32(cfg, "rc:qp_max_i", 127); - mpp_enc_cfg_set_s32(cfg, "rc:qp_min_i", 0); + mpp_enc_cfg_set_s32(cfg, "rc:qp_init", cmd->qp_init ? cmd->qp_init : 40); + mpp_enc_cfg_set_s32(cfg, "rc:qp_max", cmd->qp_max ? cmd->qp_max : 127); + mpp_enc_cfg_set_s32(cfg, "rc:qp_min", cmd->qp_min ? cmd->qp_min : 0); + mpp_enc_cfg_set_s32(cfg, "rc:qp_max_i", cmd->qp_max_i ? cmd->qp_max_i : 127); + mpp_enc_cfg_set_s32(cfg, "rc:qp_min_i", cmd->qp_min_i ? cmd->qp_min_i : 0); mpp_enc_cfg_set_s32(cfg, "rc:qp_ip", 6); } break; case MPP_VIDEO_CodingMJPEG : { /* jpeg use special codec config to control qtable */ - mpp_enc_cfg_set_s32(cfg, "jpeg:q_factor", 80); - mpp_enc_cfg_set_s32(cfg, "jpeg:qf_max", 99); - mpp_enc_cfg_set_s32(cfg, "jpeg:qf_min", 1); + mpp_enc_cfg_set_s32(cfg, "jpeg:q_factor", cmd->qp_init ? cmd->qp_init : 80); + mpp_enc_cfg_set_s32(cfg, "jpeg:qf_max", cmd->qp_max ? cmd->qp_max : 99); + mpp_enc_cfg_set_s32(cfg, "jpeg:qf_min", cmd->qp_min ? cmd->qp_min : 1); } break; default : { } break; diff --git a/test/mpi_enc_test.c b/test/mpi_enc_test.c index c7e5ffb9..a3a2f5ea 100644 --- a/test/mpi_enc_test.c +++ b/test/mpi_enc_test.c @@ -374,11 +374,11 @@ MPP_RET test_mpp_enc_cfg_setup(MpiEncMultiCtxInfo *info) case MPP_ENC_RC_MODE_CBR : case MPP_ENC_RC_MODE_VBR : case MPP_ENC_RC_MODE_AVBR : { - mpp_enc_cfg_set_s32(cfg, "rc:qp_init", -1); - mpp_enc_cfg_set_s32(cfg, "rc:qp_max", 51); - mpp_enc_cfg_set_s32(cfg, "rc:qp_min", 10); - mpp_enc_cfg_set_s32(cfg, "rc:qp_max_i", 51); - mpp_enc_cfg_set_s32(cfg, "rc:qp_min_i", 10); + mpp_enc_cfg_set_s32(cfg, "rc:qp_init", cmd->qp_init ? cmd->qp_init : -1); + mpp_enc_cfg_set_s32(cfg, "rc:qp_max", cmd->qp_max ? cmd->qp_max : 51); + mpp_enc_cfg_set_s32(cfg, "rc:qp_min", cmd->qp_min ? cmd->qp_min : 10); + mpp_enc_cfg_set_s32(cfg, "rc:qp_max_i", cmd->qp_max_i ? cmd->qp_max_i : 51); + mpp_enc_cfg_set_s32(cfg, "rc:qp_min_i", cmd->qp_min_i ? cmd->qp_min_i : 10); mpp_enc_cfg_set_s32(cfg, "rc:qp_ip", 2); } break; default : { @@ -388,18 +388,18 @@ MPP_RET test_mpp_enc_cfg_setup(MpiEncMultiCtxInfo *info) } break; case MPP_VIDEO_CodingVP8 : { /* vp8 only setup base qp range */ - mpp_enc_cfg_set_s32(cfg, "rc:qp_init", 40); - mpp_enc_cfg_set_s32(cfg, "rc:qp_max", 127); - mpp_enc_cfg_set_s32(cfg, "rc:qp_min", 0); - mpp_enc_cfg_set_s32(cfg, "rc:qp_max_i", 127); - mpp_enc_cfg_set_s32(cfg, "rc:qp_min_i", 0); + mpp_enc_cfg_set_s32(cfg, "rc:qp_init", cmd->qp_init ? cmd->qp_init : 40); + mpp_enc_cfg_set_s32(cfg, "rc:qp_max", cmd->qp_max ? cmd->qp_max : 127); + mpp_enc_cfg_set_s32(cfg, "rc:qp_min", cmd->qp_min ? cmd->qp_min : 0); + mpp_enc_cfg_set_s32(cfg, "rc:qp_max_i", cmd->qp_max_i ? cmd->qp_max_i : 127); + mpp_enc_cfg_set_s32(cfg, "rc:qp_min_i", cmd->qp_min_i ? cmd->qp_min_i : 0); mpp_enc_cfg_set_s32(cfg, "rc:qp_ip", 6); } break; case MPP_VIDEO_CodingMJPEG : { /* jpeg use special codec config to control qtable */ - mpp_enc_cfg_set_s32(cfg, "jpeg:q_factor", 80); - mpp_enc_cfg_set_s32(cfg, "jpeg:qf_max", 99); - mpp_enc_cfg_set_s32(cfg, "jpeg:qf_min", 1); + mpp_enc_cfg_set_s32(cfg, "jpeg:q_factor", cmd->qp_init ? cmd->qp_init : 80); + mpp_enc_cfg_set_s32(cfg, "jpeg:qf_max", cmd->qp_max ? cmd->qp_max : 99); + mpp_enc_cfg_set_s32(cfg, "jpeg:qf_min", cmd->qp_min ? cmd->qp_min : 1); } break; default : { } break; diff --git a/utils/mpi_enc_utils.c b/utils/mpi_enc_utils.c index 0bef396f..f030b285 100644 --- a/utils/mpi_enc_utils.c +++ b/utils/mpi_enc_utils.c @@ -354,9 +354,9 @@ RK_S32 mpi_enc_opt_fps(void *ctx, const char *next) } break; default : { mpp_err("invalid in/out frame rate," - " use \"-r numerator:denominator:flex\"" + " use \"-fps numerator:denominator:flex\"" " for set the input to the same fps as the output, such as 50:1:1\n" - " or \"-r numerator:denominator/flex-numerator:denominator:flex\"" + " or \"-fps numerator:denominator:flex/numerator:denominator:flex\"" " for set input and output separately, such as 40:1:1/30:1:0\n"); } break; } @@ -380,7 +380,7 @@ RK_S32 mpi_enc_opt_qc(void *ctx, const char *next) return 1; } - mpp_err("invalid quality control usage -qc qp_init/min/max/min_i/max_i\n"); + mpp_err("invalid quality control usage -qc qp_init:min:max:min_i:max_i\n"); return 0; } @@ -485,10 +485,10 @@ static MppOptInfo enc_opts[] = { {"tsrc", "source type", "input file source coding type", mpi_enc_opt_tsrc}, {"n", "max frame number", "max encoding frame number", mpi_enc_opt_n}, {"g", "gop reference mode", "gop_mode:gop_len:vi_len", mpi_enc_opt_g}, - {"rc", "rate control mode", "set rc_mode", mpi_enc_opt_rc}, - {"bps", "bps target:min:max", "set tareget/min/max bps and rc_mode", mpi_enc_opt_bps}, + {"rc", "rate control mode", "set rc_mode, 0:vbr 1:cbr 2:fixqp 3:avbr", mpi_enc_opt_rc}, + {"bps", "bps target:min:max", "set tareget:min:max bps", mpi_enc_opt_bps}, {"fps", "in/output fps", "set input and output frame rate", mpi_enc_opt_fps}, - {"qc", "quality control", "set qp_init/min/max/min_i/max_i", mpi_enc_opt_qc}, + {"qc", "quality control", "set qp_init:min:max:min_i:max_i", mpi_enc_opt_qc}, {"s", "instance_nb", "number of instances", mpi_enc_opt_s}, {"v", "trace option", "q - quiet f - show fps", mpi_enc_opt_v}, {"l", "loop count", "loop encoding times for each frame", mpi_enc_opt_l},