diff --git a/decoder/impeg2d.h b/decoder/impeg2d.h
index 5567733..97094dc 100644
--- a/decoder/impeg2d.h
+++ b/decoder/impeg2d.h
@@ -167,6 +167,9 @@
     IMPEG2D_CMD_CTL_GET_BUFFER_DIMENSIONS = IVD_CMD_CTL_CODEC_SUBCMD_START
                     + 0x100,
 
+    /** Get Seq header/seq header extension info */
+    IMPEG2D_CMD_CTL_GET_SEQ_INFO     = IVD_CMD_CTL_CODEC_SUBCMD_START + 0x101,
+
 } IMPEG2D_CMD_CTL_SUB_CMDS;
 
 /*****************************************************************************/
@@ -509,6 +512,87 @@
     UWORD32 u4_buffer_ht[3];
 } impeg2d_ctl_get_frame_dimensions_op_t;
 
+typedef struct
+{
+    /**
+     * size
+     */
+    UWORD32 u4_size;
+
+    /**
+     * cmd
+     */
+    IVD_API_COMMAND_TYPE_T e_cmd;
+
+    /**
+     * sub cmd
+     */
+    IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
+} impeg2d_ctl_get_seq_info_ip_t;
+
+typedef struct
+{
+    /**
+     * size
+     */
+    UWORD32 u4_size;
+
+    /**
+     * error_code
+     */
+    UWORD32 u4_error_code;
+
+    /**
+     * aspect_ratio_information
+     */
+    UWORD8 u1_aspect_ratio_information;
+
+    /**
+     * frame_rate_code
+     */
+    UWORD8 u1_frame_rate_code;
+
+    /**
+     * frame_rate_extension_n
+     */
+    UWORD8 u1_frame_rate_extension_n;
+
+    /**
+     * frame_rate_extension_d
+     */
+    UWORD8 u1_frame_rate_extension_d;
+
+    /**
+     * video_format
+     */
+    UWORD8 u1_video_format;
+
+    /**
+     * colour_primaries
+     */
+    UWORD8 u1_colour_primaries;
+
+    /**
+     * transfer_characteristics
+     */
+    UWORD8 u1_transfer_characteristics;
+
+    /**
+     * matrix_coefficients
+     */
+    UWORD8 u1_matrix_coefficients;
+
+    /**
+     * display_horizontal_size
+     */
+    UWORD16 u2_display_horizontal_size;
+
+    /**
+     * display_vertical_size
+     */
+    UWORD16 u2_display_vertical_size;
+
+} impeg2d_ctl_get_seq_info_op_t;
 #ifdef __cplusplus
 } /* closing brace for extern "C" */
 #endif
diff --git a/decoder/impeg2d_api_main.c b/decoder/impeg2d_api_main.c
index e4f3c1c..cd549e4 100644
--- a/decoder/impeg2d_api_main.c
+++ b/decoder/impeg2d_api_main.c
@@ -328,6 +328,55 @@
     return IV_SUCCESS;
 }
 
+IV_API_CALL_STATUS_T impeg2d_api_get_seq_info(iv_obj_t *ps_dechdl,
+                                               void *pv_api_ip,
+                                               void *pv_api_op)
+{
+    impeg2d_ctl_get_seq_info_ip_t *ps_ip;
+    impeg2d_ctl_get_seq_info_op_t *ps_op;
+    dec_state_t *ps_codec;
+    dec_state_multi_core_t *ps_dec_state_multi_core;
+
+    ps_ip  = (impeg2d_ctl_get_seq_info_ip_t *)pv_api_ip;
+    ps_op =  (impeg2d_ctl_get_seq_info_op_t *)pv_api_op;
+
+    ps_dec_state_multi_core = (dec_state_multi_core_t *) (ps_dechdl->pv_codec_handle);
+    ps_codec = ps_dec_state_multi_core->ps_dec_state[0];
+    UNUSED(ps_ip);
+    if(ps_codec->u2_header_done == 1)
+    {
+        ps_op->u1_aspect_ratio_information = ps_codec->u2_aspect_ratio_info;
+        ps_op->u1_frame_rate_code = ps_codec->u2_frame_rate_code;
+        ps_op->u1_frame_rate_extension_n = ps_codec->u2_frame_rate_extension_n;
+        ps_op->u1_frame_rate_extension_d = ps_codec->u2_frame_rate_extension_d;
+        if(ps_codec->u1_seq_disp_extn_present == 1)
+        {
+            ps_op->u1_video_format = ps_codec->u1_video_format;
+            ps_op->u1_colour_primaries = ps_codec->u1_colour_primaries;
+            ps_op->u1_transfer_characteristics = ps_codec->u1_transfer_characteristics;
+            ps_op->u1_matrix_coefficients = ps_codec->u1_matrix_coefficients;
+            ps_op->u2_display_horizontal_size = ps_codec->u2_display_horizontal_size;
+            ps_op->u2_display_vertical_size = ps_codec->u2_display_vertical_size;
+        }
+        else
+        {
+            ps_op->u1_video_format = 5;
+            ps_op->u1_colour_primaries = 2;
+            ps_op->u1_transfer_characteristics = 2;
+            ps_op->u1_matrix_coefficients = 2;
+            ps_op->u2_display_horizontal_size = ps_codec->u2_horizontal_size;
+            ps_op->u2_display_vertical_size = ps_codec->u2_vertical_size;
+        }
+        ps_op->u4_error_code = IV_SUCCESS;
+        return IV_SUCCESS;
+    }
+    else
+    {
+        ps_op->u4_error_code = IV_FAIL;
+        return IV_FAIL;
+    }
+}
+
 /**
 *******************************************************************************
 *
@@ -2113,6 +2162,12 @@
                                                        (void *)pv_api_op);
             break;
 
+        case IMPEG2D_CMD_CTL_GET_SEQ_INFO:
+            u4_error_code = impeg2d_api_get_seq_info(ps_dechdl,
+                                                         (void *)pv_api_ip,
+                                                         (void *)pv_api_op);
+            break;
+
         case IMPEG2D_CMD_CTL_SET_PROCESSOR:
             u4_error_code = impeg2d_set_processor(ps_dechdl, (void *)pv_api_ip,
                                                 (void *)pv_api_op);
@@ -2972,7 +3027,36 @@
 
                         break;
                     }
+                    case IMPEG2D_CMD_CTL_GET_SEQ_INFO:
+                    {
+                        impeg2d_ctl_get_seq_info_ip_t *ps_ip;
+                        impeg2d_ctl_get_seq_info_op_t *ps_op;
 
+                        ps_ip =
+                                        (impeg2d_ctl_get_seq_info_ip_t *)pv_api_ip;
+                        ps_op =
+                                        (impeg2d_ctl_get_seq_info_op_t *)pv_api_op;
+
+                        if(ps_ip->u4_size
+                                        != sizeof(impeg2d_ctl_get_seq_info_ip_t))
+                        {
+                            ps_op->u4_error_code |= 1 << IVD_UNSUPPORTEDPARAM;
+                            ps_op->u4_error_code |=
+                                            IVD_IP_API_STRUCT_SIZE_INCORRECT;
+                            return IV_FAIL;
+                        }
+
+                        if(ps_op->u4_size
+                                        != sizeof(impeg2d_ctl_get_seq_info_op_t))
+                        {
+                            ps_op->u4_error_code |= 1 << IVD_UNSUPPORTEDPARAM;
+                            ps_op->u4_error_code |=
+                                            IVD_OP_API_STRUCT_SIZE_INCORRECT;
+                            return IV_FAIL;
+                        }
+
+                        break;
+                    }
                     case IMPEG2D_CMD_CTL_SET_NUM_CORES:
                     {
                         impeg2d_ctl_set_num_cores_ip_t *ps_ip;
diff --git a/decoder/impeg2d_dec_hdr.c b/decoder/impeg2d_dec_hdr.c
index 3dff8c2..6bb0a85 100644
--- a/decoder/impeg2d_dec_hdr.c
+++ b/decoder/impeg2d_dec_hdr.c
@@ -421,10 +421,17 @@
     }
     */
 
-    impeg2d_bit_stream_get(ps_stream,7);
-    if (impeg2d_bit_stream_get_bit(ps_stream) == 1)
+    impeg2d_bit_stream_get(ps_stream, 4);
+    ps_dec->u1_video_format = impeg2d_bit_stream_get(ps_stream, 3);
+    ps_dec->u1_colour_description = impeg2d_bit_stream_get(ps_stream, 1);
+    ps_dec->u1_colour_primaries = 2;
+    ps_dec->u1_transfer_characteristics = 2;
+    ps_dec->u1_matrix_coefficients = 2;
+    if(ps_dec->u1_colour_description)
     {
-        impeg2d_bit_stream_get(ps_stream,24);
+        ps_dec->u1_colour_primaries = impeg2d_bit_stream_get(ps_stream, 8);
+        ps_dec->u1_transfer_characteristics = impeg2d_bit_stream_get(ps_stream, 8);
+        ps_dec->u1_matrix_coefficients = impeg2d_bit_stream_get(ps_stream, 8);
     }
 
     /* display_horizontal_size and display_vertical_size */
@@ -432,6 +439,7 @@
     GET_MARKER_BIT(ps_dec,ps_stream);
     ps_dec->u2_display_vertical_size   = impeg2d_bit_stream_get(ps_stream,14);
 
+    ps_dec->u1_seq_disp_extn_present = 1;
     impeg2d_next_start_code(ps_dec);
 }
 
diff --git a/decoder/impeg2d_structs.h b/decoder/impeg2d_structs.h
index 9d0c756..48fdd13 100644
--- a/decoder/impeg2d_structs.h
+++ b/decoder/impeg2d_structs.h
@@ -249,6 +249,11 @@
     /* Members related to display dimensions of bitstream */
     /* The size values may not be returned right now. But they are read */
     /* and can be returned if there is a requirement.                   */
+    UWORD8          u1_video_format;
+    UWORD8          u1_colour_description;
+    UWORD8          u1_colour_primaries;
+    UWORD8          u1_transfer_characteristics;
+    UWORD8          u1_matrix_coefficients;
     UWORD16         u2_display_horizontal_size;
     UWORD16         u2_display_vertical_size;
     UWORD16         u2_aspect_ratio_info;
@@ -384,6 +389,8 @@
     /** Buffer used after deinterlacer for format conversion */
     UWORD8          *pu1_deint_fmt_buf;
 
+    /** Flag to indicate if Seq Display Extn is present */
+    UWORD8          u1_seq_disp_extn_present;
 }dec_state_t;
 
 
diff --git a/test/decoder/main.c b/test/decoder/main.c
index e6eb1ef..6229f50 100644
--- a/test/decoder/main.c
+++ b/test/decoder/main.c
@@ -2599,6 +2599,30 @@
                s_ctl_get_frame_dimensions_op.u4_y_offset[0]);
 */
     }
+    /*************************************************************************/
+    /* Get Sequence Header/Seq Extn/Seq display extension info               */
+    /*************************************************************************/
+    {
+
+        impeg2d_ctl_get_seq_info_ip_t s_ctl_get_seq_info_ip;
+        impeg2d_ctl_get_seq_info_op_t s_ctl_get_seq_info_op;
+
+        s_ctl_get_seq_info_ip.e_cmd = IVD_CMD_VIDEO_CTL;
+        s_ctl_get_seq_info_ip.e_sub_cmd =
+                        (IVD_CONTROL_API_COMMAND_TYPE_T)IMPEG2D_CMD_CTL_GET_SEQ_INFO;
+        s_ctl_get_seq_info_ip.u4_size =
+                        sizeof(impeg2d_ctl_get_seq_info_ip_t);
+        s_ctl_get_seq_info_op.u4_size =
+                        sizeof(impeg2d_ctl_get_seq_info_op_t);
+
+        ret = ivd_api_function((iv_obj_t *)codec_obj, (void *)&s_ctl_get_seq_info_ip,
+                                   (void *)&s_ctl_get_seq_info_op);
+        if(IV_SUCCESS != ret)
+        {
+            sprintf(ac_error_str, "Error in Get Sequence Info");
+            codec_exit(ac_error_str);
+        }
+    }
 
 
     /*************************************************************************/
