Open
Conversation
Author
|
libcameraservice: Add support for miui camera mode
|
techyminati
pushed a commit
that referenced
this pull request
Mar 14, 2023
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 #1:(HAL -> framework IPC) HIDL call onInputBuffersReleased() calls to feedInputBufferIfAvailable(). Since this is using HAL IPC thread, this will block Thread #3. This is waiting for mOuput mutex which is held by Thread #2. Thread #2:(framework) discardBuffer() holds mOutput mutex which blocks Thread #1. But this is waiting for C2SurfaceSyncObj which is held by Thread #3. Thread #3:(HAL) Dtor of C2BufferQueueBlockPoolData is holding C2SurfaceSyncObj, therefore this will block #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 #1. Bug: 246707566 Test: atest android.media.decoder.cts.AdaptivePlaybackTest Test: atest android.media.decoder.cts.DecoderTest Change-Id: I6a9540d3b4d03806cd40bb4f89a234a6b77758a9 Merged-In: I6a9540d3b4d03806cd40bb4f89a234a6b77758a9
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
libcameraservice: Add support for miui camera mode
devices like ginkgo and some xiaomi sdm660 use miui camera mode in camera
hal to activate certain functions in camera hal, these are enabled when
vendor.camera.miui.apk is set to 1 based on sys.camera.miui.apk value
if this prop is set by default gcam crashes, so we must do it dynamically
xiaomi does this in stock libcameraservice but unfortunately we don't
have stock android 12 to use prebuilt lib