diff options
author | Eino-Ville Talvala <etalvala@google.com> | 2013-06-04 16:34:35 -0700 |
---|---|---|
committer | Eino-Ville Talvala <etalvala@google.com> | 2013-06-04 17:23:08 -0700 |
commit | 254446a80cb13d5beb606bfc3e60a17473869478 (patch) | |
tree | 104a205908ae2633db26fceef230f94238448135 /services/camera/libcameraservice/Camera2Client.cpp | |
parent | 8f908c0c211f8051f339bc85b01a6450f0dfd7d0 (diff) | |
download | frameworks_av-254446a80cb13d5beb606bfc3e60a17473869478.zip frameworks_av-254446a80cb13d5beb606bfc3e60a17473869478.tar.gz frameworks_av-254446a80cb13d5beb606bfc3e60a17473869478.tar.bz2 |
Camera2/3: Move recording frame processing to its own thread.
Due to new deadlock opportunities from HAL3 integration, recording
frame processing needs to move out of the new frame handler into its
own thread in StreamingProcessor.
Bug: 9282913
Change-Id: I8d2926f2de9d0d395eef3c328c65caebbdbd2827
Diffstat (limited to 'services/camera/libcameraservice/Camera2Client.cpp')
-rw-r--r-- | services/camera/libcameraservice/Camera2Client.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/services/camera/libcameraservice/Camera2Client.cpp b/services/camera/libcameraservice/Camera2Client.cpp index 5fdec34..081fdec 100644 --- a/services/camera/libcameraservice/Camera2Client.cpp +++ b/services/camera/libcameraservice/Camera2Client.cpp @@ -102,6 +102,9 @@ status_t Camera2Client::initialize(camera_module_t *module) String8 threadName; mStreamingProcessor = new StreamingProcessor(this); + threadName = String8::format("C2-%d-StreamProc", + mCameraId); + mStreamingProcessor->run(threadName.string()); mFrameProcessor = new FrameProcessor(mDevice, this); threadName = String8::format("C2-%d-FrameProc", @@ -411,6 +414,7 @@ void Camera2Client::disconnect() { mCallbackProcessor->deleteStream(); mZslProcessor->deleteStream(); + mStreamingProcessor->requestExit(); mFrameProcessor->requestExit(); mCaptureSequencer->requestExit(); mJpegProcessor->requestExit(); @@ -419,6 +423,7 @@ void Camera2Client::disconnect() { ALOGV("Camera %d: Waiting for threads", mCameraId); + mStreamingProcessor->join(); mFrameProcessor->join(); mCaptureSequencer->join(); mJpegProcessor->join(); |