﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
562	RPR - Calculation of refHeight	bheng		"In xPredInterBlkRPR( ), the calculation of refHeight (the number of rows of  intermediate horizontal filtered results required for vertical interpolation), is calculated as follows:

    int refHeight = height * scalingRatio.second >> SCALE_RATIO_BITS;

However, during the actual interpolation process, the actual rows used are determined incrementally using (row *stepY), as follows:

      int posY = (int32_t)y0Int + row * stepY;
      yInt = ( posY + offY ) >> posShift;


Given that there is some rounding error in stepY, the accumulated error from (row * stepY) can cause the interpolation use rows beyond the the rows generated by using (refHeight + vFilterSize - 1 + extSize).  This can cause the decoder to use uninitialized memory and/or crash.

I believe something like the following could be used to determine which rows the interpolation process will actually require.

int refHeight = ((((int32_t)y0Int + (height-1) * stepY) + offY ) >> posShift) - ((((int32_t)y0Int) + offY ) >> posShift) + 1;





"	defect	closed	minor	VTM-7.0	VTM	VTM-6.1	fixed		ksuehring XiangLi fbossen jvet@…
