[Desire HD General] TheBrilliantMistake:
Some clarification

1) The length of time it takes to take an image depends on a number of factors (assuming you want a decent picture!)...

a) The available ambient light (the light in the room / outdoors)

b) The aperture of the camera lens (how 'open' it is... a bit like squinting with your eyes). e.g. F2.8

c) How long the shutter is open (the longer = more light allowed to the film/sensor)

d) The gain of the sensor (how sensitive the sensor is / ISO)

Now..

Assuming you can't fix the available light..

Most phone lenses have a fixed aperture... the wider the aperture (the lower F-number) the more light it lets in... BUT the less sharp it gets). Let me clarify this, it will be just as sharp as any other aperture at the object it's focused on, BUT the wider the aperture, the less everything else is in focus. So if you have a narrow aperture (squinting) you let in less light, but get a sharper image over more distance (called depth of field).

F2.8 on one lens is NOT the same as F2.8 on another... so you can't compare like for like.... F2.8 means F(focal length) / 2.8... and also depends on how big the lens is. (F2.8 on a dinner plate size area lens, and seen at football matches, is not the same as F2.8 on a crappy 1cm wide lens on your phone).

The longer the shutter is open, the better - since it lets in more light - BUT this is only true if you're photographing a still object and you have a steady hand.

If you move, or the object moves, the image will get blurred.

A fast shutter speed means that a photo is captured VERY rapidly, so quick that it's faster then your hand shaking, and faster than the F1 car speeding by--- meaning you capture a moving object like a 'still' one.

The ISO is almost like 'how sensitive' is the sensor... the more sensitive it's set to, the less light it needs... BUT it gets noisy (blocky). Imagine an old analog radio that only JUST picks up a station... you can turn the volume up to hear the station, but the background noise increases too. This is why low light photos often look 'grainy'.

Now regarding the compression of movies (essentially 25 still images per second)...

You can TRY to encode / compress the images FASTER than 1/25th second (and write them to SD card) - if you can do this - perfect!... you are 'streaming to SD, without the need for a buffer).

If you can encode at 1/25th second, but can write to SD, then you need to buffer the 'write'.

If you can't even encode at 1/25th second - it doesn't matter... you only need to be able to capture the RAW data from the camera, and store it in RAM / fast memory of some sort, then encode it at a slower rate (meaning it will take a while before you can play the video back, because it's still encoding).

Now, I don't know the code of the HTC devices, but I suspect it's not particularly smart...

it's probably...

1) Grab frame from cam

2) Encode frame

3) Write to SD

4 Goto 1

If stage 2, or 3 are slow, then you simply get less frames per second.

A smarter, but more complex process would be 'piped' or threaded...

i.e.

1) Grab frame from cam

2) Store it to buffer in fastest avail mem

3) Goto 1

Meanwhile, in the background, OR 100% deferred until the end of the recording... another process reads the buffer, encodes it, and stores to SD.

Ideally, this would occur in the background (in order to keep the 'live' buffer going as long as possible).

Since I suspect the developers working on patches have real work to do in their real lives... they MIGHT be able to patch up a little here and there (specific code modules), but they won't have time to significantly rework the capture and encoding logic... and it MAY well be impossible (if a DSP / hardware system is automatically doing the grab / encode / save cycle)

As others have indicated, in poor light, you could simply increase the ISO of the sensor, with the caveat it will be more grainy.

As for HAVING to encode in less than 1/25th (or 1/30th) of a second, this isn't technically true for video encoding systems in general, but it MAY be true in the case of HTC phones with zero / limited buffering or chips doing this work automatically with no option to intercept any of it.

If anybody knows otherwise, feel free to correct...