diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp
index 1c5e1e5..b384467 100644
--- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp
@@ -6364,6 +6364,11 @@
     DEBUG_PRINT_LOW("\n In fill Buffer done call address %p ",buffer);
     log_output_buffers(buffer);
 
+    if (!output_flush_progress && (buffer->nFilledLen > 0)) {
+        DEBUG_PRINT_LOW("Processing extradata");
+        handle_extradata(buffer);
+    }
+
     /* For use buffer we need to copy the data */
     if (!output_flush_progress) {
         /* This is the error check for non-recoverable errros */
@@ -6412,7 +6417,6 @@
     }
     if (m_cb.FillBufferDone) {
         if (buffer->nFilledLen > 0) {
-            handle_extradata(buffer);
             if (client_extradata & OMX_TIMEINFO_EXTRADATA)
                 set_frame_rate(buffer->nTimeStamp);
             else if (arbitrary_bytes)
@@ -8053,7 +8057,11 @@
                     mbaff = (h264_parser)? (h264_parser->is_mbaff()): false;
                     if (payload && (payload->format == INTERLACE_FRAME_PROGRESSIVE)  && !mbaff)
                         drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
-                    else {
+                    else if (payload && (payload->format == INTERLACE_FRAME_TOPFIELDFIRST ||
+                        payload->format == INTERLACE_FRAME_BOTTOMFIELDFIRST)  && !mbaff) {
+                        drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
+                        enable = 1;
+                    } else {
                         drv_ctx.interlace = VDEC_InterlaceInterleaveFrameTopFieldFirst;
                         enable = 1;
                     }
@@ -8133,6 +8141,7 @@
                     num_conceal_MB, ((struct vdec_output_frameinfo *)p_buf_hdr->pOutputPortPrivate)->pic_type, frame_rate,
                     time_stamp, panscan_payload,&((struct vdec_output_frameinfo *)
                         p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info);
+            p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
         }
     }
 unrecognized_extradata:
@@ -8322,6 +8331,14 @@
         interlace_format->bInterlaceFormat = OMX_FALSE;
         interlace_format->nInterlaceFormats = OMX_InterlaceFrameProgressive;
         drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
+    } else if ((interlaced_format_type == INTERLACE_FRAME_TOPFIELDFIRST)  && !mbaff) {
+        interlace_format->bInterlaceFormat = OMX_TRUE;
+        interlace_format->nInterlaceFormats = OMX_InterlaceFrameTopFieldFirst;
+        drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
+    } else if ((interlaced_format_type == INTERLACE_FRAME_BOTTOMFIELDFIRST)  && !mbaff) {
+        interlace_format->bInterlaceFormat = OMX_TRUE;
+        interlace_format->nInterlaceFormats = OMX_InterlaceFrameBottomFieldFirst;
+        drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
     } else {
         interlace_format->bInterlaceFormat = OMX_TRUE;
         interlace_format->nInterlaceFormats = OMX_InterlaceInterleaveFrameTopFieldFirst;
