Mercurial > mplayer.hg
diff libswscale/swscale.c @ 30377:2eea1f09e2c5
Use av_get_bits_per_pixel() for computing the bits per pixel of the
source and destination format, cache those values in the newly added
SwsContext:srcFormatBpp and SwsContext:dstFormatBpp fields, and remove
the fmt_depth() function.
author | stefano |
---|---|
date | Sun, 24 Jan 2010 12:55:05 +0000 |
parents | 68143fd6b5d4 |
children | da75265e5b6f |
line wrap: on
line diff
--- a/libswscale/swscale.c Sun Jan 24 10:13:33 2010 +0000 +++ b/libswscale/swscale.c Sun Jan 24 12:55:05 2010 +0000 @@ -882,7 +882,7 @@ const int16_t **alpSrc, uint8_t *dest, int dstW, int y) { int i; - int step= fmt_depth(c->dstFormat)/8; + int step= c->dstFormatBpp/8; int aidx= 3; switch(c->dstFormat) { @@ -1430,10 +1430,10 @@ { const enum PixelFormat srcFormat= c->srcFormat; const enum PixelFormat dstFormat= c->dstFormat; - const int srcBpp= (fmt_depth(srcFormat) + 7) >> 3; - const int dstBpp= (fmt_depth(dstFormat) + 7) >> 3; - const int srcId= fmt_depth(srcFormat) >> 2; /* 1:0, 4:1, 8:2, 15:3, 16:4, 24:6, 32:8 */ - const int dstId= fmt_depth(dstFormat) >> 2; + const int srcBpp= (c->srcFormatBpp + 7) >> 3; + const int dstBpp= (c->dstFormatBpp + 7) >> 3; + const int srcId= c->srcFormatBpp >> 2; /* 1:0, 4:1, 8:2, 15:3, 16:4, 24:6, 32:8 */ + const int dstId= c->dstFormatBpp >> 2; void (*conv)(const uint8_t *src, uint8_t *dst, long src_size)=NULL; /* BGR -> BGR */ @@ -1661,8 +1661,8 @@ int needsDither; needsDither= (isBGR(dstFormat) || isRGB(dstFormat)) - && (fmt_depth(dstFormat))<24 - && ((fmt_depth(dstFormat))<(fmt_depth(srcFormat)) || (!(isRGB(srcFormat) || isBGR(srcFormat)))); + && c->srcFormatBpp < 24 + && (c->dstFormatBpp < c->srcFormatBpp || (!(isRGB(srcFormat) || isBGR(srcFormat)))); /* yv12_to_nv12 */ if ((srcFormat == PIX_FMT_YUV420P || srcFormat == PIX_FMT_YUVA420P) && (dstFormat == PIX_FMT_NV12 || dstFormat == PIX_FMT_NV21)) {