Mercurial > mplayer.hg
comparison spudec.c @ 31639:cf048df35b00
Fix conversion from paletted to MPlayer's OSD format.
author | reimar |
---|---|
date | Sun, 11 Jul 2010 13:36:02 +0000 |
parents | e4cab1a16c0d |
children | 0d09c303bfe3 |
comparison
equal
deleted
inserted
replaced
31638:e4cab1a16c0d | 31639:cf048df35b00 |
---|---|
1305 img = packet->packet; | 1305 img = packet->packet; |
1306 aimg = packet->packet + stride * h; | 1306 aimg = packet->packet + stride * h; |
1307 for (y = 0; y < h; y++) { | 1307 for (y = 0; y < h; y++) { |
1308 for (x = 0; x < w; x++) { | 1308 for (x = 0; x < w; x++) { |
1309 uint32_t pixel = pal[pal_img[x]]; | 1309 uint32_t pixel = pal[pal_img[x]]; |
1310 *aimg++ = -(pixel >> 24); | 1310 int alpha = pixel >> 24; |
1311 *img++ = (((pixel & 0x000000ff) >> 0) + | 1311 int gray = (((pixel & 0x000000ff) >> 0) + |
1312 ((pixel & 0x0000ff00) >> 7) + | 1312 ((pixel & 0x0000ff00) >> 7) + |
1313 ((pixel & 0x00ff0000) >> 16)) >> 2; | 1313 ((pixel & 0x00ff0000) >> 16)) >> 2; |
1314 *aimg++ = -alpha; | |
1315 *img++ = FFMIN(gray, alpha); | |
1314 } | 1316 } |
1315 for (; x < stride; x++) | 1317 for (; x < stride; x++) |
1316 *aimg++ = *img++ = 0; | 1318 *aimg++ = *img++ = 0; |
1317 pal_img += pal_stride; | 1319 pal_img += pal_stride; |
1318 } | 1320 } |