Search
SailfishOS Open Build Service
>
Projects
>
home:sledge
:
branches:nemo:devel:hw:ti:omap4:common
>
gst-plugins-base
> 0007-Add-NV12-support-in-stridetransform.patch
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File 0007-Add-NV12-support-in-stridetransform.patch of Package gst-plugins-base
From e4838843c44e7ccdb41cd3afe5ec85109d22b64c 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/38] 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 5003d62..40ae745 100644 --- a/gst-libs/gst/video/video.c +++ b/gst-libs/gst/video/video.c @@ -2213,6 +2213,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.5.4