My thinking was that there might be a 'function' in the camera like this:
setVideoMode(sensorRectangle, videoWidth, videoHeight, FPS)
IMHO things are way more complicated than that.
The EOS M models do support reading out a smaller rectangle of the sensor, but only for live view magnification. Recording that smaller area is not supported. On the m10, enabling/disabling live view magnification is possible via logical events. Unfortunately, those events are ignored during video recording.
On PowerShots, partial sensor readout is used when digital zoom is active.
From reyalp's link,
1 ->
2, setting ADTG and CMOS registers might be the way to achieve your goal.
A while back, I identified a function that looks like 'adtg_write', its address is 0xFC427E40 in m3 101a, 0xFC231308 in m10 110d. But that's just one function, the CMOS related counterpart is still TODO. Other than finding that function, I have not done any experiments.