parent
ed0d693143
commit
cba47ecdae
@ -0,0 +1,560 @@
|
|||||||
|
commit 5d17bd9d2db93b7a653f870232bf0c0e95a1de3c
|
||||||
|
Author: Rémi Denis-Courmont <remi@remlab.net>
|
||||||
|
Date: Thu Jan 29 20:09:56 2015 +0200
|
||||||
|
|
||||||
|
chroma: remove dead CYUV support
|
||||||
|
|
||||||
|
CYUV is not a pixel format, at least it is not treated as such in VLC
|
||||||
|
outputs and encoders. CYUV is decoded to YUV 4:1:1 by libavcodec.
|
||||||
|
|
||||||
|
diff --git a/modules/video_chroma/i420_yuy2.c b/modules/video_chroma/i420_yuy2.c
|
||||||
|
index cd99dd6..4584f9e 100644
|
||||||
|
--- a/modules/video_chroma/i420_yuy2.c
|
||||||
|
+++ b/modules/video_chroma/i420_yuy2.c
|
||||||
|
@@ -44,13 +44,13 @@
|
||||||
|
#define SRC_FOURCC "I420,IYUV,YV12"
|
||||||
|
|
||||||
|
#if defined (MODULE_NAME_IS_i420_yuy2)
|
||||||
|
-# define DEST_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422,IUYV,cyuv,Y211"
|
||||||
|
+# define DEST_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422,IUYV,Y211"
|
||||||
|
# define VLC_TARGET
|
||||||
|
#elif defined (MODULE_NAME_IS_i420_yuy2_mmx)
|
||||||
|
-# define DEST_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422,IUYV,cyuv"
|
||||||
|
+# define DEST_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422,IUYV"
|
||||||
|
# define VLC_TARGET VLC_MMX
|
||||||
|
#elif defined (MODULE_NAME_IS_i420_yuy2_sse2)
|
||||||
|
-# define DEST_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422,IUYV,cyuv"
|
||||||
|
+# define DEST_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422,IUYV"
|
||||||
|
# define VLC_TARGET VLC_SSE
|
||||||
|
#elif defined (MODULE_NAME_IS_i420_yuy2_altivec)
|
||||||
|
# define DEST_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422"
|
||||||
|
@@ -70,9 +70,7 @@ static picture_t *I420_YVYU_Filter ( filter_t *, picture_t * );
|
||||||
|
static picture_t *I420_UYVY_Filter ( filter_t *, picture_t * );
|
||||||
|
#if !defined (MODULE_NAME_IS_i420_yuy2_altivec)
|
||||||
|
static void I420_IUYV ( filter_t *, picture_t *, picture_t * );
|
||||||
|
-static void I420_cyuv ( filter_t *, picture_t *, picture_t * );
|
||||||
|
static picture_t *I420_IUYV_Filter ( filter_t *, picture_t * );
|
||||||
|
-static picture_t *I420_cyuv_Filter ( filter_t *, picture_t * );
|
||||||
|
#endif
|
||||||
|
#if defined (MODULE_NAME_IS_i420_yuy2)
|
||||||
|
static void I420_Y211 ( filter_t *, picture_t *, picture_t * );
|
||||||
|
@@ -153,10 +151,6 @@ static int Activate( vlc_object_t *p_this )
|
||||||
|
case VLC_FOURCC('I','U','Y','V'):
|
||||||
|
p_filter->pf_video_filter = I420_IUYV_Filter;
|
||||||
|
break;
|
||||||
|
-
|
||||||
|
- case VLC_CODEC_CYUV:
|
||||||
|
- p_filter->pf_video_filter = I420_cyuv_Filter;
|
||||||
|
- break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (MODULE_NAME_IS_i420_yuy2)
|
||||||
|
@@ -194,7 +188,6 @@ VIDEO_FILTER_WRAPPER( I420_YVYU )
|
||||||
|
VIDEO_FILTER_WRAPPER( I420_UYVY )
|
||||||
|
#if !defined (MODULE_NAME_IS_i420_yuy2_altivec)
|
||||||
|
VIDEO_FILTER_WRAPPER( I420_IUYV )
|
||||||
|
-VIDEO_FILTER_WRAPPER( I420_cyuv )
|
||||||
|
#endif
|
||||||
|
#if defined (MODULE_NAME_IS_i420_yuy2)
|
||||||
|
VIDEO_FILTER_WRAPPER( I420_Y211 )
|
||||||
|
@@ -849,136 +842,6 @@ static void I420_IUYV( filter_t *p_filter, picture_t *p_source,
|
||||||
|
/* FIXME: TODO ! */
|
||||||
|
msg_Err( p_filter, "I420_IUYV unimplemented, please harass <sam@zoy.org>" );
|
||||||
|
}
|
||||||
|
-
|
||||||
|
-/*****************************************************************************
|
||||||
|
- * I420_cyuv: planar YUV 4:2:0 to upside-down packed UYVY 4:2:2
|
||||||
|
- *****************************************************************************/
|
||||||
|
-VLC_TARGET
|
||||||
|
-static void I420_cyuv( filter_t *p_filter, picture_t *p_source,
|
||||||
|
- picture_t *p_dest )
|
||||||
|
-{
|
||||||
|
- uint8_t *p_line1 = p_dest->p->p_pixels +
|
||||||
|
- p_dest->p->i_visible_lines * p_dest->p->i_pitch
|
||||||
|
- + p_dest->p->i_pitch;
|
||||||
|
- uint8_t *p_line2 = p_dest->p->p_pixels +
|
||||||
|
- p_dest->p->i_visible_lines * p_dest->p->i_pitch;
|
||||||
|
- uint8_t *p_y1, *p_y2 = p_source->Y_PIXELS;
|
||||||
|
- uint8_t *p_u = p_source->U_PIXELS;
|
||||||
|
- uint8_t *p_v = p_source->V_PIXELS;
|
||||||
|
-
|
||||||
|
- int i_x, i_y;
|
||||||
|
-
|
||||||
|
- const int i_source_margin = p_source->p[0].i_pitch
|
||||||
|
- - p_source->p[0].i_visible_pitch;
|
||||||
|
- const int i_source_margin_c = p_source->p[1].i_pitch
|
||||||
|
- - p_source->p[1].i_visible_pitch;
|
||||||
|
- const int i_dest_margin = p_dest->p->i_pitch
|
||||||
|
- - p_dest->p->i_visible_pitch;
|
||||||
|
-
|
||||||
|
-#if !defined(MODULE_NAME_IS_i420_yuy2_sse2)
|
||||||
|
- for( i_y = p_filter->fmt_in.video.i_height / 2 ; i_y-- ; )
|
||||||
|
- {
|
||||||
|
- p_line1 -= 3 * p_dest->p->i_pitch;
|
||||||
|
- p_line2 -= 3 * p_dest->p->i_pitch;
|
||||||
|
-
|
||||||
|
- p_y1 = p_y2;
|
||||||
|
- p_y2 += p_source->p[Y_PLANE].i_pitch;
|
||||||
|
-
|
||||||
|
- for( i_x = p_filter->fmt_in.video.i_width / 8 ; i_x-- ; )
|
||||||
|
- {
|
||||||
|
-#if !defined (MODULE_NAME_IS_i420_yuy2_mmx)
|
||||||
|
- C_YUV420_UYVY( );
|
||||||
|
- C_YUV420_UYVY( );
|
||||||
|
- C_YUV420_UYVY( );
|
||||||
|
- C_YUV420_UYVY( );
|
||||||
|
-#else
|
||||||
|
- MMX_CALL( MMX_YUV420_UYVY );
|
||||||
|
-#endif
|
||||||
|
- }
|
||||||
|
- for( i_x = ( p_filter->fmt_in.video.i_width % 8 ) / 2; i_x-- ; )
|
||||||
|
- {
|
||||||
|
- C_YUV420_UYVY( );
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- p_y1 += i_source_margin;
|
||||||
|
- p_y2 += i_source_margin;
|
||||||
|
- p_u += i_source_margin_c;
|
||||||
|
- p_v += i_source_margin_c;
|
||||||
|
- p_line1 += i_dest_margin;
|
||||||
|
- p_line2 += i_dest_margin;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
-#if defined (MODULE_NAME_IS_i420_yuy2_mmx)
|
||||||
|
- /* re-enable FPU registers */
|
||||||
|
- MMX_END;
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
-#else // defined(MODULE_NAME_IS_i420_yuy2_sse2)
|
||||||
|
- /*
|
||||||
|
- ** SSE2 128 bits fetch/store instructions are faster
|
||||||
|
- ** if memory access is 16 bytes aligned
|
||||||
|
- */
|
||||||
|
- if( 0 == (15 & (p_source->p[Y_PLANE].i_pitch|p_dest->p->i_pitch|
|
||||||
|
- ((intptr_t)p_line2|(intptr_t)p_y2))) )
|
||||||
|
- {
|
||||||
|
- /* use faster SSE2 aligned fetch and store */
|
||||||
|
- for( i_y = p_filter->fmt_in.video.i_height / 2 ; i_y-- ; )
|
||||||
|
- {
|
||||||
|
- p_line1 = p_line2;
|
||||||
|
- p_line2 += p_dest->p->i_pitch;
|
||||||
|
-
|
||||||
|
- p_y1 = p_y2;
|
||||||
|
- p_y2 += p_source->p[Y_PLANE].i_pitch;
|
||||||
|
-
|
||||||
|
- for( i_x = p_filter->fmt_in.video.i_width / 16 ; i_x-- ; )
|
||||||
|
- {
|
||||||
|
- SSE2_CALL( SSE2_YUV420_UYVY_ALIGNED );
|
||||||
|
- }
|
||||||
|
- for( i_x = ( p_filter->fmt_in.video.i_width % 16 ) / 2; i_x-- ; )
|
||||||
|
- {
|
||||||
|
- C_YUV420_UYVY( );
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- p_y1 += i_source_margin;
|
||||||
|
- p_y2 += i_source_margin;
|
||||||
|
- p_u += i_source_margin_c;
|
||||||
|
- p_v += i_source_margin_c;
|
||||||
|
- p_line1 += i_dest_margin;
|
||||||
|
- p_line2 += i_dest_margin;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- /* use slower SSE2 unaligned fetch and store */
|
||||||
|
- for( i_y = p_filter->fmt_in.video.i_height / 2 ; i_y-- ; )
|
||||||
|
- {
|
||||||
|
- p_line1 = p_line2;
|
||||||
|
- p_line2 += p_dest->p->i_pitch;
|
||||||
|
-
|
||||||
|
- p_y1 = p_y2;
|
||||||
|
- p_y2 += p_source->p[Y_PLANE].i_pitch;
|
||||||
|
-
|
||||||
|
- for( i_x = p_filter->fmt_in.video.i_width / 16 ; i_x-- ; )
|
||||||
|
- {
|
||||||
|
- SSE2_CALL( SSE2_YUV420_UYVY_UNALIGNED );
|
||||||
|
- }
|
||||||
|
- for( i_x = ( p_filter->fmt_in.video.i_width % 16 ) / 2; i_x-- ; )
|
||||||
|
- {
|
||||||
|
- C_YUV420_UYVY( );
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- p_y1 += i_source_margin;
|
||||||
|
- p_y2 += i_source_margin;
|
||||||
|
- p_u += i_source_margin_c;
|
||||||
|
- p_v += i_source_margin_c;
|
||||||
|
- p_line1 += i_dest_margin;
|
||||||
|
- p_line2 += i_dest_margin;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- /* make sure all SSE2 stores are visible thereafter */
|
||||||
|
- SSE2_END;
|
||||||
|
-#endif // defined(MODULE_NAME_IS_i420_yuy2_sse2)
|
||||||
|
-}
|
||||||
|
#endif // !defined (MODULE_NAME_IS_i420_yuy2_altivec)
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
diff --git a/modules/video_chroma/i422_yuy2.c b/modules/video_chroma/i422_yuy2.c
|
||||||
|
index 383fb3e..9099cfc 100644
|
||||||
|
--- a/modules/video_chroma/i422_yuy2.c
|
||||||
|
+++ b/modules/video_chroma/i422_yuy2.c
|
||||||
|
@@ -39,9 +39,9 @@
|
||||||
|
|
||||||
|
#define SRC_FOURCC "I422"
|
||||||
|
#if defined (MODULE_NAME_IS_i422_yuy2)
|
||||||
|
-# define DEST_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422,IUYV,cyuv,Y211"
|
||||||
|
+# define DEST_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422,IUYV,Y211"
|
||||||
|
#else
|
||||||
|
-# define DEST_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422,IUYV,cyuv"
|
||||||
|
+# define DEST_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422,IUYV"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
@@ -53,12 +53,10 @@ static void I422_YUY2 ( filter_t *, picture_t *, picture_t * );
|
||||||
|
static void I422_YVYU ( filter_t *, picture_t *, picture_t * );
|
||||||
|
static void I422_UYVY ( filter_t *, picture_t *, picture_t * );
|
||||||
|
static void I422_IUYV ( filter_t *, picture_t *, picture_t * );
|
||||||
|
-static void I422_cyuv ( filter_t *, picture_t *, picture_t * );
|
||||||
|
static picture_t *I422_YUY2_Filter ( filter_t *, picture_t * );
|
||||||
|
static picture_t *I422_YVYU_Filter ( filter_t *, picture_t * );
|
||||||
|
static picture_t *I422_UYVY_Filter ( filter_t *, picture_t * );
|
||||||
|
static picture_t *I422_IUYV_Filter ( filter_t *, picture_t * );
|
||||||
|
-static picture_t *I422_cyuv_Filter ( filter_t *, picture_t * );
|
||||||
|
#if defined (MODULE_NAME_IS_i422_yuy2)
|
||||||
|
static void I422_Y211 ( filter_t *, picture_t *, picture_t * );
|
||||||
|
static picture_t *I422_Y211_Filter ( filter_t *, picture_t * );
|
||||||
|
@@ -130,10 +128,6 @@ static int Activate( vlc_object_t *p_this )
|
||||||
|
p_filter->pf_video_filter = I422_IUYV_Filter;
|
||||||
|
break;
|
||||||
|
|
||||||
|
- case VLC_CODEC_CYUV:
|
||||||
|
- p_filter->pf_video_filter = I422_cyuv_Filter;
|
||||||
|
- break;
|
||||||
|
-
|
||||||
|
#if defined (MODULE_NAME_IS_i422_yuy2)
|
||||||
|
case VLC_CODEC_Y211:
|
||||||
|
p_filter->pf_video_filter = I422_Y211_Filter;
|
||||||
|
@@ -157,7 +151,6 @@ VIDEO_FILTER_WRAPPER( I422_YUY2 )
|
||||||
|
VIDEO_FILTER_WRAPPER( I422_YVYU )
|
||||||
|
VIDEO_FILTER_WRAPPER( I422_UYVY )
|
||||||
|
VIDEO_FILTER_WRAPPER( I422_IUYV )
|
||||||
|
-VIDEO_FILTER_WRAPPER( I422_cyuv )
|
||||||
|
#if defined (MODULE_NAME_IS_i422_yuy2)
|
||||||
|
VIDEO_FILTER_WRAPPER( I422_Y211 )
|
||||||
|
#endif
|
||||||
|
@@ -456,104 +449,6 @@ static void I422_IUYV( filter_t *p_filter, picture_t *p_source,
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
- * I422_cyuv: planar YUV 4:2:2 to upside-down packed UYVY 4:2:2
|
||||||
|
- *****************************************************************************/
|
||||||
|
-VLC_TARGET
|
||||||
|
-static void I422_cyuv( filter_t *p_filter, picture_t *p_source,
|
||||||
|
- picture_t *p_dest )
|
||||||
|
-{
|
||||||
|
- uint8_t *p_line = p_dest->p->p_pixels + p_dest->p->i_visible_lines * p_dest->p->i_pitch;
|
||||||
|
- uint8_t *p_y = p_source->Y_PIXELS;
|
||||||
|
- uint8_t *p_u = p_source->U_PIXELS;
|
||||||
|
- uint8_t *p_v = p_source->V_PIXELS;
|
||||||
|
-
|
||||||
|
- int i_x, i_y;
|
||||||
|
-
|
||||||
|
- const int i_source_margin = p_source->p[0].i_pitch
|
||||||
|
- - p_source->p[0].i_visible_pitch;
|
||||||
|
- const int i_source_margin_c = p_source->p[1].i_pitch
|
||||||
|
- - p_source->p[1].i_visible_pitch;
|
||||||
|
- const int i_dest_margin = p_dest->p->i_pitch
|
||||||
|
- - p_dest->p->i_visible_pitch;
|
||||||
|
-
|
||||||
|
-#if defined (MODULE_NAME_IS_i422_yuy2_sse2)
|
||||||
|
-
|
||||||
|
- if( 0 == (15 & (p_source->p[Y_PLANE].i_pitch|p_dest->p->i_pitch|
|
||||||
|
- ((intptr_t)p_line|(intptr_t)p_y))) )
|
||||||
|
- {
|
||||||
|
- /* use faster SSE2 aligned fetch and store */
|
||||||
|
- for( i_y = p_filter->fmt_in.video.i_height ; i_y-- ; )
|
||||||
|
- {
|
||||||
|
- p_line -= 2 * p_dest->p->i_pitch;
|
||||||
|
-
|
||||||
|
- for( i_x = p_filter->fmt_in.video.i_width / 16 ; i_x-- ; )
|
||||||
|
- {
|
||||||
|
- SSE2_CALL( SSE2_YUV422_UYVY_ALIGNED );
|
||||||
|
- }
|
||||||
|
- for( i_x = ( p_filter->fmt_in.video.i_width % 16 ) / 2; i_x-- ; )
|
||||||
|
- {
|
||||||
|
- C_YUV422_UYVY( p_line, p_y, p_u, p_v );
|
||||||
|
- }
|
||||||
|
- p_y += i_source_margin;
|
||||||
|
- p_u += i_source_margin_c;
|
||||||
|
- p_v += i_source_margin_c;
|
||||||
|
- p_line += i_dest_margin;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- else {
|
||||||
|
- /* use slower SSE2 unaligned fetch and store */
|
||||||
|
- for( i_y = p_filter->fmt_in.video.i_height ; i_y-- ; )
|
||||||
|
- {
|
||||||
|
- p_line -= 2 * p_dest->p->i_pitch;
|
||||||
|
-
|
||||||
|
- for( i_x = p_filter->fmt_in.video.i_width / 16 ; i_x-- ; )
|
||||||
|
- {
|
||||||
|
- SSE2_CALL( SSE2_YUV422_UYVY_UNALIGNED );
|
||||||
|
- }
|
||||||
|
- for( i_x = ( p_filter->fmt_in.video.i_width % 16 ) / 2; i_x-- ; )
|
||||||
|
- {
|
||||||
|
- C_YUV422_UYVY( p_line, p_y, p_u, p_v );
|
||||||
|
- }
|
||||||
|
- p_y += i_source_margin;
|
||||||
|
- p_u += i_source_margin_c;
|
||||||
|
- p_v += i_source_margin_c;
|
||||||
|
- p_line += i_dest_margin;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- SSE2_END;
|
||||||
|
-
|
||||||
|
-#else
|
||||||
|
-
|
||||||
|
- for( i_y = p_filter->fmt_in.video.i_height ; i_y-- ; )
|
||||||
|
- {
|
||||||
|
- for( i_x = p_filter->fmt_in.video.i_width / 8 ; i_x-- ; )
|
||||||
|
- {
|
||||||
|
- p_line -= 2 * p_dest->p->i_pitch;
|
||||||
|
-
|
||||||
|
-#if defined (MODULE_NAME_IS_i422_yuy2)
|
||||||
|
- C_YUV422_UYVY( p_line, p_y, p_u, p_v );
|
||||||
|
- C_YUV422_UYVY( p_line, p_y, p_u, p_v );
|
||||||
|
- C_YUV422_UYVY( p_line, p_y, p_u, p_v );
|
||||||
|
- C_YUV422_UYVY( p_line, p_y, p_u, p_v );
|
||||||
|
-#elif defined (MODULE_NAME_IS_i422_yuy2_mmx)
|
||||||
|
- MMX_CALL( MMX_YUV422_UYVY );
|
||||||
|
-#endif
|
||||||
|
- }
|
||||||
|
- p_y += i_source_margin;
|
||||||
|
- p_u += i_source_margin_c;
|
||||||
|
- p_v += i_source_margin_c;
|
||||||
|
- p_line += i_dest_margin;
|
||||||
|
- }
|
||||||
|
-#if defined (MODULE_NAME_IS_i422_yuy2_mmx)
|
||||||
|
- MMX_END;
|
||||||
|
-#elif defined (MODULE_NAME_IS_i422_yuy2_sse2)
|
||||||
|
- SSE2_END;
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
-#endif
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-/*****************************************************************************
|
||||||
|
* I422_Y211: planar YUV 4:2:2 to packed YUYV 2:1:1
|
||||||
|
*****************************************************************************/
|
||||||
|
#if defined (MODULE_NAME_IS_i422_yuy2)
|
||||||
|
diff --git a/modules/video_chroma/yuy2_i420.c b/modules/video_chroma/yuy2_i420.c
|
||||||
|
index 134cfa5..4adff8b 100644
|
||||||
|
--- a/modules/video_chroma/yuy2_i420.c
|
||||||
|
+++ b/modules/video_chroma/yuy2_i420.c
|
||||||
|
@@ -33,7 +33,7 @@
|
||||||
|
#include <vlc_plugin.h>
|
||||||
|
#include <vlc_filter.h>
|
||||||
|
|
||||||
|
-#define SRC_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422,cyuv"
|
||||||
|
+#define SRC_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422"
|
||||||
|
#define DEST_FOURCC "I420"
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
@@ -44,12 +44,10 @@ static int Activate ( vlc_object_t * );
|
||||||
|
static void YUY2_I420 ( filter_t *, picture_t *, picture_t * );
|
||||||
|
static void YVYU_I420 ( filter_t *, picture_t *, picture_t * );
|
||||||
|
static void UYVY_I420 ( filter_t *, picture_t *, picture_t * );
|
||||||
|
-static void cyuv_I420 ( filter_t *, picture_t *, picture_t * );
|
||||||
|
|
||||||
|
static picture_t *YUY2_I420_Filter ( filter_t *, picture_t * );
|
||||||
|
static picture_t *YVYU_I420_Filter ( filter_t *, picture_t * );
|
||||||
|
static picture_t *UYVY_I420_Filter ( filter_t *, picture_t * );
|
||||||
|
-static picture_t *cyuv_I420_Filter ( filter_t *, picture_t * );
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
* Module descriptor
|
||||||
|
@@ -97,10 +95,6 @@ static int Activate( vlc_object_t *p_this )
|
||||||
|
p_filter->pf_video_filter = UYVY_I420_Filter;
|
||||||
|
break;
|
||||||
|
|
||||||
|
- case VLC_CODEC_CYUV:
|
||||||
|
- p_filter->pf_video_filter = cyuv_I420_Filter;
|
||||||
|
- break;
|
||||||
|
-
|
||||||
|
default:
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
@@ -116,7 +110,6 @@ static int Activate( vlc_object_t *p_this )
|
||||||
|
VIDEO_FILTER_WRAPPER( YUY2_I420 )
|
||||||
|
VIDEO_FILTER_WRAPPER( YVYU_I420 )
|
||||||
|
VIDEO_FILTER_WRAPPER( UYVY_I420 )
|
||||||
|
-VIDEO_FILTER_WRAPPER( cyuv_I420 )
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
* YUY2_I420: packed YUY2 4:2:2 to planar YUV 4:2:0
|
||||||
|
@@ -321,72 +314,3 @@ static void UYVY_I420( filter_t *p_filter, picture_t *p_source,
|
||||||
|
b_skip = !b_skip;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
-
|
||||||
|
-/*****************************************************************************
|
||||||
|
- * cyuv_I420: upside-down packed UYVY 4:2:2 to planar YUV 4:2:0
|
||||||
|
- * FIXME
|
||||||
|
- *****************************************************************************/
|
||||||
|
-static void cyuv_I420( filter_t *p_filter, picture_t *p_source,
|
||||||
|
- picture_t *p_dest )
|
||||||
|
-{
|
||||||
|
- uint8_t *p_line = p_source->p->p_pixels;
|
||||||
|
-
|
||||||
|
- uint8_t *p_y = p_dest->Y_PIXELS;
|
||||||
|
- uint8_t *p_u = p_dest->U_PIXELS;
|
||||||
|
- uint8_t *p_v = p_dest->V_PIXELS;
|
||||||
|
-
|
||||||
|
- int i_x, i_y;
|
||||||
|
-
|
||||||
|
- const int i_dest_margin = p_dest->p[0].i_pitch
|
||||||
|
- - p_dest->p[0].i_visible_pitch;
|
||||||
|
- const int i_dest_margin_c = p_dest->p[1].i_pitch
|
||||||
|
- - p_dest->p[1].i_visible_pitch;
|
||||||
|
- const int i_source_margin = p_source->p->i_pitch
|
||||||
|
- - p_source->p->i_visible_pitch;
|
||||||
|
-
|
||||||
|
- bool b_skip = false;
|
||||||
|
-
|
||||||
|
- for( i_y = p_filter->fmt_out.video.i_height ; i_y-- ; )
|
||||||
|
- {
|
||||||
|
- if( b_skip )
|
||||||
|
- {
|
||||||
|
- for( i_x = p_filter->fmt_out.video.i_width / 8 ; i_x-- ; )
|
||||||
|
- {
|
||||||
|
- #define C_cyuv_YUV422_skip( p_line, p_y, p_u, p_v ) \
|
||||||
|
- *p_y++ = *p_line++; p_line++; \
|
||||||
|
- *p_y++ = *p_line++; p_line++
|
||||||
|
- C_cyuv_YUV422_skip( p_line, p_y, p_u, p_v );
|
||||||
|
- C_cyuv_YUV422_skip( p_line, p_y, p_u, p_v );
|
||||||
|
- C_cyuv_YUV422_skip( p_line, p_y, p_u, p_v );
|
||||||
|
- C_cyuv_YUV422_skip( p_line, p_y, p_u, p_v );
|
||||||
|
- }
|
||||||
|
- for( i_x = ( p_filter->fmt_out.video.i_width % 8 ) / 2; i_x-- ; )
|
||||||
|
- {
|
||||||
|
- C_cyuv_YUV422_skip( p_line, p_y, p_u, p_v );
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- for( i_x = p_filter->fmt_out.video.i_width / 8 ; i_x-- ; )
|
||||||
|
- {
|
||||||
|
- #define C_cyuv_YUV422( p_line, p_y, p_u, p_v ) \
|
||||||
|
- *p_y++ = *p_line++; *p_v++ = *p_line++; \
|
||||||
|
- *p_y++ = *p_line++; *p_u++ = *p_line++
|
||||||
|
- C_cyuv_YUV422( p_line, p_y, p_u, p_v );
|
||||||
|
- C_cyuv_YUV422( p_line, p_y, p_u, p_v );
|
||||||
|
- C_cyuv_YUV422( p_line, p_y, p_u, p_v );
|
||||||
|
- C_cyuv_YUV422( p_line, p_y, p_u, p_v );
|
||||||
|
- }
|
||||||
|
- for( i_x = ( p_filter->fmt_out.video.i_width % 8 ) / 2; i_x-- ; )
|
||||||
|
- {
|
||||||
|
- C_cyuv_YUV422( p_line, p_y, p_u, p_v );
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- p_line += i_source_margin;
|
||||||
|
- p_y += i_dest_margin;
|
||||||
|
- p_u += i_dest_margin_c;
|
||||||
|
- p_v += i_dest_margin_c;
|
||||||
|
-
|
||||||
|
- b_skip = !b_skip;
|
||||||
|
- }
|
||||||
|
-}
|
||||||
|
diff --git a/modules/video_chroma/yuy2_i422.c b/modules/video_chroma/yuy2_i422.c
|
||||||
|
index 8ab149e..d748be6 100644
|
||||||
|
--- a/modules/video_chroma/yuy2_i422.c
|
||||||
|
+++ b/modules/video_chroma/yuy2_i422.c
|
||||||
|
@@ -33,7 +33,7 @@
|
||||||
|
#include <vlc_plugin.h>
|
||||||
|
#include <vlc_filter.h>
|
||||||
|
|
||||||
|
-#define SRC_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422,cyuv"
|
||||||
|
+#define SRC_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422"
|
||||||
|
#define DEST_FOURCC "I422"
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
@@ -44,11 +44,9 @@ static int Activate ( vlc_object_t * );
|
||||||
|
static void YUY2_I422 ( filter_t *, picture_t *, picture_t * );
|
||||||
|
static void YVYU_I422 ( filter_t *, picture_t *, picture_t * );
|
||||||
|
static void UYVY_I422 ( filter_t *, picture_t *, picture_t * );
|
||||||
|
-static void cyuv_I422 ( filter_t *, picture_t *, picture_t * );
|
||||||
|
static picture_t *YUY2_I422_Filter ( filter_t *, picture_t * );
|
||||||
|
static picture_t *YVYU_I422_Filter ( filter_t *, picture_t * );
|
||||||
|
static picture_t *UYVY_I422_Filter ( filter_t *, picture_t * );
|
||||||
|
-static picture_t *cyuv_I422_Filter ( filter_t *, picture_t * );
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
* Module descriptor
|
||||||
|
@@ -96,10 +94,6 @@ static int Activate( vlc_object_t *p_this )
|
||||||
|
p_filter->pf_video_filter = UYVY_I422_Filter;
|
||||||
|
break;
|
||||||
|
|
||||||
|
- case VLC_CODEC_CYUV:
|
||||||
|
- p_filter->pf_video_filter = cyuv_I422_Filter;
|
||||||
|
- break;
|
||||||
|
-
|
||||||
|
default:
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
@@ -116,7 +110,6 @@ static int Activate( vlc_object_t *p_this )
|
||||||
|
VIDEO_FILTER_WRAPPER( YUY2_I422 )
|
||||||
|
VIDEO_FILTER_WRAPPER( YVYU_I422 )
|
||||||
|
VIDEO_FILTER_WRAPPER( UYVY_I422 )
|
||||||
|
-VIDEO_FILTER_WRAPPER( cyuv_I422 )
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
* YUY2_I422: packed YUY2 4:2:2 to planar YUV 4:2:2
|
||||||
|
@@ -249,48 +242,3 @@ static void UYVY_I422( filter_t *p_filter, picture_t *p_source,
|
||||||
|
p_v += i_dest_margin_c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
-
|
||||||
|
-/*****************************************************************************
|
||||||
|
- * cyuv_I422: upside-down packed UYVY 4:2:2 to planar YUV 4:2:2
|
||||||
|
- * FIXME
|
||||||
|
- *****************************************************************************/
|
||||||
|
-static void cyuv_I422( filter_t *p_filter, picture_t *p_source,
|
||||||
|
- picture_t *p_dest )
|
||||||
|
-{
|
||||||
|
- uint8_t *p_line = p_source->p->p_pixels;
|
||||||
|
-
|
||||||
|
- uint8_t *p_y = p_dest->Y_PIXELS;
|
||||||
|
- uint8_t *p_u = p_dest->U_PIXELS;
|
||||||
|
- uint8_t *p_v = p_dest->V_PIXELS;
|
||||||
|
-
|
||||||
|
- int i_x, i_y;
|
||||||
|
-
|
||||||
|
- const int i_dest_margin = p_dest->p[0].i_pitch
|
||||||
|
- - p_dest->p[0].i_visible_pitch;
|
||||||
|
- const int i_dest_margin_c = p_dest->p[1].i_pitch
|
||||||
|
- - p_dest->p[1].i_visible_pitch;
|
||||||
|
- const int i_source_margin = p_source->p->i_pitch
|
||||||
|
- - p_source->p->i_visible_pitch;
|
||||||
|
-
|
||||||
|
- for( i_y = p_filter->fmt_out.video.i_height ; i_y-- ; )
|
||||||
|
- {
|
||||||
|
- for( i_x = p_filter->fmt_out.video.i_width / 8 ; i_x-- ; )
|
||||||
|
- {
|
||||||
|
-#define C_cyuv_YUV422( p_line, p_y, p_u, p_v ) \
|
||||||
|
- *p_y++ = *p_line++; *p_v++ = *p_line++; \
|
||||||
|
- *p_y++ = *p_line++; *p_u++ = *p_line++
|
||||||
|
- C_cyuv_YUV422( p_line, p_y, p_u, p_v );
|
||||||
|
- C_cyuv_YUV422( p_line, p_y, p_u, p_v );
|
||||||
|
- C_cyuv_YUV422( p_line, p_y, p_u, p_v );
|
||||||
|
- C_cyuv_YUV422( p_line, p_y, p_u, p_v );
|
||||||
|
- }
|
||||||
|
- for( i_x = ( p_filter->fmt_out.video.i_width % 8 ) / 2; i_x-- ; )
|
||||||
|
- {
|
||||||
|
- C_cyuv_YUV422( p_line, p_y, p_u, p_v );
|
||||||
|
- }
|
||||||
|
- p_line += i_source_margin;
|
||||||
|
- p_y += i_dest_margin;
|
||||||
|
- p_u += i_dest_margin_c;
|
||||||
|
- p_v += i_dest_margin_c;
|
||||||
|
- }
|
||||||
|
-}
|
@ -0,0 +1,33 @@
|
|||||||
|
commit 0dd405cca1425b3496e0659c7b124cb188cf3166
|
||||||
|
Author: Nicolas Chauvet <kwizart@gmail.com>
|
||||||
|
Date: Sun Apr 26 23:01:57 2015 +0200
|
||||||
|
|
||||||
|
Fix SSE caling convention without SSE/SSE2 enabled
|
||||||
|
|
||||||
|
video_chroma/i420_yuy2.c: In function 'I420_YVYU_Filter':
|
||||||
|
video_chroma/i420_yuy2.c:187:23: error: calling 'I420_YVYU.isra.1'
|
||||||
|
with SSE caling convention without SSE/SSE2 enabled
|
||||||
|
VIDEO_FILTER_WRAPPER( I420_YVYU )
|
||||||
|
^
|
||||||
|
../include/vlc_filter.h:266:13: note: in definition of macro 'VIDEO_FILTER_WRAPPER'
|
||||||
|
name( p_filter, p_pic, p_outpic ); \
|
||||||
|
^
|
||||||
|
|
||||||
|
diff --git a/modules/video_chroma/Makefile.am b/modules/video_chroma/Makefile.am
|
||||||
|
index aa1a826..b1bb426 100644
|
||||||
|
--- a/modules/video_chroma/Makefile.am
|
||||||
|
+++ b/modules/video_chroma/Makefile.am
|
||||||
|
@@ -84,11 +84,11 @@ libi420_rgb_sse2_plugin_la_SOURCES = video_chroma/i420_rgb.c video_chroma/i420_r
|
||||||
|
libi420_rgb_sse2_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DSSE2
|
||||||
|
|
||||||
|
libi420_yuy2_sse2_plugin_la_SOURCES = video_chroma/i420_yuy2.c video_chroma/i420_yuy2.h
|
||||||
|
-libi420_yuy2_sse2_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) \
|
||||||
|
+libi420_yuy2_sse2_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DSSE2 \
|
||||||
|
-DMODULE_NAME_IS_i420_yuy2_sse2
|
||||||
|
|
||||||
|
libi422_yuy2_sse2_plugin_la_SOURCES = video_chroma/i422_yuy2.c video_chroma/i422_yuy2.h
|
||||||
|
-libi422_yuy2_sse2_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) \
|
||||||
|
+libi422_yuy2_sse2_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DSSE2 \
|
||||||
|
-DMODULE_NAME_IS_i422_yuy2_sse2
|
||||||
|
|
||||||
|
if HAVE_SSE2
|
Loading…
Reference in new issue