diff options
author | Paul B Mahol <onemda@gmail.com> | 2020-08-02 15:55:38 +0200 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2020-08-08 12:03:42 +0200 |
commit | 9d58cdb4ba9c2c53da74d0898e060cff30c74dcd (patch) | |
tree | da78bd7ef75beff53d0f051945fe87f6786888a7 /libswscale/utils.c | |
parent | b9ff25a93e9bd7002b18b2bdca6b6a77d7ceb6a0 (diff) | |
download | ffmpeg-9d58cdb4ba9c2c53da74d0898e060cff30c74dcd.tar.gz |
swscale: do not drop half of bits from 16bit bayer formats
Diffstat (limited to 'libswscale/utils.c')
-rw-r--r-- | libswscale/utils.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libswscale/utils.c b/libswscale/utils.c index dcd1dbaa76..9ca378bd3b 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -1536,8 +1536,9 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, if (isBayer(srcFormat)) { if (!unscaled || - (dstFormat != AV_PIX_FMT_RGB24 && dstFormat != AV_PIX_FMT_YUV420P)) { - enum AVPixelFormat tmpFormat = AV_PIX_FMT_RGB24; + (dstFormat != AV_PIX_FMT_RGB24 && dstFormat != AV_PIX_FMT_YUV420P && + dstFormat != AV_PIX_FMT_RGB48)) { + enum AVPixelFormat tmpFormat = isBayer16BPS(srcFormat) ? AV_PIX_FMT_RGB48 : AV_PIX_FMT_RGB24; ret = av_image_alloc(c->cascaded_tmp, c->cascaded_tmpStride, srcW, srcH, tmpFormat, 64); |