Hi,
My MediaRecorder tried to use the camera object opened by Camera app
through setCamera function, however, it got the following warming
message and the program halted.
W/CameraService( 966): Tried to connect to locked camera
It seems that connect function always halts my program since camera
serveice client had been connected to a process(camera ap process),
anyone konws how to fix this issue?
status_t CameraService::Client::connect(const sp<ICameraClient>&
client)
{
// connect a new process to the camera
LOGV("connect (%p)", client->asBinder().get());
// I hate this hack, but things get really ugly when the media
recorder
// service is handing back the camera to the app. The
ICameraClient
// destructor will be called during the same IPC, making it look
like
// the remote client is trying to disconnect. This hack
temporarily
// sets the mClientPid to an invalid pid to prevent the hardware
from
// being torn down.
{
// hold a reference to the old client or we will deadlock if
the client is
// in the same process and we hold the lock when we remove the
reference
sp<ICameraClient> oldClient;
{
Mutex::Autolock _l(mLock);
if (mClientPid != 0) {
LOGW("Tried to connect to locked camera");
return -EBUSY;
}
oldClient = mCameraClient;
// did the client actually change?
if (client->asBinder() == mCameraClient->asBinder())
return NO_ERROR;
mCameraClient = client;
mClientPid = -1;
mPreviewCallbackFlag = FRAME_CALLBACK_FLAG_NOOP;
LOGV("connect new process (%d) to existing camera client",
mClientPid);
}
}
// the old client destructor is called when oldClient goes out of
scope
// now we set the new PID to lock the interface again
mClientPid = IPCThreadState::self()->getCallingPid();
return NO_ERROR;
}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"android-framework" 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-framework?hl=en
-~----------~----~----~----~------~----~------~--~---