[test]: Fix not enough buffer on YUV444 jpeg decode

When decoding YUV444 jpeg image the buffer size should be larger.
Also we add user specified output format support for jpeg decoding.

Change-Id: If8defbc23162dac111aafee6d96d2726c366b7da
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
Herman Chen
2018-10-12 15:59:56 +08:00
parent ae93472665
commit 203ff537c3

View File

@@ -522,7 +522,7 @@ int mpi_dec_test_decode(MpiDecTestCmd *cmd)
* YUV422 buffer is 2 times of w*h.
* So create larger buffer with 2 times w*h.
*/
ret = mpp_buffer_get(data.frm_grp, &frm_buf, hor_stride * ver_stride * 2);
ret = mpp_buffer_get(data.frm_grp, &frm_buf, hor_stride * ver_stride * 4);
if (ret) {
mpp_err("failed to get buffer for input frame ret %d\n", ret);
goto MPP_TEST_OUT;
@@ -597,6 +597,10 @@ int mpi_dec_test_decode(MpiDecTestCmd *cmd)
decode_simple(&data);
}
} else {
/* NOTE: change output format before jpeg decoding */
if (cmd->format < MPP_FMT_BUTT)
ret = mpi->control(ctx, MPP_DEC_SET_OUTPUT_FORMAT, &cmd->format);
while (!data.eos) {
decode_advanced(&data);
}
@@ -827,6 +831,7 @@ int main(int argc, char **argv)
MpiDecTestCmd* cmd = &cmd_ctx;
memset((void*)cmd, 0, sizeof(*cmd));
cmd->format = MPP_FMT_BUTT;
// parse the cmd option
ret = mpi_dec_test_parse_options(argc, argv, cmd);