aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/riscv/h264qpel_rvv.S
diff options
context:
space:
mode:
authorNiklas Haas <git@haasn.dev>2024-12-17 13:23:14 +0100
committerNiklas Haas <git@haasn.dev>2024-12-21 10:57:54 +0100
commit095f8038fa9180842cd38d4d61c7c47a02aad9ed (patch)
tree9b5ab6bc1bee41d14b10752f8daa25d52f5bdb78 /libavcodec/riscv/h264qpel_rvv.S
parent6b31e42c47c00817f6249f43391873a15b1c00a4 (diff)
downloadffmpeg-095f8038fa9180842cd38d4d61c7c47a02aad9ed.tar.gz
swscale/output: fix bilinear yuv2rgb chroma interpolation
These functions were divided into two special cases; one assuming that uvalpha == 0, and the other assuming that uvalpha == 2048. This worked fine for simple 2x chroma upscaling but broke for e.g. yuv410p, non-centered chroma, or other special cases that involved non-aligned chroma filters. Fix it by instead dividing this check into two cases, a uvalpha==0 fast path and a uvalpha>0 general path. Instead of (A+B)/2 the general path now multiplies in the true uvalpha weight. I tried preserving the old fast path for the case of uvalpha == 2048, but this was significantly slower in practise versus having just one general path. However, we still need a uvalpha == 0 path for the unscaled case. Fixes: ticket #5083 Signed-off-by: Niklas Haas <git@haasn.dev> Sponsored-by: Sovereign Tech Fund
Diffstat (limited to 'libavcodec/riscv/h264qpel_rvv.S')
0 files changed, 0 insertions, 0 deletions