Fixed few issues seen in CTS tests

Added support for encoding non-multiple of 16 dimensions
Added support for encoding dimensions smaller than 64x64
Aligned coeff data to 4 byte boundary

Change-Id: I111093950f94698296d8499a2845cfe2db6c557b
This commit is contained in:
Harish Mahendrakar 2015-04-28 19:07:40 +05:30
parent fab9a811d2
commit c72323e723
10 changed files with 94 additions and 98 deletions

View file

@ -48,7 +48,7 @@
#define ALIGN16(x) ((((x) + 15) >> 4) << 4)
#define ALIGN8(x) ((((x) + 7) >> 3) << 3)
#define ALIGN4(x) ((((x) + 3) >> 2) << 2)
#define ALIGN2(x) ((((x) + 1) >> 1) << 1)
/**
******************************************************************************

View file

@ -958,28 +958,9 @@ WORD32 ih264d_parse_sps(dec_struct_t *ps_dec, dec_bit_stream_t *ps_bitstrm)
return ret;
}
/*
* Code Add to check for display width.
* This has to be at the end of the SPS parsing, so everything gets
* parsed and the error will not affect decoding.
* */
if((0 != ps_dec->u4_app_disp_width)
&& (ps_dec->u4_app_disp_width < ps_dec->u2_pic_wd))
{
ps_dec->u4_app_disp_width = ps_dec->u2_pic_wd;
return ERROR_DISP_WIDTH_RESET_TO_PIC_WIDTH;
}
ps_dec->u2_pic_wd = u2_pic_wd;
ps_dec->u2_pic_ht = u2_pic_ht;
/* Added temporarily to give pic height and width as display height */
/* and width in case some cropping errors occur` */
/*ps_dec->u2_disp_height = ps_dec->u2_pic_ht;
ps_dec->u2_disp_width = ps_dec->u2_pic_wd;*/
/* Determining the Width and Height of Frame from that of Picture */
ps_dec->u2_frm_wd_y = u2_frm_wd_y;

View file

@ -83,7 +83,6 @@ ih264e_fmt_conv_420p_to_420sp_a9q:
sub r7, r7, r5 @// Source increment
sub r8, r8, r5 @// Destination increment
vpush {d8-d15}
yuv420sp_uv_row_loop_y:
mov r6, r5
@ -134,7 +133,7 @@ yuv420sp_uv_chroma:
mov r5, r5, lsr #1
mov r4, r4, lsr #1
ldr r3, [sp, #40] @// Load pu1_dest_uv from stack
vpush {d8-d15}
yuv420sp_uv_row_loop_uv:
mov r6, r5
@ -171,7 +170,6 @@ yuv420sp_uv_row_loop_end_uv:
subs r4, r4, #1
bgt yuv420sp_uv_row_loop_uv
@//POP THE REGISTERS
vpop {d8-d15}
ldmfd sp!, {r4-r12, pc}
@ -276,8 +274,6 @@ ih264e_fmt_conv_422i_to_420sp_a9q:
add r4, r12, r4 @// u2_offset1 = u2_offset1 + u4_stride_y
add r5, r14, r5, lsl #1 @// u2_offset_yuv422i = u2_offset_yuv422i + u4_stride_yuv422i
vpush {d8-d15}
@// Register Assignment
@// pu1_y - r0
@// pu1_y_nxt_row - r6
@ -322,7 +318,6 @@ yuv420_to_yuv422i_width_loop:
add r8, r8, r5 @// pu2_yuv422i_nxt_row = pu2_yuv422i_nxt_row + u2_offset_yuv422i
bgt yuv420_to_yuv422i_hight_loop
vpop {d8-d15}
ldmfd sp!, {r4-r12, pc} @// Restore the register which are used

View file

@ -59,6 +59,7 @@
#include "iv2.h"
#include "ive2.h"
#include "ih264_debug.h"
#include "ih264_macros.h"
#include "ih264_defs.h"
#include "ih264e_defs.h"
#include "ih264e_error.h"

View file

@ -43,20 +43,20 @@
/*****************************************************************************/
#define PARSE_COEFF_DATA_BLOCK_4x4(pv_mb_coeff_data, ps_mb_coeff_data, u4_nnz, u4_sig_coeff_map, pi2_res_block) \
{\
ps_mb_coeff_data = pv_mb_coeff_data; \
u4_nnz = ps_mb_coeff_data->i4_sig_map_nnz & 0xff; \
if (u4_nnz)\
{\
ps_mb_coeff_data = pv_mb_coeff_data; \
u4_nnz = ps_mb_coeff_data->i4_sig_map_nnz & 0xff; \
if (u4_nnz)\
{\
u4_sig_coeff_map = ps_mb_coeff_data->i4_sig_map_nnz >> 16; \
pi2_res_block = ps_mb_coeff_data->ai2_residue; \
pv_mb_coeff_data = ps_mb_coeff_data->ai2_residue + u4_nnz; \
}\
else\
{\
pv_mb_coeff_data = ps_mb_coeff_data->ai2_residue;\
}\
}
u4_sig_coeff_map = ps_mb_coeff_data->i4_sig_map_nnz >> 16; \
pi2_res_block = ps_mb_coeff_data->ai2_residue; \
pv_mb_coeff_data = ps_mb_coeff_data->ai2_residue + ALIGN2(u4_nnz); \
}\
else\
{\
pv_mb_coeff_data = ps_mb_coeff_data->ai2_residue;\
}\
}
/*****************************************************************************/

View file

@ -58,6 +58,7 @@
#include "ih264_platform_macros.h"
#include "iv2.h"
#include "ive2.h"
#include "ih264_macros.h"
#include "ih264_defs.h"
#include "ih264e_defs.h"
#include "ih264_trans_data.h"
@ -843,7 +844,7 @@ void ih264e_pack_l_mb_i16(WORD16 *pi2_res_mb,
}
/* write significant coeff map */
ps_mb_coeff_data->i4_sig_map_nnz |= (u4_s_map << 16);
(*pv_mb_coeff_data) = ps_mb_coeff_data->ai2_residue + u4_nnz_cnt;
(*pv_mb_coeff_data) = ps_mb_coeff_data->ai2_residue + ALIGN2(u4_nnz_cnt);
u4_cntrl = 0x00008000;// Set DC bit in ctrl code
}
@ -896,7 +897,7 @@ void ih264e_pack_l_mb_i16(WORD16 *pi2_res_mb,
}
/* write significant coeff map */
ps_mb_coeff_data->i4_sig_map_nnz |= (u4_s_map << 16);
(*pv_mb_coeff_data) = ps_mb_coeff_data->ai2_residue + u4_nnz_cnt;
(*pv_mb_coeff_data) = ps_mb_coeff_data->ai2_residue + ALIGN2(u4_nnz_cnt);
*u1_cbp_l = 15;
u4_cntrl |= (1 << (31 - u1_scan_order[b4]));
@ -1059,7 +1060,7 @@ void ih264e_pack_l_mb(WORD16 *pi2_res_mb,
/* write significant coeff map */
ps_mb_coeff_data->i4_sig_map_nnz |= (u4_s_map << 16);
(*pv_mb_coeff_data) = ps_mb_coeff_data->ai2_residue + u4_nnz_cnt;
(*pv_mb_coeff_data) = ps_mb_coeff_data->ai2_residue + ALIGN2(u4_nnz_cnt);
/* cbp */
*u1_cbp_l |= (1 << b8);
@ -1283,7 +1284,7 @@ void ih264e_pack_c_mb(WORD16 *pi2_res_mb,
}
/* write significant coeff map U/V */
ps_mb_coeff_data->i4_sig_map_nnz |= (u4_s_map << 16);
(*pv_mb_coeff_data) = ps_mb_coeff_data->ai2_residue + u4_nnz_cnt;
(*pv_mb_coeff_data) = ps_mb_coeff_data->ai2_residue + ALIGN2(u4_nnz_cnt);
*u1_cbp_c = 1;
(*pu4_cntrl) |= (1 << cntrl_pos);
@ -1388,7 +1389,7 @@ void ih264e_pack_c_mb(WORD16 *pi2_res_mb,
/* write significant coeff map U/V */
ps_mb_coeff_data->i4_sig_map_nnz |= (u4_s_map << 16);
(*pv_mb_coeff_data) = ps_mb_coeff_data->ai2_residue + u4_nnz_cnt;
(*pv_mb_coeff_data) = ps_mb_coeff_data->ai2_residue + ALIGN2(u4_nnz_cnt);
u1_cbp_ac = 2;
(*pu4_cntrl) |= 1 << cntrl_pos;
@ -1804,7 +1805,7 @@ UWORD8 ih264e_code_luma_intra_macroblock_4x4(process_ctxt_t *ps_proc)
ps_mb_coeff_data->i4_sig_map_nnz |= (u4_s_map << 16);
/* update ptr to coeff data */
(*pv_mb_coeff_data) = ps_mb_coeff_data->ai2_residue + u4_nnz_cnt;
(*pv_mb_coeff_data) = ps_mb_coeff_data->ai2_residue + ALIGN2(u4_nnz_cnt);
/* cbp */
u1_cbp_l |= (1 << b8);
@ -1950,7 +1951,7 @@ UWORD8 ih264e_code_luma_intra_macroblock_4x4_rdopt_on(process_ctxt_t *ps_proc)
ps_mb_coeff_data->i4_sig_map_nnz |= (u4_s_map << 16);
/* update ptr to coeff data */
(*pv_mb_coeff_data) = ps_mb_coeff_data->ai2_residue + u4_nnz_cnt;
(*pv_mb_coeff_data) = ps_mb_coeff_data->ai2_residue + ALIGN2(u4_nnz_cnt);
/* cbp */
u1_cbp_l |= (1 << b8);

View file

@ -778,13 +778,6 @@ WORD32 ih264e_update_proc_ctxt(process_ctxt_t *ps_proc)
/* sub mb modes */
UWORD8 *pu1_top_mb_intra_modes = ps_proc->pu1_top_mb_intra_modes + (i4_mb_x << 4);
// /* zero mv */
// mv_t zero_mv = {0, 0};
/* Pad the MB to support non standard sizes */
UWORD32 u4_pad_right_sz = ps_codec->s_cfg.u4_wd - ps_codec->s_cfg.u4_disp_wd;
UWORD32 u4_pad_bottom_sz = ps_codec->s_cfg.u4_ht - ps_codec->s_cfg.u4_disp_ht;
/*************************************************************/
/* During MV prediction, when top right mb is not available, */
/* top left mb info. is used for prediction. Hence the curr */
@ -946,28 +939,6 @@ WORD32 ih264e_update_proc_ctxt(process_ctxt_t *ps_proc)
ps_proc->pu1_rec_buf_chroma += MB_SIZE;
ps_proc->pu1_ref_buf_chroma += MB_SIZE;
/* pad right edge */
if (u4_pad_right_sz && (ps_proc->i4_mb_x == i4_wd_mbs - 1))
{
ih264_pad_right_luma(
ps_proc->pu1_src_buf_luma + MB_SIZE - u4_pad_right_sz,
ps_proc->i4_src_strd, MB_SIZE, u4_pad_right_sz);
ih264_pad_right_chroma(
ps_proc->pu1_src_buf_chroma + MB_SIZE - u4_pad_right_sz,
ps_proc->i4_src_strd, BLK8x8SIZE, u4_pad_right_sz);
}
/* pad bottom edge */
if (u4_pad_bottom_sz && (ps_proc->i4_mb_y == i4_ht_mbs - 1) &&
ps_proc->i4_mb_x != 0)
{
ih264_pad_bottom(ps_proc->pu1_src_buf_luma + (MB_SIZE - u4_pad_bottom_sz) * ps_proc->i4_src_strd,
ps_proc->i4_src_strd, MB_SIZE, u4_pad_bottom_sz);
ih264_pad_bottom(ps_proc->pu1_src_buf_chroma + (MB_SIZE - u4_pad_bottom_sz) * ps_proc->i4_src_strd / 2,
ps_proc->i4_src_strd, MB_SIZE, (u4_pad_bottom_sz / 2));
}
/* Reset cost, distortion params */
ps_proc->i4_mb_cost = INT_MAX;
@ -1051,7 +1022,10 @@ IH264E_ERROR_T ih264e_init_proc_ctxt(process_ctxt_t *ps_proc)
UWORD8 *pu1_y_buf_base, *pu1_u_buf_base, *pu1_v_buf_base;
/* Pad the MB to support non standard sizes */
UWORD32 u4_pad_right_sz = ps_codec->s_cfg.u4_wd - ps_codec->s_cfg.u4_disp_wd;
UWORD32 u4_pad_bottom_sz = ps_codec->s_cfg.u4_ht - ps_codec->s_cfg.u4_disp_ht;
UWORD16 u2_num_rows = MB_SIZE;
WORD32 convert_uv_only;
/********************************************************************/
/* BEGIN INIT */
@ -1064,14 +1038,27 @@ IH264E_ERROR_T ih264e_init_proc_ctxt(process_ctxt_t *ps_proc)
ps_proc->i4_nmb_ntrpy = (ps_proc->i4_wd_mbs > MAX_NMB) ? MAX_NMB : ps_proc->i4_wd_mbs;
ps_proc->u4_nmb_me = (ps_proc->i4_wd_mbs > MAX_NMB)? MAX_NMB : ps_proc->i4_wd_mbs;
convert_uv_only = 1;
if (u4_pad_bottom_sz && (ps_proc->i4_mb_y == ps_proc->i4_ht_mbs - 1))
{
u2_num_rows = (UWORD16) MB_SIZE - u4_pad_bottom_sz;
ps_proc->pu1_src_buf_luma_base = ps_codec->pu1_y_csc_buf_base;
ps_proc->pu1_src_buf_luma = ps_proc->pu1_src_buf_luma_base + (i4_mb_x * MB_SIZE) + ps_codec->s_cfg.u4_max_wd * (i4_mb_y * MB_SIZE);
convert_uv_only = 0;
}
else
ps_proc->pu1_src_buf_luma = ps_proc->pu1_src_buf_luma_base + (i4_mb_x * MB_SIZE) + i4_src_strd * (i4_mb_y * MB_SIZE);
/* init buffer pointers */
ps_proc->pu1_src_buf_luma = ps_proc->pu1_src_buf_luma_base + (i4_mb_x * MB_SIZE) + i4_src_strd * (i4_mb_y * MB_SIZE);
ps_proc->pu1_src_buf_chroma = ps_proc->pu1_src_buf_chroma_base + (i4_mb_x * MB_SIZE) + i4_src_strd * (i4_mb_y * BLK8x8SIZE);
ps_proc->pu1_src_buf_chroma = ps_proc->pu1_src_buf_chroma_base + (i4_mb_x * MB_SIZE) + ps_codec->s_cfg.u4_max_wd * (i4_mb_y * BLK8x8SIZE);
ps_proc->pu1_rec_buf_luma = ps_proc->pu1_rec_buf_luma_base + (i4_mb_x * MB_SIZE) + i4_rec_strd * (i4_mb_y * MB_SIZE);
ps_proc->pu1_rec_buf_chroma = ps_proc->pu1_rec_buf_chroma_base + (i4_mb_x * MB_SIZE) + i4_rec_strd * (i4_mb_y * BLK8x8SIZE);
ps_proc->pu1_ref_buf_luma = ps_proc->pu1_ref_buf_luma_base + (i4_mb_x * MB_SIZE) + i4_rec_strd * (i4_mb_y * MB_SIZE);
ps_proc->pu1_ref_buf_chroma = ps_proc->pu1_ref_buf_chroma_base + (i4_mb_x * MB_SIZE) + i4_rec_strd * (i4_mb_y * BLK8x8SIZE);
/*
* Do color space conversion
* NOTE : We assume there that the number of MB's to process will not span multiple rows
@ -1095,12 +1082,13 @@ IH264E_ERROR_T ih264e_init_proc_ctxt(process_ctxt_t *ps_proc)
ps_codec->pf_ih264e_conv_420p_to_420sp(
pu1_y_buf_base, pu1_u_buf_base, pu1_v_buf_base,
ps_proc->pu1_src_buf_luma,
ps_proc->pu1_src_buf_chroma, MB_SIZE,
ps_proc->i4_wd_mbs * MB_SIZE,
ps_proc->pu1_src_buf_chroma, u2_num_rows,
ps_codec->s_cfg.u4_disp_wd,
ps_proc->s_inp_buf.s_raw_buf.au4_strd[0],
ps_proc->s_inp_buf.s_raw_buf.au4_strd[1],
ps_proc->s_inp_buf.s_raw_buf.au4_strd[2],
ps_proc->i4_src_strd, ps_proc->i4_src_strd, 1);
ps_proc->i4_src_strd, ps_proc->i4_src_strd,
convert_uv_only);
break;
case IV_YUV_422ILE :
@ -1111,7 +1099,7 @@ IH264E_ERROR_T ih264e_init_proc_ctxt(process_ctxt_t *ps_proc)
ps_proc->pu1_src_buf_luma,
ps_proc->pu1_src_buf_chroma,
ps_proc->pu1_src_buf_chroma + 1, pu1_y_buf_base,
ps_proc->i4_wd_mbs * MB_SIZE, MB_SIZE,
ps_codec->s_cfg.u4_disp_wd, u2_num_rows,
ps_proc->i4_src_strd, ps_proc->i4_src_strd,
ps_proc->i4_src_strd,
ps_proc->s_inp_buf.s_raw_buf.au4_strd[0] >> 1);
@ -1121,16 +1109,36 @@ IH264E_ERROR_T ih264e_init_proc_ctxt(process_ctxt_t *ps_proc)
break;
}
if (u4_pad_right_sz && (ps_proc->i4_mb_x == 0) &&
(ps_proc->i4_src_strd > (WORD32)ps_codec->s_cfg.u4_disp_wd) )
{
UWORD32 u4_pad_wd, u4_pad_ht;
u4_pad_wd = (UWORD32)(ps_proc->i4_src_strd - ps_codec->s_cfg.u4_disp_wd);
u4_pad_wd = MIN(u4_pad_right_sz, u4_pad_wd);
u4_pad_ht = MB_SIZE;
if(ps_proc->i4_mb_y == ps_proc->i4_ht_mbs - 1)
u4_pad_ht = MIN(MB_SIZE, (MB_SIZE - u4_pad_bottom_sz));
ih264_pad_right_luma(
ps_proc->pu1_src_buf_luma + ps_codec->s_cfg.u4_disp_wd,
ps_proc->i4_src_strd, u4_pad_ht, u4_pad_wd);
ih264_pad_right_chroma(
ps_proc->pu1_src_buf_chroma + ps_codec->s_cfg.u4_disp_wd,
ps_proc->i4_src_strd, u4_pad_ht / 2, u4_pad_wd);
}
/* pad bottom edge */
if (u4_pad_bottom_sz && (ps_proc->i4_mb_y == ps_proc->i4_ht_mbs - 1) && ps_proc->i4_mb_x == 0)
{
ih264_pad_bottom(ps_proc->pu1_src_buf_luma + (MB_SIZE - u4_pad_bottom_sz) * ps_proc->i4_src_strd,
ps_proc->i4_src_strd, MB_SIZE, u4_pad_bottom_sz);
ps_proc->i4_src_strd, ps_proc->i4_src_strd, u4_pad_bottom_sz);
ih264_pad_bottom(ps_proc->pu1_src_buf_chroma + (MB_SIZE - u4_pad_bottom_sz) * ps_proc->i4_src_strd / 2,
ps_proc->i4_src_strd, MB_SIZE, (u4_pad_bottom_sz / 2));
ps_proc->i4_src_strd, ps_proc->i4_src_strd, (u4_pad_bottom_sz / 2));
}
/* packed mb coeff data */
ps_proc->pv_mb_coeff_data = ((UWORD8 *)ps_proc->pv_pic_mb_coeff_data) + i4_mb_y * ps_codec->u4_size_coeff_data;
@ -1266,7 +1274,7 @@ IH264E_ERROR_T ih264e_pad_recon_buffer(process_ctxt_t *ps_proc,
/* padding left chroma */
ps_codec->pf_pad_left_chroma(pu1_curr_pic_chroma, i4_rec_strd, i4_pad_ht >> 1, PAD_LEFT);
}
else if (i4_mb_x == ps_proc->i4_wd_mbs - 1)
if (i4_mb_x == ps_proc->i4_wd_mbs - 1)
{
/* padding right luma */
ps_codec->pf_pad_right_luma(pu1_curr_pic_luma + MB_SIZE, i4_rec_strd, i4_pad_ht, PAD_RIGHT);
@ -1300,7 +1308,7 @@ IH264E_ERROR_T ih264e_pad_recon_buffer(process_ctxt_t *ps_proc,
wd += PAD_LEFT;
}
else if (i4_mb_x == ps_proc->i4_wd_mbs - 1)
if (i4_mb_x == ps_proc->i4_wd_mbs - 1)
{
wd += PAD_RIGHT;
}
@ -1415,7 +1423,7 @@ IH264E_ERROR_T ih264e_dblk_pad_hpel_processing_n_mbs(process_ctxt_t *ps_proc,
}
}
if (i4_mb_y > 0)
if ((i4_mb_y > 0) || (i4_mb_y == (ps_proc->i4_ht_mbs - 1)))
{
/* if number of mb's to be processed are less than 'N', go back.
* exception to the above clause is end of row */
@ -1442,10 +1450,10 @@ IH264E_ERROR_T ih264e_dblk_pad_hpel_processing_n_mbs(process_ctxt_t *ps_proc,
}
/* performing deblocking for required number of MBs */
if (ps_proc->u4_disable_deblock_level != 1)
if ((i4_mb_y > 0) && (ps_proc->u4_disable_deblock_level != 1))
{
/* Top or Top right MBs not deblocked */
if (u4_deblk_prev_row != 1)
if ((u4_deblk_prev_row != 1) && (i4_mb_y > 0))
{
return IH264E_SUCCESS;
}
@ -1483,7 +1491,7 @@ IH264E_ERROR_T ih264e_dblk_pad_hpel_processing_n_mbs(process_ctxt_t *ps_proc,
}
}
else
else if(i4_mb_y > 0)
{
ps_deblk->i4_mb_x += i4_n_mb_process_count;
@ -1606,6 +1614,19 @@ IH264E_ERROR_T ih264e_dblk_pad_hpel_processing_n_mbs(process_ctxt_t *ps_proc,
}
/* In case height is less than 2 MBs pad top */
if (ps_proc->i4_ht_mbs <= 2)
{
UWORD8 *pu1_pad_top_src;
/* padding top luma */
pu1_pad_top_src = ps_proc->pu1_rec_buf_luma_base - PAD_LEFT;
ps_codec->pf_pad_top(pu1_pad_top_src, i4_rec_strd, i4_rec_strd, PAD_TOP);
/* padding top chroma */
pu1_pad_top_src = ps_proc->pu1_rec_buf_chroma_base - PAD_LEFT;
ps_codec->pf_pad_top(pu1_pad_top_src, i4_rec_strd, i4_rec_strd, (PAD_TOP >> 1));
}
/* padding bottom luma */
pu1_pad_bottom_src = ps_proc->pu1_rec_buf_luma_base + ps_proc->i4_ht_mbs * MB_SIZE * i4_rec_strd - PAD_LEFT;
ps_codec->pf_pad_bottom(pu1_pad_bottom_src, i4_rec_strd, i4_rec_strd, PAD_BOT);

View file

@ -127,7 +127,6 @@
#define DEFAULT_EPROFILE IV_PROFILE_BASE
#define DEFAULT_SLICE_MODE 0
#define DEFAULT_SLICE_PARAM 256
#define DEFAULT_ARCH ARCH_ARM_A9Q
#define STRLENGTH 500

View file

@ -243,10 +243,8 @@ void allocate_input(app_ctxt_t *ps_app_ctxt)
num_bufs = MIN(DEFAULT_MAX_INPUT_BUFS, num_bufs);
/* Size of buffer */
luma_size = ps_get_buf_info_op->s_ive_op.au4_min_in_buf_size[0];
chroma_size = ps_get_buf_info_op->s_ive_op.au4_min_in_buf_size[1]+
ps_get_buf_info_op->s_ive_op.au4_min_in_buf_size[2];
luma_size = ps_app_ctxt->u4_wd * ps_app_ctxt->u4_ht;
chroma_size = luma_size >> 1;
pic_size = luma_size + chroma_size;
num_mbs = ALIGN16(ps_app_ctxt->u4_max_wd) * ALIGN16(ps_app_ctxt->u4_max_ht);

View file

@ -905,7 +905,7 @@ void init_default_params(app_ctxt_t *ps_app_ctxt)
ps_app_ctxt->u4_pics_cnt = 0;
ps_app_ctxt->e_inp_color_fmt = DEFAULT_INP_COLOR_FMT;
ps_app_ctxt->e_recon_color_fmt = DEFAULT_RECON_COLOR_FMT;
ps_app_ctxt->e_arch = DEFAULT_ARCH;
ps_app_ctxt->e_arch = ARCH_ARM_A9Q;
ps_app_ctxt->e_soc = SOC_GENERIC;
ps_app_ctxt->header_generated = 0;
ps_app_ctxt->pv_codec_obj = NULL;
@ -1604,9 +1604,9 @@ void synchronous_encode(iv_obj_t *ps_enc, app_ctxt_t *ps_app_ctxt)
{
/* init buffers */
ps_inp_raw_buf->apv_bufs[0] = pu1_buf;
pu1_buf += (ps_app_ctxt->u4_strd) * ALIGN16(ps_app_ctxt->u4_ht);
pu1_buf += (ps_app_ctxt->u4_wd) * ps_app_ctxt->u4_ht;
ps_inp_raw_buf->apv_bufs[1] = pu1_buf;
pu1_buf += (ps_app_ctxt->u4_strd >> 1) * (ALIGN16(ps_app_ctxt->u4_ht) >> 1);
pu1_buf += (ps_app_ctxt->u4_wd >> 1) * (ps_app_ctxt->u4_ht >> 1);
ps_inp_raw_buf->apv_bufs[2] = pu1_buf;
ps_inp_raw_buf->au4_wd[0] = ps_app_ctxt->u4_wd;
@ -2346,7 +2346,7 @@ int main(int argc, char *argv[])
/*****************************************************************************/
/* Video control Set Frame dimensions */
/*****************************************************************************/
s_app_ctxt.u4_strd = ALIGN16(s_app_ctxt.u4_wd);
s_app_ctxt.u4_strd = s_app_ctxt.u4_wd;
set_dimensions(&s_app_ctxt, 0, 0);
/*****************************************************************************/