Looks like the CameraService isn't getting a reference to my client.
Here's the relevant code from CameraService.cpp. I wonder if I can set
some parameter to give CameraService enough of a chance to get the
reference to my client.


// Safely retrieves a strong pointer to the client during a hardware
callback.
sp<CameraService::Client> CameraService::Client::getClientFromCookie
(void* user)
{
    sp<Client> client = 0;
    CameraService *service = static_cast<CameraService*>(user);
    if (service != NULL) {
        Mutex::Autolock ourLock(service->mLock);
        if (service->mClient != 0) {
            client = service->mClient.promote();
            if (client == 0) {
                LOGE("getClientFromCookie: client appears to have
died");
                service->mClient.clear();
            }
        } else {
            LOGE("getClientFromCookie: got callback but client was
NULL");
        }
    }
    return client;
}




On Jul 16, 5:47 pm, Richard Schilling <[email protected]>
wrote:
> I've got an application where I turn Camera Preview on and off while
> the application is running: User clicks a checkbox option in a
> preferences screen, and the camera preview turns on and off
> accordingly.
>
> It seems to work file, but after a while of running the application
> bombs (without throwing an exception), and CameraService dumps the
> following critical error to LogCat:
>
> 07-16 17:42:35.809: ERROR/CameraService(35): getClientFromCookie:
> client appears to have died
> 07-16 17:42:35.879: ERROR/CameraService(35): getClientFromCookie: got
> callback but client was NULL
>
> Does anyone know what this means?
>
> Thanks
>
> Richard Schilling
> Root Wireless
>
> Here's the entire dump from LogCat for CameraService:
>
> 07-16 17:41:23.789: DEBUG/CameraService(35): Connect E from
> ICameraClient 0x20d10
> 07-16 17:41:23.789: DEBUG/CameraService(35): Client E constructor
> 07-16 17:41:24.339: DEBUG/CameraService(35): Client X constructor
> 07-16 17:41:24.349: DEBUG/CameraService(35): Connect X
> 07-16 17:41:24.349: DEBUG/CameraService(35): setPreviewDisplay
> (0x38030)
> 07-16 17:41:24.359: DEBUG/CameraService(35): getParameters
> 07-16 17:41:24.379: DEBUG/CameraService(35): setParameters(jpeg-
> thumbnail-width=512;luma-adaptation=0;antibanding-values=off,50hz,
> 60hz,auto;preview-frame-rate=15;preview-size=480x270;picture-
> format=jpeg;antibanding=auto;jpeg-thumbnail-height=384;picture-
> size=2048x1536;whitebalance=auto;jpeg-thumbnail-quality=90;jpeg-
> quality=100;whitebalance-
> values=auto,custom,incandescent,fluorescent,daylight,cloudy,twilight,shade;preview-
> format=yuv420sp;rotation=0;effect-
> values=mono,negative,solarize,pastel,mosaic,resize,sepia,posterize,whiteboard,blackboard,aqua;nightshot-
> mode=0)
> 07-16 17:41:24.399: DEBUG/CameraService(35): startCameraMode(0)
> 07-16 17:41:29.949: DEBUG/CameraService(35): stopPreview()
> 07-16 17:41:30.019: DEBUG/CameraService(35): stopPreview(), hardware
> stopped OK
> 07-16 17:41:30.029: DEBUG/CameraService(35): Client (0x20d10) E
> disconnect from (438)
> 07-16 17:41:30.079: DEBUG/CameraService(35): Client X disconnect
> 07-16 17:41:30.079: DEBUG/CameraService(35): Client (0x20d10)  E
> destructor
> 07-16 17:41:30.119: DEBUG/CameraService(35): Client (0x20d10) E
> disconnect from (35)
> 07-16 17:41:30.129: DEBUG/CameraService(35): Client X disconnect
> 07-16 17:41:30.129: DEBUG/CameraService(35): Client X destructor
> 07-16 17:41:34.139: DEBUG/CameraService(35): Connect E from
> ICameraClient 0x214d8
> 07-16 17:41:34.139: DEBUG/CameraService(35): Client E constructor
> 07-16 17:41:34.629: DEBUG/CameraService(35): Client X constructor
> 07-16 17:41:34.629: DEBUG/CameraService(35): Connect X
> 07-16 17:41:34.629: DEBUG/CameraService(35): setPreviewDisplay
> (0x38058)
> 07-16 17:41:34.629: DEBUG/CameraService(35): getParameters
> 07-16 17:41:34.649: DEBUG/CameraService(35): setParameters(jpeg-
> thumbnail-width=512;luma-adaptation=0;antibanding-values=off,50hz,
> 60hz,auto;preview-frame-rate=15;preview-size=320x430;picture-
> format=jpeg;antibanding=auto;jpeg-thumbnail-height=384;picture-
> size=2048x1536;whitebalance=auto;jpeg-thumbnail-quality=90;jpeg-
> quality=100;whitebalance-
> values=auto,custom,incandescent,fluorescent,daylight,cloudy,twilight,shade;preview-
> format=yuv420sp;rotation=0;effect-
> values=mono,negative,solarize,pastel,mosaic,resize,sepia,posterize,whiteboard,blackboard,aqua;nightshot-
> mode=0)
> 07-16 17:41:34.769: DEBUG/CameraService(35): getParameters
> 07-16 17:41:34.779: DEBUG/CameraService(35): setParameters(jpeg-
> thumbnail-width=512;luma-adaptation=0;antibanding-values=off,50hz,
> 60hz,auto;preview-frame-rate=15;preview-size=480x270;picture-
> format=jpeg;antibanding=auto;jpeg-thumbnail-height=384;picture-
> size=2048x1536;whitebalance=auto;jpeg-thumbnail-quality=90;jpeg-
> quality=100;whitebalance-
> values=auto,custom,incandescent,fluorescent,daylight,cloudy,twilight,shade;preview-
> format=yuv420sp;rotation=0;effect-
> values=mono,negative,solarize,pastel,mosaic,resize,sepia,posterize,whiteboard,blackboard,aqua;nightshot-
> mode=0)
> 07-16 17:42:27.889: DEBUG/CameraService(35): stopPreview()
> 07-16 17:42:27.889: DEBUG/CameraService(35): stopPreview(), hardware
> stopped OK
> 07-16 17:42:27.899: DEBUG/CameraService(35): Client (0x214d8) E
> disconnect from (438)
> 07-16 17:42:27.949: DEBUG/CameraService(35): Client X disconnect
> 07-16 17:42:27.969: DEBUG/CameraService(35): Client (0x214d8)  E
> destructor
> 07-16 17:42:28.019: DEBUG/CameraService(35): Client (0x214d8) E
> disconnect from (35)
> 07-16 17:42:28.019: DEBUG/CameraService(35): Client X disconnect
> 07-16 17:42:28.019: DEBUG/CameraService(35): Client X destructor
> 07-16 17:42:32.059: DEBUG/CameraService(35): Connect E from
> ICameraClient 0x2b978
> 07-16 17:42:32.059: DEBUG/CameraService(35): Client E constructor
> 07-16 17:42:32.649: DEBUG/CameraService(35): Client X constructor
> 07-16 17:42:32.659: DEBUG/CameraService(35): Connect X
> 07-16 17:42:32.659: DEBUG/CameraService(35): setPreviewDisplay
> (0x380c0)
> 07-16 17:42:32.659: DEBUG/CameraService(35): getParameters
> 07-16 17:42:32.679: DEBUG/CameraService(35): setParameters(jpeg-
> thumbnail-width=512;luma-adaptation=0;antibanding-values=off,50hz,
> 60hz,auto;preview-frame-rate=15;preview-size=320x430;picture-
> format=jpeg;antibanding=auto;jpeg-thumbnail-height=384;picture-
> size=2048x1536;whitebalance=auto;jpeg-thumbnail-quality=90;jpeg-
> quality=100;whitebalance-
> values=auto,custom,incandescent,fluorescent,daylight,cloudy,twilight,shade;preview-
> format=yuv420sp;rotation=0;effect-
> values=mono,negative,solarize,pastel,mosaic,resize,sepia,posterize,whiteboard,blackboard,aqua;nightshot-
> mode=0)
> 07-16 17:42:32.699: DEBUG/CameraService(35): startCameraMode(0)
> 07-16 17:42:33.299: DEBUG/CameraService(35): getParameters
> 07-16 17:42:33.319: DEBUG/CameraService(35): setParameters(jpeg-
> thumbnail-width=512;luma-adaptation=0;antibanding-values=off,50hz,
> 60hz,auto;preview-frame-rate=15;preview-size=480x270;picture-
> format=jpeg;antibanding=auto;jpeg-thumbnail-height=384;picture-
> size=2048x1536;whitebalance=auto;jpeg-thumbnail-quality=90;jpeg-
> quality=100;whitebalance-
> values=auto,custom,incandescent,fluorescent,daylight,cloudy,twilight,shade;preview-
> format=yuv420sp;rotation=0;effect-
> values=mono,negative,solarize,pastel,mosaic,resize,sepia,posterize,whiteboard,blackboard,aqua;nightshot-
> mode=0)
> 07-16 17:42:33.339: DEBUG/CameraService(35): startCameraMode(0)
> 07-16 17:42:35.799: DEBUG/CameraService(35): Client (0x2b978)  E
> destructor
> 07-16 17:42:35.809: ERROR/CameraService(35): getClientFromCookie:
> client appears to have died
> 07-16 17:42:35.879: ERROR/CameraService(35): getClientFromCookie: got
> callback but client was NULL
> 07-16 17:42:35.919: DEBUG/CameraService(35): Client (0x2b978) E
> disconnect from (35)
> 07-16 17:42:36.229: DEBUG/CameraService(35): Client X disconnect
> 07-16 17:42:36.229: DEBUG/CameraService(35): Client X destructor
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to