[FFmpeg-cvslog] sws: fix copy case detection with gray8a.
Michael Niedermayer
git at videolan.org
Sun Jan 22 01:18:46 CET 2012
ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Thu Jan 19 08:36:17 2012 +0100| [657878f76ebd4d3aa151c3b3070c1a2f89b064ec] | committer: Michael Niedermayer
sws: fix copy case detection with gray8a.
Fixes gray_alpha.png
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=657878f76ebd4d3aa151c3b3070c1a2f89b064ec
---
libswscale/swscale_unscaled.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
index eca3778..b5b0574 100644
--- a/libswscale/swscale_unscaled.c
+++ b/libswscale/swscale_unscaled.c
@@ -829,13 +829,14 @@ void ff_get_unscaled_swscale(SwsContext *c)
if (srcFormat == PIX_FMT_UYVY422 && dstFormat == PIX_FMT_YUV422P)
c->swScale = uyvyToYuv422Wrapper;
+#define isPlanarGray(x) (isGray(x) && (x) != PIX_FMT_GRAY8A)
/* simple copy */
if ( srcFormat == dstFormat ||
(srcFormat == PIX_FMT_YUVA420P && dstFormat == PIX_FMT_YUV420P) ||
(srcFormat == PIX_FMT_YUV420P && dstFormat == PIX_FMT_YUVA420P) ||
- (isPlanarYUV(srcFormat) && isGray(dstFormat)) ||
- (isPlanarYUV(dstFormat) && isGray(srcFormat)) ||
- (isGray(dstFormat) && isGray(srcFormat)) ||
+ (isPlanarYUV(srcFormat) && isPlanarGray(dstFormat)) ||
+ (isPlanarYUV(dstFormat) && isPlanarGray(srcFormat)) ||
+ (isPlanarGray(dstFormat) && isPlanarGray(srcFormat)) ||
(isPlanarYUV(srcFormat) && isPlanarYUV(dstFormat) &&
c->chrDstHSubSample == c->chrSrcHSubSample &&
c->chrDstVSubSample == c->chrSrcVSubSample &&
More information about the ffmpeg-cvslog
mailing list