I'm writing a kind of camera application that is primarily targeted for the N96 device.
I found a really annoying problem when I'm taking pictures with digital zoom enabled.
The CCamera::TCameraInfo.iMaxDigitalZoom is supposed to give info about highest possible digital zoom level. On the N96 this value is set to 84.
But when I call CCamera::SetDigitalZoomFactorL() passing in values > 53 the call returns with KErrNotSupported.
A more annoying problem is that the device reboots when taking pictures with digital zoom factor set to > 47. This is true when CCamera::PrepareImageCaptureL() is called with format EFormatFbsBitmapColor16M and size index set to 1 (second largest image size possible). If I change the size index to 0 the device reboots at a digital zoom factor between 30 and 37, I haven't tried enough to find the exact value.
I don't know the exact reason for the reboot, but I guess a system critical thread crashes. Aparently it has something to do with the combination od digital zoom factor and the size of the captured image.
For now I suppose I can use the TrialAndError method to find the limitations of this particular device, but what happens when someone installs the app on another device. Which combinations works there?
Does anyone know a way to get around this problem??



