+ FixParameters( &i_fmti, &b_has_ai, &b_swap_uvi, p_fmti->i_chroma );
+ FixParameters( &i_fmto, &b_has_ao, &b_swap_uvo, p_fmto->i_chroma );
+
+ /* FIXME TODO removed when ffmpeg is fixed
+ * Without SWS_ACCURATE_RND the quality is really bad for some conversions */
+ switch( i_fmto )
+ {
+ case PIX_FMT_ARGB:
+ case PIX_FMT_RGBA:
+ case PIX_FMT_ABGR:
+ i_sws_flags |= SWS_ACCURATE_RND;
+ break;
+ }
+
+ if( p_cfg )
+ {
+ p_cfg->i_fmti = i_fmti;
+ p_cfg->i_fmto = i_fmto;
+ p_cfg->b_has_a = b_has_ai && b_has_ao;
+ p_cfg->b_add_a = (!b_has_ai) && b_has_ao;
+ p_cfg->b_copy = i_fmti == i_fmto &&
+ p_fmti->i_width == p_fmto->i_width &&
+ p_fmti->i_height == p_fmto->i_height;
+ p_cfg->b_swap_uvi = b_swap_uvi;
+ p_cfg->b_swap_uvo = b_swap_uvo;
+ p_cfg->i_sws_flags = i_sws_flags;
+ }