+ posY = dst_slice->plane[0].sliceY + dst_slice->plane[0].sliceH;
+ if (posY <= lastLumSrcY && !hasLumHoles) {
+ firstPosY = FFMAX(firstLumSrcY, posY);
+ lastPosY = FFMIN(lastLumSrcY + MAX_LINES_AHEAD, srcSliceY + srcSliceH - 1);
+ } else {
+ firstPosY = lastInLumBuf + 1;
+ lastPosY = lastLumSrcY;
+ }
+
+ cPosY = dst_slice->plane[1].sliceY + dst_slice->plane[1].sliceH;
+ if (cPosY <= lastChrSrcY && !hasChrHoles) {
+ firstCPosY = FFMAX(firstChrSrcY, cPosY);
+ lastCPosY = FFMIN(lastChrSrcY + MAX_LINES_AHEAD, FF_CEIL_RSHIFT(srcSliceY + srcSliceH, c->chrSrcVSubSample) - 1);
+ } else {
+ firstCPosY = lastInChrBuf + 1;
+ lastCPosY = lastChrSrcY;
+ }
+
+ ff_rotate_slice(dst_slice, lastPosY, lastCPosY);