+ picture_t tmp = *p_src;
+ tmp.p[1] = p_src->p[2];
+ tmp.p[2] = p_src->p[1];
+
+ picture_CopyPixels( p_dst, &tmp );
+}
+static void Convert( filter_t *p_filter, struct SwsContext *ctx,
+ picture_t *p_dst, picture_t *p_src, int i_height, int i_plane_start, int i_plane_count,
+ bool b_swap_uvi, bool b_swap_uvo )
+{
+ uint8_t palette[AVPALETTE_SIZE];
+
+ uint8_t *src[4]; int src_stride[4];
+ uint8_t *dst[4]; int dst_stride[4];
+
+ GetPixels( src, src_stride, p_src, i_plane_start, i_plane_count, b_swap_uvi );
+ if( p_filter->fmt_in.video.i_chroma == VLC_CODEC_RGBP )
+ {
+ memset( palette, 0, sizeof(palette) );
+ if( p_filter->fmt_in.video.p_palette )
+ memcpy( palette, p_filter->fmt_in.video.p_palette->palette,
+ __MIN( sizeof(video_palette_t), AVPALETTE_SIZE ) );
+ src[1] = palette;
+ src_stride[1] = 4;
+ }