> Just sticking my head above the parapet, but shouldn’t things like... > >> + for (x = 0; x < c->srcW / 2; x++) { >> + dstUV[x*2 ] = src[1][x] << 6; >> + dstUV[x*2+1] = src[2][x] << 6; >> + } > > …be more efficiently written as... > > uint16_t* tdstUV = dstUV; > uint16_t* tsrc1 = src[1]; > uint16_t* tsrc2 = src[2]; > for (x = c->srcW / 2; x > 0; x--) { > *tdstUV++ = *tsrc1++ << 6; > *tdstUV++ = *tsrc2++ << 6; > } > > …or is that really old-school and a modern compiler does all that when > optimising? > > Or is readability considered more important than marginal gains in > performance? > > Oliver (time travelling from the 1980s)
You would still have to add the remaining stride. The linesize is usually larger than the width, so each line is properly aligned. So with your code, you'd still need something like dstUV += dstStride[1] / 2 - 2 * x; src[2] += srcStride[1] / 2 - x; src[2] += srcStride[1] / 2 - x; after it. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel