corresponding code
frameworks/base/services/camera/libcameraservice/CameraService.cpp
Code:
#ifdef BOARD_USE_FROYO_LIBCAMERA
struct camera_size_type {
int width;
int height;
};
static const camera_size_type preview_sizes[] = {
{ 1280, 720 }, // 720P
{ 768, 432 },
};
#endif
.........
..........
#ifdef BOARD_USE_FROYO_LIBCAMERA
//for 720p recording , preview can be 800X448
if(w == preview_sizes[0].width && h==preview_sizes[0].height){
LOGD("Changing overlay dimensions to 768X432 for 720p recording.");
w = preview_sizes[1].width;
h = preview_sizes[1].height;
}
#endif
as you findings match my digging

(e.g. if videorecording is set to 1280x720, no overlay is show on the display, however some file is generated)
i changed to
Code:
#ifdef BOARD_USE_FROYO_LIBCAMERA
//for 720p recording , preview can be 800X448
if(w == preview_sizes[0].width && h==preview_sizes[0].height){
LOGD("Changing overlay dimensions to 768X432 for 720p recording.");
w = preview_sizes[0].width;
h = preview_sizes[0].height;
}
#endif
will give feedback when have time to test....
p.s. will put again relevant information from the camera blobs....
Code:
preview-size-values=176x144,320x240,352x288,640x480,720x480,720x576,800x448,848x480,1280x720
video-size-values=176x144,320x240,352x288,640x480,720x480,720x576,1280x720