[Folio 100 Android Development] giveen:
I've been trying to get a hold of a few people about my quesiton.

I'm on the main developers for the Dell Streak 7, and our devices are extremely similiar and I've been working on camera for some time now.

DerArtem's code has gotten me the furthest but I am still a bit stuck.

camera.tegra.so compiles fine, but when I fire up camera app I get this

D/Camera_Factory( 107): CameraFactory::get_camera_info
D/Camera_Factory( 107): CameraFactory::getCameraInfo: id = 0,info = 0x41f3ad18
D/Camera_Factory( 107): CameraFactory::getCameraNum
D/Camera_Factory( 107): CameraFactory::getCameraInfo: about to fetch info
D/CameraHardware( 107): CameraHardware::getCameraInfo
D/Camera_Factory( 107): CameraFactory::get_camera_info
D/Camera_Factory( 107): CameraFactory::getCameraInfo: id = 1,info = 0x4139cd18
D/Camera_Factory( 107): CameraFactory::getCameraNum
D/Camera_Factory( 107): CameraFactory::getCameraInfo: about to fetch info
D/CameraHardware( 107): CameraHardware::getCameraInfo
V/CameraHolder( 804): open camera 0
D/Camera_Factory( 107): CameraFactory::get_camera_info
D/Camera_Factory( 107): CameraFactory::getCameraInfo: id = 0,info = 0x41d59c74
D/Camera_Factory( 107): CameraFactory::getCameraNum
D/Camera_Factory( 107): CameraFactory::getCameraInfo: about to fetch info
D/CameraHardware( 107): CameraHardware::getCameraInfo
I/CameraService( 107): Opening camera 0
D/Camera_Factory( 107): CameraFactory::device_open: name = 0
D/Camera_Factory( 107): CameraFactory::cameraDeviceOpen: id = 0
D/Camera_Factory( 107): CameraFactory::getCameraNum
D/CameraHardware( 107): CameraHardware::destruct
D/CameraHardware( 107): CameraHardware::PowerOff: Power OFF camera.
E/CameraHardware( 107): Could not open /sys/devices/platform/shuttle-pm-camera/power_on for writing.
I/Camera_Factory( 107): Using 1 camera!
I/Camera_Factory( 107): Returning /dev/video0
I/CameraHardware( 107): Using camera /dev/video0
D/CameraHardware( 107): CameraHardware::PowerOn: Power ON camera.
E/CameraHardware( 107): Could not open /sys/devices/platform/shuttle-pm-camera/power_on for writing.
D/CameraHardware( 107): CameraHardware::initDefaultParameters
E/V4L2Camera( 107): ERROR opening V4L interface: No such file or directory
E/CameraHardware( 107): cannot open device.
I/CameraHardware( 107): Default preview size: (320 x 240), fps:30
I/CameraHardware( 107): All available formats:
I/CameraHardware( 107): All available fps:
I/CameraHardware( 107): Default picture size: (320 x 240)
D/CameraHardware( 107): CameraHardware::setParameters
D/CameraHardware( 107): CameraHardware::setParameters: PREVIEW: Size 320x240, 30 fps, format: yuv422sp
D/CameraHardware( 107): CameraHardware::setParameters: PICTURE: Size 320x240, format: jpeg
D/CameraHardware( 107): CameraHardware::setParameters: VIDEO: Size 320x240, format: yuv420p
D/CameraHardware( 107): CameraHardware::initHeapLocked
E/CameraHardware( 107): No memory allocator available
D/CameraHardware( 107): CameraHardware::setParameters: OK
D/CameraHardware( 107): CameraHardware::connectCamera
D/CameraHardware( 107): CameraHardware::setCallbacks
D/CameraHardware( 107): CameraHardware::enableMsgType: 1037
I/AwesomePlayer( 107): setDataSource_l('/system/media/audio/ui/camera_click.ogg')
I/OMXCodec( 107): Attempting to allocate OMX node 'OMX.google.vorbis.decoder'
I/OMXCodec( 107): Successfully allocated OMX node 'OMX.google.vorbis.decoder'
I/AwesomePlayer( 107): setDataSource_l('/system/media/audio/ui/VideoRecord.ogg')
I/OMXCodec( 107): Attempting to allocate OMX node 'OMX.google.vorbis.decoder'
I/OMXCodec( 107): Successfully allocated OMX node 'OMX.google.vorbis.decoder'
D/CameraHardware( 107): CameraHardware::getParameters
D/CameraHardware( 107): CameraHardware::putParameters
D/CameraHardware( 107): CameraHardware::getParameters
D/CameraHardware( 107): CameraHardware::putParameters
D/Camera ( 804): app passed NULL surface
D/Camera_Factory( 107): CameraFactory::get_camera_info
D/Camera_Factory( 107): CameraFactory::getCameraInfo: id = 0,info = 0x41d59d18
D/Camera_Factory( 107): CameraFactory::getCameraNum
D/Camera_Factory( 107): CameraFactory::getCameraInfo: about to fetch info
D/CameraHardware( 107): CameraHardware::getCameraInfo
D/CameraHardware( 107): CameraHardware::getParameters
D/CameraHardware( 107): CameraHardware::putParameters
W/dalvikvm( 804): threadid=11: thread exiting with uncaught exception (group=0x40a4f1f8)
E/AndroidRuntime( 804): FATAL EXCEPTION: Thread-88
E/AndroidRuntime( 804): java.lang.NullPointerException
E/AndroidRuntime( 804):	at com.android.camera.Camera.updateCameraParametersPreference(Camera.java:2227)
E/AndroidRuntime( 804):	at com.android.camera.Camera.setCameraParameters(Camera.java:2363)
E/AndroidRuntime( 804):	at com.android.camera.Camera.startPreview(Camera.java:2108)
E/AndroidRuntime( 804):	at com.android.camera.Camera.access$3700(Camera.java:86)
E/AndroidRuntime( 804):	at com.android.camera.Camera$5.run(Camera.java:1263)
E/AndroidRuntime( 804):	at java.lang.Thread.run(Thread.java:856)
W/ActivityManager( 178): Force finishing activity com.android.camera/.Camera
W/ActivityManager( 178): Activity pause timeout for ActivityRecord{40f74730 com.android.camera/.Camera}

I am assuming it has to do with the power code

// File to control camera power
#define CAMERA_POWER "/sys/devices/platform/shuttle-pm-camera/power_on"

namespace android {

char videodevice[64];

bool CameraHardware::PowerOn()
{
LOGD("CameraHardware::PowerOn: Power ON camera.");

// power on camera
int handle = ::open(CAMERA_POWER,O_RDWR);
if (handle >= 0) {
::write(handle,"1\n",2);
::close(handle);
} else {
LOGE("Could not open %s for writing.", CAMERA_POWER);
return false;
}

// Wait until the camera is recognized or timed out
int timeOut = 500;
do {
// Try to open the video capture device
handle = ::open(videodevice,O_RDWR);
if (handle >= 0)
break;
// Wait a bit
::usleep(10000);
} while (--timeOut > 0);

if (handle >= 0) {
LOGD("Camera powered on");
::close(handle);
return true;
} else {
LOGE("Unable to power camera");
}

return false;
}

bool CameraHardware::PowerOff()
{
LOGD("CameraHardware::PowerOff: Power OFF camera.");

// power on camera
int handle = ::open(CAMERA_POWER,O_RDWR);
if (handle >= 0) {
::write(handle,"0\n",2);
::close(handle);
} else {
LOGE("Could not open %s for writing.", CAMERA_POWER);
return false;
}
return true;
}

As I don't have this "/sys/devices/platform/shuttle-pm-camera/power_on", any ideas?

I have /sys/devices/platform/tegra_camera, and I'm running a ov5642 camera module.