summaryrefslogtreecommitdiffstats
path: root/postproc
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-10-16 23:58:17 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-10-16 23:58:17 +0000
commitc6f5d437bcd0b6946dfc7e4fc2b31e48f50be75d (patch)
treee3b837a79a00b7f0f53ad7f47ceb4ad13cbb5502 /postproc
parent13c43f2bd39e65724f9221982d8f26c8139a36ae (diff)
downloadmpv-c6f5d437bcd0b6946dfc7e4fc2b31e48f50be75d.tar.bz2
mpv-c6f5d437bcd0b6946dfc7e4fc2b31e48f50be75d.tar.xz
16bpp code for atmos
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2230 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'postproc')
-rw-r--r--postproc/swscale.c10
-rw-r--r--postproc/swscale_template.c10
2 files changed, 20 insertions, 0 deletions
diff --git a/postproc/swscale.c b/postproc/swscale.c
index b761564aa5..20eaa675b7 100644
--- a/postproc/swscale.c
+++ b/postproc/swscale.c
@@ -96,9 +96,19 @@ static int s_last_ypos;
int Y=yuvtab_2568[((buf0[i]*yalpha1+buf1[i]*yalpha)>>16)];
int U=((uvbuf0[i]*uvalpha1+uvbuf1[i]*uvalpha)>>16);
int V=((uvbuf0[i+2048]*uvalpha1+uvbuf1[i+2048]*uvalpha)>>16);
+#if 1
+ // 24/32 bpp
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)];
+#else
+ unsigned short *d=dest;
+ unsigned int r=clip_table[((Y + yuvtab_3343[U]) >>13)];
+ unsigned int g=clip_table[((Y + yuvtab_0c92[V] + yuvtab_1a1e[U]) >>13)];
+ unsigned int b=clip_table[((Y + yuvtab_40cf[V]) >>13)];
+ d[0]=((r>>3)<<10)|((g>>3)<<5)|((b>>3)); // 15bpp
+// d[0]=((r>>3)<<11)|((g>>2)<<5)|((b>>3)); // 16bpp
+#endif
dest+=dstbpp;
}
diff --git a/postproc/swscale_template.c b/postproc/swscale_template.c
index b761564aa5..20eaa675b7 100644
--- a/postproc/swscale_template.c
+++ b/postproc/swscale_template.c
@@ -96,9 +96,19 @@ static int s_last_ypos;
int Y=yuvtab_2568[((buf0[i]*yalpha1+buf1[i]*yalpha)>>16)];
int U=((uvbuf0[i]*uvalpha1+uvbuf1[i]*uvalpha)>>16);
int V=((uvbuf0[i+2048]*uvalpha1+uvbuf1[i+2048]*uvalpha)>>16);
+#if 1
+ // 24/32 bpp
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)];
+#else
+ unsigned short *d=dest;
+ unsigned int r=clip_table[((Y + yuvtab_3343[U]) >>13)];
+ unsigned int g=clip_table[((Y + yuvtab_0c92[V] + yuvtab_1a1e[U]) >>13)];
+ unsigned int b=clip_table[((Y + yuvtab_40cf[V]) >>13)];
+ d[0]=((r>>3)<<10)|((g>>3)<<5)|((b>>3)); // 15bpp
+// d[0]=((r>>3)<<11)|((g>>2)<<5)|((b>>3)); // 16bpp
+#endif
dest+=dstbpp;
}