diff --git a/decoder/ih264d_api.c b/decoder/ih264d_api.c
index 6ef5185..5442dae 100644
--- a/decoder/ih264d_api.c
+++ b/decoder/ih264d_api.c
@@ -2484,7 +2484,6 @@
 /*****************************************************************************/
 WORD32 ih264d_set_flush_mode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op)
 {
-
     dec_struct_t * ps_dec;
     ivd_ctl_flush_op_t *ps_ctl_op = (ivd_ctl_flush_op_t*)pv_api_op;
     ps_ctl_op->u4_error_code = 0;
@@ -2495,19 +2494,15 @@
     /* Signal flush frame control call */
     ps_dec->u1_flushfrm = 1;
 
-    if(  ps_dec->u1_init_dec_flag == 1)
+    if(ps_dec->u1_init_dec_flag == 1)
     {
-
-    ih264d_release_pics_in_dpb((void *)ps_dec,
-                               ps_dec->u1_pic_bufs);
-    ih264d_release_display_bufs(ps_dec);
+        ih264d_release_pics_in_dpb((void *)ps_dec, ps_dec->u1_pic_bufs);
+        ih264d_release_display_bufs(ps_dec);
     }
 
-    ps_ctl_op->u4_error_code =
-                    ((ivd_ctl_flush_op_t*)ps_dec->pv_dec_out)->u4_error_code; //verify the value
+    ps_ctl_op->u4_error_code = 0;
 
     return IV_SUCCESS;
-
 }
 
 /*****************************************************************************/
diff --git a/test/decoder/main.c b/test/decoder/main.c
index 89a54c5..875ed3d 100644
--- a/test/decoder/main.c
+++ b/test/decoder/main.c
@@ -65,8 +65,8 @@
 #endif
 
 //#define ADAPTIVE_TEST
-#define ADAPTIVE_MAX_WD 1920
-#define ADAPTIVE_MAX_HT 1088
+#define ADAPTIVE_MAX_WD 4096
+#define ADAPTIVE_MAX_HT 2160
 
 #define ALIGN8(x) ((((x) + 7) >> 3) << 3)
 #define NUM_DISPLAY_BUFFERS 4
@@ -1789,7 +1789,7 @@
     WORD32 ret;
     CHAR ac_error_str[STRLENGTH];
     vid_dec_ctx_t s_app_ctx;
-    UWORD8 *pu1_bs_buf;
+    UWORD8 *pu1_bs_buf = NULL;
 
     ivd_out_bufdesc_t *ps_out_buf;
     UWORD32 u4_num_bytes_dec = 0;
@@ -2228,6 +2228,10 @@
 
     }
 
+    flush_output(codec_obj, &s_app_ctx, ps_out_buf,
+                 pu1_bs_buf, &u4_op_frm_ts,
+                 ps_op_file, ps_op_chksum_file,
+                 u4_ip_frm_ts, u4_bytes_remaining);
 
     /*****************************************************************************/
     /*   Decode header to get width and height and buffer sizes                  */
@@ -2334,8 +2338,6 @@
         s_app_ctx.u4_pic_wd = s_video_decode_op.u4_pic_wd;
         s_app_ctx.u4_pic_ht = s_video_decode_op.u4_pic_ht;
 
-        /* Allocate input buffer */
-        u4_ip_buf_len = 2048 * 2048;
         free(pu1_bs_buf);
 
 #if IOS_DISPLAY
@@ -3139,5 +3141,8 @@
     free(ps_out_buf);
     free(pu1_bs_buf);
 
+    if(s_app_ctx.display_thread_handle)
+        free(s_app_ctx.display_thread_handle);
+
     return (0);
 }
