diff --git a/src/gstamlv4l2object.c b/src/gstamlv4l2object.c
index 1191018..7ae55bb 100644
--- a/src/gstamlv4l2object.c
+++ b/src/gstamlv4l2object.c
@@ -4498,9 +4498,9 @@
                    is_mplane ? format.fmt.pix_mp.num_planes : 1,
                    colorspace, range, matrix, transfer);
 
-  if (self->v4l2output->dw_mode == VDEC_DW_AFBC_ONLY)
+  if (v4l2object->dw_mode == VDEC_DW_AFBC_ONLY)
   {
-    self->v4l2output->stride = format.fmt.pix_mp.plane_fmt[0].bytesperline;
+    v4l2object->stride = format.fmt.pix_mp.plane_fmt[0].bytesperline;
     //because driver return src w,h when AFBC_ONLY
     format.fmt.pix.width = format.fmt.pix.height = 64;
     format.fmt.pix_mp.plane_fmt[0].bytesperline = format.fmt.pix_mp.plane_fmt[1].bytesperline = 64;
@@ -5021,7 +5021,22 @@
   if (fmt.fmt.pix.width == 0 || fmt.fmt.pix.height == 0)
     goto invalid_dimensions;
 
-  if (self->v4l2output->dw_mode == VDEC_DW_AFBC_ONLY)
+  switch (fmt.fmt.pix.field)
+  {
+    case V4L2_FIELD_ANY:
+    case V4L2_FIELD_NONE:
+      info->interlace_mode = GST_VIDEO_INTERLACE_MODE_PROGRESSIVE;
+      break;
+    case V4L2_FIELD_INTERLACED:
+    case V4L2_FIELD_INTERLACED_TB:
+    case V4L2_FIELD_INTERLACED_BT:
+      info->interlace_mode = GST_VIDEO_INTERLACE_MODE_INTERLEAVED;
+      break;
+    default:
+      goto unsupported_field;
+  }
+
+  if (self->v4l2output->dw_mode == VDEC_DW_AFBC_ONLY && info->interlace_mode != GST_VIDEO_INTERLACE_MODE_INTERLEAVED)
   {
     self->v4l2output->stride = fmt.fmt.pix_mp.plane_fmt[0].bytesperline;
     //because driver return src w,h when AFBC_ONLY
@@ -5064,7 +5079,7 @@
       height = (height/2) *2; // align for dw
     }
 
-    if (self->v4l2output->dw_mode == VDEC_DW_AFBC_ONLY)
+    if (self->v4l2output->dw_mode == VDEC_DW_AFBC_ONLY && info->interlace_mode != GST_VIDEO_INTERLACE_MODE_INTERLEAVED)
       height = width = 64; //because driver return src w,h when AFBC_ONLY
   }
   GST_DEBUG_OBJECT(v4l2object->dbg_obj, "final w:%d, h:%d", width, height);
diff --git a/src/gstamlv4l2videodec.c b/src/gstamlv4l2videodec.c
index 0bcfbb0..5a4421e 100644
--- a/src/gstamlv4l2videodec.c
+++ b/src/gstamlv4l2videodec.c
@@ -885,8 +885,8 @@
       gst_structure_set(s,"src_height",G_TYPE_INT,height,NULL);
       gst_structure_set(s,"width",G_TYPE_INT,info.width,NULL);
       gst_structure_set(s,"height",G_TYPE_INT,info.height,NULL);
-      gst_structure_set(s,"dw_mode",G_TYPE_INT,self->v4l2output->dw_mode,NULL);
-      gst_structure_set(s,"stride",G_TYPE_INT,self->v4l2output->stride,NULL);
+      gst_structure_set(s,"dw_mode",G_TYPE_INT,self->v4l2capture->dw_mode,NULL);
+      gst_structure_set(s,"stride",G_TYPE_INT,self->v4l2capture->stride,NULL);
       GST_DEBUG_OBJECT(self, "output_state->caps: %" GST_PTR_FORMAT, output_state->caps);
       gst_aml_video_codec_state_unref(output_state);
     }
