Originally committed as revision 2236 to svn://svn.mplayerhq.hu/mplayer/trunk/postproctags/v0.5
| @@ -472,7 +472,7 @@ s_xinc&= -2; //clear last bit or uv and y might be shifted relative to each othe | |||
| #ifdef HAVE_MMX | |||
| //FIXME write lq version with less uv ... | |||
| //FIXME reorder / optimize | |||
| if(dstbpp == 4) | |||
| if(dstbpp == 32) | |||
| { | |||
| asm volatile( | |||
| @@ -555,7 +555,7 @@ YSCALEYUV2RGB | |||
| : "%eax" | |||
| ); | |||
| } | |||
| else if(dstbpp==2) | |||
| else if(dstbpp==16) | |||
| { | |||
| asm volatile( | |||
| @@ -590,7 +590,7 @@ YSCALEYUV2RGB | |||
| ); | |||
| } | |||
| #else | |||
| if(dstbpp==4 || dstbpp==3) | |||
| if(dstbpp==32 || dstbpp==24) | |||
| { | |||
| for(i=0;i<dstw;i++){ | |||
| // vertical linear interpolation && yuv2rgb in a single step: | |||
| @@ -600,10 +600,10 @@ YSCALEYUV2RGB | |||
| dest[0]=clip_table[((Y + yuvtab_3343[U]) >>13)]; | |||
| dest[1]=clip_table[((Y + yuvtab_0c92[V] + yuvtab_1a1e[U]) >>13)]; | |||
| dest[2]=clip_table[((Y + yuvtab_40cf[V]) >>13)]; | |||
| dest+=dstbpp; | |||
| dest+=dstbpp>>3; | |||
| } | |||
| } | |||
| else if(dstbpp==2) //16bit | |||
| else if(dstbpp==16) //16bit | |||
| { | |||
| for(i=0;i<dstw;i++){ | |||
| // vertical linear interpolation && yuv2rgb in a single step: | |||
| @@ -615,10 +615,10 @@ YSCALEYUV2RGB | |||
| (clip_table[((Y + yuvtab_3343[U]) >>13)]>>3) | | |||
| (clip_table[((Y + yuvtab_0c92[V] + yuvtab_1a1e[U]) >>13)]<<3)&0x07E0 | | |||
| (clip_table[((Y + yuvtab_40cf[V]) >>13)]<<8)&0xF800; | |||
| dest+=dstbpp; | |||
| dest+=2; | |||
| } | |||
| } | |||
| else if(dstbpp==2) //15bit FIXME how do i figure out if its 15 or 16? | |||
| else if(dstbpp==15) //15bit FIXME how do i figure out if its 15 or 16? | |||
| { | |||
| for(i=0;i<dstw;i++){ | |||
| // vertical linear interpolation && yuv2rgb in a single step: | |||
| @@ -630,7 +630,7 @@ YSCALEYUV2RGB | |||
| (clip_table[((Y + yuvtab_3343[U]) >>13)]>>3) | | |||
| (clip_table[((Y + yuvtab_0c92[V] + yuvtab_1a1e[U]) >>13)]<<2)&0x03E0 | | |||
| (clip_table[((Y + yuvtab_40cf[V]) >>13)]<<7)&0x7C00; | |||
| dest+=dstbpp; | |||
| dest+=2; | |||
| } | |||
| } | |||
| #endif | |||
| @@ -472,7 +472,7 @@ s_xinc&= -2; //clear last bit or uv and y might be shifted relative to each othe | |||
| #ifdef HAVE_MMX | |||
| //FIXME write lq version with less uv ... | |||
| //FIXME reorder / optimize | |||
| if(dstbpp == 4) | |||
| if(dstbpp == 32) | |||
| { | |||
| asm volatile( | |||
| @@ -555,7 +555,7 @@ YSCALEYUV2RGB | |||
| : "%eax" | |||
| ); | |||
| } | |||
| else if(dstbpp==2) | |||
| else if(dstbpp==16) | |||
| { | |||
| asm volatile( | |||
| @@ -590,7 +590,7 @@ YSCALEYUV2RGB | |||
| ); | |||
| } | |||
| #else | |||
| if(dstbpp==4 || dstbpp==3) | |||
| if(dstbpp==32 || dstbpp==24) | |||
| { | |||
| for(i=0;i<dstw;i++){ | |||
| // vertical linear interpolation && yuv2rgb in a single step: | |||
| @@ -600,10 +600,10 @@ YSCALEYUV2RGB | |||
| dest[0]=clip_table[((Y + yuvtab_3343[U]) >>13)]; | |||
| dest[1]=clip_table[((Y + yuvtab_0c92[V] + yuvtab_1a1e[U]) >>13)]; | |||
| dest[2]=clip_table[((Y + yuvtab_40cf[V]) >>13)]; | |||
| dest+=dstbpp; | |||
| dest+=dstbpp>>3; | |||
| } | |||
| } | |||
| else if(dstbpp==2) //16bit | |||
| else if(dstbpp==16) //16bit | |||
| { | |||
| for(i=0;i<dstw;i++){ | |||
| // vertical linear interpolation && yuv2rgb in a single step: | |||
| @@ -615,10 +615,10 @@ YSCALEYUV2RGB | |||
| (clip_table[((Y + yuvtab_3343[U]) >>13)]>>3) | | |||
| (clip_table[((Y + yuvtab_0c92[V] + yuvtab_1a1e[U]) >>13)]<<3)&0x07E0 | | |||
| (clip_table[((Y + yuvtab_40cf[V]) >>13)]<<8)&0xF800; | |||
| dest+=dstbpp; | |||
| dest+=2; | |||
| } | |||
| } | |||
| else if(dstbpp==2) //15bit FIXME how do i figure out if its 15 or 16? | |||
| else if(dstbpp==15) //15bit FIXME how do i figure out if its 15 or 16? | |||
| { | |||
| for(i=0;i<dstw;i++){ | |||
| // vertical linear interpolation && yuv2rgb in a single step: | |||
| @@ -630,7 +630,7 @@ YSCALEYUV2RGB | |||
| (clip_table[((Y + yuvtab_3343[U]) >>13)]>>3) | | |||
| (clip_table[((Y + yuvtab_0c92[V] + yuvtab_1a1e[U]) >>13)]<<2)&0x03E0 | | |||
| (clip_table[((Y + yuvtab_40cf[V]) >>13)]<<7)&0x7C00; | |||
| dest+=dstbpp; | |||
| dest+=2; | |||
| } | |||
| } | |||
| #endif | |||