Merge cherrypicks of [4793640, 4793602, 4793603, 4793660, 4793604, 4793680, 4793681, 4793581, 4793582, 4793625, 4793626, 4793627, 4793628, 4793700, 4793701, 4793702, 4793703, 4793704, 4793705, 4793661, 4793720, 4793721, 4793722, 4793723, 4793724, 4793725, 4793726, 4793727, 4793728, 4793583, 4793740, 4793760, 4793662, 4793780, 4793729] into pi-release-2

Change-Id: Ia1e3bb7af19f796798090f47af4a594ce2d23510
diff --git a/decoder/impeg2d_dec_hdr.c b/decoder/impeg2d_dec_hdr.c
index e899347..c4fcee5 100644
--- a/decoder/impeg2d_dec_hdr.c
+++ b/decoder/impeg2d_dec_hdr.c
@@ -167,10 +167,6 @@
             /* This is the first time we are reading the resolution */
             ps_dec->u2_horizontal_size = u2_width;
             ps_dec->u2_vertical_size = u2_height;
-            if (0 == ps_dec->u4_frm_buf_stride)
-            {
-                ps_dec->u4_frm_buf_stride  = (UWORD32) (u2_width);
-            }
         }
         else
         {
@@ -193,6 +189,11 @@
 
                 return e_error;
             }
+            else if((ps_dec->u2_horizontal_size < MIN_WIDTH)
+                            || (ps_dec->u2_vertical_size < MIN_HEIGHT))
+            {
+                return IMPEG2D_UNSUPPORTED_DIMENSIONS;
+            }
             else
             {
                 /* The resolution has changed */
@@ -210,6 +211,11 @@
         return e_error;
     }
 
+    if((ps_dec->u2_horizontal_size < MIN_WIDTH)
+                    || (ps_dec->u2_vertical_size < MIN_HEIGHT))
+    {
+        return IMPEG2D_UNSUPPORTED_DIMENSIONS;
+    }
 
     /*------------------------------------------------------------------------*/
     /* Flush the following as they are not being used                         */
diff --git a/decoder/impeg2d_decoder.c b/decoder/impeg2d_decoder.c
index bff8c21..726d9cd 100644
--- a/decoder/impeg2d_decoder.c
+++ b/decoder/impeg2d_decoder.c
@@ -155,6 +155,12 @@
             ps_op->s_ivd_video_decode_op_t.u4_num_bytes_consumed = ps_ip->s_ivd_video_decode_ip_t.u4_num_Bytes;
         }
         ps_op->s_ivd_video_decode_op_t.u4_frame_decoded_flag = 0;
+
+        /* Set the stride */
+        if (0 == ps_dec->u4_frm_buf_stride)
+        {
+            ps_dec->u4_frm_buf_stride = ps_dec->u2_horizontal_size;
+        }
         /* MOD */
         ps_dec->u2_header_done = 1;