constructor(yuvData, dataWidth /*int*/, dataHeight /*int*/, left /*int*/, top /*int*/, width /*int*/, height /*int*/, reverseHorizontal) {
			super(width, height);
			this.yuvData = yuvData;
			this.dataWidth = dataWidth;
			this.dataHeight = dataHeight;
			this.left = left;
			this.top = top;
			if (left + width > dataWidth || top + height > dataHeight) {
				throw new IllegalArgumentException('Crop rectangle does not fit within image data.');
			}
			if (reverseHorizontal) {
				this.reverseHorizontal(width, height);
			}
		}
This object extends LuminanceSource around an array of YUV data returned from the camera driver,
with the option to crop to a rectangle within the full data. This can be used to exclude
superfluous pixels around the perimeter and speed up decoding.

It works for any pixel format where the Y channel is planar and appears first, including
YCbCr_420_SP and YCbCr_422_SP.

@author dswitkin@google.com (Daniel Switkin)