swscale/swscale_unscaled: use 8 line alignment for planarCopyWrapper with dithering
Dithering relies on a 8 line dithering table and the code always uses it from the beginning. So in order to make dithering independent from height of the slices used we must enforce a 8 line alignment. Fixes issue #20071. Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
3ef2ea890b
commit
b61e510e75
1 changed files with 5 additions and 2 deletions
|
|
@ -2676,10 +2676,13 @@ void ff_get_unscaled_swscale(SwsInternal *c)
|
||||||
isSemiPlanarYUV(srcFormat) == isSemiPlanarYUV(dstFormat) &&
|
isSemiPlanarYUV(srcFormat) == isSemiPlanarYUV(dstFormat) &&
|
||||||
isSwappedChroma(srcFormat) == isSwappedChroma(dstFormat))))
|
isSwappedChroma(srcFormat) == isSwappedChroma(dstFormat))))
|
||||||
{
|
{
|
||||||
if (isPacked(c->opts.src_format))
|
if (isPacked(c->opts.src_format)) {
|
||||||
c->convert_unscaled = packedCopyWrapper;
|
c->convert_unscaled = packedCopyWrapper;
|
||||||
else /* Planar YUV or gray */
|
} else { /* Planar YUV or gray */
|
||||||
c->convert_unscaled = planarCopyWrapper;
|
c->convert_unscaled = planarCopyWrapper;
|
||||||
|
if (c->opts.dither != SWS_DITHER_NONE)
|
||||||
|
c->dst_slice_align = 8 << c->chrDstVSubSample;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ARCH_PPC
|
#if ARCH_PPC
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue