omxvideodec: If no stride was set for the OMX output port assume GStreamer stride
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Wed, 2 Nov 2011 09:39:50 +0000 (10:39 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Wed, 2 Nov 2011 09:39:50 +0000 (10:39 +0100)
This is not really correct but there's nothing else we could do.

omx/gstomxvideodec.c

index 45ede85eb38fc6e591189417cd3323e3a54e604f..3abcd5ba110023ceb695b72b0b0832bda2f066ab 100644 (file)
@@ -520,10 +520,18 @@ gst_omx_video_dec_fill_buffer (GstOMXVideoDec * self, GstOMXBuffer * inbuf,
           src_stride = port_def->format.video.nStride;
           dest_stride =
               gst_video_format_get_row_stride (state->format, 0, state->width);
+
+          /* XXX: Try this if no stride was set */
+          if (src_stride == 0)
+            src_stride = dest_stride;
         } else {
           src_stride = port_def->format.video.nStride / 2;
           dest_stride =
               gst_video_format_get_row_stride (state->format, 1, state->width);
+
+          /* XXX: Try this if no stride was set */
+          if (src_stride == 0)
+            src_stride = dest_stride;
         }
 
         src = inbuf->omx_buf->pBuffer + inbuf->omx_buf->nOffset;
@@ -564,10 +572,18 @@ gst_omx_video_dec_fill_buffer (GstOMXVideoDec * self, GstOMXBuffer * inbuf,
           src_stride = port_def->format.video.nStride;
           dest_stride =
               gst_video_format_get_row_stride (state->format, 0, state->width);
+
+          /* XXX: Try this if no stride was set */
+          if (src_stride == 0)
+            src_stride = dest_stride;
         } else {
           src_stride = port_def->format.video.nStride;
           dest_stride =
               gst_video_format_get_row_stride (state->format, 1, state->width);
+
+          /* XXX: Try this if no stride was set */
+          if (src_stride == 0)
+            src_stride = dest_stride;
         }
 
         src = inbuf->omx_buf->pBuffer + inbuf->omx_buf->nOffset;