Decoder: add support to use ih264d instead of ivd structures
Bug: 175759733 Test: avcdec -c dec.cfg Change-Id: I410bb2213cb375c5eabcb3e23499d6ad43cf1c96
This commit is contained in:
parent
c0aae295ed
commit
2205f2da33
2 changed files with 197 additions and 168 deletions
|
|
@ -1972,18 +1972,22 @@ WORD32 ih264d_video_decode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op)
|
||||||
WORD32 ret = 0,api_ret_value = IV_SUCCESS;
|
WORD32 ret = 0,api_ret_value = IV_SUCCESS;
|
||||||
WORD32 header_data_left = 0,frame_data_left = 0;
|
WORD32 header_data_left = 0,frame_data_left = 0;
|
||||||
UWORD8 *pu1_bitstrm_buf;
|
UWORD8 *pu1_bitstrm_buf;
|
||||||
|
ih264d_video_decode_ip_t *ps_h264d_dec_ip;
|
||||||
|
ih264d_video_decode_op_t *ps_h264d_dec_op;
|
||||||
ivd_video_decode_ip_t *ps_dec_ip;
|
ivd_video_decode_ip_t *ps_dec_ip;
|
||||||
ivd_video_decode_op_t *ps_dec_op;
|
ivd_video_decode_op_t *ps_dec_op;
|
||||||
|
|
||||||
ithread_set_name((void*)"Parse_thread");
|
ithread_set_name((void*)"Parse_thread");
|
||||||
|
|
||||||
ps_dec_ip = (ivd_video_decode_ip_t *)pv_api_ip;
|
ps_h264d_dec_ip = (ih264d_video_decode_ip_t *)pv_api_ip;
|
||||||
ps_dec_op = (ivd_video_decode_op_t *)pv_api_op;
|
ps_h264d_dec_op = (ih264d_video_decode_op_t *)pv_api_op;
|
||||||
|
ps_dec_ip = &ps_h264d_dec_ip->s_ivd_video_decode_ip_t;
|
||||||
|
ps_dec_op = &ps_h264d_dec_op->s_ivd_video_decode_op_t;
|
||||||
|
|
||||||
{
|
{
|
||||||
UWORD32 u4_size;
|
UWORD32 u4_size;
|
||||||
u4_size = ps_dec_op->u4_size;
|
u4_size = ps_dec_op->u4_size;
|
||||||
memset(ps_dec_op, 0, sizeof(ivd_video_decode_op_t));
|
memset(ps_h264d_dec_op, 0, sizeof(ih264d_video_decode_op_t));
|
||||||
ps_dec_op->u4_size = u4_size;
|
ps_dec_op->u4_size = u4_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3236,10 +3240,14 @@ WORD32 ih264d_set_params(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op)
|
||||||
dec_struct_t * ps_dec;
|
dec_struct_t * ps_dec;
|
||||||
WORD32 ret = IV_SUCCESS;
|
WORD32 ret = IV_SUCCESS;
|
||||||
|
|
||||||
|
ih264d_ctl_set_config_ip_t *ps_h264d_ctl_ip =
|
||||||
|
(ih264d_ctl_set_config_ip_t *)pv_api_ip;
|
||||||
|
ih264d_ctl_set_config_op_t *ps_h264d_ctl_op =
|
||||||
|
(ih264d_ctl_set_config_op_t *)pv_api_op;;
|
||||||
ivd_ctl_set_config_ip_t *ps_ctl_ip =
|
ivd_ctl_set_config_ip_t *ps_ctl_ip =
|
||||||
(ivd_ctl_set_config_ip_t *)pv_api_ip;
|
&ps_h264d_ctl_ip->s_ivd_ctl_set_config_ip_t;
|
||||||
ivd_ctl_set_config_op_t *ps_ctl_op =
|
ivd_ctl_set_config_op_t *ps_ctl_op =
|
||||||
(ivd_ctl_set_config_op_t *)pv_api_op;
|
&ps_h264d_ctl_op->s_ivd_ctl_set_config_op_t;
|
||||||
|
|
||||||
ps_dec = (dec_struct_t *)(dec_hdl->pv_codec_handle);
|
ps_dec = (dec_struct_t *)(dec_hdl->pv_codec_handle);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -553,22 +553,24 @@ IV_API_CALL_STATUS_T set_degrade(void *codec_obj, UWORD32 type, WORD32 pics)
|
||||||
IV_API_CALL_STATUS_T enable_skipb_frames(void *codec_obj,
|
IV_API_CALL_STATUS_T enable_skipb_frames(void *codec_obj,
|
||||||
vid_dec_ctx_t *ps_app_ctx)
|
vid_dec_ctx_t *ps_app_ctx)
|
||||||
{
|
{
|
||||||
ivd_ctl_set_config_ip_t s_ctl_ip;
|
ih264d_ctl_set_config_ip_t s_h264d_ctl_ip = {};
|
||||||
ivd_ctl_set_config_op_t s_ctl_op;
|
ih264d_ctl_set_config_op_t s_h264d_ctl_op = {};
|
||||||
|
ivd_ctl_set_config_ip_t *ps_ctl_ip = &s_h264d_ctl_ip.s_ivd_ctl_set_config_ip_t;
|
||||||
|
ivd_ctl_set_config_op_t *ps_ctl_op = &s_h264d_ctl_op.s_ivd_ctl_set_config_op_t;
|
||||||
IV_API_CALL_STATUS_T e_dec_status;
|
IV_API_CALL_STATUS_T e_dec_status;
|
||||||
|
|
||||||
s_ctl_ip.u4_disp_wd = ps_app_ctx->u4_strd;
|
ps_ctl_ip->u4_disp_wd = ps_app_ctx->u4_strd;
|
||||||
s_ctl_ip.e_frm_skip_mode = IVD_SKIP_B;
|
ps_ctl_ip->e_frm_skip_mode = IVD_SKIP_B;
|
||||||
|
|
||||||
s_ctl_ip.e_frm_out_mode = IVD_DISPLAY_FRAME_OUT;
|
ps_ctl_ip->e_frm_out_mode = IVD_DISPLAY_FRAME_OUT;
|
||||||
s_ctl_ip.e_vid_dec_mode = IVD_DECODE_FRAME;
|
ps_ctl_ip->e_vid_dec_mode = IVD_DECODE_FRAME;
|
||||||
s_ctl_ip.e_cmd = IVD_CMD_VIDEO_CTL;
|
ps_ctl_ip->e_cmd = IVD_CMD_VIDEO_CTL;
|
||||||
s_ctl_ip.e_sub_cmd = IVD_CMD_CTL_SETPARAMS;
|
ps_ctl_ip->e_sub_cmd = IVD_CMD_CTL_SETPARAMS;
|
||||||
s_ctl_ip.u4_size = sizeof(ivd_ctl_set_config_ip_t);
|
ps_ctl_ip->u4_size = sizeof(ih264d_ctl_set_config_ip_t);
|
||||||
s_ctl_op.u4_size = sizeof(ivd_ctl_set_config_op_t);
|
ps_ctl_op->u4_size = sizeof(ih264d_ctl_set_config_op_t);
|
||||||
|
|
||||||
e_dec_status = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_ctl_ip,
|
e_dec_status = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_h264d_ctl_ip,
|
||||||
(void *)&s_ctl_op);
|
(void *)&s_h264d_ctl_op);
|
||||||
|
|
||||||
if(IV_SUCCESS != e_dec_status)
|
if(IV_SUCCESS != e_dec_status)
|
||||||
{
|
{
|
||||||
|
|
@ -603,22 +605,24 @@ IV_API_CALL_STATUS_T enable_skipb_frames(void *codec_obj,
|
||||||
IV_API_CALL_STATUS_T disable_skipb_frames(void *codec_obj,
|
IV_API_CALL_STATUS_T disable_skipb_frames(void *codec_obj,
|
||||||
vid_dec_ctx_t *ps_app_ctx)
|
vid_dec_ctx_t *ps_app_ctx)
|
||||||
{
|
{
|
||||||
ivd_ctl_set_config_ip_t s_ctl_ip;
|
ih264d_ctl_set_config_ip_t s_h264d_ctl_ip = {};
|
||||||
ivd_ctl_set_config_op_t s_ctl_op;
|
ih264d_ctl_set_config_op_t s_h264d_ctl_op = {};
|
||||||
|
ivd_ctl_set_config_ip_t *ps_ctl_ip = &s_h264d_ctl_ip.s_ivd_ctl_set_config_ip_t;
|
||||||
|
ivd_ctl_set_config_op_t *ps_ctl_op = &s_h264d_ctl_op.s_ivd_ctl_set_config_op_t;
|
||||||
IV_API_CALL_STATUS_T e_dec_status;
|
IV_API_CALL_STATUS_T e_dec_status;
|
||||||
|
|
||||||
s_ctl_ip.u4_disp_wd = ps_app_ctx->u4_strd;
|
ps_ctl_ip->u4_disp_wd = ps_app_ctx->u4_strd;
|
||||||
s_ctl_ip.e_frm_skip_mode = IVD_SKIP_NONE;
|
ps_ctl_ip->e_frm_skip_mode = IVD_SKIP_NONE;
|
||||||
|
|
||||||
s_ctl_ip.e_frm_out_mode = IVD_DISPLAY_FRAME_OUT;
|
ps_ctl_ip->e_frm_out_mode = IVD_DISPLAY_FRAME_OUT;
|
||||||
s_ctl_ip.e_vid_dec_mode = IVD_DECODE_FRAME;
|
ps_ctl_ip->e_vid_dec_mode = IVD_DECODE_FRAME;
|
||||||
s_ctl_ip.e_cmd = IVD_CMD_VIDEO_CTL;
|
ps_ctl_ip->e_cmd = IVD_CMD_VIDEO_CTL;
|
||||||
s_ctl_ip.e_sub_cmd = IVD_CMD_CTL_SETPARAMS;
|
ps_ctl_ip->e_sub_cmd = IVD_CMD_CTL_SETPARAMS;
|
||||||
s_ctl_ip.u4_size = sizeof(ivd_ctl_set_config_ip_t);
|
ps_ctl_ip->u4_size = sizeof(ih264d_ctl_set_config_ip_t);
|
||||||
s_ctl_op.u4_size = sizeof(ivd_ctl_set_config_op_t);
|
ps_ctl_op->u4_size = sizeof(ih264d_ctl_set_config_op_t);
|
||||||
|
|
||||||
e_dec_status = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_ctl_ip,
|
e_dec_status = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_h264d_ctl_ip,
|
||||||
(void *)&s_ctl_op);
|
(void *)&s_h264d_ctl_op);
|
||||||
|
|
||||||
if(IV_SUCCESS != e_dec_status)
|
if(IV_SUCCESS != e_dec_status)
|
||||||
{
|
{
|
||||||
|
|
@ -654,22 +658,24 @@ IV_API_CALL_STATUS_T disable_skipb_frames(void *codec_obj,
|
||||||
IV_API_CALL_STATUS_T enable_skippb_frames(void *codec_obj,
|
IV_API_CALL_STATUS_T enable_skippb_frames(void *codec_obj,
|
||||||
vid_dec_ctx_t *ps_app_ctx)
|
vid_dec_ctx_t *ps_app_ctx)
|
||||||
{
|
{
|
||||||
ivd_ctl_set_config_ip_t s_ctl_ip;
|
ih264d_ctl_set_config_ip_t s_h264d_ctl_ip = {};
|
||||||
ivd_ctl_set_config_op_t s_ctl_op;
|
ih264d_ctl_set_config_op_t s_h264d_ctl_op = {};
|
||||||
|
ivd_ctl_set_config_ip_t *ps_ctl_ip = &s_h264d_ctl_ip.s_ivd_ctl_set_config_ip_t;
|
||||||
|
ivd_ctl_set_config_op_t *ps_ctl_op = &s_h264d_ctl_op.s_ivd_ctl_set_config_op_t;
|
||||||
IV_API_CALL_STATUS_T e_dec_status;
|
IV_API_CALL_STATUS_T e_dec_status;
|
||||||
|
|
||||||
s_ctl_ip.u4_disp_wd = ps_app_ctx->u4_strd;
|
ps_ctl_ip->u4_disp_wd = ps_app_ctx->u4_strd;
|
||||||
s_ctl_ip.e_frm_skip_mode = IVD_SKIP_PB;
|
ps_ctl_ip->e_frm_skip_mode = IVD_SKIP_PB;
|
||||||
|
|
||||||
s_ctl_ip.e_frm_out_mode = IVD_DISPLAY_FRAME_OUT;
|
ps_ctl_ip->e_frm_out_mode = IVD_DISPLAY_FRAME_OUT;
|
||||||
s_ctl_ip.e_vid_dec_mode = IVD_DECODE_FRAME;
|
ps_ctl_ip->e_vid_dec_mode = IVD_DECODE_FRAME;
|
||||||
s_ctl_ip.e_cmd = IVD_CMD_VIDEO_CTL;
|
ps_ctl_ip->e_cmd = IVD_CMD_VIDEO_CTL;
|
||||||
s_ctl_ip.e_sub_cmd = IVD_CMD_CTL_SETPARAMS;
|
ps_ctl_ip->e_sub_cmd = IVD_CMD_CTL_SETPARAMS;
|
||||||
s_ctl_ip.u4_size = sizeof(ivd_ctl_set_config_ip_t);
|
ps_ctl_ip->u4_size = sizeof(ih264d_ctl_set_config_ip_t);
|
||||||
s_ctl_op.u4_size = sizeof(ivd_ctl_set_config_op_t);
|
ps_ctl_op->u4_size = sizeof(ih264d_ctl_set_config_op_t);
|
||||||
|
|
||||||
e_dec_status = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_ctl_ip,
|
e_dec_status = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_h264d_ctl_ip,
|
||||||
(void *)&s_ctl_op);
|
(void *)&s_h264d_ctl_op);
|
||||||
if(IV_SUCCESS != e_dec_status)
|
if(IV_SUCCESS != e_dec_status)
|
||||||
{
|
{
|
||||||
printf("Error in Enable SkipPB frames\n");
|
printf("Error in Enable SkipPB frames\n");
|
||||||
|
|
@ -704,22 +710,24 @@ IV_API_CALL_STATUS_T enable_skippb_frames(void *codec_obj,
|
||||||
IV_API_CALL_STATUS_T disable_skippb_frames(void *codec_obj,
|
IV_API_CALL_STATUS_T disable_skippb_frames(void *codec_obj,
|
||||||
vid_dec_ctx_t *ps_app_ctx)
|
vid_dec_ctx_t *ps_app_ctx)
|
||||||
{
|
{
|
||||||
ivd_ctl_set_config_ip_t s_ctl_ip;
|
ih264d_ctl_set_config_ip_t s_h264d_ctl_ip = {};
|
||||||
ivd_ctl_set_config_op_t s_ctl_op;
|
ih264d_ctl_set_config_op_t s_h264d_ctl_op = {};
|
||||||
|
ivd_ctl_set_config_ip_t *ps_ctl_ip = &s_h264d_ctl_ip.s_ivd_ctl_set_config_ip_t;
|
||||||
|
ivd_ctl_set_config_op_t *ps_ctl_op = &s_h264d_ctl_op.s_ivd_ctl_set_config_op_t;
|
||||||
IV_API_CALL_STATUS_T e_dec_status;
|
IV_API_CALL_STATUS_T e_dec_status;
|
||||||
|
|
||||||
s_ctl_ip.u4_disp_wd = ps_app_ctx->u4_strd;
|
ps_ctl_ip->u4_disp_wd = ps_app_ctx->u4_strd;
|
||||||
s_ctl_ip.e_frm_skip_mode = IVD_SKIP_NONE;
|
ps_ctl_ip->e_frm_skip_mode = IVD_SKIP_NONE;
|
||||||
|
|
||||||
s_ctl_ip.e_frm_out_mode = IVD_DISPLAY_FRAME_OUT;
|
ps_ctl_ip->e_frm_out_mode = IVD_DISPLAY_FRAME_OUT;
|
||||||
s_ctl_ip.e_vid_dec_mode = IVD_DECODE_FRAME;
|
ps_ctl_ip->e_vid_dec_mode = IVD_DECODE_FRAME;
|
||||||
s_ctl_ip.e_cmd = IVD_CMD_VIDEO_CTL;
|
ps_ctl_ip->e_cmd = IVD_CMD_VIDEO_CTL;
|
||||||
s_ctl_ip.e_sub_cmd = IVD_CMD_CTL_SETPARAMS;
|
ps_ctl_ip->e_sub_cmd = IVD_CMD_CTL_SETPARAMS;
|
||||||
s_ctl_ip.u4_size = sizeof(ivd_ctl_set_config_ip_t);
|
ps_ctl_ip->u4_size = sizeof(ih264d_ctl_set_config_ip_t);
|
||||||
s_ctl_op.u4_size = sizeof(ivd_ctl_set_config_op_t);
|
ps_ctl_op->u4_size = sizeof(ih264d_ctl_set_config_op_t);
|
||||||
|
|
||||||
e_dec_status = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_ctl_ip,
|
e_dec_status = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_h264d_ctl_ip,
|
||||||
(void *)&s_ctl_op);
|
(void *)&s_h264d_ctl_op);
|
||||||
if(IV_SUCCESS != e_dec_status)
|
if(IV_SUCCESS != e_dec_status)
|
||||||
{
|
{
|
||||||
printf("Error in Disable SkipPB frames\n");
|
printf("Error in Disable SkipPB frames\n");
|
||||||
|
|
@ -1657,39 +1665,41 @@ void flush_output(iv_obj_t *codec_obj,
|
||||||
|
|
||||||
if(IV_SUCCESS == ret)
|
if(IV_SUCCESS == ret)
|
||||||
{
|
{
|
||||||
ivd_video_decode_ip_t s_video_decode_ip;
|
ih264d_video_decode_ip_t s_h264d_decode_ip = {};
|
||||||
ivd_video_decode_op_t s_video_decode_op;
|
ih264d_video_decode_op_t s_h264d_decode_op = {};
|
||||||
|
ivd_video_decode_ip_t *ps_video_decode_ip = &s_h264d_decode_ip.s_ivd_video_decode_ip_t;
|
||||||
|
ivd_video_decode_op_t *ps_video_decode_op = &s_h264d_decode_op.s_ivd_video_decode_op_t;
|
||||||
|
|
||||||
s_video_decode_ip.e_cmd = IVD_CMD_VIDEO_DECODE;
|
ps_video_decode_ip->e_cmd = IVD_CMD_VIDEO_DECODE;
|
||||||
s_video_decode_ip.u4_ts = u4_ip_frm_ts;
|
ps_video_decode_ip->u4_ts = u4_ip_frm_ts;
|
||||||
s_video_decode_ip.pv_stream_buffer = pu1_bs_buf;
|
ps_video_decode_ip->pv_stream_buffer = pu1_bs_buf;
|
||||||
s_video_decode_ip.u4_num_Bytes = u4_bytes_remaining;
|
ps_video_decode_ip->u4_num_Bytes = u4_bytes_remaining;
|
||||||
s_video_decode_ip.u4_size = sizeof(ivd_video_decode_ip_t);
|
ps_video_decode_ip->u4_size = sizeof(ih264d_video_decode_ip_t);
|
||||||
s_video_decode_ip.s_out_buffer.u4_min_out_buf_size[0] =
|
ps_video_decode_ip->s_out_buffer.u4_min_out_buf_size[0] =
|
||||||
ps_out_buf->u4_min_out_buf_size[0];
|
ps_out_buf->u4_min_out_buf_size[0];
|
||||||
s_video_decode_ip.s_out_buffer.u4_min_out_buf_size[1] =
|
ps_video_decode_ip->s_out_buffer.u4_min_out_buf_size[1] =
|
||||||
ps_out_buf->u4_min_out_buf_size[1];
|
ps_out_buf->u4_min_out_buf_size[1];
|
||||||
s_video_decode_ip.s_out_buffer.u4_min_out_buf_size[2] =
|
ps_video_decode_ip->s_out_buffer.u4_min_out_buf_size[2] =
|
||||||
ps_out_buf->u4_min_out_buf_size[2];
|
ps_out_buf->u4_min_out_buf_size[2];
|
||||||
|
|
||||||
s_video_decode_ip.s_out_buffer.pu1_bufs[0] =
|
ps_video_decode_ip->s_out_buffer.pu1_bufs[0] =
|
||||||
ps_out_buf->pu1_bufs[0];
|
ps_out_buf->pu1_bufs[0];
|
||||||
s_video_decode_ip.s_out_buffer.pu1_bufs[1] =
|
ps_video_decode_ip->s_out_buffer.pu1_bufs[1] =
|
||||||
ps_out_buf->pu1_bufs[1];
|
ps_out_buf->pu1_bufs[1];
|
||||||
s_video_decode_ip.s_out_buffer.pu1_bufs[2] =
|
ps_video_decode_ip->s_out_buffer.pu1_bufs[2] =
|
||||||
ps_out_buf->pu1_bufs[2];
|
ps_out_buf->pu1_bufs[2];
|
||||||
s_video_decode_ip.s_out_buffer.u4_num_bufs =
|
ps_video_decode_ip->s_out_buffer.u4_num_bufs =
|
||||||
ps_out_buf->u4_num_bufs;
|
ps_out_buf->u4_num_bufs;
|
||||||
|
|
||||||
s_video_decode_op.u4_size = sizeof(ivd_video_decode_op_t);
|
ps_video_decode_op->u4_size = sizeof(ih264d_video_decode_op_t);
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* API Call: Video Decode */
|
/* API Call: Video Decode */
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
ret = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_video_decode_ip,
|
ret = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_h264d_decode_ip,
|
||||||
(void *)&s_video_decode_op);
|
(void *)&s_h264d_decode_op);
|
||||||
|
|
||||||
if(1 == s_video_decode_op.u4_output_present)
|
if(1 == ps_video_decode_op->u4_output_present)
|
||||||
{
|
{
|
||||||
CHAR cur_fname[1000];
|
CHAR cur_fname[1000];
|
||||||
CHAR *extn = NULL;
|
CHAR *extn = NULL;
|
||||||
|
|
@ -1701,7 +1711,7 @@ void flush_output(iv_obj_t *codec_obj,
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
/* Get SEI MDCV parameters */
|
/* Get SEI MDCV parameters */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
if(1 == s_video_decode_op.s_sei_decode_op.u1_sei_mdcv_params_present_flag)
|
if(1 == ps_video_decode_op->s_sei_decode_op.u1_sei_mdcv_params_present_flag)
|
||||||
{
|
{
|
||||||
ih264d_ctl_get_sei_mdcv_params_ip_t s_ctl_get_sei_mdcv_params_ip;
|
ih264d_ctl_get_sei_mdcv_params_ip_t s_ctl_get_sei_mdcv_params_ip;
|
||||||
ih264d_ctl_get_sei_mdcv_params_op_t s_ctl_get_sei_mdcv_params_op;
|
ih264d_ctl_get_sei_mdcv_params_op_t s_ctl_get_sei_mdcv_params_op;
|
||||||
|
|
@ -1732,7 +1742,7 @@ void flush_output(iv_obj_t *codec_obj,
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
/* Get SEI CLL parameters */
|
/* Get SEI CLL parameters */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
if(1 == s_video_decode_op.s_sei_decode_op.u1_sei_cll_params_present_flag)
|
if(1 == ps_video_decode_op->s_sei_decode_op.u1_sei_cll_params_present_flag)
|
||||||
{
|
{
|
||||||
ih264d_ctl_get_sei_cll_params_ip_t s_ctl_get_sei_cll_params_ip;
|
ih264d_ctl_get_sei_cll_params_ip_t s_ctl_get_sei_cll_params_ip;
|
||||||
ih264d_ctl_get_sei_cll_params_op_t s_ctl_get_sei_cll_params_op;
|
ih264d_ctl_get_sei_cll_params_op_t s_ctl_get_sei_cll_params_op;
|
||||||
|
|
@ -1763,7 +1773,7 @@ void flush_output(iv_obj_t *codec_obj,
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
/* Get SEI AVE parameters */
|
/* Get SEI AVE parameters */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
if(1 == s_video_decode_op.s_sei_decode_op.u1_sei_ave_params_present_flag)
|
if(1 == ps_video_decode_op->s_sei_decode_op.u1_sei_ave_params_present_flag)
|
||||||
{
|
{
|
||||||
ih264d_ctl_get_sei_ave_params_ip_t s_ctl_get_sei_ave_params_ip;
|
ih264d_ctl_get_sei_ave_params_ip_t s_ctl_get_sei_ave_params_ip;
|
||||||
ih264d_ctl_get_sei_ave_params_op_t s_ctl_get_sei_ave_params_op;
|
ih264d_ctl_get_sei_ave_params_op_t s_ctl_get_sei_ave_params_op;
|
||||||
|
|
@ -1794,7 +1804,7 @@ void flush_output(iv_obj_t *codec_obj,
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
/* Get SEI CCV parameters */
|
/* Get SEI CCV parameters */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
if(1 == s_video_decode_op.s_sei_decode_op.u1_sei_ccv_params_present_flag)
|
if(1 == ps_video_decode_op->s_sei_decode_op.u1_sei_ccv_params_present_flag)
|
||||||
{
|
{
|
||||||
ih264d_ctl_get_sei_ccv_params_ip_t s_ctl_get_sei_ccv_params_ip;
|
ih264d_ctl_get_sei_ccv_params_ip_t s_ctl_get_sei_ccv_params_ip;
|
||||||
ih264d_ctl_get_sei_ccv_params_op_t s_ctl_get_sei_ccv_params_op;
|
ih264d_ctl_get_sei_ccv_params_op_t s_ctl_get_sei_ccv_params_op;
|
||||||
|
|
@ -1845,8 +1855,8 @@ void flush_output(iv_obj_t *codec_obj,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dump_output(ps_app_ctx, &(s_video_decode_op.s_disp_frm_buf),
|
dump_output(ps_app_ctx, &(ps_video_decode_op->s_disp_frm_buf),
|
||||||
s_video_decode_op.u4_disp_buf_id, ps_op_file,
|
ps_video_decode_op->u4_disp_buf_id, ps_op_file,
|
||||||
ps_op_chksum_file,
|
ps_op_chksum_file,
|
||||||
*pu4_op_frm_ts, ps_app_ctx->u4_file_save_flag,
|
*pu4_op_frm_ts, ps_app_ctx->u4_file_save_flag,
|
||||||
ps_app_ctx->u4_chksum_save_flag);
|
ps_app_ctx->u4_chksum_save_flag);
|
||||||
|
|
@ -2275,24 +2285,26 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
/* set stride */
|
/* set stride */
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
{
|
{
|
||||||
ivd_ctl_set_config_ip_t s_ctl_ip;
|
ih264d_ctl_set_config_ip_t s_h264d_ctl_ip = {};
|
||||||
ivd_ctl_set_config_op_t s_ctl_op;
|
ih264d_ctl_set_config_op_t s_h264d_ctl_op = {};
|
||||||
|
ivd_ctl_set_config_ip_t *ps_ctl_ip = &s_h264d_ctl_ip.s_ivd_ctl_set_config_ip_t;
|
||||||
|
ivd_ctl_set_config_op_t *ps_ctl_op = &s_h264d_ctl_op.s_ivd_ctl_set_config_op_t;
|
||||||
|
|
||||||
|
|
||||||
s_ctl_ip.u4_disp_wd = STRIDE;
|
ps_ctl_ip->u4_disp_wd = STRIDE;
|
||||||
if(1 == s_app_ctx.display)
|
if(1 == s_app_ctx.display)
|
||||||
s_ctl_ip.u4_disp_wd = s_app_ctx.get_stride();
|
ps_ctl_ip->u4_disp_wd = s_app_ctx.get_stride();
|
||||||
|
|
||||||
s_ctl_ip.e_frm_skip_mode = IVD_SKIP_NONE;
|
ps_ctl_ip->e_frm_skip_mode = IVD_SKIP_NONE;
|
||||||
s_ctl_ip.e_frm_out_mode = IVD_DISPLAY_FRAME_OUT;
|
ps_ctl_ip->e_frm_out_mode = IVD_DISPLAY_FRAME_OUT;
|
||||||
s_ctl_ip.e_vid_dec_mode = IVD_DECODE_HEADER;
|
ps_ctl_ip->e_vid_dec_mode = IVD_DECODE_HEADER;
|
||||||
s_ctl_ip.e_cmd = IVD_CMD_VIDEO_CTL;
|
ps_ctl_ip->e_cmd = IVD_CMD_VIDEO_CTL;
|
||||||
s_ctl_ip.e_sub_cmd = IVD_CMD_CTL_SETPARAMS;
|
ps_ctl_ip->e_sub_cmd = IVD_CMD_CTL_SETPARAMS;
|
||||||
s_ctl_ip.u4_size = sizeof(ivd_ctl_set_config_ip_t);
|
ps_ctl_ip->u4_size = sizeof(ih264d_ctl_set_config_ip_t);
|
||||||
s_ctl_op.u4_size = sizeof(ivd_ctl_set_config_op_t);
|
ps_ctl_op->u4_size = sizeof(ih264d_ctl_set_config_op_t);
|
||||||
|
|
||||||
ret = ivd_api_function((iv_obj_t*)codec_obj, (void *)&s_ctl_ip,
|
ret = ivd_api_function((iv_obj_t*)codec_obj, (void *)&s_h264d_ctl_ip,
|
||||||
(void *)&s_ctl_op);
|
(void *)&s_h264d_ctl_op);
|
||||||
if(ret != IV_SUCCESS)
|
if(ret != IV_SUCCESS)
|
||||||
{
|
{
|
||||||
sprintf(ac_error_str,
|
sprintf(ac_error_str,
|
||||||
|
|
@ -2366,30 +2378,34 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
/* Decode header to get width and height and buffer sizes */
|
/* Decode header to get width and height and buffer sizes */
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
{
|
{
|
||||||
ivd_video_decode_ip_t s_video_decode_ip;
|
ih264d_video_decode_ip_t s_h264d_decode_ip = {};
|
||||||
ivd_video_decode_op_t s_video_decode_op;
|
ih264d_video_decode_op_t s_h264d_decode_op = {};
|
||||||
|
ivd_video_decode_ip_t *ps_video_decode_ip = &s_h264d_decode_ip.s_ivd_video_decode_ip_t;
|
||||||
|
ivd_video_decode_op_t *ps_video_decode_op = &s_h264d_decode_op.s_ivd_video_decode_op_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
ivd_ctl_set_config_ip_t s_ctl_ip;
|
ih264d_ctl_set_config_ip_t s_h264d_ctl_ip = {};
|
||||||
ivd_ctl_set_config_op_t s_ctl_op;
|
ih264d_ctl_set_config_op_t s_h264d_ctl_op = {};
|
||||||
|
ivd_ctl_set_config_ip_t *ps_ctl_ip = &s_h264d_ctl_ip.s_ivd_ctl_set_config_ip_t;
|
||||||
|
ivd_ctl_set_config_op_t *ps_ctl_op = &s_h264d_ctl_op.s_ivd_ctl_set_config_op_t;
|
||||||
|
|
||||||
|
|
||||||
s_ctl_ip.u4_disp_wd = STRIDE;
|
ps_ctl_ip->u4_disp_wd = STRIDE;
|
||||||
if(1 == s_app_ctx.display)
|
if(1 == s_app_ctx.display)
|
||||||
s_ctl_ip.u4_disp_wd = s_app_ctx.get_stride();
|
ps_ctl_ip->u4_disp_wd = s_app_ctx.get_stride();
|
||||||
|
|
||||||
s_ctl_ip.e_frm_skip_mode = IVD_SKIP_NONE;
|
ps_ctl_ip->e_frm_skip_mode = IVD_SKIP_NONE;
|
||||||
s_ctl_ip.e_frm_out_mode = IVD_DISPLAY_FRAME_OUT;
|
ps_ctl_ip->e_frm_out_mode = IVD_DISPLAY_FRAME_OUT;
|
||||||
s_ctl_ip.e_vid_dec_mode = IVD_DECODE_HEADER;
|
ps_ctl_ip->e_vid_dec_mode = IVD_DECODE_HEADER;
|
||||||
s_ctl_ip.e_cmd = IVD_CMD_VIDEO_CTL;
|
ps_ctl_ip->e_cmd = IVD_CMD_VIDEO_CTL;
|
||||||
s_ctl_ip.e_sub_cmd = IVD_CMD_CTL_SETPARAMS;
|
ps_ctl_ip->e_sub_cmd = IVD_CMD_CTL_SETPARAMS;
|
||||||
s_ctl_ip.u4_size = sizeof(ivd_ctl_set_config_ip_t);
|
ps_ctl_ip->u4_size = sizeof(ih264d_ctl_set_config_ip_t);
|
||||||
s_ctl_op.u4_size = sizeof(ivd_ctl_set_config_op_t);
|
ps_ctl_op->u4_size = sizeof(ih264d_ctl_set_config_op_t);
|
||||||
|
|
||||||
ret = ivd_api_function((iv_obj_t*)codec_obj, (void *)&s_ctl_ip,
|
ret = ivd_api_function((iv_obj_t*)codec_obj, (void *)&s_h264d_ctl_ip,
|
||||||
(void *)&s_ctl_op);
|
(void *)&s_h264d_ctl_op);
|
||||||
if(ret != IV_SUCCESS)
|
if(ret != IV_SUCCESS)
|
||||||
{
|
{
|
||||||
sprintf(ac_error_str,
|
sprintf(ac_error_str,
|
||||||
|
|
@ -2436,36 +2452,36 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
codec_exit(ac_error_str);
|
codec_exit(ac_error_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
s_video_decode_ip.e_cmd = IVD_CMD_VIDEO_DECODE;
|
ps_video_decode_ip->e_cmd = IVD_CMD_VIDEO_DECODE;
|
||||||
s_video_decode_ip.u4_ts = u4_ip_frm_ts;
|
ps_video_decode_ip->u4_ts = u4_ip_frm_ts;
|
||||||
s_video_decode_ip.pv_stream_buffer = pu1_bs_buf;
|
ps_video_decode_ip->pv_stream_buffer = pu1_bs_buf;
|
||||||
s_video_decode_ip.u4_num_Bytes = u4_bytes_remaining;
|
ps_video_decode_ip->u4_num_Bytes = u4_bytes_remaining;
|
||||||
s_video_decode_ip.u4_size = sizeof(ivd_video_decode_ip_t);
|
ps_video_decode_ip->u4_size = sizeof(ih264d_video_decode_ip_t);
|
||||||
s_video_decode_op.u4_size = sizeof(ivd_video_decode_op_t);
|
ps_video_decode_op->u4_size = sizeof(ih264d_video_decode_op_t);
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* API Call: Header Decode */
|
/* API Call: Header Decode */
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
ret = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_video_decode_ip,
|
ret = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_h264d_decode_ip,
|
||||||
(void *)&s_video_decode_op);
|
(void *)&s_h264d_decode_op);
|
||||||
|
|
||||||
if(ret != IV_SUCCESS)
|
if(ret != IV_SUCCESS)
|
||||||
{
|
{
|
||||||
printf("Error in header decode 0x%x\n", s_video_decode_op.u4_error_code);
|
printf("Error in header decode 0x%x\n", ps_video_decode_op->u4_error_code);
|
||||||
// codec_exit(ac_error_str);
|
// codec_exit(ac_error_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
u4_num_bytes_dec = s_video_decode_op.u4_num_bytes_consumed;
|
u4_num_bytes_dec = ps_video_decode_op->u4_num_bytes_consumed;
|
||||||
#ifndef PROFILE_ENABLE
|
#ifndef PROFILE_ENABLE
|
||||||
printf("%d\n",s_video_decode_op.u4_num_bytes_consumed);
|
printf("%d\n",ps_video_decode_op->u4_num_bytes_consumed);
|
||||||
#endif
|
#endif
|
||||||
file_pos += u4_num_bytes_dec;
|
file_pos += u4_num_bytes_dec;
|
||||||
total_bytes_comsumed += u4_num_bytes_dec;
|
total_bytes_comsumed += u4_num_bytes_dec;
|
||||||
}while(ret != IV_SUCCESS);
|
}while(ret != IV_SUCCESS);
|
||||||
|
|
||||||
/* copy pic_wd and pic_ht to initialize buffers */
|
/* copy pic_wd and pic_ht to initialize buffers */
|
||||||
s_app_ctx.u4_pic_wd = s_video_decode_op.u4_pic_wd;
|
s_app_ctx.u4_pic_wd = ps_video_decode_op->u4_pic_wd;
|
||||||
s_app_ctx.u4_pic_ht = s_video_decode_op.u4_pic_ht;
|
s_app_ctx.u4_pic_ht = ps_video_decode_op->u4_pic_ht;
|
||||||
|
|
||||||
free(pu1_bs_buf);
|
free(pu1_bs_buf);
|
||||||
|
|
||||||
|
|
@ -2767,23 +2783,26 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
{
|
{
|
||||||
|
|
||||||
ivd_ctl_set_config_ip_t s_ctl_ip;
|
ih264d_ctl_set_config_ip_t s_h264d_ctl_ip = {};
|
||||||
ivd_ctl_set_config_op_t s_ctl_op;
|
ih264d_ctl_set_config_op_t s_h264d_ctl_op = {};
|
||||||
|
ivd_ctl_set_config_ip_t *ps_ctl_ip = &s_h264d_ctl_ip.s_ivd_ctl_set_config_ip_t;
|
||||||
|
ivd_ctl_set_config_op_t *ps_ctl_op = &s_h264d_ctl_op.s_ivd_ctl_set_config_op_t;
|
||||||
|
|
||||||
s_ctl_ip.u4_disp_wd = STRIDE;
|
ps_ctl_ip->u4_disp_wd = STRIDE;
|
||||||
if(1 == s_app_ctx.display)
|
if(1 == s_app_ctx.display)
|
||||||
s_ctl_ip.u4_disp_wd = s_app_ctx.get_stride();
|
ps_ctl_ip->u4_disp_wd = s_app_ctx.get_stride();
|
||||||
s_ctl_ip.e_frm_skip_mode = IVD_SKIP_NONE;
|
ps_ctl_ip->e_frm_skip_mode = IVD_SKIP_NONE;
|
||||||
|
|
||||||
s_ctl_ip.e_frm_out_mode = IVD_DISPLAY_FRAME_OUT;
|
ps_ctl_ip->e_frm_out_mode = IVD_DISPLAY_FRAME_OUT;
|
||||||
s_ctl_ip.e_vid_dec_mode = IVD_DECODE_FRAME;
|
ps_ctl_ip->e_vid_dec_mode = IVD_DECODE_FRAME;
|
||||||
s_ctl_ip.e_cmd = IVD_CMD_VIDEO_CTL;
|
ps_ctl_ip->e_cmd = IVD_CMD_VIDEO_CTL;
|
||||||
s_ctl_ip.e_sub_cmd = IVD_CMD_CTL_SETPARAMS;
|
ps_ctl_ip->e_sub_cmd = IVD_CMD_CTL_SETPARAMS;
|
||||||
s_ctl_ip.u4_size = sizeof(ivd_ctl_set_config_ip_t);
|
ps_ctl_ip->u4_size = sizeof(ih264d_ctl_set_config_ip_t);
|
||||||
|
|
||||||
s_ctl_op.u4_size = sizeof(ivd_ctl_set_config_op_t);
|
ps_ctl_op->u4_size = sizeof(ih264d_ctl_set_config_op_t);
|
||||||
|
|
||||||
ret = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_ctl_ip, (void *)&s_ctl_op);
|
ret = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_h264d_ctl_ip,
|
||||||
|
(void *)&s_h264d_ctl_op);
|
||||||
|
|
||||||
if(IV_SUCCESS != ret)
|
if(IV_SUCCESS != ret)
|
||||||
{
|
{
|
||||||
|
|
@ -2947,8 +2966,10 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
ivd_video_decode_ip_t s_video_decode_ip;
|
ih264d_video_decode_ip_t s_h264d_decode_ip = {};
|
||||||
ivd_video_decode_op_t s_video_decode_op;
|
ih264d_video_decode_op_t s_h264d_decode_op = {};
|
||||||
|
ivd_video_decode_ip_t *ps_video_decode_ip = &s_h264d_decode_ip.s_ivd_video_decode_ip_t;
|
||||||
|
ivd_video_decode_op_t *ps_video_decode_op = &s_h264d_decode_op.s_ivd_video_decode_op_t;
|
||||||
#ifdef PROFILE_ENABLE
|
#ifdef PROFILE_ENABLE
|
||||||
UWORD32 s_elapsed_time;
|
UWORD32 s_elapsed_time;
|
||||||
TIMER s_start_timer;
|
TIMER s_start_timer;
|
||||||
|
|
@ -2956,27 +2977,27 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
s_video_decode_ip.e_cmd = IVD_CMD_VIDEO_DECODE;
|
ps_video_decode_ip->e_cmd = IVD_CMD_VIDEO_DECODE;
|
||||||
s_video_decode_ip.u4_ts = u4_ip_frm_ts;
|
ps_video_decode_ip->u4_ts = u4_ip_frm_ts;
|
||||||
s_video_decode_ip.pv_stream_buffer = pu1_bs_buf;
|
ps_video_decode_ip->pv_stream_buffer = pu1_bs_buf;
|
||||||
s_video_decode_ip.u4_num_Bytes = u4_bytes_remaining;
|
ps_video_decode_ip->u4_num_Bytes = u4_bytes_remaining;
|
||||||
s_video_decode_ip.u4_size = sizeof(ivd_video_decode_ip_t);
|
ps_video_decode_ip->u4_size = sizeof(ih264d_video_decode_ip_t);
|
||||||
s_video_decode_ip.s_out_buffer.u4_min_out_buf_size[0] =
|
ps_video_decode_ip->s_out_buffer.u4_min_out_buf_size[0] =
|
||||||
ps_out_buf->u4_min_out_buf_size[0];
|
ps_out_buf->u4_min_out_buf_size[0];
|
||||||
s_video_decode_ip.s_out_buffer.u4_min_out_buf_size[1] =
|
ps_video_decode_ip->s_out_buffer.u4_min_out_buf_size[1] =
|
||||||
ps_out_buf->u4_min_out_buf_size[1];
|
ps_out_buf->u4_min_out_buf_size[1];
|
||||||
s_video_decode_ip.s_out_buffer.u4_min_out_buf_size[2] =
|
ps_video_decode_ip->s_out_buffer.u4_min_out_buf_size[2] =
|
||||||
ps_out_buf->u4_min_out_buf_size[2];
|
ps_out_buf->u4_min_out_buf_size[2];
|
||||||
|
|
||||||
s_video_decode_ip.s_out_buffer.pu1_bufs[0] =
|
ps_video_decode_ip->s_out_buffer.pu1_bufs[0] =
|
||||||
ps_out_buf->pu1_bufs[0];
|
ps_out_buf->pu1_bufs[0];
|
||||||
s_video_decode_ip.s_out_buffer.pu1_bufs[1] =
|
ps_video_decode_ip->s_out_buffer.pu1_bufs[1] =
|
||||||
ps_out_buf->pu1_bufs[1];
|
ps_out_buf->pu1_bufs[1];
|
||||||
s_video_decode_ip.s_out_buffer.pu1_bufs[2] =
|
ps_video_decode_ip->s_out_buffer.pu1_bufs[2] =
|
||||||
ps_out_buf->pu1_bufs[2];
|
ps_out_buf->pu1_bufs[2];
|
||||||
s_video_decode_ip.s_out_buffer.u4_num_bufs =
|
ps_video_decode_ip->s_out_buffer.u4_num_bufs =
|
||||||
ps_out_buf->u4_num_bufs;
|
ps_out_buf->u4_num_bufs;
|
||||||
s_video_decode_op.u4_size = sizeof(ivd_video_decode_op_t);
|
ps_video_decode_op->u4_size = sizeof(ih264d_video_decode_op_t);
|
||||||
|
|
||||||
/* Get display buffer pointers */
|
/* Get display buffer pointers */
|
||||||
if(1 == s_app_ctx.display)
|
if(1 == s_app_ctx.display)
|
||||||
|
|
@ -2989,9 +3010,9 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
break;
|
break;
|
||||||
|
|
||||||
s_app_ctx.set_disp_buffers(s_app_ctx.pv_disp_ctx, wr_idx,
|
s_app_ctx.set_disp_buffers(s_app_ctx.pv_disp_ctx, wr_idx,
|
||||||
&s_video_decode_ip.s_out_buffer.pu1_bufs[0],
|
&ps_video_decode_ip->s_out_buffer.pu1_bufs[0],
|
||||||
&s_video_decode_ip.s_out_buffer.pu1_bufs[1],
|
&ps_video_decode_ip->s_out_buffer.pu1_bufs[1],
|
||||||
&s_video_decode_ip.s_out_buffer.pu1_bufs[2]);
|
&ps_video_decode_ip->s_out_buffer.pu1_bufs[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
@ -3000,8 +3021,8 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
|
|
||||||
GETTIME(&s_start_timer);
|
GETTIME(&s_start_timer);
|
||||||
|
|
||||||
ret = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_video_decode_ip,
|
ret = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_h264d_decode_ip,
|
||||||
(void *)&s_video_decode_op);
|
(void *)&s_h264d_decode_op);
|
||||||
|
|
||||||
|
|
||||||
GETTIME(&s_end_timer);
|
GETTIME(&s_end_timer);
|
||||||
|
|
@ -3024,12 +3045,12 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
frm_cnt++;
|
frm_cnt++;
|
||||||
|
|
||||||
printf("FrameNum: %4d TimeTaken(microsec): %6d AvgTime: %6d PeakAvgTimeMax: %6d Output: %2d NumBytes: %6d \n",
|
printf("FrameNum: %4d TimeTaken(microsec): %6d AvgTime: %6d PeakAvgTimeMax: %6d Output: %2d NumBytes: %6d \n",
|
||||||
frm_cnt, s_elapsed_time, u4_tot_cycles / frm_cnt, peak_avg_max, s_video_decode_op.u4_output_present, s_video_decode_op.u4_num_bytes_consumed);
|
frm_cnt, s_elapsed_time, u4_tot_cycles / frm_cnt, peak_avg_max, ps_video_decode_op->u4_output_present, ps_video_decode_op->u4_num_bytes_consumed);
|
||||||
|
|
||||||
}
|
}
|
||||||
#ifdef INTEL_CE5300
|
#ifdef INTEL_CE5300
|
||||||
time_consumed += s_elapsed_time;
|
time_consumed += s_elapsed_time;
|
||||||
bytes_consumed += s_video_decode_op.u4_num_bytes_consumed;
|
bytes_consumed += ps_video_decode_op->u4_num_bytes_consumed;
|
||||||
if (!(frm_cnt % (s_app_ctx.fps)))
|
if (!(frm_cnt % (s_app_ctx.fps)))
|
||||||
{
|
{
|
||||||
time_consumed = time_consumed/s_app_ctx.fps;
|
time_consumed = time_consumed/s_app_ctx.fps;
|
||||||
|
|
@ -3041,17 +3062,17 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
printf("%d\n",s_video_decode_op.u4_num_bytes_consumed);
|
printf("%d\n",ps_video_decode_op->u4_num_bytes_consumed);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(ret != IV_SUCCESS)
|
if(ret != IV_SUCCESS)
|
||||||
{
|
{
|
||||||
printf("Error in video Frame decode : ret %x Error %x\n", ret,
|
printf("Error in video Frame decode : ret %x Error %x\n", ret,
|
||||||
s_video_decode_op.u4_error_code);
|
ps_video_decode_op->u4_error_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
if((IV_SUCCESS != ret) &&
|
if((IV_SUCCESS != ret) &&
|
||||||
((s_video_decode_op.u4_error_code & 0xFF) == IVD_RES_CHANGED))
|
((ps_video_decode_op->u4_error_code & 0xFF) == IVD_RES_CHANGED))
|
||||||
{
|
{
|
||||||
ivd_ctl_reset_ip_t s_ctl_ip;
|
ivd_ctl_reset_ip_t s_ctl_ip;
|
||||||
ivd_ctl_reset_op_t s_ctl_op;
|
ivd_ctl_reset_op_t s_ctl_op;
|
||||||
|
|
@ -3129,7 +3150,7 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
/* Get SEI MDCV parameters */
|
/* Get SEI MDCV parameters */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
if(1 == s_video_decode_op.s_sei_decode_op.u1_sei_mdcv_params_present_flag)
|
if(1 == ps_video_decode_op->s_sei_decode_op.u1_sei_mdcv_params_present_flag)
|
||||||
{
|
{
|
||||||
ih264d_ctl_get_sei_mdcv_params_ip_t s_ctl_get_sei_mdcv_params_ip;
|
ih264d_ctl_get_sei_mdcv_params_ip_t s_ctl_get_sei_mdcv_params_ip;
|
||||||
ih264d_ctl_get_sei_mdcv_params_op_t s_ctl_get_sei_mdcv_params_op;
|
ih264d_ctl_get_sei_mdcv_params_op_t s_ctl_get_sei_mdcv_params_op;
|
||||||
|
|
@ -3160,7 +3181,7 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
/* Get SEI CLL parameters */
|
/* Get SEI CLL parameters */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
if(1 == s_video_decode_op.s_sei_decode_op.u1_sei_cll_params_present_flag)
|
if(1 == ps_video_decode_op->s_sei_decode_op.u1_sei_cll_params_present_flag)
|
||||||
{
|
{
|
||||||
|
|
||||||
ih264d_ctl_get_sei_cll_params_ip_t s_ctl_get_sei_cll_params_ip;
|
ih264d_ctl_get_sei_cll_params_ip_t s_ctl_get_sei_cll_params_ip;
|
||||||
|
|
@ -3192,7 +3213,7 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
/* Get SEI AVE parameters */
|
/* Get SEI AVE parameters */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
if(1 == s_video_decode_op.s_sei_decode_op.u1_sei_ave_params_present_flag)
|
if(1 == ps_video_decode_op->s_sei_decode_op.u1_sei_ave_params_present_flag)
|
||||||
{
|
{
|
||||||
ih264d_ctl_get_sei_ave_params_ip_t s_ctl_get_sei_ave_params_ip;
|
ih264d_ctl_get_sei_ave_params_ip_t s_ctl_get_sei_ave_params_ip;
|
||||||
ih264d_ctl_get_sei_ave_params_op_t s_ctl_get_sei_ave_params_op;
|
ih264d_ctl_get_sei_ave_params_op_t s_ctl_get_sei_ave_params_op;
|
||||||
|
|
@ -3223,7 +3244,7 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
/* Get SEI CCV parameters */
|
/* Get SEI CCV parameters */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
if(1 == s_video_decode_op.s_sei_decode_op.u1_sei_ccv_params_present_flag)
|
if(1 == ps_video_decode_op->s_sei_decode_op.u1_sei_ccv_params_present_flag)
|
||||||
{
|
{
|
||||||
ih264d_ctl_get_sei_ccv_params_ip_t s_ctl_get_sei_ccv_params_ip;
|
ih264d_ctl_get_sei_ccv_params_ip_t s_ctl_get_sei_ccv_params_ip;
|
||||||
ih264d_ctl_get_sei_ccv_params_op_t s_ctl_get_sei_ccv_params_op;
|
ih264d_ctl_get_sei_ccv_params_op_t s_ctl_get_sei_ccv_params_op;
|
||||||
|
|
@ -3253,22 +3274,22 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
if((1 == s_app_ctx.display) &&
|
if((1 == s_app_ctx.display) &&
|
||||||
(1 == s_video_decode_op.u4_output_present))
|
(1 == ps_video_decode_op->u4_output_present))
|
||||||
{
|
{
|
||||||
dispq_producer_queue(&s_app_ctx);
|
dispq_producer_queue(&s_app_ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(IV_B_FRAME == s_video_decode_op.e_pic_type)
|
if(IV_B_FRAME == ps_video_decode_op->e_pic_type)
|
||||||
s_app_ctx.b_pic_present |= 1;
|
s_app_ctx.b_pic_present |= 1;
|
||||||
|
|
||||||
u4_num_bytes_dec = s_video_decode_op.u4_num_bytes_consumed;
|
u4_num_bytes_dec = ps_video_decode_op->u4_num_bytes_consumed;
|
||||||
|
|
||||||
file_pos += u4_num_bytes_dec;
|
file_pos += u4_num_bytes_dec;
|
||||||
total_bytes_comsumed += u4_num_bytes_dec;
|
total_bytes_comsumed += u4_num_bytes_dec;
|
||||||
u4_ip_frm_ts++;
|
u4_ip_frm_ts++;
|
||||||
|
|
||||||
|
|
||||||
if(1 == s_video_decode_op.u4_output_present)
|
if(1 == ps_video_decode_op->u4_output_present)
|
||||||
{
|
{
|
||||||
|
|
||||||
CHAR cur_fname[1000];
|
CHAR cur_fname[1000];
|
||||||
|
|
@ -3298,10 +3319,10 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
width = s_video_decode_op.s_disp_frm_buf.u4_y_wd;
|
width = ps_video_decode_op->s_disp_frm_buf.u4_y_wd;
|
||||||
height = s_video_decode_op.s_disp_frm_buf.u4_y_ht;
|
height = ps_video_decode_op->s_disp_frm_buf.u4_y_ht;
|
||||||
dump_output(&s_app_ctx, &(s_video_decode_op.s_disp_frm_buf),
|
dump_output(&s_app_ctx, &(ps_video_decode_op->s_disp_frm_buf),
|
||||||
s_video_decode_op.u4_disp_buf_id, ps_op_file,
|
ps_video_decode_op->u4_disp_buf_id, ps_op_file,
|
||||||
ps_op_chksum_file,
|
ps_op_chksum_file,
|
||||||
u4_op_frm_ts, s_app_ctx.u4_file_save_flag,
|
u4_op_frm_ts, s_app_ctx.u4_file_save_flag,
|
||||||
s_app_ctx.u4_chksum_save_flag);
|
s_app_ctx.u4_chksum_save_flag);
|
||||||
|
|
@ -3313,7 +3334,7 @@ int main(WORD32 argc, CHAR *argv[])
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if((s_video_decode_op.u4_error_code >> IVD_FATALERROR) & 1)
|
if((ps_video_decode_op->u4_error_code >> IVD_FATALERROR) & 1)
|
||||||
{
|
{
|
||||||
printf("Fatal error\n");
|
printf("Fatal error\n");
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue