Commit edf97a75 authored by Michael Niedermayer's avatar Michael Niedermayer

fix full range (jpeg yuv) chroma

Originally committed as revision 22713 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
parent d2bfaf8a
......@@ -1876,7 +1876,12 @@ int sws_setColorspaceDetails(SwsContext *c, const int inv_table[4], int srcRange
if(!srcRange){
cy= (cy*255) / 219;
oy= 16<<16;
}
}else{
crv= (crv*224) / 255;
cbu= (cbu*224) / 255;
cgu= (cgu*224) / 255;
cgv= (cgv*224) / 255;
}
cy = (cy *contrast )>>16;
crv= (crv*contrast * saturation)>>32;
......
......@@ -670,6 +670,11 @@ int yuv2rgb_c_init_tables (SwsContext *c, const int inv_table[4], int fullRange,
if(!fullRange){
cy= (cy*255) / 219;
oy= 16<<16;
}else{
crv= (crv*224) / 255;
cbu= (cbu*224) / 255;
cgu= (cgu*224) / 255;
cgv= (cgv*224) / 255;
}
cy = (cy *contrast )>>16;
......
......@@ -263,6 +263,11 @@ int yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], int fullRange,
if (fullRange) {
cy = 1 << 16;
oy = 0;
crv= (crv*224) / 255;
cbu= (cbu*224) / 255;
cgu= (cgu*224) / 255;
cgv= (cgv*224) / 255;
//FIXME maybe its cleaner if the tables where based on full range (*244/255)
} else {
cy = ((1 << 16) * 255) / 219;
oy= 16 << 16;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment