#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_filter.h>
-#include <vlc_vout.h>
#define SRC_FOURCC "YUY2,YUNV,YVYU,UYVY,UYNV,Y422,cyuv"
#define DEST_FOURCC "I422"
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
*****************************************************************************/
-vlc_module_begin();
- set_description( N_("Conversions from " SRC_FOURCC " to " DEST_FOURCC) );
- set_capability( "chroma", 80 );
- set_callbacks( Activate, NULL );
-vlc_module_end();
+vlc_module_begin ()
+ set_description( N_("Conversions from " SRC_FOURCC " to " DEST_FOURCC) )
+ set_capability( "video filter2", 80 )
+ set_callbacks( Activate, NULL )
+vlc_module_end ()
/*****************************************************************************
* Activate: allocate a chroma function
return -1;
}
+ if( p_filter->fmt_in.video.i_width != p_filter->fmt_out.video.i_width
+ || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height )
+ return -1;
+
switch( p_filter->fmt_out.video.i_chroma )
{
- case VLC_FOURCC('I','4','2','2'):
+ case VLC_CODEC_I422:
switch( p_filter->fmt_in.video.i_chroma )
{
- case VLC_FOURCC('Y','U','Y','2'):
- case VLC_FOURCC('Y','U','N','V'):
- p_filter->pf_video_filter_io = YUY2_I422;
+ case VLC_CODEC_YUYV:
+ p_filter->pf_video_filter = YUY2_I422_Filter;
break;
- case VLC_FOURCC('Y','V','Y','U'):
- p_filter->pf_video_filter_io = YVYU_I422;
+ case VLC_CODEC_YVYU:
+ p_filter->pf_video_filter = YVYU_I422_Filter;
break;
- case VLC_FOURCC('U','Y','V','Y'):
- case VLC_FOURCC('U','Y','N','V'):
- case VLC_FOURCC('Y','4','2','2'):
- p_filter->pf_video_filter_io = UYVY_I422;
+ case VLC_CODEC_UYVY:
+ p_filter->pf_video_filter = UYVY_I422_Filter;
break;
- case VLC_FOURCC('c','y','u','v'):
- p_filter->pf_video_filter_io = cyuv_I422;
+ case VLC_CODEC_CYUV:
+ p_filter->pf_video_filter = cyuv_I422_Filter;
break;
default:
/* Following functions are local */
+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
*****************************************************************************/