| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
INVALID_OPERATION surfaces as an non-specific device-level error to
applications in the onError callback. This is not a condition apps
targeting camera2 in L will generally have to deal with.
Instead, return -EACCESS which maps to throwing
CameraAccessException.CAMERA_DISABLED, same as disabling camera access
with DevicePolicyManager.
The old camera API converts any error code to -EACCESS at the JNI layer,
so this doesn't change anything for the older API.
Also update the various native ICameraService binder connect calls to
check for the transact error code, and return it if it is not OK.
Without this, PERMISSION_DENIED transact errors from the camera
service cannot be distinguished from CAMERA_DISABLED errors in
some codepaths.
Bug: 21604925
Change-Id: Ifccc8989b8c20653429e2d3e51dba7abb2be9c35
|
|
|
|
|
|
|
|
| |
This is not needed duplication of work
This reverts commit 32fa6d0e65dbf956e253a1006e9419dce2fe75c9.
Change-Id: I2c81b0dacb2ed99c408c79c1f9e22a4baa564494
|
|
|
|
| |
Change-Id: I26570cc0a23fdea740b416a26838d40cac296c85
|
|
|
|
|
|
| |
to use the new static version.
Change-Id: I89a5988a0ac694ffc04d88cf939e8455bf925d4c
|
|
|
|
|
|
|
| |
A higher hal version device like HAL3.2 can be opened as HAL1.0 device
if HAL supports it. This only applies to camera API1.
Change-Id: I4ae9f59f4317158cc1bd7ed7726e4032cdd1fa07
|
|
|
|
|
| |
Bug: 10312644
Change-Id: I19976188f0359bfd177209fb40145defdae9c740
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Use the controlledByApp flag to make sure application-bound
preview buffer queue is asynchronous as before
- Remove setPreviewDisplay in service, since it is no longer in
the binder interface
- Rename setPreviewTexture to setPreviewTarget, to make it clear it's
the only game in town now. Rename only on the binder level and service
for now.
Bug: 10312644
Change-Id: Icd33a462022f9729a63dc65c69b755cb7969857e
|
|
|
|
|
|
|
|
| |
Bug: 10361136
-Connect calls now return status_t error flags.
Change-Id: Idca453b111e5df31327f6c99ebe853bb2e332b95
|
|
|
|
|
|
|
|
| |
- Add call to set a preview callback surface
- Implement support for HAL2/3 devices
- Still need HAL1 implementation
Change-Id: I0dc0bd72e43d871aa487858d1665c1efca633ffe
|
|
|
|
| |
Change-Id: I13d7a9553aa335bca790a3a59d389d7533c83d57
|
|
|
|
| |
Change-Id: I0582268cef6e84b630bc87c8a03dcd69d54c440d
|
|
|
|
| |
Change-Id: Ie10a4094522d49683657665fe94ab0b7ccd280e9
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Camera:
- Signal to AppOpsService when camera usage starts and stops
- Listen to permissions revocations and act on them
- Currently just kill camera connection when permissions lost
Stagefright:
- Pass on client name, UID to camera as needed
Bug: 8181262
Change-Id: I9e33c9d05e9daa77dbb2d795045d08eb887ec8f0
|
|
|
|
| |
Change-Id: I2af7a807c99df75ea659e6e6acc9c4fca6a56274
|
|
|
|
|
|
|
|
|
|
| |
The C++ class names don't match what the classes do, so rename
ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to
GLConsumer.
Bug 7736700
Change-Id: I64520a55f8c09fe6215382ea361c539a9940cba5
|
|
|
|
|
|
|
|
| |
Applications are not resumed under the lock screen now.
This API is not needed anymore.
bug:5584464
Change-Id: I115daf6b647348617ec0fc05b626878c945b9b29
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The purpose is to let face unlock always get the camera
successfully. What happened was the camera applications may
have opened the camera in onResume under the lock screen.
This API lets face unlock take the camera from the camera
application. A new permission will be added, so other
applicatoins won't be able to take the camera from the face
unlock.
bug:5584464
Change-Id: Ib3d9dcbc2161815b68db42327dc01148453704c6
|
|
|
|
| |
Change-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe
|
|
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/#/c/157220
Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
|
|
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/157065
Bug: 5449033
Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
|
|
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/156016
Bug: 5449033
Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
|
|
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/#/c/143865
Bug: 5449033
Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
|
|
|
|
|
| |
bug:4460717
Change-Id: I2fae6e1dfca6b8f3a5ee5716fc7817f5417bf657
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The purpose of ICameraRecordingProxy and ICameraRecordingProxyListener is to
allow applications using the camera during recording.
Camera service allows only one client at a time. Since camcorder application
needs to own the camera to do things like zoom, the media recorder cannot
access the camera directly during recording. So ICameraRecordingProxy is a proxy
of ICamera, which allows the media recorder to start/stop the recording and
release recording frames. ICameraRecordingProxyListener is an interface that
allows the recorder to receive video frames during recording.
ICameraRecordingProxy
startRecording()
stopRecording()
releaseRecordingFrame()
ICameraRecordingProxyListener
dataCallbackTimestamp()
The camcorder app opens the camera and starts the preview. The app passes
ICamera and ICameraRecordingProxy to the media recorder by
MediaRecorder::setCamera(). The recorder uses ICamera to setup the camera in
MediaRecorder::start(). After setup, the recorder disconnects from camera
service. The recorder calls ICameraRecordingProxy::startRecording() and
passes a ICameraRecordingProxyListener to the app. The app connects back to
camera service and starts the recording. The app owns the camera and can do
things like zoom. The media recorder receives the video frames from the
listener and releases them by ICameraRecordingProxy::releaseRecordingFrame.
The recorder calls ICameraRecordingProxy::stopRecording() to stop the
recording.
The call sequences are as follows:
1. The app: Camera.unlock().
2. The app: MediaRecorder.setCamera().
3. Start recording
(1) The app: MediaRecorder.start().
(2) The recorder: ICamera.unlock() and ICamera.disconnect().
(3) The recorder: ICameraRecordingProxy.startRecording().
(4) The app: ICamera.reconnect().
(5) The app: ICamera.startRecording().
4. During recording
(1) The recorder: receive frames from ICameraRecordingProxyListener.dataCallbackTimestamp()
(2) The recorder: release frames by ICameraRecordingProxy.releaseRecordingFrame().
5. Stop recording
(1) The app: MediaRecorder.stop()
(2) The recorder: ICameraRecordingProxy.stopRecording().
(3) The app: ICamera.stopRecording().
bug:2644213
Change-Id: I15269397defc25cbbcae16abc071c8349c123122
|
|
|
|
|
|
|
|
|
| |
Methods getNumberOfVideoBuffers() and getVideoBuffer() as well as struct
image_rect_struct are no longer used (instead, the necessary information is
passed through ANativeWindow.)
Change-Id: If4b11446fc9ccbde1f6b45bc70c0d0b8e54376eb
Signed-off-by: Iliyan Malchev <malchev@google.com>
|
|
|
|
|
|
| |
bug - 3292153
Change-Id: I9789f7c5cde3a3889d7375e881181e9152d95fc2
|
|
|
|
|
|
|
| |
This change enables the use of a SurfaceTexture in place of a Surface as
the destination of camera preview frames.
Change-Id: Ic70d404c8fe261e9d5da6f1de93d6babb5b191cb
|
|
|
|
|
|
| |
bug:3197565
Change-Id: I3439a25c06b00615e8257e6b3db85df081643643
|
|
|
|
|
|
|
|
|
|
| |
When startRecording() is called before setListener(), recording frames
are sent right after startRecording(), but there is no listener to
release the recording frames. This causes the hang in media server.
bug - 3166356
Change-Id: I19366ca682ef9f6b847590c190c30a15ed32b8e4
|
|
|
|
|
|
| |
bug - 3042125
Change-Id: I46eb7a10b5394086b353fd73e4503beceeed76f1
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change makes the camera HAL interface take an ANativeWindow interface from
which all the camera preview buffers will be allocated. The framework code
running in application processes now passes a Surface object rather than an
ISurface to the camera server via Binder when setting the preview surface. The
camera server then forwards that Surface object (which implements the
ANativeWindow interface) to the camera HAL, which uses it to communicate with
SurfaceFlinger to allocate the camera preview buffers.
Change-Id: Ie438f721559cd7de5e4f848a26d96360dda07b5f
|
|\
| |
| |
| |
| |
| |
| | |
Merge commit '4506c62abd5767d6d42a97e8e87793a1b3bcb625' into gingerbread-plus-aosp
* commit '4506c62abd5767d6d42a97e8e87793a1b3bcb625':
fix inaccurate copyrights
|
| |
| |
| |
| | |
Change-Id: I33b0f68f2da34ca4728211d83159cf32a127f6dd
|
| |
| |
| |
| | |
Change-Id: Ie88fe706d2278acf762eca87780de349434778a4
|
| |
| |
| |
| |
| |
| | |
ICamera::connect()
Change-Id: I34ab3e4f07435c62168175e9bb159022c8fb99f4
|
|/
|
|
| |
Change-Id: I081f0fbdca4b633715ea7c3b3d42f8662d27598a
|
|
|
|
|
|
|
| |
so we don't hold the (weak) reference to it, which caused
(small) memory leaks.
Change-Id: If7d58a354fd38c8bc380946bf227b52988ac5118
|
|
|