Commit Graph

59 Commits

Author SHA1 Message Date
Dave Sparks
ff0f38e6fe Fix potential deadlock in stopPreview/stopRecord.
Some camera HALs spin up a preview thread and need to wait for
the thread to exit. This can create a potential deadlock. In
stopPreview, we take the main lock. If a preview callback occurs
while the lock is held, the preview thread will block. If the
camera HAL is waiting for the preview thread to exit, this will
cause a deadlock.

This patch breaks out the preview buffer heap into a separate
mutex. This mutex is never held when the main lock is held, thus
preventing the deadlock from occuring.
2009-11-10 17:08:08 -08:00
Dave Sparks
23c21baf27 Hold a lock while we access the preview heap.
copyFrameAndPostCopiedFrame was not holding a lock while it accessed
the preview heap. If the client process is torn down while the heap
is accessed, the memcpy could access memory that was deallocated.

This patch creates a local sp reference to the preview heap while
holding the lock, then releases the lock. This should prevent the
heap from being pulled out from underneath us.
2009-11-06 11:47:13 -08:00
Wu-cheng Li
986e0dcf7a Use image rect information to display zoomed picture. 2009-10-29 13:20:26 +08:00
Dave Sparks
393eb7967f Don't callback on NULL client. Bug 2180510.
We weren't checking to see if there was a valid camera client when
calling the notify callback function. Now we grab a strong pointer
before the callback to guarantee that the client is not destroyed
before we complete the callback. This change also fixes other
places in the code where we weren't holding a local strong pointer.
2009-10-15 15:18:08 -07:00
Dave Sparks
587f7830a1 Retry overlay create if it fails. Bug 2153980.
Occasionally we see references to the overlay hanging around long
enough to cause problems in applications when they tried to destroy
the overlay and re-create it. This patch causes the camera HAL to
retry the overlay creation call if it fails every 20ms up to 50
times before it gives up.
2009-10-07 19:22:02 -07:00
Wu-cheng Li
e6a550d02f Add zoom functions and sendCommand.
b2060030
2009-10-06 13:25:10 -07:00
Chih-Chung Chang
00900eb354 Fix 2083478: Camera needs an auto-focus cancel API
Change-Id: I13bda991b32aee47e82b5cf9d43b3021c416a9a2
2009-09-15 18:29:03 +08:00
James Dong
102f777f2c Pass return code from Camera HAL for setParameters().
bug 2116866
2009-09-13 17:12:35 -07:00
Snigdha Sinha
d77818614e CameraService change for OVERLAY_FORMAT_DEFAULT
Originally from: https://partner.source.android.com/g/#change,829
2009-09-08 18:28:15 -07:00
Benny Wong
4c8fb0a184 Modified the camera HAL interface to use the same generic callback architecture as camera services 2009-08-13 10:46:28 -07:00
Marco Nelissen
7907df75e0 In the simulator, make sure that the preview thread is a Java thread,
since we won't be going through the binder in single process mode.
2009-08-13 09:24:47 -07:00
Eric Laurent
9d91ad5d99 Fix issue 1795088 Improve audio routing code
Initial commit for review.
Integrated comments after patch set 1 review.
Fixed lockup in AudioFlinger::ThreadBase::exit()
Fixed lockup when playing tone with AudioPlocyService startTone()
2009-07-23 06:03:39 -07:00
Benny Wong
71f771570e Hardware overlay support
Enable hardware overlay support for camera and video playback use cases
2009-07-16 14:31:20 -07:00
Dave Sparks
9f1234e460 resolved conflicts for merge of 04c7d0f8 to master 2009-07-08 17:26:05 -07:00
Dave Sparks
f72d640b7c Add timestamps to video frames to improve A/V sync.
Bug 1927069.
2009-07-08 15:59:25 -07:00
Wu-cheng Li
cd998742c3 am b8a10fe4: Allow setPreviewDisplay after startPreview.
Merge commit 'b8a10fe45657f2dcc50cae8a06805f8438a6937e'

* commit 'b8a10fe45657f2dcc50cae8a06805f8438a6937e':
  Allow setPreviewDisplay after startPreview.
2009-07-01 11:20:08 -07:00
Wu-cheng Li
988fb62884 Allow setPreviewDisplay after startPreview. 2009-07-01 01:41:25 +08:00
Android (Google) Code Review
8da70e8049 am c6a482e7: Merge change 5199 into donut
Merge commit 'c6a482e778e7b5fc5790edf22e554c93f53b1112'

* commit 'c6a482e778e7b5fc5790edf22e554c93f53b1112':
  Only remove client after the hardware is teared down, so a new client
2009-06-24 20:34:35 -07:00
Chih-Chung Chang
d2d6bc7552 Only remove client after the hardware is teared down, so a new client
is rejected before old client is done.

Also check mUsers in all cases to make sure there are no existing client.
2009-06-25 11:03:55 +08:00
Android (Google) Code Review
327adb8fec am 82a32714: Merge change 5190 into donut
Merge commit '82a32714f07d25259b91163d383ccdb74a166d2d'

* commit '82a32714f07d25259b91163d383ccdb74a166d2d':
  Fix 1933269: startPreview failed.
2009-06-24 13:53:24 -07:00
Chih-Chung Chang
fa89f9f897 Fix 1933269: startPreview failed.
The reason we need this count is a new CameraService::connect() request may
come in while the previous Client's destructor has not been run or is still
running. If the last strong reference of the previous Client is gone but
destructor has not been run, we should not allow the new Client to be created
because we need to wait for the previous Client to tear down the hardware
first.
2009-06-24 15:50:57 +08:00
Android (Google) Code Review
6b6c9874a1 am 8570e5fc: Merge change 4907 into donut
Merge commit '8570e5fcf15f6b7c22c3023e8b4757c6a880a598'

* commit '8570e5fcf15f6b7c22c3023e8b4757c6a880a598':
  Add more debug messages for CameraService.
2009-06-22 03:44:04 -07:00
Chih-Chung Chang
d98c516d28 Add more debug messages for CameraService. 2009-06-22 17:06:32 +08:00
Android (Google) Code Review
c1c759ac12 am 7f148d65: Merge change 4316 into donut
Merge commit '7f148d65051e577cc4a002183ec55d625b51de85'

* commit '7f148d65051e577cc4a002183ec55d625b51de85':
  Revert "dumpstate: Temporarily disable dumping /proc/slabinfo to avoid kernel crash."
  Enable more debug message to debug the Camera startPreview bug.
2009-06-16 08:37:35 -07:00
Chih-Chung Chang
6a5297d204 Enable more debug message to debug the Camera startPreview bug. 2009-06-16 17:19:02 +08:00
Android (Google) Code Review
1ea7ac24e7 am 084af5e1: Merge change 3551 into donut
Merge commit '084af5e1977e2278e68a69615f55d5fe3bb6c1a4'

* commit '084af5e1977e2278e68a69615f55d5fe3bb6c1a4':
  Allow the owner to reconnect to Camera.
2009-06-10 00:20:15 -07:00
Chih-Chung Chang
34e5a156b8 Allow the owner to reconnect to Camera. 2009-06-09 13:58:51 +08:00
Mathias Agopian
83c0446f27 some work to try to reduce the code size of some native libraries
- make sure that all binder Bn classes define a ctor and dtor in their respective library.
  This avoids duplication of the ctor/dtor in libraries where these objects are instantiated.
  This is also cleaner, should we want these ctor/dtor to do something one day.

- same change as above for some Bp classes and various other non-binder classes

- moved the definition of CHECK_INTERFACE() in IInterface.h instead of having it everywhere.

- improved the CHECK_INTERFACE() macro so it calls a single method in Parcel, instead of inlining its code everywhere

- IBinder::getInterfaceDescriptor() now returns a "const String16&" instead of String16, which saves calls to String16 and ~String16

- implemented a cache for BpBinder::getInterfaceDescriptor(), since this does an IPC. HOWEVER, this method never seems to be called.
  The cache makes BpBinder bigger, so we need to figure out if we need this method at all.
2009-05-26 16:12:20 -07:00
Dave Sparks
83a857f5d0 am 7283fb18: Merge commit \'7b7225c8fdbead25235c74811b30ff4ee690dc58\' into manual_merge
Merge commit '7283fb18022674daee4dcdc3a218190791f8cd0e'

* commit '7283fb18022674daee4dcdc3a218190791f8cd0e':
  AI 149133: Enable the camera permission check.
2009-05-21 10:27:18 -07:00
Dave Sparks
7118052e31 Merge commit '7b7225c8fdbead25235c74811b30ff4ee690dc58' into manual_merge
Conflicts:
	camera/libcameraservice/CameraService.cpp
2009-05-21 10:17:23 -07:00
Android (Google) Code Review
cfae00675e am db79edc5: Merge change 2168 into donut
Merge commit 'db79edc5dc39e103356cad8781148a8794520bc5'

* commit 'db79edc5dc39e103356cad8781148a8794520bc5':
  Fix permission hole in camera service. Some debugging code was added
2009-05-21 09:42:24 -07:00
Dave Sparks
fec880df27 AI 149133: Enable the camera permission check.
Some debugging code was added to camera service. Later it was #ifdef'd
  out, but this change also removed the camera permission check. This
  change puts the permission check back in.
  BUG=1869264

Automated import of CL 149133
2009-05-21 09:18:18 -07:00
Dave Sparks
998b329525 Fix permission hole in camera service. Some debugging code was added
to CameraService::onTransact() method during development. Later on
the entire onTransact() method was #ifdef'd out, which inadvertently
omitted the permissions check code. This change restores the code.
2009-05-20 20:02:59 -07:00
Mathias Agopian
c5b2c0bf80 move libbinder's header files under includes/binder 2009-05-20 12:55:03 -07:00
Mathias Agopian
208059f67e checkpoint: split libutils into libutils + libbinder 2009-05-20 12:55:02 -07:00
Dave Sparks
93b94584ed Modify camera framework to use new streamlined binder interface.
This is the second half of bug 1837832. Modifies the camera client
and camera service to use the new binder interface. Removes the
old binder interface. There will be one more part to this change
to surface the undefined callbacks to the Java layer so that
partners can implement new features without having to touch the
stack.
2009-05-11 07:36:58 -07:00
Wu-cheng Li
81d763f77a Remove debug messages.
modified:   core/java/android/hardware/Camera.java

	modified:   camera/libcameraservice/CameraService.cpp
2009-04-22 16:22:01 +08:00
James Dong
0ae13e36e1 Remove dangling media recorder client reference when setCamera() is used. 2009-04-20 19:35:28 -07:00
Eric Laurent
cbcb00eb73 AI 143177: am: CL 142889 Fix issue #1736153 Camera shutter sound can be muted by new AlarmClock setting.
Current implementation of Camera service plays the camera shutter sound over the ALARM stream so that it cannot be muted by silent mode in order to comply to some country specific requirement. A recent change made it possible for the user to mute the ALARM stream thus making this stream not suitable any more for the camera shutter sound.
  The fix consists in creating a new stream type only accessible by native code and that cannot be muted and use it to play camera sounds.
  Original author: elaurent
  Merged from: //branches/cupcake/...

Automated import of CL 143177
2009-03-27 16:27:16 -07:00
Eric Laurent
b1596ee235 Automated import from //branches/cupcake/...@142889,142889 2009-03-26 01:57:59 -07:00
Andy McFadden
4442661817 Automated import from //branches/donutburger/...@141992,141992 2009-03-24 21:16:04 -07:00
Niko Catania
c8f10f8374 Automated import from //branches/donutburger/...@141782,141782 2009-03-24 20:53:55 -07:00
Andreas Huber
a26e6060f3 Automated import from //branches/donutburger/...@141711,141711 2009-03-24 20:47:19 -07:00
Wu-cheng Li
aab44b8cca Automated import from //branches/donutburger/...@141614,141614 2009-03-24 20:39:09 -07:00
Jason Sams
9e431ace32 Automated import from //branches/donutburger/...@141598,141598 2009-03-24 20:36:57 -07:00
Jason Sams
78b877e7e6 Automated import from //branches/donutburger/...@141469,141469 2009-03-24 20:21:36 -07:00
Andreas Huber
e4d3058e2f Automated import from //branches/cupcake/...@141708,141708 2009-03-24 18:14:23 -07:00
Wu-cheng Li
ab9687f0f8 Automated import from //branches/cupcake/...@141613,141613 2009-03-24 18:01:34 -07:00
Jason Sams
4d45243cea Automated import from //branches/cupcake/...@141597,141597 2009-03-24 17:58:31 -07:00
The Android Open Source Project
0c2bcbc6cc auto import from //branches/cupcake_rel/...@141571 2009-03-19 23:08:54 -07:00