diff options
author | Marco Nelissen <marcone@google.com> | 2015-06-03 07:26:32 -0700 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2015-06-03 07:27:36 -0700 |
commit | 8ef4c3f6142028732a155cbfc1febd6ef5da72fd (patch) | |
tree | 79da99e029f5c41581f6878f49d025ecfccc32b9 /test | |
parent | 7497191460a9504f8b4f64df169ab633f0b74353 (diff) | |
download | android_external_libavc-8ef4c3f6142028732a155cbfc1febd6ef5da72fd.tar.gz android_external_libavc-8ef4c3f6142028732a155cbfc1febd6ef5da72fd.tar.bz2 android_external_libavc-8ef4c3f6142028732a155cbfc1febd6ef5da72fd.zip |
Multithreading changes and better error resilience
Fixed the following bugs
Issue 21145276
Issue 21144884
Issue 21181133
Issue 21181134
Decoder now returns error if the level in stream is higher than level at init
Change-Id: I8892c62bd98f7854d046510330c05a1e9ca826b2
Diffstat (limited to 'test')
-rw-r--r-- | test/Android.mk | 1 | ||||
-rw-r--r-- | test/decoder/main.c | 37 |
2 files changed, 37 insertions, 1 deletions
diff --git a/test/Android.mk b/test/Android.mk index 0085832..adb14f0 100644 --- a/test/Android.mk +++ b/test/Android.mk @@ -6,3 +6,4 @@ include $(LOCAL_PATH)/encoder.mk # decoder include $(LOCAL_PATH)/decoder.mk + diff --git a/test/decoder/main.c b/test/decoder/main.c index 0076ce9..921c240 100644 --- a/test/decoder/main.c +++ b/test/decoder/main.c @@ -64,6 +64,8 @@ #include <sys/time.h> #endif + + #define ALIGN8(x) ((((x) + 7) >> 3) << 3) #define NUM_DISPLAY_BUFFERS 4 #define DEFAULT_FPS 30 @@ -952,6 +954,7 @@ void dump_output(vid_dec_ctx_t *ps_app_ctx, { UWORD8 *buf; + buf = (UWORD8 *)s_dump_disp_frm_buf.pv_y_buf; for(i = 0; i < s_dump_disp_frm_buf.u4_y_ht; i++) { @@ -2271,6 +2274,38 @@ int main(WORD32 argc, CHAR *argv[]) codec_exit(ac_error_str); } + + /*****************************************************************************/ + /* set stride */ + /*****************************************************************************/ + { + ivd_ctl_set_config_ip_t s_ctl_ip; + ivd_ctl_set_config_op_t s_ctl_op; + + + s_ctl_ip.u4_disp_wd = STRIDE; + if(1 == s_app_ctx.display) + s_ctl_ip.u4_disp_wd = s_app_ctx.get_stride(); + + s_ctl_ip.e_frm_skip_mode = IVD_SKIP_NONE; + s_ctl_ip.e_frm_out_mode = IVD_DECODE_FRAME_OUT; + s_ctl_ip.e_vid_dec_mode = IVD_DECODE_HEADER; + s_ctl_ip.e_cmd = IVD_CMD_VIDEO_CTL; + s_ctl_ip.e_sub_cmd = IVD_CMD_CTL_SETPARAMS; + s_ctl_ip.u4_size = sizeof(ivd_ctl_set_config_ip_t); + s_ctl_op.u4_size = sizeof(ivd_ctl_set_config_op_t); + + ret = ivd_api_function((iv_obj_t*)codec_obj, (void *)&s_ctl_ip, + (void *)&s_ctl_op); + if(ret != IV_SUCCESS) + { + sprintf(ac_error_str, + "\nError in setting the stride"); + codec_exit(ac_error_str); + } + } + + /*****************************************************************************/ /* Input and output buffer allocation */ /*****************************************************************************/ @@ -2470,7 +2505,7 @@ int main(WORD32 argc, CHAR *argv[]) if(ret != IV_SUCCESS) { - printf("Error in header decode %x\n", s_video_decode_op.u4_error_code); + printf("Error in header decode 0x%x\n", s_video_decode_op.u4_error_code); // codec_exit(ac_error_str); } |