- switch( p_filter->fmt_in.video.i_chroma )
- {
- case VLC_FOURCC('Y','U','V','A'):
- switch( p_filter->fmt_out.video.i_chroma )
- {
- case VLC_FOURCC('I','4','2','0'):
- case VLC_FOURCC('Y','V','1','2'):
- BlendI420( p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height, i_alpha );
- return;
- case VLC_FOURCC('Y','U','Y','2'):
- case VLC_FOURCC('U','Y','V','Y'):
- case VLC_FOURCC('Y','V','Y','U'):
- BlendYUVPacked( p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height, i_alpha );
- return;
- case VLC_FOURCC('R','V','1','6'):
- BlendR16( p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height, i_alpha );
- return;
- case VLC_FOURCC('R','V','2','4'):
- case VLC_FOURCC('R','V','3','2'):
- BlendR24( p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height, i_alpha );
- return;
- }
- case VLC_FOURCC('Y','U','V','P'):
- switch( p_filter->fmt_out.video.i_chroma )
- {
- case VLC_FOURCC('I','4','2','0'):
- case VLC_FOURCC('Y','V','1','2'):
- BlendPalI420( p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height, i_alpha );
- return;
- case VLC_FOURCC('Y','U','Y','2'):
- case VLC_FOURCC('U','Y','V','Y'):
- case VLC_FOURCC('Y','V','Y','U'):
- BlendPalYUVPacked( p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height, i_alpha );
- return;
- case VLC_FOURCC('R','V','1','6'):
- case VLC_FOURCC('R','V','2','4'):
- case VLC_FOURCC('R','V','3','2'):
- BlendPalRV( p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height, i_alpha );
- return;
- }
- case VLC_FOURCC('Y','V','1','2'):
- case VLC_FOURCC('I','4','2','0'):
- switch( p_filter->fmt_out.video.i_chroma )
- {
- case VLC_FOURCC('I','4','2','0'):
- case VLC_FOURCC('Y','V','1','2'):
- if( i_alpha == 0xff )
- BlendI420I420_no_alpha(
- p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height );
- else
- BlendI420I420( p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height, i_alpha );
- return;
- case VLC_FOURCC('Y','U','Y','2'):
- case VLC_FOURCC('U','Y','V','Y'):
- case VLC_FOURCC('Y','V','Y','U'):
- BlendI420YUVPacked( p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height, i_alpha );
- return;
- case VLC_FOURCC('R','V','1','6'):
- BlendI420R16( p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height, i_alpha );
- return;
- case VLC_FOURCC('R','V','2','4'):
- case VLC_FOURCC('R','V','3','2'):
- BlendI420R24( p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height, i_alpha );
- return;
- }
- case VLC_FOURCC('R','G','B','A'):
- switch( p_filter->fmt_out.video.i_chroma )
- {
- case VLC_FOURCC('I','4','2','0'):
- case VLC_FOURCC('Y','V','1','2'):
- BlendRGBAI420( p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height, i_alpha );
- return;
- case VLC_FOURCC('Y','U','Y','2'):
- case VLC_FOURCC('U','Y','V','Y'):
- case VLC_FOURCC('Y','V','Y','U'):
- BlendRGBAYUVPacked( p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height, i_alpha );
- return;
- case VLC_FOURCC('R','V','2','4'):
- case VLC_FOURCC('R','V','3','2'):
- BlendRGBAR24( p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height, i_alpha );
- return;
- case VLC_FOURCC('R','V','1','6'):
- BlendRGBAR16( p_filter, p_dst, p_dst_orig, p_src,
- i_x_offset, i_y_offset,
- i_width, i_height, i_alpha );
- return;
- }
- }