Skip to content

camera: Expose aux cameras in third party apps#2

Open
RahulGorai0206 wants to merge 1 commit intoSpark-Rom:sparkfrom
RahulGorai0206:spark
Open

camera: Expose aux cameras in third party apps#2
RahulGorai0206 wants to merge 1 commit intoSpark-Rom:sparkfrom
RahulGorai0206:spark

Conversation

@RahulGorai0206
Copy link

Change-Id: Iba95bf2450be20f85c1e5db81ee5d1b950d6d497
Signed-off-by: SamarV-121 samarvispute121@pm.me

Change-Id: Iba95bf2450be20f85c1e5db81ee5d1b950d6d497
Signed-off-by: SamarV-121 <samarvispute121@pm.me>
SparkosCUST pushed a commit to SparkosCUST/frameworks_av that referenced this pull request Dec 31, 2022
Do not hold lock when IPC call is expected from HAL.

C2SurfaceSyncObj is shared lock between framework and HAL. HAL process
can have only one thread to handle IPC from HAL to framework.
Therefore Holding C2SurfaceSyncObj from HAL during IPC call could
trigger deadlock. The exact scenario is as follows.

Thread Spark-Rom#1:(HAL -> framework IPC) HIDL call onInputBuffersReleased()
            calls to feedInputBufferIfAvailable(). Since this is using
            HAL IPC thread, this will block Thread Spark-Rom#3. This is waiting
            for mOuput mutex which is held by Thread Spark-Rom#2.
Thread Spark-Rom#2:(framework) discardBuffer() holds mOutput mutex which blocks
            Thread Spark-Rom#1. But this is waiting for C2SurfaceSyncObj which is
            held by Thread Spark-Rom#3.
Thread Spark-Rom#3:(HAL) Dtor of C2BufferQueueBlockPoolData is holding
            C2SurfaceSyncObj, therefore this will block Spark-Rom#2. This thread
            is waiting for HIDL IPC thread to be free in order for
            'igbp->cancel()', but HIDL IPC thread is already occupied by
            Thread Spark-Rom#1.

Bug: 246707566
Test: atest android.media.decoder.cts.AdaptivePlaybackTest
Test: atest android.media.decoder.cts.DecoderTest
Change-Id: I6a9540d3b4d03806cd40bb4f89a234a6b77758a9
(cherry picked from commit d36be3a02819390431eed067e8f47262addb07a0)
Merged-In: I6a9540d3b4d03806cd40bb4f89a234a6b77758a9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants