diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg
new file mode 100644
index 0000000..86b6de3
--- /dev/null
+++ b/PREUPLOAD.cfg
@@ -0,0 +1,2 @@
+[Hook Scripts]
+mainline_hook = ${REPO_ROOT}/frameworks/av/tools/mainline_hook.sh
diff --git a/common/ih264_defs.h b/common/ih264_defs.h
index 16d8627..9c84be9 100644
--- a/common/ih264_defs.h
+++ b/common/ih264_defs.h
@@ -611,6 +611,16 @@
 #define MAX_H264_QP 51
 
 /**
+ * @brief  Minimum delta scale supported in H264 spec
+ */
+#define MIN_H264_DELTA_SCALE (-128)
+
+/**
+ * @brief  Maximum delta scale supported in H264 spec
+ */
+#define MAX_H264_DELTA_SCALE 127
+
+/**
  * @breif  Total number of transform sizes
  * used for sizeID while getting scale matrix
  */
diff --git a/decoder/ih264d_parse_headers.c b/decoder/ih264d_parse_headers.c
index 674f4c3..f286e29 100644
--- a/decoder/ih264d_parse_headers.c
+++ b/decoder/ih264d_parse_headers.c
@@ -425,9 +425,10 @@
 
                 if(ps_pps->u1_pic_scaling_list_present_flag[i4_i])
                 {
+                    WORD32 ret;
                     if(i4_i < 6)
                     {
-                        ih264d_scaling_list(
+                        ret = ih264d_scaling_list(
                                         ps_pps->i2_pic_scalinglist4x4[i4_i],
                                         16,
                                         &ps_pps->u1_pic_use_default_scaling_matrix_flag[i4_i],
@@ -435,12 +436,17 @@
                     }
                     else
                     {
-                        ih264d_scaling_list(
+                        ret = ih264d_scaling_list(
                                         ps_pps->i2_pic_scalinglist8x8[i4_i - 6],
                                         64,
                                         &ps_pps->u1_pic_use_default_scaling_matrix_flag[i4_i],
                                         ps_bitstrm);
                     }
+
+                    if(ret != OK)
+                    {
+                        return ret;
+                    }
                 }
             }
         }
@@ -740,7 +746,7 @@
                 {
                     if(i4_i < 6)
                     {
-                        ih264d_scaling_list(
+                        ret = ih264d_scaling_list(
                                         ps_seq->i2_scalinglist4x4[i4_i],
                                         16,
                                         &ps_seq->u1_use_default_scaling_matrix_flag[i4_i],
@@ -748,12 +754,16 @@
                     }
                     else
                     {
-                        ih264d_scaling_list(
+                        ret = ih264d_scaling_list(
                                         ps_seq->i2_scalinglist8x8[i4_i - 6],
                                         64,
                                         &ps_seq->u1_use_default_scaling_matrix_flag[i4_i],
                                         ps_bitstrm);
                     }
+                    if(ret != OK)
+                    {
+                        return ret;
+                    }
                 }
             }
         }
diff --git a/decoder/ih264d_process_bslice.c b/decoder/ih264d_process_bslice.c
index f2adcf6..5dfba33 100644
--- a/decoder/ih264d_process_bslice.c
+++ b/decoder/ih264d_process_bslice.c
@@ -1387,17 +1387,17 @@
         /* reference list to handle of errors        */
         {
             UWORD8 u1_i;
-            pic_buffer_t *ps_ref_pic;
+            pic_buffer_t ref_pic;
 
-            ps_ref_pic = ps_dpb_mgr->ps_init_dpb[0][0] + MAX_REF_BUFS;
+            ref_pic = *(ps_dpb_mgr->ps_init_dpb[0][0] + MAX_REF_BUFS);
 
-            if(NULL == ps_ref_pic->pu1_buf1)
+            if(NULL == ref_pic.pu1_buf1)
             {
-                ps_ref_pic = ps_dec->ps_cur_pic;
+                ref_pic = *ps_dec->ps_cur_pic;
             }
             for(u1_i = u1_L0; u1_i < u1_max_ref_idx_l0; u1_i++)
             {
-                *ps_ref_pic_buf_lx = *ps_ref_pic;
+                *ps_ref_pic_buf_lx = ref_pic;
                 ps_ref_pic_buf_lx++;
             }
         }
@@ -1414,17 +1414,17 @@
     /* reference list to handle of errors        */
     {
         UWORD8 u1_i;
-        pic_buffer_t *ps_ref_pic;
+        pic_buffer_t ref_pic;
 
-        ps_ref_pic = ps_dpb_mgr->ps_init_dpb[0][0];
+        ref_pic = *(ps_dpb_mgr->ps_init_dpb[0][0]);
 
-        if(NULL == ps_ref_pic->pu1_buf1)
+        if(NULL == ref_pic.pu1_buf1)
         {
-            ps_ref_pic = ps_dec->ps_cur_pic;
+            ref_pic = *ps_dec->ps_cur_pic;
         }
         for(u1_i = u1_L0; u1_i < u1_max_ref_idx_l0; u1_i++)
         {
-            *ps_ref_pic_buf_lx = *ps_ref_pic;
+            *ps_ref_pic_buf_lx = ref_pic;
             ps_ref_pic_buf_lx++;
         }
     }
@@ -1498,17 +1498,17 @@
             /* reference list to handle of errors        */
             {
                 UWORD8 u1_i;
-                pic_buffer_t *ps_ref_pic;
+                pic_buffer_t ref_pic;
 
-                ps_ref_pic = ps_dpb_mgr->ps_init_dpb[0][0] + MAX_REF_BUFS;
+                ref_pic = *(ps_dpb_mgr->ps_init_dpb[0][0] + MAX_REF_BUFS);
 
-                if(NULL == ps_ref_pic->pu1_buf1)
+                if(NULL == ref_pic.pu1_buf1)
                 {
-                    ps_ref_pic = ps_dec->ps_cur_pic;
+                    ref_pic = *ps_dec->ps_cur_pic;
                 }
                 for(u1_i = u1_L1; u1_i < u1_max_ref_idx_l1; u1_i++)
                 {
-                    *ps_ref_pic_buf_lx = *ps_ref_pic;
+                    *ps_ref_pic_buf_lx = ref_pic;
                     ps_ref_pic_buf_lx++;
                 }
             }
@@ -1525,17 +1525,17 @@
         /* reference list to handle of errors        */
         {
             UWORD8 u1_i;
-            pic_buffer_t *ps_ref_pic;
+            pic_buffer_t ref_pic;
 
-            ps_ref_pic = ps_dpb_mgr->ps_init_dpb[0][0];
+            ref_pic = *(ps_dpb_mgr->ps_init_dpb[0][0]);
 
-            if(NULL == ps_ref_pic->pu1_buf1)
+            if(NULL == ref_pic.pu1_buf1)
             {
-                ps_ref_pic = ps_dec->ps_cur_pic;
+                ref_pic = *ps_dec->ps_cur_pic;
             }
             for(u1_i = u1_L1; u1_i < u1_max_ref_idx_l1; u1_i++)
             {
-                *ps_ref_pic_buf_lx = *ps_ref_pic;
+                *ps_ref_pic_buf_lx = ref_pic;
                 ps_ref_pic_buf_lx++;
             }
         }
diff --git a/decoder/ih264d_process_pslice.c b/decoder/ih264d_process_pslice.c
index ed4cbbe..7c24383 100644
--- a/decoder/ih264d_process_pslice.c
+++ b/decoder/ih264d_process_pslice.c
@@ -1112,17 +1112,17 @@
         /* reference list to handle of errors        */
         {
             UWORD8 u1_i;
-            pic_buffer_t *ps_ref_pic;
+            pic_buffer_t ref_pic;
 
-            ps_ref_pic = ps_dpb_mgr->ps_init_dpb[0][0] + MAX_REF_BUFS;
+            ref_pic = *(ps_dpb_mgr->ps_init_dpb[0][0] + MAX_REF_BUFS);
 
-            if(NULL == ps_ref_pic->pu1_buf1)
+            if(NULL == ref_pic.pu1_buf1)
             {
-                ps_ref_pic = ps_dec->ps_cur_pic;
+                ref_pic = *ps_dec->ps_cur_pic;
             }
             for(u1_i = u1_L0; u1_i < u1_max_ref_idx_l0; u1_i++)
             {
-                *ps_ref_pic_buf_lx = *ps_ref_pic;
+                *ps_ref_pic_buf_lx = ref_pic;
                 ps_ref_pic_buf_lx++;
             }
         }
@@ -1138,17 +1138,17 @@
     /* reference list to handle of errors        */
     {
         UWORD8 u1_i;
-        pic_buffer_t *ps_ref_pic;
+        pic_buffer_t ref_pic;
 
-        ps_ref_pic = ps_dpb_mgr->ps_init_dpb[0][0];
+        ref_pic = *(ps_dpb_mgr->ps_init_dpb[0][0]);
 
-        if(NULL == ps_ref_pic->pu1_buf1)
+        if(NULL == ref_pic.pu1_buf1)
         {
-            ps_ref_pic = ps_dec->ps_cur_pic;
+            ref_pic = *ps_dec->ps_cur_pic;
         }
         for(u1_i = u1_L0; u1_i < u1_max_ref_idx_l0; u1_i++)
         {
-            *ps_ref_pic_buf_lx = *ps_ref_pic;
+            *ps_ref_pic_buf_lx = ref_pic;
             ps_ref_pic_buf_lx++;
         }
     }
diff --git a/decoder/ih264d_quant_scaling.c b/decoder/ih264d_quant_scaling.c
index 1d48907..4e5c58d 100644
--- a/decoder/ih264d_quant_scaling.c
+++ b/decoder/ih264d_quant_scaling.c
@@ -20,6 +20,7 @@
 #include "ih264_typedefs.h"
 #include "ih264_macros.h"
 #include "ih264_platform_macros.h"
+#include "ih264_defs.h"
 #include "ih264d_bitstrm.h"
 #include "ih264d_structs.h"
 #include "ih264d_parse_cavlc.h"
@@ -44,7 +45,7 @@
 
 #define IDCT_BLOCK_WIDTH8X8  8
 
-void ih264d_scaling_list(WORD16 *pi2_scaling_list,
+WORD32 ih264d_scaling_list(WORD16 *pi2_scaling_list,
                          WORD32 i4_size_of_scalinglist,
                          UWORD8 *pu1_use_default_scaling_matrix_flag,
                          dec_bit_stream_t *ps_bitstrm)
@@ -62,6 +63,11 @@
             i4_delta_scale = ih264d_sev(pu4_bitstrm_ofst,
                                         pu4_bitstrm_buf);
 
+            if(i4_delta_scale < MIN_H264_DELTA_SCALE ||
+                        i4_delta_scale > MAX_H264_DELTA_SCALE)
+            {
+                return ERROR_INV_RANGE_QP_T;
+            }
             i4_nextScale = ((i4_lastScale + i4_delta_scale + 256) & 0xff);
 
             *pu1_use_default_scaling_matrix_flag = ((i4_j == 0)
@@ -72,6 +78,7 @@
                         (i4_nextScale == 0) ? (i4_lastScale) : (i4_nextScale);
         i4_lastScale = pi2_scaling_list[i4_j];
     }
+    return OK;
 }
 
 WORD32 ih264d_form_default_scaling_matrix(dec_struct_t *ps_dec)
diff --git a/decoder/ih264d_quant_scaling.h b/decoder/ih264d_quant_scaling.h
index c714c34..1a9b7d1 100644
--- a/decoder/ih264d_quant_scaling.h
+++ b/decoder/ih264d_quant_scaling.h
@@ -19,7 +19,7 @@
 */
 #ifndef _IH264D_QUANT_SCALING_H_
 #define _IH264D_QUANT_SCALING_H_
-void ih264d_scaling_list(WORD16 *pi2_scaling_list,
+WORD32 ih264d_scaling_list(WORD16 *pi2_scaling_list,
                   WORD32 i4_size_of_scalinglist,
                   UWORD8 *pu1_use_default_scaling_matrix_flag,
                   dec_bit_stream_t *ps_bitstrm);
diff --git a/encoder/ih264e_process.c b/encoder/ih264e_process.c
index 5333046..490c6d8 100644
--- a/encoder/ih264e_process.c
+++ b/encoder/ih264e_process.c
@@ -584,8 +584,6 @@
                     }
                 }
             }
-            /* Dont execute any further instructions until store synchronization took place */
-            DATA_SYNC();
         }
 
         /* Ending bitstream offset for header in bits */
@@ -676,6 +674,9 @@
         DEBUG("entropy status %x", ps_entropy->i4_error_code);
     }
 
+    /* Dont execute any further instructions until store synchronization took place */
+    DATA_SYNC();
+
     /* allow threads to dequeue entropy jobs */
     ps_codec->au4_entropy_thread_active[ctxt_sel] = 0;
 
