summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch')
-rw-r--r--media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch77
1 files changed, 77 insertions, 0 deletions
diff --git a/media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch b/media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch
new file mode 100644
index 0000000..fae77f7
--- /dev/null
+++ b/media-libs/gst-plugins-base/files/gst-0.10.32-0007-Add-NV12-support-in-stridetransform.patch
@@ -0,0 +1,77 @@
+From f392c3f35052b57343e814d8f2d52b4f788d5d45 Mon Sep 17 00:00:00 2001
+From: Rob Clark <rob@ti.com>
+Date: Fri, 20 Nov 2009 18:43:12 -0600
+Subject: [PATCH 07/24] Add NV12 support in stridetransform
+
+---
+ gst-libs/gst/video/video.c | 3 +++
+ gst/stride/gststridetransform.c | 12 ++++--------
+ 2 files changed, 7 insertions(+), 8 deletions(-)
+
+diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c
+index 24f1ac8..ff9c4fb 100644
+--- a/gst-libs/gst/video/video.c
++++ b/gst-libs/gst/video/video.c
+@@ -2025,6 +2025,9 @@ gst_video_format_get_size_strided (GstVideoFormat format,
+ case GST_VIDEO_FORMAT_Y42B:
+ case GST_VIDEO_FORMAT_Y444:
+ return GST_ROUND_UP_4 (3 * rowstride * height);
++ case GST_VIDEO_FORMAT_NV12:
++ case GST_VIDEO_FORMAT_NV21:
++ return GST_ROUND_UP_4 (rowstride) * GST_ROUND_UP_2 (height) * 3 / 2;
+ default:
+ return 0;
+ }
+diff --git a/gst/stride/gststridetransform.c b/gst/stride/gststridetransform.c
+index ea52500..56207d0 100644
+--- a/gst/stride/gststridetransform.c
++++ b/gst/stride/gststridetransform.c
+@@ -2,7 +2,7 @@
+ *
+ * Copyright (C) 2009 Texas Instruments, Inc - http://www.ti.com/
+ *
+- * Description: V4L2 sink element
++ * Description: stride transform element
+ * Created on: Jul 30, 2009
+ * Author: Rob Clark <rob@ti.com>
+ *
+@@ -62,7 +62,7 @@ GST_ELEMENT_DETAILS ("Stride transform",
+
+ /* TODO: add rgb formats too! */
+ #define SUPPORTED_CAPS \
+- GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2, UYVY }", "[ 0, max ]")
++ GST_VIDEO_CAPS_YUV_STRIDED ("{ I420, YV12, YUY2, UYVY, NV12 }", "[ 0, max ]")
+
+
+ static GstStaticPadTemplate src_template =
+@@ -357,12 +357,10 @@ stridify (GstStrideTransform *self, guchar *strided, guchar *unstrided)
+ gint stride = self->out_rowstride;
+
+ switch (self->format) {
+-#if 0 /* TODO */
+ case GST_VIDEO_FORMAT_NV12:
+ g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
+- stridemove (strided, unstrided, stride, width, height * 1.5);
++ stridemove (strided, unstrided, stride, width, (GST_ROUND_UP_2 (height) * 3) / 2);
+ return GST_FLOW_OK;
+-#endif
+ case GST_VIDEO_FORMAT_I420:
+ case GST_VIDEO_FORMAT_YV12:
+ g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
+@@ -403,12 +401,10 @@ unstridify (GstStrideTransform *self, guchar *unstrided, guchar *strided)
+ gint stride = self->in_rowstride;
+
+ switch (self->format) {
+-#if 0 /* TODO */
+ case GST_VIDEO_FORMAT_NV12:
+ g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
+- stridemove (unstrided, strided, width, stride, height * 1.5);
++ stridemove (unstrided, strided, width, stride, (GST_ROUND_UP_2 (height) * 3) / 2);
+ return GST_FLOW_OK;
+-#endif
+ case GST_VIDEO_FORMAT_I420:
+ case GST_VIDEO_FORMAT_YV12:
+ g_return_val_if_fail (stride >= width, GST_FLOW_ERROR);
+--
+1.7.1
+