diff options
author | Carl Eugen Hoyos <ceffmpeg@gmail.com> | 2017-08-23 14:19:14 +0200 |
---|---|---|
committer | Carl Eugen Hoyos <ceffmpeg@gmail.com> | 2017-08-24 12:50:06 +0200 |
commit | cb1a3eecac2d3395bf1e26289643082b4305f86a (patch) | |
tree | ed5ea71a62f92a25cbddc4ef0a7c76ed333715c1 /libswscale/swscale_unscaled.c | |
parent | 351e28f9a799d9bbbb33dd10c964dca7219fa13b (diff) |
lsws/rgb2rgb: Add unscaled 48bit to 64bit rgb conversion.
Based on b4befca2 and 6b7849e6 by Paul B Mahol.
Fixes ticket #6608.
Diffstat (limited to 'libswscale/swscale_unscaled.c')
-rw-r--r-- | libswscale/swscale_unscaled.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c index 3b1b3667ce..ef36aec500 100644 --- a/libswscale/swscale_unscaled.c +++ b/libswscale/swscale_unscaled.c @@ -1292,6 +1292,23 @@ static rgbConvFn findRgbConvFn(SwsContext *c) || CONV_IS(BGR48LE, RGB48BE) || CONV_IS(RGB48BE, BGR48LE) || CONV_IS(BGR48BE, RGB48LE)) conv = rgb48tobgr48_bswap; + } else if (isRGB48(srcFormat) && isRGBA64(dstFormat)) { + if (CONV_IS(RGB48LE, BGRA64LE) + || CONV_IS(BGR48LE, RGBA64LE) + || CONV_IS(RGB48BE, BGRA64BE) + || CONV_IS(BGR48BE, RGBA64BE)) conv = rgb48tobgr64_nobswap; + else if (CONV_IS(RGB48LE, BGRA64BE) + || CONV_IS(BGR48LE, RGBA64BE) + || CONV_IS(RGB48BE, BGRA64LE) + || CONV_IS(BGR48BE, RGBA64LE)) conv = rgb48tobgr64_bswap; + if (CONV_IS(RGB48LE, RGBA64LE) + || CONV_IS(BGR48LE, BGRA64LE) + || CONV_IS(RGB48BE, RGBA64BE) + || CONV_IS(BGR48BE, BGRA64BE)) conv = rgb48to64_nobswap; + else if (CONV_IS(RGB48LE, RGBA64BE) + || CONV_IS(BGR48LE, BGRA64BE) + || CONV_IS(RGB48BE, RGBA64LE) + || CONV_IS(BGR48BE, BGRA64LE)) conv = rgb48to64_bswap; } else if (isRGBA64(srcFormat) && isRGB48(dstFormat)) { if (CONV_IS(RGBA64LE, BGR48LE) || CONV_IS(BGRA64LE, RGB48LE) |