Status Update
Comments
pa...@gmail.com <pa...@gmail.com> #2
wu...@google.com <wu...@google.com> #3
Great! Thanks a lot, I'll look for the live updates soon!
wu...@google.com <wu...@google.com>
pa...@gmail.com <pa...@gmail.com> #4
I tried with the new version still happening in version is 1.3.0 and the latest alpha version is 1.4.0-alpha02 version. Still able to reproduce in newer versions mentioned by you. Please let me know if you need any kind of help from our end.
wu...@google.com <wu...@google.com> #5
Thanks for letting us know. We will investigate the issue and update the status to here.
wu...@google.com <wu...@google.com>
ch...@google.com <ch...@google.com> #6
Hi,
We're guessing that this issue might be caused by that the device camera HAL might create insufficient byte buffer for the captured image. Therefore, the returned Image is corrupted, then, causes this issue. Because we do not have the Samsung A24 device, we need your help to do some testing and provide some info for this issue.
- As you mentioned that the issue can also be reproduce by
. Could you help to pull a problematic image from the device when the issue happens? You can use theCamera2Basic to pull the image. The captured images should be saved underDevice Explorer /data/user/0/com.android.example.camera2.basic/files/
. - By using CameraX, could you have a try whether the issue can be avoidable if your app tries to reduce the JPEG quality as 90 or 85? (
). This might be a temporarily workaround for this issue on the device if the root cause is really as what we guessed.ImageCapture.Builder#setJpegQuality(int) - I want to confirm with you whether
100s of this kind of device
in your issue description only indicates the Samsung A24 device?
Thanks.
pa...@gmail.com <pa...@gmail.com> #7
Thanks for your quick response. Sharing the image asked by you in the previous reply in the attachments.
Point 1. Shared the images in attachment
point 2. - I tried by setting the jpegQuality to 90, 80 and even 50% still getting the same exception - not helped this way to solve the issue
point 3. - yes all 100s of the device are Samsung A24, the issue happening for certain kind of images only as mentioned in previous chat - images having lots of objects and colors.
ch...@google.com <ch...@google.com>
ch...@google.com <ch...@google.com> #8
Thanks for providing the info. I'll investigate whether there is an approach we can do to workaround this issue in CameraX.
ch...@google.com <ch...@google.com> #9
Hi,
Could you help to check whether the device has been upgraded to its latest release OS and the issue still happens? What are the device name and model name? We need the info to apply workaround if we can find.
Thanks.
pa...@gmail.com <pa...@gmail.com> #10
The device and model are Samsung Galaxy A-24 (SM-A245F/DSN)
I am attaching the device config screenshots it's already upgraded to the latest OS and still the issue happening.
pa...@gmail.com <pa...@gmail.com> #11
I hope you are still working on this issue, if you have any findings or if you have any workarounds please let us know, as it's blocking day to day operation of client devices. If you need any help from our end be it testing certain scenarios on this specific device please free to ask.
ch...@google.com <ch...@google.com> #12
Hi,
It looks like the JPEG file metadata is incorrect.
By using the
hexdump
tool to convert the IMG_2023_11_08_17_33_21_398.jpg to hex data format, the first line of data is:0000000 d8ff e1ff 7cff 7845 6669 0000 4949 002a
- d8ff -> SOI (Start of Image)
- e1ff -> The first segment
- 7cff -> The data length of the first segment
The next segment marker should be found at
000ff80
, but the data at position000ff80
is:000ff70 5481 187e 6aaf c8ae 6cf8 c737 8323 dff8 000ff80 bbe1 7599 d664 9e2d 8a04 1627 5de1 5ef0 000ff90 0c47 88c1 c2f6 d4e3 958e 6be5 dfa2 6e5c
No
??ff
segment marker can be found at the position. Therefore,ExifInterface
throw the"IOException: Invalid marker"
when parsing the JPEG file, and then cause the problem.
I have tried to contact Samsung to clarify this issue. But I'm not sure when can I get their feedback.
Could you try to set the buffer format as YUV_420_888 to the ImageCapture as the following sample code to see whether it can be a temporary workaround to the issue?
ImageCapture imageCapture = new ImageCapture.Builder()
.setBufferFormat(ImageFormat.YUV_420_888)
.build()
But, please be noticed that:
setBufferFormat
is restricted hidden API. It might be changed or removed in future. It is only used to temporarily workaround this issue on the specific device.- The images captured by using YUV_420_888 format will be smaller than using JPEG format.
pa...@gmail.com <pa...@gmail.com> #13
Conducted the changes suggested by you in the cameraxBasic sample app(
Getting two types of error as mentioned below:
getting this error in first time build of app:
11/15 00:44:55: Launching 'app' on samsung SM-A245F.
Install successfully finished in 307 ms.
$ adb shell am start -n "com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Connected to process 23426 on device 'samsung-sm_a245f-RZ8W807X4RL'.
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
W/le.cameraxbasic: Redefining intrinsic method java.lang.Thread java.lang.Thread.currentThread(). This may cause the unexpected use of the original definition of java.lang.Thread java.lang.Thread.currentThread()in methods that have already been compiled.
W/le.cameraxbasic: Redefining intrinsic method boolean java.lang.Thread.interrupted(). This may cause the unexpected use of the original definition of boolean java.lang.Thread.interrupted()in methods that have already been compiled.
D/CompatibilityChangeReporter: Compat change id reported: 171979766; UID 10263; state: ENABLED
E/le.cameraxbasic: Attempt to load writable dex file: /data/data/com.android.example.cameraxbasic/code_cache/.overlay/base.apk/classes3.dex
W/ziparchive: Unable to open '/data/data/com.android.example.cameraxbasic/code_cache/.overlay/base.apk/
W/ziparchive: Unable to open '/data/app/~~eV9GRbHpmhI6xEC6sUJ65A==/com.android.example.cameraxbasic-TcBnrHpXqjAkWyX3ZyvOYA==/
W/ziparchive: Unable to open '/data/app/~~eV9GRbHpmhI6xEC6sUJ65A==/com.android.example.cameraxbasic-TcBnrHpXqjAkWyX3ZyvOYA==/
D/nativeloader: Configuring clns-4 for other apk /data/app/~~eV9GRbHpmhI6xEC6sUJ65A==/com.android.example.cameraxbasic-TcBnrHpXqjAkWyX3ZyvOYA==/base.apk. target_sdk_version=33, uses_libraries=, library_path=/data/app/~~eV9GRbHpmhI6xEC6sUJ65A==/com.android.example.cameraxbasic-TcBnrHpXqjAkWyX3ZyvOYA==/lib/arm64:/data/app/~~eV9GRbHpmhI6xEC6sUJ65A==/com.android.example.cameraxbasic-TcBnrHpXqjAkWyX3ZyvOYA==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand:/data/user/0/com.android.example.cameraxbasic
V/GraphicsEnvironment: ANGLE Developer option for 'com.android.example.cameraxbasic' set to: 'default'
V/GraphicsEnvironment: ANGLE GameManagerService for com.android.example.cameraxbasic: false
V/GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported.
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
D/OpenGLRenderer: RenderThread::requireGlContext()
D/libMEOW: meow new tls: 0xb400007ae437db40
W/libc: Access denied finding property "ro.vendor.mtk.gpu.glt"
D/libMEOW: meow reload base cfg path: na
D/libMEOW: meow reload overlay cfg path: na
D/libMEOW: applied 1 plugins for [com.android.example.cameraxbasic]:
D/libMEOW: plugin 1: [libMEOW_gift.so]: 0xb400007b455780c0
D/libMEOW: rebuild call chain: 0xb400007ae438ce00
D/OpenGLRenderer: RenderThread::setGrContext()
I/DecorView: [INFO] isPopOver=false config=true
I/DecorView: updateCaptionType: isFloating=false isApplication=true hasWindowDecorCaption=false this=DecorView@63a797f[]
D/DecorView: setCaptionType = 0, this = DecorView@63a797f[]
I/DecorView: getCurrentDensityDpi: from real metrics. densityDpi=450 msg=resources_loaded
I/DecorView: setWindowBackground: isPopOver=false color=fffafafa d=android.graphics.drawable.ColorDrawable@f4c5195
W/le.cameraxbasic: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (unsupported, reflection, allowed)
W/le.cameraxbasic: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (unsupported, reflection, allowed)
I/MSHandlerLifeCycle: check: return. pkg=com.android.example.cameraxbasic parent=null callers=com.android.internal.policy.DecorView.setVisibility:4408 android.app.ActivityThread.handleResumeActivity:5476 android.app.servertransaction.ResumeActivityItem.execute:54 android.app.servertransaction.ActivityTransactionItem.execute:45 android.app.servertransaction.TransactionExecutor.executeLifecycleState:176
I/MSHandlerLifeCycle: removeMultiSplitHandler: no exist. decor=DecorView@63a797f[]
D/NativeCustomFrequencyManager: [NativeCFMS] BpCustomFrequencyManager::BpCustomFrequencyManager()
I/DecorView: notifyKeepScreenOnChanged: keepScreenOn=true
D/InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2340), mDisplayCutout=DisplayCutout{insets=Rect(0, 77 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(477, 0 - 603, 77), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2340 physicalDisplayWidth=1080 physicalDisplayHeight=2340 density={2.8125} cutoutSpec={M 0,0 H -22.4 V 27.37777777777778 H 22.4 V 0 H 0 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=90, center=Point(90, 90)}, RoundedCorner{position=TopRight, radius=90, center=Point(990, 90)}, RoundedCorner{position=BottomRight, radius=90, center=Point(990, 2250)}, RoundedCorner{position=BottomLeft, radius=90, center=Point(90, 2250)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2340), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 77) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,77], mVisible=false, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][0,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1080,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,111], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false} } host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.ViewRootImpl.setView:1732
I/ViewRootImpl@3b1224f[MainActivity]: setView = com.android.internal.policy.DecorView@63a797f TM=true
I/MSHandlerLifeCycle: removeMultiSplitHandler: no exist. decor=DecorView@63a797f[MainActivity]
I/ViewRootImpl@3b1224f[MainActivity]: performTraversals params={(0,0)(fillxfill) sim={adjust=pan forwardNavigation} layoutInDisplayCutoutMode=shortEdges ty=BASE_APPLICATION wanim=0x1030309
fl=81810180
pfl=12020040
bhv=DEFAULT
fitSides= naviIconColor=0}
I/ViewRootImpl@3b1224f[MainActivity]: performTraversals mFirst=true windowShouldResize=true viewVisibilityChanged=false mForceNextWindowRelayout=false params={(0,0)(fillxfill) sim={adjust=pan forwardNavigation} layoutInDisplayCutoutMode=shortEdges ty=BASE_APPLICATION wanim=0x1030309
fl=81810180
pfl=12020040
bhv=DEFAULT
fitSides= naviIconColor=0}
I/ViewRootImpl@3b1224f[MainActivity]: updateBlastSurfaceIfNeeded mBlastBufferQueue=null isSameSurfaceControl=false
D/BufferQueueConsumer: [](id:5b8200000000,api:0,p:-1,c:23426) connect: controlledByApp=false
I/BLASTBufferQueue: new BLASTBufferQueue, mName= ViewRootImpl@3b1224f[MainActivity] mNativeObject= 0xb400007b6f919c80 sc.mNativeObject= 0xb400007ae4a14aa0 caller= android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2909 android.view.ViewRootImpl.relayoutWindow:9847 android.view.ViewRootImpl.performTraversals:3884 android.view.ViewRootImpl.doTraversal:3116 android.view.ViewRootImpl$TraversalRunnable.run:10885 android.view.Choreographer$CallbackRecord.run:1301 android.view.Choreographer$CallbackRecord.run:1309 android.view.Choreographer.doCallbacks:923 android.view.Choreographer.doFrame:852 android.view.Choreographer$FrameDisplayEventReceiver.run:1283
I/BLASTBufferQueue: update, w= 1080 h= 2340 mName = ViewRootImpl@3b1224f[MainActivity] mNativeObject= 0xb400007b6f919c80 sc.mNativeObject= 0xb400007ae4a14aa0 format= -1 caller= android.graphics.BLASTBufferQueue.<init>:84 android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2909 android.view.ViewRootImpl.relayoutWindow:9847 android.view.ViewRootImpl.performTraversals:3884 android.view.ViewRootImpl.doTraversal:3116 android.view.ViewRootImpl$TraversalRunnable.run:10885
E/FBI: Can't load library: dlopen failed: library "libmagtsync.so" not found
I/ViewRootImpl@3b1224f[MainActivity]: Relayout returned: old=(0,0,1080,2340) new=(0,0,1080,2340) req=(1080,2340)0 dur=15 res=0x3 s={true 0xb400007ae4adc800} ch=true seqId=0
I/ViewRootImpl@3b1224f[MainActivity]: mThreadedRenderer.initialize() mSurface={isValid=true 0xb400007ae4adc800} hwInitialized=true
I/ViewRootImpl@3b1224f[MainActivity]: Resizing android.view.ViewRootImpl@934fbc8: frame = [0,0][1080,2340] reportDraw = true forceLayout = false syncSeqId = 0
D/OpenGLRenderer: eglCreateWindowSurface
I/ViewRootImpl@3b1224f[MainActivity]: reportNextDraw android.view.ViewRootImpl.performTraversals:4438 android.view.ViewRootImpl.doTraversal:3116 android.view.ViewRootImpl$TraversalRunnable.run:10885 android.view.Choreographer$CallbackRecord.run:1301 android.view.Choreographer$CallbackRecord.run:1309
I/ViewRootImpl@3b1224f[MainActivity]: Setup new sync id=0
I/ViewRootImpl@3b1224f[MainActivity]: Setting syncFrameCallback
I/ViewRootImpl@3b1224f[MainActivity]: registerCallbacksForSync syncBuffer=false
I/ViewRootImpl@3b1224f[MainActivity]: Received frameDrawingCallback syncResult=0 frameNum=1.
I/ViewRootImpl@3b1224f[MainActivity]: Setting up sync and frameCommitCallback
E/gralloc4: Empty SMPTE 2094-40 data
I/BLASTBufferQueue: [ViewRootImpl@3b1224f[MainActivity]#0](f:0,a:0) onFrameAvailable the first frame is available
D/BLASTBufferQueue: [ViewRootImpl@3b1224f[MainActivity]#0](f:0,a:1) acquireNextBufferLocked size=1080x2340 mFrameNumber=1 applyTransaction=true mTimestamp=730725384966(auto) mPendingTransactions.size=0 graphicBufferId=100613903876096 transform=0
I/ViewRootImpl@3b1224f[MainActivity]: Received frameCommittedCallback lastAttemptedDrawFrameNum=1 didProduceBuffer=true
D/OpenGLRenderer: CFMS:: SetUp Pid : 23426 Tid : 23452
W/Parcel: Expecting binder but got null!
I/ViewRootImpl@3b1224f[MainActivity]: onSyncComplete
I/ViewRootImpl@3b1224f[MainActivity]: setupSync seqId=0 mSyncId=0 fn=1 caller=android.view.ViewRootImpl$$ExternalSyntheticLambda11.accept:6 android.window.SurfaceSyncer.lambda$setupSync$1$android-window-SurfaceSyncer:128 android.window.SurfaceSyncer$$ExternalSyntheticLambda1.accept:8 android.window.SurfaceSyncer$SyncSet.checkIfSyncIsComplete:382 android.window.SurfaceSyncer$SyncSet.markSyncReady:359 android.window.SurfaceSyncer.markSyncReady:151 android.view.ViewRootImpl.performTraversals:4503
I/ViewRootImpl@3b1224f[MainActivity]: reportDrawFinished seqId=0 mSyncId=-1 fn=1 mSurfaceChangedTransaction=0xb400007ae476f900
D/InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2340), mDisplayCutout=DisplayCutout{insets=Rect(0, 77 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(477, 0 - 603, 77), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2340 physicalDisplayWidth=1080 physicalDisplayHeight=2340 density={2.8125} cutoutSpec={M 0,0 H -22.4 V 27.37777777777778 H 22.4 V 0 H 0 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=90, center=Point(90, 90)}, RoundedCorner{position=TopRight, radius=90, center=Point(990, 90)}, RoundedCorner{position=BottomRight, radius=90, center=Point(990, 2250)}, RoundedCorner{position=BottomLeft, radius=90, center=Point(90, 2250)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2340), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 77) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,77], mVisible=false, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][0,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1080,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,111], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false} } host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6740
E/gralloc4: Empty SMPTE 2094-40 data
I/CameraManagerGlobal: Connecting to camera service
D/InsetsController: controlAnimationUnchecked: Added types=1 animType=0 host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.onControlsChanged:992
D/VendorTagDescriptor: addVendorDescriptor: vendor tag id 14172875900359437128 added
D/InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2340), mDisplayCutout=DisplayCutout{insets=Rect(0, 77 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(477, 0 - 603, 77), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2340 physicalDisplayWidth=1080 physicalDisplayHeight=2340 density={2.8125} cutoutSpec={M 0,0 H -22.4 V 27.37777777777778 H 22.4 V 0 H 0 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=90, center=Point(90, 90)}, RoundedCorner{position=TopRight, radius=90, center=Point(990, 90)}, RoundedCorner{position=BottomRight, radius=90, center=Point(990, 2250)}, RoundedCorner{position=BottomLeft, radius=90, center=Point(90, 2250)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2340), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 77) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][0,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1080,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,111], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false} } host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6727
I/ViewRootImpl@3b1224f[MainActivity]: handleResized, msg = 5 frames=ClientWindowFrames{frame=[0,0][1080,2340] display=[0,0][1080,2340] parentFrame=[0,0][0,0] parentClippedByDisplayCutout=false} forceNextWindowRelayout=false displayId=0 resizeMode=-1 frameChanged=false displayFrameChanged=false configChanged=false displayChanged=false
I/ViewRootImpl@3b1224f[MainActivity]: handleResized mSyncSeqId = 0
I/ViewRootImpl@3b1224f[MainActivity]: reportNextDraw android.view.ViewRootImpl.handleResized:2450 android.view.ViewRootImpl.-$$Nest$mhandleResized:0 android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6728 android.view.ViewRootImpl$ViewRootHandler.handleMessage:6697 android.os.Handler.dispatchMessage:106
I/ViewRootImpl@3b1224f[MainActivity]: Setup new sync id=1
I/ViewRootImpl@3b1224f[MainActivity]: Setting syncFrameCallback
I/ViewRootImpl@3b1224f[MainActivity]: registerCallbacksForSync syncBuffer=false
I/ViewRootImpl@3b1224f[MainActivity]: Received frameDrawingCallback syncResult=0 frameNum=3.
I/ViewRootImpl@3b1224f[MainActivity]: Setting up sync and frameCommitCallback
I/CameraManagerGlobal: Camera 0 facing CAMERA_FACING_BACK state now CAMERA_STATE_CLOSED for client infilect.infiviz API Level 2
I/ViewRootImpl@3b1224f[MainActivity]: Received frameCommittedCallback lastAttemptedDrawFrameNum=3 didProduceBuffer=false
I/CameraManagerGlobal: Camera 1 facing CAMERA_FACING_FRONT state now CAMERA_STATE_CLOSED for client android.system API Level 2
I/CameraManagerGlobal: Camera 2 facing CAMERA_FACING_FRONT state now CAMERA_STATE_CLOSED for client android.system API Level 2
I/CameraManagerGlobal: Camera 23 facing CAMERA_FACING_BACK state now CAMERA_STATE_CLOSED for client android.system API Level 2
W/libc: Access denied finding property "sys.perf.boostopt"
I/CameraManagerGlobal: Camera 3 facing CAMERA_FACING_FRONT state now CAMERA_STATE_CLOSED for client android.system API Level 2
I/CameraManagerGlobal: Camera 50 facing CAMERA_FACING_BACK state now CAMERA_STATE_CLOSED for client android.system API Level 2
I/CameraManagerGlobal: Camera 54 facing CAMERA_FACING_BACK state now CAMERA_STATE_CLOSED for client android.system API Level 2
I/BLASTBufferQueue: syncNextTransaction, mName= ViewRootImpl@3b1224f[MainActivity] acquireSingleBuffer= true mNativeObject= 0xb400007b6f919c80 callback= null caller= android.graphics.BLASTBufferQueue.syncNextTransaction:147 android.view.ViewRootImpl$12.lambda$onFrameDraw$0$android-view-ViewRootImpl$12:13399 android.view.ViewRootImpl$12$$ExternalSyntheticLambda1.onFrameCommit:9 android.view.ThreadedRenderer$1.lambda$onFrameDraw$0:813 android.view.ThreadedRenderer$1$$ExternalSyntheticLambda0.onFrameCommit:2 <bottom of call stack>
I/BLASTBufferQueue: [ViewRootImpl@3b1224f[MainActivity]#0](f:0,a:1) syncNextTransaction callback: 0, acquireSingleBuffer: 1, mTransactionReadyCallback: 0
I/BLASTBufferQueue: gatherPendingTransactions, mName= ViewRootImpl@3b1224f[MainActivity] mNativeObject= 0xb400007b6f919c80 frameNumber= 3 caller= android.view.ViewRootImpl$12.lambda$onFrameDraw$0$android-view-ViewRootImpl$12:13406 android.view.ViewRootImpl$12$$ExternalSyntheticLambda1.onFrameCommit:9 android.view.ThreadedRenderer$1.lambda$onFrameDraw$0:813 android.view.ThreadedRenderer$1$$ExternalSyntheticLambda0.onFrameCommit:2 <bottom of call stack> <bottom of call stack>
I/ViewRootImpl@3b1224f[MainActivity]: onSyncComplete
I/ViewRootImpl@3b1224f[MainActivity]: setupSync seqId=0 mSyncId=1 fn=3 caller=android.view.ViewRootImpl$$ExternalSyntheticLambda11.accept:6 android.window.SurfaceSyncer.lambda$setupSync$1$android-window-SurfaceSyncer:128 android.window.SurfaceSyncer$$ExternalSyntheticLambda1.accept:8 android.window.SurfaceSyncer$SyncSet.checkIfSyncIsComplete:382 android.window.SurfaceSyncer$SyncSet.markSyncReady:359 android.window.SurfaceSyncer.markSyncReady:151 android.view.ViewRootImpl.performTraversals:4503
I/ViewRootImpl@3b1224f[MainActivity]: reportDrawFinished seqId=0 mSyncId=-1 fn=3 mSurfaceChangedTransaction=0xb400007ae476f900
I/ViewRootImpl@3b1224f[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 1 0
I/ViewRootImpl@3b1224f[MainActivity]: mThreadedRenderer.initializeIfNeeded()#2 mSurface={isValid=true 0xb400007ae4adc800}
D/InputMethodManager: startInputInner - Id : 0
I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
E/gralloc4: Empty SMPTE 2094-40 data
D/InputMethodManager: startInputInner - Id : 0
I/Camera2CameraInfo: Device Level: INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
D/InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2340), mDisplayCutout=DisplayCutout{insets=Rect(0, 77 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(477, 0 - 603, 77), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2340 physicalDisplayWidth=1080 physicalDisplayHeight=2340 density={2.8125} cutoutSpec={M 0,0 H -22.4 V 27.37777777777778 H 22.4 V 0 H 0 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=90, center=Point(90, 90)}, RoundedCorner{position=TopRight, radius=90, center=Point(990, 90)}, RoundedCorner{position=BottomRight, radius=90, center=Point(990, 2250)}, RoundedCorner{position=BottomLeft, radius=90, center=Point(90, 2250)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2340), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 77) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][0,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1080,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,111], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_IME, mFrame=[0,0][0,0], mVisibleFrame=[0,1332][1080,2340], mVisible=false, mInsetsRoundedCornerFrame=false} } host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6740
I/CameraManager: registerAvailabilityCallback: Is device callback = false
I/CameraManagerGlobal: postSingleUpdate device: camera id 0 status STATUS_PRESENT
I/CameraManagerGlobal: postSingleUpdate device: camera id 1 status STATUS_PRESENT
I/CameraManagerGlobal: postSingleUpdate device: camera id 2 status STATUS_PRESENT
I/Camera2CameraInfo: Device Level: INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
I/CameraManager: registerAvailabilityCallback: Is device callback = false
I/CameraManagerGlobal: postSingleUpdate device: camera id 0 status STATUS_PRESENT
I/CameraManagerGlobal: postSingleUpdate device: camera id 1 status STATUS_PRESENT
I/CameraManagerGlobal: postSingleUpdate device: camera id 2 status STATUS_PRESENT
I/Camera2CameraInfo: Device Level: INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
I/CameraManager: registerAvailabilityCallback: Is device callback = false
I/CameraManagerGlobal: postSingleUpdate device: camera id 0 status STATUS_PRESENT
I/CameraManagerGlobal: postSingleUpdate device: camera id 1 status STATUS_PRESENT
I/CameraManagerGlobal: postSingleUpdate device: camera id 2 status STATUS_PRESENT
D/CameraXBasic: Screen metrics: 1080 x 2340
D/CameraXBasic: Preview aspect ratio: 1
E/CameraXBasic: Use case binding failed
java.lang.IllegalArgumentException: No supported surface combination is found for camera device - Id : 0. May be attempting to bind too many use cases. Existing surfaces: [] New configs: [androidx.camera.core.impl.ImageAnalysisConfig@e68140b, androidx.camera.core.impl.ImageCaptureConfig@be0a7da, androidx.camera.core.impl.PreviewConfig@eb8fd85]
at androidx.camera.lifecycle.LifecycleCameraRepository.bindToLifecycleCamera(LifecycleCameraRepository.java:285)
at androidx.camera.lifecycle.ProcessCameraProvider.bindToLifecycle(ProcessCameraProvider.java:538)
at androidx.camera.lifecycle.ProcessCameraProvider.bindToLifecycle(ProcessCameraProvider.java:363)
at com.android.example.cameraxbasic.fragments.CameraFragment.bindCameraUseCases(CameraFragment.kt:321)
at com.android.example.cameraxbasic.fragments.CameraFragment.setUpCamera(CameraFragment.kt:250)
at com.android.example.cameraxbasic.fragments.CameraFragment.access$setUpCamera(CameraFragment.kt:74)
at com.android.example.cameraxbasic.fragments.CameraFragment$setUpCamera$1.invokeSuspend(Unknown Source:14)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8757)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
E/gralloc4: Empty SMPTE 2094-40 data
D/InsetsController: cancelAnimation of types: 1, animType: 0, host: com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from:android.view.InsetsController.notifyFinished:1375 android.view.InsetsAnimationThreadControlRunner$1.lambda$notifyFinished$0$android-view-InsetsAnimationThreadControlRunner$1:84 android.view.InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda1.run:4
D/InsetsSourceConsumer: ensureControlPosition: Point(0, 0) for ITYPE_STATUS_BAR on com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from android.view.InsetsSourceConsumer.notifyAnimationFinished:419
I/ViewRootImpl@3b1224f[MainActivity]: mWNT: t=0xb400007ae4507e00 mBlastBufferQueue=0xb400007b6f919c80 fn= 5 caller= android.view.SyncRtSurfaceTransactionApplier.applyTransaction:96 android.view.SyncRtSurfaceTransactionApplier.lambda$scheduleApply$0$android-view-SyncRtSurfaceTransactionApplier:69 android.view.SyncRtSurfaceTransactionApplier$$ExternalSyntheticLambda0.onFrameDraw:4
E/gralloc4: Empty SMPTE 2094-40 data
D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=23, host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from=android.view.InsetsSourceConsumer.hide:257 android.view.InsetsController.collectSourceControls:1310 android.view.InsetsController.controlAnimationUnchecked:1164 android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.hide:1093 android.view.InsetsController.hide:1068 androidx.core.view.WindowInsetsControllerCompat$Impl30.hide:623 androidx.core.view.WindowInsetsControllerCompat.hide:162 com.android.example.cameraxbasic.MainActivity.hideSystemUI:82
D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=22, host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from=android.view.InsetsSourceConsumer.hide:257 android.view.InsetsController.collectSourceControls:1310 android.view.InsetsController.controlAnimationUnchecked:1164 android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.hide:1093 android.view.InsetsController.hide:1068 androidx.core.view.WindowInsetsControllerCompat$Impl30.hide:623 androidx.core.view.WindowInsetsControllerCompat.hide:162 com.android.example.cameraxbasic.MainActivity.hideSystemUI:82
D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=21, host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from=android.view.InsetsSourceConsumer.hide:257 android.view.InsetsController.collectSourceControls:1310 android.view.InsetsController.controlAnimationUnchecked:1164 android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.hide:1093 android.view.InsetsController.hide:1068 androidx.core.view.WindowInsetsControllerCompat$Impl30.hide:623 androidx.core.view.WindowInsetsControllerCompat.hide:162 com.android.example.cameraxbasic.MainActivity.hideSystemUI:82
D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=20, host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from=android.view.InsetsSourceConsumer.hide:257 android.view.InsetsController.collectSourceControls:1310 android.view.InsetsController.controlAnimationUnchecked:1164 android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.hide:1093 android.view.InsetsController.hide:1068 androidx.core.view.WindowInsetsControllerCompat$Impl30.hide:623 androidx.core.view.WindowInsetsControllerCompat.hide:162 com.android.example.cameraxbasic.MainActivity.hideSystemUI:82
D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=2, host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from=android.view.InsetsSourceConsumer.hide:257 android.view.InsetsController.collectSourceControls:1310 android.view.InsetsController.controlAnimationUnchecked:1164 android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.hide:1093 android.view.InsetsController.hide:1068 androidx.core.view.WindowInsetsControllerCompat$Impl30.hide:623 androidx.core.view.WindowInsetsControllerCompat.hide:162 com.android.example.cameraxbasic.MainActivity.hideSystemUI:82
D/InsetsController: controlAnimationUnchecked: Added types=3 animType=1 host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.hide:1093
D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=1, host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from=android.view.InsetsSourceConsumer.hide:257 android.view.InsetsSourceConsumer.hide:261 android.view.InsetsController.hideDirectly:1593 android.view.InsetsController.controlAnimationUnchecked:1234 android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.hide:1093 android.view.InsetsController.hide:1068 androidx.core.view.WindowInsetsControllerCompat$Impl30.hide:623 androidx.core.view.WindowInsetsControllerCompat.hide:162
D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=0, host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from=android.view.InsetsSourceConsumer.hide:257 android.view.InsetsSourceConsumer.hide:261 android.view.InsetsController.hideDirectly:1593 android.view.InsetsController.controlAnimationUnchecked:1234 android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.hide:1093 android.view.InsetsController.hide:1068 androidx.core.view.WindowInsetsControllerCompat$Impl30.hide:623 androidx.core.view.WindowInsetsControllerCompat.hide:162
I/ViewRootImpl@3b1224f[MainActivity]: performTraversals params={(0,0)(fillxfill) sim={adjust=pan} layoutInDisplayCutoutMode=shortEdges ty=BASE_APPLICATION wanim=0x1030309
fl=81810180
pfl=1a020040
bhv=SHOW_TRANSIENT_BARS_BY_SWIPE
fitSides= naviIconColor=0}
I/ViewRootImpl@3b1224f[MainActivity]: Resizing android.view.ViewRootImpl@934fbc8: frame = [0,0][1080,2340] reportDraw = false forceLayout = false syncSeqId = 0
I/ViewRootImpl@3b1224f[MainActivity]: performTraversals mFirst=false windowShouldResize=false viewVisibilityChanged=false mForceNextWindowRelayout=false params={(0,0)(fillxfill) sim={adjust=pan} layoutInDisplayCutoutMode=shortEdges ty=BASE_APPLICATION wanim=0x1030309
fl=81810180
pfl=1a020040
bhv=SHOW_TRANSIENT_BARS_BY_SWIPE
fitSides= naviIconColor=0}
D/InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2340), mDisplayCutout=DisplayCutout{insets=Rect(0, 77 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(477, 0 - 603, 77), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2340 physicalDisplayWidth=1080 physicalDisplayHeight=2340 density={2.8125} cutoutSpec={M 0,0 H -22.4 V 27.37777777777778 H 22.4 V 0 H 0 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=90, center=Point(90, 90)}, RoundedCorner{position=TopRight, radius=90, center=Point(990, 90)}, RoundedCorner{position=BottomRight, radius=90, center=Point(990, 2250)}, RoundedCorner{position=BottomLeft, radius=90, center=Point(90, 2250)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2340), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 77) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,77], mVisible=false, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2205][1080,2340], mVisible=false, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][0,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1080,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,111], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_IME, mFrame=[0,0][0,0], mVisibleFrame=[0,1332][1080,2340], mVisible=false, mInsetsRoundedCornerFrame=false} } host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.ViewRootImpl.relayoutWindow:9802
I/DecorView: onImmersiveModeChanged: isStatusBarHidden=true
I/ViewRootImpl@3b1224f[MainActivity]: updateBlastSurfaceIfNeeded mBlastBufferQueue=0xb400007b6f919c80 isSameSurfaceControl=true
I/BLASTBufferQueue: update, w= 1080 h= 2340 mName = ViewRootImpl@3b1224f[MainActivity] mNativeObject= 0xb400007b6f919c80 sc.mNativeObject= 0xb400007ae4531700 format= -1 caller= android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2898 android.view.ViewRootImpl.relayoutWindow:9847 android.view.ViewRootImpl.performTraversals:3884 android.view.ViewRootImpl.doTraversal:3116 android.view.ViewRootImpl$TraversalRunnable.run:10885 android.view.Choreographer$CallbackRecord.run:1301
I/ViewRootImpl@3b1224f[MainActivity]: Relayout returned: old=(0,0,1080,2340) new=(0,0,1080,2340) req=(1080,2340)0 dur=14 res=0x0 s={true 0xb400007ae4adc800} ch=false seqId=0
E/gralloc4: Empty SMPTE 2094-40 data
I/ViewRootImpl@3b1224f[MainActivity]: handleResized, msg = 4 frames=ClientWindowFrames{frame=[0,0][1080,2340] display=[0,0][1080,2340] parentFrame=[0,0][0,0] parentClippedByDisplayCutout=false} forceNextWindowRelayout=false displayId=0 resizeMode=-1 frameChanged=false displayFrameChanged=false configChanged=false displayChanged=false
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
D/InsetsController: cancelAnimation of types: 3, animType: 1, host: com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from:android.view.InsetsController.notifyFinished:1375 android.view.InsetsAnimationThreadControlRunner$1.lambda$notifyFinished$0$android-view-InsetsAnimationThreadControlRunner$1:84 android.view.InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda1.run:4
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Got the following error after later relaunch attempts
E/gralloc4: Empty SMPTE 2094-40 data
E/CameraXBasic: Photo capture failed: Not bound to a valid Camera [ImageCapture:androidx.camera.core.ImageCapture-9bdb3cf9-629a-411e-a8ba-80fc6f455ac8]
androidx.camera.core.ImageCaptureException: Not bound to a valid Camera [ImageCapture:androidx.camera.core.ImageCapture-9bdb3cf9-629a-411e-a8ba-80fc6f455ac8]
at androidx.camera.core.ImageCapture.lambda$sendImageCaptureRequest$5$androidx-camera-core-ImageCapture(ImageCapture.java:1189)
at androidx.camera.core.ImageCapture$$ExternalSyntheticLambda1.run(Unknown Source:4)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8757)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
Please do needful.
ch...@google.com <ch...@google.com> #14
Hi,
Does your app require ImageAnalysis? CameraX sample app binds Preview + ImageCapture + ImageAnalysis by default. As I know, A24 should be LIMITED hardware level device. If the buffer format of ImageCapture is changed to YUV_420_888, A24 can only support to bind Preview + ImageCapture. Therefore, this workaround can possibly be an option to your app for this specific device if Preview + ImageCapture can fulfill your app's requirements.
Please remove imageAnalyzer
from
ch...@google.com <ch...@google.com> #15
Hi,
Another question. Can the issue only be reproduced by the complex scene as you mentioned in
We're trying to clarify these info to know whether any improvement can be done in CTS/ITS to avoid such kind of problem in the future. Thanks.
pa...@gmail.com <pa...@gmail.com> #16
Yes, the crash happening on complex images only as mentioned in
If you have any other workaround based on information provided till now please share us.
11/15 10:18:36: Launching 'app' on Pixel 2 API 28.
Install successfully finished in 2 s 798 ms.
$ adb shell am start -n "com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Connected to process 24432 on device 'samsung-sm_a245f-RZ8W807X4RL'.
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
D/CompatibilityChangeReporter: Compat change id reported: 171979766; UID 10265; state: ENABLED
W/ziparchive: Unable to open '/data/app/~~3uv6cVLu6OaXH-8fifYlKQ==/com.android.example.cameraxbasic-s0vssyX-K4-qE7nB4I9DmA==/
W/ziparchive: Unable to open '/data/app/~~3uv6cVLu6OaXH-8fifYlKQ==/com.android.example.cameraxbasic-s0vssyX-K4-qE7nB4I9DmA==/
D/nativeloader: Configuring clns-4 for other apk /data/app/~~3uv6cVLu6OaXH-8fifYlKQ==/com.android.example.cameraxbasic-s0vssyX-K4-qE7nB4I9DmA==/base.apk. target_sdk_version=33, uses_libraries=, library_path=/data/app/~~3uv6cVLu6OaXH-8fifYlKQ==/com.android.example.cameraxbasic-s0vssyX-K4-qE7nB4I9DmA==/lib/arm64:/data/app/~~3uv6cVLu6OaXH-8fifYlKQ==/com.android.example.cameraxbasic-s0vssyX-K4-qE7nB4I9DmA==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand:/data/user/0/com.android.example.cameraxbasic
V/GraphicsEnvironment: ANGLE Developer option for 'com.android.example.cameraxbasic' set to: 'default'
V/GraphicsEnvironment: ANGLE GameManagerService for com.android.example.cameraxbasic: false
V/GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported.
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
D/OpenGLRenderer: RenderThread::requireGlContext()
D/libMEOW: meow new tls: 0xb400007b438366c0
W/libc: Access denied finding property "ro.vendor.mtk.gpu.glt"
D/libMEOW: meow reload base cfg path: na
D/libMEOW: meow reload overlay cfg path: na
D/libMEOW: applied 1 plugins for [com.android.example.cameraxbasic]:
D/libMEOW: plugin 1: [libMEOW_gift.so]: 0xb400007b455780c0
D/libMEOW: rebuild call chain: 0xb400007b55bed500
D/OpenGLRenderer: RenderThread::setGrContext()
I/DecorView: [INFO] isPopOver=false config=true
I/DecorView: updateCaptionType: isFloating=false isApplication=true hasWindowDecorCaption=false this=DecorView@6504233[]
D/DecorView: setCaptionType = 0, this = DecorView@6504233[]
I/DecorView: getCurrentDensityDpi: from real metrics. densityDpi=450 msg=resources_loaded
I/DecorView: setWindowBackground: isPopOver=false color=fffafafa d=android.graphics.drawable.ColorDrawable@cdfeb69
W/le.cameraxbasic: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (unsupported, reflection, allowed)
W/le.cameraxbasic: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (unsupported, reflection, allowed)
I/MSHandlerLifeCycle: check: return. pkg=com.android.example.cameraxbasic parent=null callers=com.android.internal.policy.DecorView.setVisibility:4408 android.app.ActivityThread.handleResumeActivity:5476 android.app.servertransaction.ResumeActivityItem.execute:54 android.app.servertransaction.ActivityTransactionItem.execute:45 android.app.servertransaction.TransactionExecutor.executeLifecycleState:176
I/MSHandlerLifeCycle: removeMultiSplitHandler: no exist. decor=DecorView@6504233[]
D/NativeCustomFrequencyManager: [NativeCFMS] BpCustomFrequencyManager::BpCustomFrequencyManager()
I/DecorView: notifyKeepScreenOnChanged: keepScreenOn=true
D/InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2340), mDisplayCutout=DisplayCutout{insets=Rect(0, 77 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(477, 0 - 603, 77), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2340 physicalDisplayWidth=1080 physicalDisplayHeight=2340 density={2.8125} cutoutSpec={M 0,0 H -22.4 V 27.37777777777778 H 22.4 V 0 H 0 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=90, center=Point(90, 90)}, RoundedCorner{position=TopRight, radius=90, center=Point(990, 90)}, RoundedCorner{position=BottomRight, radius=90, center=Point(990, 2250)}, RoundedCorner{position=BottomLeft, radius=90, center=Point(90, 2250)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2340), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 77) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][0,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1080,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,111], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false} } host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.ViewRootImpl.setView:1732
I/ViewRootImpl@f80ef76[MainActivity]: setView = com.android.internal.policy.DecorView@6504233 TM=true
I/MSHandlerLifeCycle: removeMultiSplitHandler: no exist. decor=DecorView@6504233[MainActivity]
I/ViewRootImpl@f80ef76[MainActivity]: performTraversals params={(0,0)(fillxfill) sim={adjust=pan forwardNavigation} layoutInDisplayCutoutMode=shortEdges ty=BASE_APPLICATION wanim=0x1030309
fl=81810180
pfl=12020040
bhv=DEFAULT
fitSides= naviIconColor=0}
I/ViewRootImpl@f80ef76[MainActivity]: performTraversals mFirst=true windowShouldResize=true viewVisibilityChanged=false mForceNextWindowRelayout=false params={(0,0)(fillxfill) sim={adjust=pan forwardNavigation} layoutInDisplayCutoutMode=shortEdges ty=BASE_APPLICATION wanim=0x1030309
fl=81810180
pfl=12020040
bhv=DEFAULT
fitSides= naviIconColor=0}
I/ViewRootImpl@f80ef76[MainActivity]: updateBlastSurfaceIfNeeded mBlastBufferQueue=null isSameSurfaceControl=false
D/BufferQueueConsumer: [](id:5f7000000000,api:0,p:-1,c:24432) connect: controlledByApp=false
I/BLASTBufferQueue: new BLASTBufferQueue, mName= ViewRootImpl@f80ef76[MainActivity] mNativeObject= 0xb400007b6f916b80 sc.mNativeObject= 0xb400007b456058e0 caller= android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2909 android.view.ViewRootImpl.relayoutWindow:9847 android.view.ViewRootImpl.performTraversals:3884 android.view.ViewRootImpl.doTraversal:3116 android.view.ViewRootImpl$TraversalRunnable.run:10885 android.view.Choreographer$CallbackRecord.run:1301 android.view.Choreographer$CallbackRecord.run:1309 android.view.Choreographer.doCallbacks:923 android.view.Choreographer.doFrame:852 android.view.Choreographer$FrameDisplayEventReceiver.run:1283
I/BLASTBufferQueue: update, w= 1080 h= 2340 mName = ViewRootImpl@f80ef76[MainActivity] mNativeObject= 0xb400007b6f916b80 sc.mNativeObject= 0xb400007b456058e0 format= -1 caller= android.graphics.BLASTBufferQueue.<init>:84 android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2909 android.view.ViewRootImpl.relayoutWindow:9847 android.view.ViewRootImpl.performTraversals:3884 android.view.ViewRootImpl.doTraversal:3116 android.view.ViewRootImpl$TraversalRunnable.run:10885
E/FBI: Can't load library: dlopen failed: library "libmagtsync.so" not found
I/ViewRootImpl@f80ef76[MainActivity]: Relayout returned: old=(0,0,1080,2340) new=(0,0,1080,2340) req=(1080,2340)0 dur=16 res=0x3 s={true 0xb400007aeba11800} ch=true seqId=0
I/ViewRootImpl@f80ef76[MainActivity]: mThreadedRenderer.initialize() mSurface={isValid=true 0xb400007aeba11800} hwInitialized=true
I/ViewRootImpl@f80ef76[MainActivity]: reportNextDraw android.view.ViewRootImpl.performTraversals:4438 android.view.ViewRootImpl.doTraversal:3116 android.view.ViewRootImpl$TraversalRunnable.run:10885 android.view.Choreographer$CallbackRecord.run:1301 android.view.Choreographer$CallbackRecord.run:1309
I/ViewRootImpl@f80ef76[MainActivity]: Setup new sync id=0
I/ViewRootImpl@f80ef76[MainActivity]: Setting syncFrameCallback
I/ViewRootImpl@f80ef76[MainActivity]: registerCallbacksForSync syncBuffer=false
D/OpenGLRenderer: eglCreateWindowSurface
I/ViewRootImpl@f80ef76[MainActivity]: Received frameDrawingCallback syncResult=0 frameNum=1.
I/ViewRootImpl@f80ef76[MainActivity]: Setting up sync and frameCommitCallback
E/gralloc4: Empty SMPTE 2094-40 data
I/BLASTBufferQueue: [ViewRootImpl@f80ef76[MainActivity]#0](f:0,a:0) onFrameAvailable the first frame is available
D/BLASTBufferQueue: [ViewRootImpl@f80ef76[MainActivity]#0](f:0,a:1) acquireNextBufferLocked size=1080x2340 mFrameNumber=1 applyTransaction=true mTimestamp=3830762446382(auto) mPendingTransactions.size=0 graphicBufferId=104934640975872 transform=0
I/ViewRootImpl@f80ef76[MainActivity]: Received frameCommittedCallback lastAttemptedDrawFrameNum=1 didProduceBuffer=true
D/OpenGLRenderer: CFMS:: SetUp Pid : 24432 Tid : 24469
W/Parcel: Expecting binder but got null!
I/ViewRootImpl@f80ef76[MainActivity]: onSyncComplete
I/ViewRootImpl@f80ef76[MainActivity]: setupSync seqId=0 mSyncId=0 fn=1 caller=android.view.ViewRootImpl$$ExternalSyntheticLambda11.accept:6 android.window.SurfaceSyncer.lambda$setupSync$1$android-window-SurfaceSyncer:128 android.window.SurfaceSyncer$$ExternalSyntheticLambda1.accept:8 android.window.SurfaceSyncer$SyncSet.checkIfSyncIsComplete:382 android.window.SurfaceSyncer$SyncSet.markSyncReady:359 android.window.SurfaceSyncer.markSyncReady:151 android.view.ViewRootImpl.performTraversals:4503
I/ViewRootImpl@f80ef76[MainActivity]: reportDrawFinished seqId=0 mSyncId=-1 fn=1 mSurfaceChangedTransaction=0xb400007b6f90c700
D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=23, host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from=android.view.InsetsSourceConsumer.hide:257 android.view.InsetsController.collectSourceControls:1310 android.view.InsetsController.controlAnimationUnchecked:1164 android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.hide:1093 android.view.InsetsController.hide:1068 androidx.core.view.WindowInsetsControllerCompat$Impl30.hide:623 androidx.core.view.WindowInsetsControllerCompat.hide:162 com.android.example.cameraxbasic.MainActivity.hideSystemUI:82
D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=22, host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from=android.view.InsetsSourceConsumer.hide:257 android.view.InsetsController.collectSourceControls:1310 android.view.InsetsController.controlAnimationUnchecked:1164 android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.hide:1093 android.view.InsetsController.hide:1068 androidx.core.view.WindowInsetsControllerCompat$Impl30.hide:623 androidx.core.view.WindowInsetsControllerCompat.hide:162 com.android.example.cameraxbasic.MainActivity.hideSystemUI:82
D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=21, host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from=android.view.InsetsSourceConsumer.hide:257 android.view.InsetsController.collectSourceControls:1310 android.view.InsetsController.controlAnimationUnchecked:1164 android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.hide:1093 android.view.InsetsController.hide:1068 androidx.core.view.WindowInsetsControllerCompat$Impl30.hide:623 androidx.core.view.WindowInsetsControllerCompat.hide:162 com.android.example.cameraxbasic.MainActivity.hideSystemUI:82
D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=20, host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from=android.view.InsetsSourceConsumer.hide:257 android.view.InsetsController.collectSourceControls:1310 android.view.InsetsController.controlAnimationUnchecked:1164 android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.hide:1093 android.view.InsetsController.hide:1068 androidx.core.view.WindowInsetsControllerCompat$Impl30.hide:623 androidx.core.view.WindowInsetsControllerCompat.hide:162 com.android.example.cameraxbasic.MainActivity.hideSystemUI:82
D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=2, host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from=android.view.InsetsSourceConsumer.hide:257 android.view.InsetsController.collectSourceControls:1310 android.view.InsetsController.controlAnimationUnchecked:1164 android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.hide:1093 android.view.InsetsController.hide:1068 androidx.core.view.WindowInsetsControllerCompat$Impl30.hide:623 androidx.core.view.WindowInsetsControllerCompat.hide:162 com.android.example.cameraxbasic.MainActivity.hideSystemUI:82
D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=1, host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from=android.view.InsetsSourceConsumer.hide:257 android.view.InsetsController.collectSourceControls:1310 android.view.InsetsController.controlAnimationUnchecked:1164 android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.hide:1093 android.view.InsetsController.hide:1068 androidx.core.view.WindowInsetsControllerCompat$Impl30.hide:623 androidx.core.view.WindowInsetsControllerCompat.hide:162 com.android.example.cameraxbasic.MainActivity.hideSystemUI:82
D/InsetsSourceConsumer: setRequestedVisible: visible=false, type=0, host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from=android.view.InsetsSourceConsumer.hide:257 android.view.InsetsController.collectSourceControls:1310 android.view.InsetsController.controlAnimationUnchecked:1164 android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.hide:1093 android.view.InsetsController.hide:1068 androidx.core.view.WindowInsetsControllerCompat$Impl30.hide:623 androidx.core.view.WindowInsetsControllerCompat.hide:162 com.android.example.cameraxbasic.MainActivity.hideSystemUI:82
I/ViewRootImpl@f80ef76[MainActivity]: performTraversals params={(0,0)(fillxfill) sim={adjust=pan forwardNavigation} layoutInDisplayCutoutMode=shortEdges ty=BASE_APPLICATION wanim=0x1030309
fl=81810180
pfl=1a020040
bhv=SHOW_TRANSIENT_BARS_BY_SWIPE
fitSides= naviIconColor=0}
I/ViewRootImpl@f80ef76[MainActivity]: performTraversals mFirst=false windowShouldResize=false viewVisibilityChanged=false mForceNextWindowRelayout=false params={(0,0)(fillxfill) sim={adjust=pan forwardNavigation} layoutInDisplayCutoutMode=shortEdges ty=BASE_APPLICATION wanim=0x1030309
fl=81810180
pfl=1a020040
bhv=SHOW_TRANSIENT_BARS_BY_SWIPE
fitSides= naviIconColor=0}
I/ViewRootImpl@f80ef76[MainActivity]: Resizing android.view.ViewRootImpl@df2d613: frame = [0,0][1080,2340] reportDraw = false forceLayout = false syncSeqId = 0
D/InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2340), mDisplayCutout=DisplayCutout{insets=Rect(0, 77 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(477, 0 - 603, 77), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2340 physicalDisplayWidth=1080 physicalDisplayHeight=2340 density={2.8125} cutoutSpec={M 0,0 H -22.4 V 27.37777777777778 H 22.4 V 0 H 0 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=90, center=Point(90, 90)}, RoundedCorner{position=TopRight, radius=90, center=Point(990, 90)}, RoundedCorner{position=BottomRight, radius=90, center=Point(990, 2250)}, RoundedCorner{position=BottomLeft, radius=90, center=Point(90, 2250)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2340), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 77) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,77], mVisible=false, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][0,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1080,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,111], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_IME, mFrame=[0,0][0,0], mVisibleFrame=[0,1332][1080,2340], mVisible=false, mInsetsRoundedCornerFrame=false} } host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.ViewRootImpl.relayoutWindow:9802
I/DecorView: onImmersiveModeChanged: isStatusBarHidden=true
I/ViewRootImpl@f80ef76[MainActivity]: updateBlastSurfaceIfNeeded mBlastBufferQueue=0xb400007b6f916b80 isSameSurfaceControl=true
I/BLASTBufferQueue: update, w= 1080 h= 2340 mName = ViewRootImpl@f80ef76[MainActivity] mNativeObject= 0xb400007b6f916b80 sc.mNativeObject= 0xb400007adbe81440 format= -1 caller= android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2898 android.view.ViewRootImpl.relayoutWindow:9847 android.view.ViewRootImpl.performTraversals:3884 android.view.ViewRootImpl.doTraversal:3116 android.view.ViewRootImpl$TraversalRunnable.run:10885 android.view.Choreographer$CallbackRecord.run:1301
I/ViewRootImpl@f80ef76[MainActivity]: Relayout returned: old=(0,0,1080,2340) new=(0,0,1080,2340) req=(1080,2340)0 dur=22 res=0x0 s={true 0xb400007aeba11800} ch=false seqId=0
E/gralloc4: Empty SMPTE 2094-40 data
D/InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2340), mDisplayCutout=DisplayCutout{insets=Rect(0, 77 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(477, 0 - 603, 77), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2340 physicalDisplayWidth=1080 physicalDisplayHeight=2340 density={2.8125} cutoutSpec={M 0,0 H -22.4 V 27.37777777777778 H 22.4 V 0 H 0 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=90, center=Point(90, 90)}, RoundedCorner{position=TopRight, radius=90, center=Point(990, 90)}, RoundedCorner{position=BottomRight, radius=90, center=Point(990, 2250)}, RoundedCorner{position=BottomLeft, radius=90, center=Point(90, 2250)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2340), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 77) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][0,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1080,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,111], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_IME, mFrame=[0,0][0,0], mVisibleFrame=[0,1332][1080,2340], mVisible=false, mInsetsRoundedCornerFrame=false} } host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6740
D/InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2340), mDisplayCutout=DisplayCutout{insets=Rect(0, 77 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(477, 0 - 603, 77), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2340 physicalDisplayWidth=1080 physicalDisplayHeight=2340 density={2.8125} cutoutSpec={M 0,0 H -22.4 V 27.37777777777778 H 22.4 V 0 H 0 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=90, center=Point(90, 90)}, RoundedCorner{position=TopRight, radius=90, center=Point(990, 90)}, RoundedCorner{position=BottomRight, radius=90, center=Point(990, 2250)}, RoundedCorner{position=BottomLeft, radius=90, center=Point(90, 2250)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2340), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 77) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,77], mVisible=false, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][0,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1080,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,111], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_IME, mFrame=[0,0][0,0], mVisibleFrame=[0,1332][1080,2340], mVisible=false, mInsetsRoundedCornerFrame=false} } host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6727
I/ViewRootImpl@f80ef76[MainActivity]: handleResized, msg = 4 frames=ClientWindowFrames{frame=[0,0][1080,2340] display=[0,0][1080,2340] parentFrame=[0,0][0,0] parentClippedByDisplayCutout=false} forceNextWindowRelayout=false displayId=0 resizeMode=-1 frameChanged=false displayFrameChanged=false configChanged=false displayChanged=false
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
D/CompatibilityChangeReporter: Compat change id reported: 78294732; UID 10265; state: ENABLED
I/ViewRootImpl@f80ef76[MainActivity]: Resizing android.view.ViewRootImpl@df2d613: frame = [0,0][1080,2340] reportDraw = false forceLayout = false syncSeqId = 0
I/ViewRootImpl@f80ef76[MainActivity]: stopped(false) old = false
I/MSHandlerLifeCycle: removeMultiSplitHandler: no exist. decor=DecorView@6504233[MainActivity]
D/InsetsController: controlAnimationUnchecked: Added types=2 animType=1 host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.InsetsController.applyAnimation:1576 android.view.InsetsController.applyAnimation:1557 android.view.InsetsController.onControlsChanged:995
D/InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2340), mDisplayCutout=DisplayCutout{insets=Rect(0, 77 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(477, 0 - 603, 77), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2340 physicalDisplayWidth=1080 physicalDisplayHeight=2340 density={2.8125} cutoutSpec={M 0,0 H -22.4 V 27.37777777777778 H 22.4 V 0 H 0 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=90, center=Point(90, 90)}, RoundedCorner{position=TopRight, radius=90, center=Point(990, 90)}, RoundedCorner{position=BottomRight, radius=90, center=Point(990, 2250)}, RoundedCorner{position=BottomLeft, radius=90, center=Point(90, 2250)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2340), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 77) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,77], mVisible=false, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2205][1080,2340], mVisible=false, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][0,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1080,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,111], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_IME, mFrame=[0,0][0,0], mVisibleFrame=[0,1332][1080,2340], mVisible=false, mInsetsRoundedCornerFrame=false} } host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6727
I/ViewRootImpl@f80ef76[MainActivity]: handleResized, msg = 4 frames=ClientWindowFrames{frame=[0,0][1080,2340] display=[0,0][1080,2340] parentFrame=[0,0][0,0] parentClippedByDisplayCutout=false} forceNextWindowRelayout=false displayId=0 resizeMode=-1 frameChanged=false displayFrameChanged=false configChanged=false displayChanged=false
E/gralloc4: Empty SMPTE 2094-40 data
I/ViewRootImpl@f80ef76[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 1 0
I/ViewRootImpl@f80ef76[MainActivity]: mThreadedRenderer.initializeIfNeeded()#2 mSurface={isValid=true 0xb400007aeba11800}
D/InputMethodManager: startInputInner - Id : 0
I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
I/CameraManagerGlobal: Connecting to camera service
D/InputMethodManager: startInputInner - Id : 0
D/VendorTagDescriptor: addVendorDescriptor: vendor tag id 14172875900359437128 added
I/CameraManagerGlobal: Camera 0 facing CAMERA_FACING_BACK state now CAMERA_STATE_CLOSED for client com.android.example.cameraxbasic API Level 2
I/CameraManagerGlobal: Camera 1 facing CAMERA_FACING_FRONT state now CAMERA_STATE_CLOSED for client android.system API Level 2
I/CameraManagerGlobal: Camera 2 facing CAMERA_FACING_FRONT state now CAMERA_STATE_CLOSED for client android.system API Level 2
I/CameraManagerGlobal: Camera 23 facing CAMERA_FACING_BACK state now CAMERA_STATE_CLOSED for client android.system API Level 2
W/libc: Access denied finding property "sys.perf.boostopt"
I/CameraManagerGlobal: Camera 3 facing CAMERA_FACING_FRONT state now CAMERA_STATE_CLOSED for client android.system API Level 2
I/CameraManagerGlobal: Camera 50 facing CAMERA_FACING_BACK state now CAMERA_STATE_CLOSED for client android.system API Level 2
I/CameraManagerGlobal: Camera 54 facing CAMERA_FACING_BACK state now CAMERA_STATE_CLOSED for client android.system API Level 2
E/gralloc4: Empty SMPTE 2094-40 data
I/Camera2CameraInfo: Device Level: INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
I/CameraManager: registerAvailabilityCallback: Is device callback = false
I/CameraManagerGlobal: postSingleUpdate device: camera id 0 status STATUS_PRESENT
I/CameraManagerGlobal: postSingleUpdate device: camera id 1 status STATUS_PRESENT
I/CameraManagerGlobal: postSingleUpdate device: camera id 2 status STATUS_PRESENT
I/Camera2CameraInfo: Device Level: INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
I/CameraManager: registerAvailabilityCallback: Is device callback = false
I/CameraManagerGlobal: postSingleUpdate device: camera id 0 status STATUS_PRESENT
I/CameraManagerGlobal: postSingleUpdate device: camera id 1 status STATUS_PRESENT
I/CameraManagerGlobal: postSingleUpdate device: camera id 2 status STATUS_PRESENT
I/Camera2CameraInfo: Device Level: INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
I/CameraManager: registerAvailabilityCallback: Is device callback = false
I/CameraManagerGlobal: postSingleUpdate device: camera id 0 status STATUS_PRESENT
I/CameraManagerGlobal: postSingleUpdate device: camera id 1 status STATUS_PRESENT
I/CameraManagerGlobal: postSingleUpdate device: camera id 2 status STATUS_PRESENT
D/CameraXBasic: Screen metrics: 1080 x 2340
D/CameraXBasic: Preview aspect ratio: 1
D/BufferQueueConsumer: [](id:5f7000000001,api:0,p:-1,c:24432) connect: controlledByApp=true
D/BufferQueueConsumer: [](id:5f7000000002,api:0,p:-1,c:24432) connect: controlledByApp=true
D/BufferQueueConsumer: [](id:5f7000000003,api:0,p:-1,c:24432) connect: controlledByApp=true
D/CompatibilityChangeReporter: Compat change id reported: 147798919; UID 10265; state: ENABLED
V/Toast: show: caller = com.android.example.cameraxbasic.fragments.CameraFragment.observeCameraState$lambda-7:366
E/gralloc4: Empty SMPTE 2094-40 data
I/SurfaceView@bdf4973: onWindowVisibilityChanged(0) true android.view.SurfaceView{bdf4973 V.E...... ......I. 0,0-0,0} of ViewRootImpl@f80ef76[MainActivity]
D/SurfaceView@bdf4973: updateSurface: has no frame
V/Toast: show: caller = com.android.example.cameraxbasic.fragments.CameraFragment.observeCameraState$lambda-7:348
I/ViewRootImpl@f80ef76[MainActivity]: performTraversals params={(0,0)(fillxfill) sim={adjust=pan} layoutInDisplayCutoutMode=shortEdges ty=BASE_APPLICATION wanim=0x1030309
fl=81810180
pfl=1a020040
bhv=SHOW_TRANSIENT_BARS_BY_SWIPE
fitSides= naviIconColor=0}
I/ViewRootImpl@f80ef76[MainActivity]: performTraversals mFirst=false windowShouldResize=false viewVisibilityChanged=false mForceNextWindowRelayout=false params={(0,0)(fillxfill) sim={adjust=pan} layoutInDisplayCutoutMode=shortEdges ty=BASE_APPLICATION fmt=TRANSLUCENT wanim=0x1030309
fl=81810180
pfl=1a020040
bhv=SHOW_TRANSIENT_BARS_BY_SWIPE
fitSides= naviIconColor=0}
I/ViewRootImpl@f80ef76[MainActivity]: updateBlastSurfaceIfNeeded mBlastBufferQueue=0xb400007b6f916b80 isSameSurfaceControl=true
I/BLASTBufferQueue: update, w= 1080 h= 2340 mName = ViewRootImpl@f80ef76[MainActivity] mNativeObject= 0xb400007b6f916b80 sc.mNativeObject= 0xb400007adbe81e40 format= -3 caller= android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2898 android.view.ViewRootImpl.relayoutWindow:9847 android.view.ViewRootImpl.performTraversals:3884 android.view.ViewRootImpl.doTraversal:3116 android.view.ViewRootImpl$TraversalRunnable.run:10885 android.view.Choreographer$CallbackRecord.run:1301
I/ViewRootImpl@f80ef76[MainActivity]: Relayout returned: old=(0,0,1080,2340) new=(0,0,1080,2340) req=(1080,2340)0 dur=7 res=0x0 s={true 0xb400007aeba11800} ch=false seqId=0
D/SurfaceView@bdf4973: updateSurface: has no frame
I/SurfaceView@bdf4973: Changes: creating=true format=true size=true visible=true alpha=false hint=false mUseAlpha=false visible=true left=true top=true
I/CameraManagerGlobal: postSingleUpdate device: camera id 0 status STATUS_NOT_AVAILABLE
I/CameraManagerGlobal: postSingleUpdate device: camera id 0 status STATUS_NOT_AVAILABLE
I/CameraManagerGlobal: postSingleUpdate device: camera id 0 status STATUS_NOT_AVAILABLE
D/BufferQueueConsumer: [](id:5f7000000004,api:0,p:-1,c:24432) connect: controlledByApp=false
I/BLASTBufferQueue: update, w= 1920 h= 1080 mName = null mNativeObject= 0xb400007b6f917280 sc.mNativeObject= 0xb400007b4564ecc0 format= 4 caller= android.view.SurfaceView.createBlastSurfaceControls:1383 android.view.SurfaceView.updateSurface:1079 android.view.SurfaceView.lambda$new$0$android-view-SurfaceView:200 android.view.SurfaceView$$ExternalSyntheticLambda5.onPreDraw:2 android.view.ViewTreeObserver.dispatchOnPreDraw:1121 android.view.ViewRootImpl.performTraversals:4442
I/SurfaceView@bdf4973: 199182707 Cur surface: Surface(name=null)/@0x85b09cf
I/SurfaceView@bdf4973: pST: sr = Rect(0, 0 - 1920, 1080) sw = 1920 sh = 1080
D/SurfaceView@bdf4973: performSurfaceTransaction RenderWorker position = [0, 0, 1920, 1080] surfaceSize = 1920x1080
I/SurfaceView@bdf4973: applyTransactionOnVriDraw: vri = ViewRootImpl@f80ef76[MainActivity] fRS = false t = 0xb400007b455ec800 android.view.SurfaceView.performSurfaceTransaction:959 android.view.SurfaceView.updateSurface:1105 android.view.SurfaceView.lambda$new$0$android-view-SurfaceView:200
I/ViewRootImpl@f80ef76[MainActivity]: applyTransactionOnDraw: mRemoved = false isHardwareEnabled = true t = 0xb400007b455ec800android.view.SurfaceView.applyTransactionOnVriDraw:2048 android.view.SurfaceView.performSurfaceTransaction:959 android.view.SurfaceView.updateSurface:1105 android.view.SurfaceView.lambda$new$0$android-view-SurfaceView:200 android.view.SurfaceView$$ExternalSyntheticLambda5.onPreDraw:2
I/SurfaceView@bdf4973: updateSurface: mVisible = true mSurface.isValid() = true
I/SurfaceView@bdf4973: updateSurface: mSurfaceCreated = false surfaceChanged = true visibleChanged = true
I/SurfaceView@bdf4973: visibleChanged -- surfaceCreated
I/SurfaceView@bdf4973: surfaceCreated 1 #8 android.view.SurfaceView{bdf4973 V.E...... ......ID 0,0-1920,1080}
I/SurfaceView@bdf4973: surfaceChanged -- format=4 w=1920 h=1080
I/SurfaceView@bdf4973: surfaceChanged (1920,1080) 1 #8 android.view.SurfaceView{bdf4973 V.E...... ......ID 0,0-1920,1080}
I/SurfaceView@bdf4973: surfaceRedrawNeeded
V/SurfaceView@bdf4973: Layout: x=0 y=0 w=1920 h=1080, frame=Rect(0, 0 - 1920, 1080)
I/ViewRootImpl@f80ef76[MainActivity]: mWNT: t=0xb400007b455ec800 mBlastBufferQueue=0xb400007b6f916b80 fn= 29 caller= android.view.ViewRootImpl.lambda$applyTransactionOnDraw$11$android-view-ViewRootImpl:12865 android.view.ViewRootImpl$$ExternalSyntheticLambda1.onFrameDraw:4 android.graphics.HardwareRenderer$FrameDrawingCallback.onFrameDraw:924
D/SurfaceView@bdf4973: updateSurfacePosition RenderWorker, frameNr = 29, position = [0, 0, 1920, 1080] surfaceSize = 1920x1080
I/SurfaceView@bdf4973: uSP: rtp = Rect(0, 0 - 1920, 1080) rtsw = 1920 rtsh = 1080
I/SurfaceView@bdf4973: finishedDrawing
I/SurfaceView@bdf4973: onSSPAndSRT: pl = 0 pt = 0 sx = 1.0 sy = 1.0
I/SurfaceView@bdf4973: aOrMT: ViewRootImpl@f80ef76[MainActivity] t = android.view.SurfaceControl$Transaction@de4ffe1 fN = 29 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1537 android.graphics.RenderNode$CompositePositionUpdateListener.positionChanged:373
I/ViewRootImpl@f80ef76[MainActivity]: mWNT: t=0xb400007b455ec900 mBlastBufferQueue=0xb400007b6f916b80 fn= 29 caller= android.view.SurfaceView.applyOrMergeTransaction:1455 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1537
E/gralloc4: Empty SMPTE 2094-40 data
I/SurfaceView@bdf4973: Changes: creating=false format=false size=false visible=false alpha=false hint=false mUseAlpha=false visible=false left=true top=false
I/SurfaceView@bdf4973: 199182707 Cur surface: Surface(name=null)/@0x85b09cf
I/SurfaceView@bdf4973: applyTransactionOnVriDraw: vri = ViewRootImpl@f80ef76[MainActivity] fRS = false t = 0xb400007b455ecb00 android.view.SurfaceView.performSurfaceTransaction:959 android.view.SurfaceView.updateSurface:1105 android.view.SurfaceView.lambda$new$0$android-view-SurfaceView:200
I/ViewRootImpl@f80ef76[MainActivity]: applyTransactionOnDraw: mRemoved = false isHardwareEnabled = true t = 0xb400007b455ecb00android.view.SurfaceView.applyTransactionOnVriDraw:2048 android.view.SurfaceView.performSurfaceTransaction:959 android.view.SurfaceView.updateSurface:1105 android.view.SurfaceView.lambda$new$0$android-view-SurfaceView:200 android.view.SurfaceView$$ExternalSyntheticLambda5.onPreDraw:2
I/SurfaceView@bdf4973: updateSurface: mVisible = true mSurface.isValid() = true
I/SurfaceView@bdf4973: updateSurface: mSurfaceCreated = true surfaceChanged = false visibleChanged = false
V/SurfaceView@bdf4973: Layout: x=-118 y=0 w=1920 h=1080, frame=Rect(0, 0 - 1920, 1080)
D/SurfaceView@bdf4973: updateSurfacePosition RenderWorker, frameNr = 30, position = [-119, 0, 1199, 2341] surfaceSize = 1920x1080
I/SurfaceView@bdf4973: uSP: rtp = Rect(-119, 0 - 1199, 2341) rtsw = 1920 rtsh = 1080
I/SurfaceView@bdf4973: onSSPAndSRT: pl = -119 pt = 0 sx = 0.68645835 sy = 2.1675925
I/SurfaceView@bdf4973: aOrMT: ViewRootImpl@f80ef76[MainActivity] t = android.view.SurfaceControl$Transaction@de4ffe1 fN = 30 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1537 android.graphics.RenderNode$CompositePositionUpdateListener.positionChanged:373
I/ViewRootImpl@f80ef76[MainActivity]: mWNT: t=0xb400007b455ecb00 mBlastBufferQueue=0xb400007b6f916b80 fn= 30 caller= android.view.ViewRootImpl.lambda$applyTransactionOnDraw$11$android-view-ViewRootImpl:12865 android.view.ViewRootImpl$$ExternalSyntheticLambda1.onFrameDraw:4 android.graphics.HardwareRenderer$FrameDrawingCallback.onFrameDraw:924
I/ViewRootImpl@f80ef76[MainActivity]: mWNT: t=0xb400007b455ec900 mBlastBufferQueue=0xb400007b6f916b80 fn= 30 caller= android.view.SurfaceView.applyOrMergeTransaction:1455 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1537
E/gralloc4: Empty SMPTE 2094-40 data
I/CameraManagerGlobal: Camera 0 facing CAMERA_FACING_BACK state now CAMERA_STATE_OPEN for client com.android.example.cameraxbasic API Level 2
V/Toast: show: caller = com.android.example.cameraxbasic.fragments.CameraFragment.observeCameraState$lambda-7:354
D/InsetsController: cancelAnimation of types: 2, animType: 1, host: com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity, from:android.view.InsetsController.notifyFinished:1375 android.view.InsetsAnimationThreadControlRunner$1.lambda$notifyFinished$0$android-view-InsetsAnimationThreadControlRunner$1:84 android.view.InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda1.run:4
I/CameraManagerGlobal: Camera 0 facing CAMERA_FACING_BACK state now CAMERA_STATE_ACTIVE for client com.android.example.cameraxbasic API Level 2
D/CameraXBasic: Rotation changed: 0
I/BLASTBufferQueue: [SurfaceView[com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity]@0#1](f:0,a:0) onFrameAvailable the first frame is available
D/BLASTBufferQueue: [SurfaceView[com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity]@0#1](f:0,a:1) acquireNextBufferLocked size=1920x1080 mFrameNumber=1 applyTransaction=true mTimestamp=3833516848752 mPendingTransactions.size=0 graphicBufferId=104934640975876 transform=4
I/DMABUFHEAPS: Using DMA-BUF heap named: mtk_mm
I/DMABUFHEAPS: Using DMA-BUF heap named: mtk_mm-uncached
I/DMABUFHEAPS: Using DMA-BUF heap named: mtk_svp_region-aligned
I/DMABUFHEAPS: Using DMA-BUF heap named: mtk_prot_region
I/DMABUFHEAPS: Using DMA-BUF heap named: mtk_2d_fr_region
I/DMABUFHEAPS: Using DMA-BUF heap named: mtk_wfd_region-aligned
I/ViewRootImpl@f80ef76[MainActivity]: Resizing android.view.ViewRootImpl@df2d613: frame = [0,0][1080,2340] reportDraw = false forceLayout = false syncSeqId = 0
D/InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2340), mDisplayCutout=DisplayCutout{insets=Rect(0, 77 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(477, 0 - 603, 77), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2340 physicalDisplayWidth=1080 physicalDisplayHeight=2340 density={2.8125} cutoutSpec={M 0,0 H -22.4 V 27.37777777777778 H 22.4 V 0 H 0 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=90, center=Point(90, 90)}, RoundedCorner{position=TopRight, radius=90, center=Point(990, 90)}, RoundedCorner{position=BottomRight, radius=90, center=Point(990, 2250)}, RoundedCorner{position=BottomLeft, radius=90, center=Point(90, 2250)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2340), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 77) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2205][1080,2340], mVisible=false, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][0,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1080,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,111], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_IME, mFrame=[0,0][0,0], mVisibleFrame=[0,1332][1080,2340], mVisible=false, mInsetsRoundedCornerFrame=false} } host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6727
I/ViewRootImpl@f80ef76[MainActivity]: handleResized, msg = 4 frames=ClientWindowFrames{frame=[0,0][1080,2340] display=[0,0][1080,2340] parentFrame=[0,0][0,0] parentClippedByDisplayCutout=false} forceNextWindowRelayout=false displayId=0 resizeMode=-1 frameChanged=false displayFrameChanged=false configChanged=false displayChanged=false
D/CameraXBasic: Average luminosity: 0.9286154513888889
D/CameraXBasic: Average luminosity: 1.0346017795138889
D/CameraXBasic: Average luminosity: 1.025500217013889
D/CameraXBasic: Average luminosity: 1.0245475260416668
D/CameraXBasic: Average luminosity: 1.0246332465277779
D/CameraXBasic: Average luminosity: 1.022275390625
I/ViewRootImpl@f80ef76[MainActivity]: Resizing android.view.ViewRootImpl@df2d613: frame = [0,0][1080,2340] reportDraw = false forceLayout = false syncSeqId = 0
D/InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2340), mDisplayCutout=DisplayCutout{insets=Rect(0, 77 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(477, 0 - 603, 77), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2340 physicalDisplayWidth=1080 physicalDisplayHeight=2340 density={2.8125} cutoutSpec={M 0,0 H -22.4 V 27.37777777777778 H 22.4 V 0 H 0 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=90, center=Point(90, 90)}, RoundedCorner{position=TopRight, radius=90, center=Point(990, 90)}, RoundedCorner{position=BottomRight, radius=90, center=Point(990, 2250)}, RoundedCorner{position=BottomLeft, radius=90, center=Point(90, 2250)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2340), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 77) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2205][1080,2340], mVisible=false, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][0,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1080,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,111], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_IME, mFrame=[0,0][0,0], mVisibleFrame=[0,1332][1080,2340], mVisible=false, mInsetsRoundedCornerFrame=false} } host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6740
D/InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2340), mDisplayCutout=DisplayCutout{insets=Rect(0, 77 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(477, 0 - 603, 77), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2340 physicalDisplayWidth=1080 physicalDisplayHeight=2340 density={2.8125} cutoutSpec={M 0,0 H -22.4 V 27.37777777777778 H 22.4 V 0 H 0 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=90, center=Point(90, 90)}, RoundedCorner{position=TopRight, radius=90, center=Point(990, 90)}, RoundedCorner{position=BottomRight, radius=90, center=Point(990, 2250)}, RoundedCorner{position=BottomLeft, radius=90, center=Point(90, 2250)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2340), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 77) rotation=0}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,77], mVisible=false, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,2205][1080,2340], mVisible=false, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][0,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[1080,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][1080,111], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[100000,0][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][1080,77], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,2205][1080,2340], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_IME, mFrame=[0,0][0,0], mVisibleFrame=[0,1332][1080,2340], mVisible=false, mInsetsRoundedCornerFrame=false} } host=com.android.example.cameraxbasic/com.android.example.cameraxbasic.MainActivity from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6727
I/ViewRootImpl@f80ef76[MainActivity]: handleResized, msg = 4 frames=ClientWindowFrames{frame=[0,0][1080,2340] display=[0,0][1080,2340] parentFrame=[0,0][0,0] parentClippedByDisplayCutout=false} forceNextWindowRelayout=false displayId=0 resizeMode=-1 frameChanged=false displayFrameChanged=false configChanged=false displayChanged=false
D/CameraXBasic: Average luminosity: 1.0243988715277779
D/CameraXBasic: Average luminosity: 1.0197254774305555
D/CameraXBasic: Average luminosity: 1.0145985243055555
D/CameraXBasic: Average luminosity: 1.0230620659722223
D/CameraXBasic: Average luminosity: 1.0153483072916667
D/CameraXBasic: Average luminosity: 1.0173860677083333
D/CameraXBasic: Average luminosity: 1.029880642361111
D/CameraXBasic: Average luminosity: 1.022868923611111
D/CameraXBasic: Average luminosity: 1.021982421875
D/CameraXBasic: Average luminosity: 1.0280436197916667
D/CameraXBasic: Average luminosity: 1.0228873697916667
D/CameraXBasic: Average luminosity: 1.024084201388889
D/CameraXBasic: Average luminosity: 1.0249240451388888
D/CameraXBasic: Average luminosity: 1.0192664930555555
D/CameraXBasic: Average luminosity: 1.022605251736111
D/CameraXBasic: Average luminosity: 1.0243739149305555
D/CameraXBasic: Average luminosity: 1.0294053819444444
D/CameraXBasic: Average luminosity: 1.02048828125
D/CameraXBasic: Average luminosity: 1.0210970052083332
D/CameraXBasic: Average luminosity: 1.0303352864583333
D/CameraXBasic: Average luminosity: 1.0307975260416666
D/CameraXBasic: Average luminosity: 1.0270442708333334
D/CameraXBasic: Average luminosity: 1.0257660590277777
D/CameraXBasic: Average luminosity: 1.0264453125
D/CameraXBasic: Average luminosity: 1.026750217013889
D/CameraXBasic: Average luminosity: 1.0248133680555556
D/CameraXBasic: Average luminosity: 1.0203656684027778
W/libc: Access denied finding property "sys.perf.boostopt"
D/CameraXBasic: Average luminosity: 1.0262630208333334
D/CameraXBasic: Average luminosity: 1.0310481770833333
D/CameraXBasic: Average luminosity: 1.0291341145833333
D/CameraXBasic: Average luminosity: 1.0258723958333333
D/CameraXBasic: Average luminosity: 1.0280457899305555
D/CameraXBasic: Average luminosity: 1.0161046006944445
D/CameraXBasic: Average luminosity: 1.0165375434027777
D/CameraXBasic: Average luminosity: 0.985888671875
D/CameraXBasic: Average luminosity: 1.0144639756944445
D/CameraXBasic: Average luminosity: 36.136876085069446
D/CameraXBasic: Average luminosity: 218.39135850694444
D/CameraXBasic: Average luminosity: 78.61469075520833
D/CameraXBasic: Average luminosity: 99.01267035590278
D/CameraXBasic: Average luminosity: 111.40533854166667
D/CameraXBasic: Average luminosity: 118.39395833333333
D/CameraXBasic: Average luminosity: 113.08762586805555
D/CameraXBasic: Average luminosity: 109.99001519097222
D/CameraXBasic: Average luminosity: 97.70407552083333
D/CameraXBasic: Average luminosity: 98.33468315972222
D/CameraXBasic: Average luminosity: 98.45031575520834
D/CameraXBasic: Average luminosity: 97.84453125
D/CameraXBasic: Average luminosity: 95.93800889756945
D/CameraXBasic: Average luminosity: 95.77393012152778
D/CameraXBasic: Average luminosity: 99.24070095486111
D/CameraXBasic: Average luminosity: 141.5624294704861
D/CameraXBasic: Average luminosity: 119.83063368055555
D/CameraXBasic: Average luminosity: 123.12560872395834
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 0
E/gralloc4: Empty SMPTE 2094-40 data
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 1
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
D/CameraXBasic: Average luminosity: 123.81080403645834
E/gralloc4: Empty SMPTE 2094-40 data
W/gralloc4: Could not find component description for FourCC value 0
D/CameraXBasic: Average luminosity: 121.81905707465278
D/CameraXBasic: Average luminosity: 120.34095486111111
D/CameraXBasic: Photo capture succeeded: content://media/external/images/media/1000000720
W/Glide: Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency on com.github.bumptech.glide:compiler in your application and a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silently ignored
E/gralloc4: Empty SMPTE 2094-40 data
D/CompatibilityChangeReporter: Compat change id reported: 149924527; UID 10265; state: ENABLED
D/CompatibilityChangeReporter: Compat change id reported: 132649864; UID 10265; state: DISABLED
I/le.cameraxbasic: Background concurrent copying GC freed 457761(14MB) AllocSpace objects, 3(1828KB) LOS objects, 49% free, 10MB/20MB, paused 198us,29us total 128.774ms
I/DMABUFHEAPS: Using DMA-BUF heap named: mtk_mm
D/skia: stream getLength() not supported, use temp buffer for loading stream, buffer addr 0x7ad67fa000 length 628070
D/skia: LoadInputStreamToMem va 0x7ad67fa000 size 630272
D/libjpeg-alpha: Huffman Builder run in subthread
D/libjpeg-alpha: Tile Decoder (#thread:4, size:512 512 512 384x272, alignment:256x16)
E/gralloc4: Empty SMPTE 2094-40 data
D/CameraXBasic: Average luminosity: 127.17099283854166
D/CameraXBasic: Average luminosity: 94.1959375
I/le.cameraxbasic: Background young concurrent copying GC freed 158515(6474KB) AllocSpace objects, 2(1036KB) LOS objects, 12% free, 17MB/20MB, paused 133us,49us total 100.880ms
D/CameraXBasic: Average luminosity: 94.07358940972222
I/le.cameraxbasic: Background concurrent copying GC freed 232230(7625KB) AllocSpace objects, 1(904KB) LOS objects, 49% free, 18MB/36MB, paused 90us,38us total 278.807ms
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 0
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 1
D/CameraXBasic: Average luminosity: 143.969189453125
D/CameraXBasic: Average luminosity: 121.4021896701389
D/CameraXBasic: Average luminosity: 103.37148328993055
D/CameraXBasic: Average luminosity: 129.25601996527777
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 0
E/gralloc4: Empty SMPTE 2094-40 data
D/CameraXBasic: Average luminosity: 128.82398980034722
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 1
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
D/CameraXBasic: Average luminosity: 138.85903645833332
W/gralloc4: Could not find component description for FourCC value 0
D/CameraXBasic: Average luminosity: 136.11875108506945
D/CameraXBasic: Photo capture succeeded: content://media/external/images/media/1000000721
E/gralloc4: Empty SMPTE 2094-40 data
I/DMABUFHEAPS: Using DMA-BUF heap named: mtk_mm
D/skia: stream getLength() not supported, use temp buffer for loading stream, buffer addr 0x7ad67f7000 length 637273
D/skia: LoadInputStreamToMem va 0x7ad67f7000 size 639488
D/libjpeg-alpha: Huffman Builder run in subthread
D/libjpeg-alpha: Tile Decoder (#thread:4, size:512 512 512 384x272, alignment:256x16)
E/gralloc4: Empty SMPTE 2094-40 data
D/CameraXBasic: Average luminosity: 134.62104926215278
W/libc: Access denied finding property "sys.perf.boostopt"
D/CameraXBasic: Average luminosity: 130.51818033854167
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 0
E/gralloc4: Empty SMPTE 2094-40 data
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 1
E/gralloc4: Empty SMPTE 2094-40 data
D/CameraXBasic: Average luminosity: 128.97142144097222
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
I/le.cameraxbasic: Background young concurrent copying GC freed 3031(212KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 22MB/22MB, paused 1.474ms,21us total 107.165ms
W/gralloc4: Could not find component description for FourCC value 0
D/CameraXBasic: Average luminosity: 125.17736111111111
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 0
E/gralloc4: Empty SMPTE 2094-40 data
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 1
E/gralloc4: Empty SMPTE 2094-40 data
D/CameraXBasic: Average luminosity: 121.50824761284723
D/CameraXBasic: Photo capture succeeded: content://media/external/images/media/1000000722
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
I/DMABUFHEAPS: Using DMA-BUF heap named: mtk_mm
D/skia: stream getLength() not supported, use temp buffer for loading stream, buffer addr 0x7ad45ea000 length 709997
D/skia: LoadInputStreamToMem va 0x7ad45ea000 size 712192
D/libjpeg-alpha: Huffman Builder run in subthread
D/libjpeg-alpha: Tile Decoder (#thread:4, size:512 512 512 384x272, alignment:256x16)
E/gralloc4: Empty SMPTE 2094-40 data
W/gralloc4: Could not find component description for FourCC value 0
D/CameraXBasic: Average luminosity: 117.06093641493055
D/CameraXBasic: Photo capture succeeded: content://media/external/images/media/1000000723
E/gralloc4: Empty SMPTE 2094-40 data
I/DMABUFHEAPS: Using DMA-BUF heap named: mtk_mm
D/skia: stream getLength() not supported, use temp buffer for loading stream, buffer addr 0x7ad45f0000 length 683398
D/skia: LoadInputStreamToMem va 0x7ad45f0000 size 685696
D/libjpeg-alpha: Huffman Builder run in subthread
D/libjpeg-alpha: Tile Decoder (#thread:4, size:512 512 512 384x272, alignment:256x16)
E/gralloc4: Empty SMPTE 2094-40 data
D/CameraXBasic: Average luminosity: 113.44593858506944
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 0
E/gralloc4: Empty SMPTE 2094-40 data
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 1
E/gralloc4: Empty SMPTE 2094-40 data
D/CameraXBasic: Average luminosity: 113.819677734375
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
W/gralloc4: Could not find component description for FourCC value 0
D/CameraXBasic: Average luminosity: 111.04857747395833
D/CameraXBasic: Average luminosity: 112.01836588541667
D/CameraXBasic: Photo capture succeeded: content://media/external/images/media/1000000724
E/gralloc4: Empty SMPTE 2094-40 data
I/DMABUFHEAPS: Using DMA-BUF heap named: mtk_mm
D/skia: stream getLength() not supported, use temp buffer for loading stream, buffer addr 0x7ad45c9000 length 844570
D/skia: LoadInputStreamToMem va 0x7ad45c9000 size 846848
D/libjpeg-alpha: Huffman Builder run in subthread
D/libjpeg-alpha: Tile Decoder (#thread:4, size:512 512 512 384x272, alignment:256x16)
E/gralloc4: Empty SMPTE 2094-40 data
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 0
E/gralloc4: Empty SMPTE 2094-40 data
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 1
E/gralloc4: Empty SMPTE 2094-40 data
D/CameraXBasic: Average luminosity: 112.6277756076389
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
W/gralloc4: Could not find component description for FourCC value 0
D/CameraXBasic: Average luminosity: 106.38228732638889
D/CameraXBasic: Average luminosity: 106.58552842881944
D/CameraXBasic: Photo capture succeeded: content://media/external/images/media/1000000725
E/gralloc4: Empty SMPTE 2094-40 data
I/DMABUFHEAPS: Using DMA-BUF heap named: mtk_mm
D/skia: stream getLength() not supported, use temp buffer for loading stream, buffer addr 0x7ad45c8000 length 846864
D/skia: LoadInputStreamToMem va 0x7ad45c8000 size 849152
D/libjpeg-alpha: Huffman Builder run in subthread
D/libjpeg-alpha: Tile Decoder (#thread:4, size:512 512 512 384x272, alignment:256x16)
E/gralloc4: Empty SMPTE 2094-40 data
D/CameraXBasic: Average luminosity: 109.81645941840277
D/CameraXBasic: Average luminosity: 111.32844292534722
I/le.cameraxbasic: Background young concurrent copying GC freed 737(150KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 20MB/20MB, paused 2.512ms,82us total 109.079ms
D/CameraXBasic: Average luminosity: 104.51407769097223
D/CameraXBasic: Average luminosity: 110.36322048611112
D/CameraXBasic: Average luminosity: 153.52810112847223
I/le.cameraxbasic: Background young concurrent copying GC freed 996(150KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 36MB/36MB, paused 277us,82us total 121.095ms
D/CameraXBasic: Average luminosity: 201.71823459201389
D/CameraXBasic: Average luminosity: 121.29221137152778
D/CameraXBasic: Average luminosity: 112.69615125868056
D/CameraXBasic: Average luminosity: 192.25641710069445
D/CameraXBasic: Average luminosity: 138.86309895833332
D/CameraXBasic: Average luminosity: 155.98807400173612
D/CameraXBasic: Average luminosity: 120.80515299479167
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 0
E/gralloc4: Empty SMPTE 2094-40 data
I/ViewRootImpl@f80ef76[MainActivity]: ViewPostIme pointer 1
E/gralloc4: Empty SMPTE 2094-40 data
D/CameraXBasic: Average luminosity: 138.19229926215277
E/gralloc4: Empty SMPTE 2094-40 data
E/gralloc4: Empty SMPTE 2094-40 data
W/gralloc4: Could not find component description for FourCC value 0
D/CameraXBasic: Average luminosity: 135.25553819444445
D/CameraXBasic: Average luminosity: 135.6612087673611
D/CameraXBasic: Photo capture succeeded: content://media/external/images/media/1000000726
E/gralloc4: Empty SMPTE 2094-40 data
I/DMABUFHEAPS: Using DMA-BUF heap named: mtk_mm
D/skia: stream getLength() not supported, use temp buffer for loading stream, buffer addr 0x7ad45ff000 length 621342
D/skia: LoadInputStreamToMem va 0x7ad45ff000 size 623616
D/libjpeg-alpha: Huffman Builder run in subthread
D/libjpeg-alpha: Tile Decoder (#thread:4, size:512 512 512 384x272, alignment:256x16)
E/gralloc4: Empty SMPTE 2094-40 data
D/CameraXBasic: Average luminosity: 120.25541558159722
D/CameraXBasic: Average luminosity: 121.28190972222222
I/le.cameraxbasic: Background young concurrent copying GC freed 905(135KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 24MB/24MB, paused 162us,205us total 192.535ms
I/le.cameraxbasic: Background concurrent copying GC freed 510590(11MB) AllocSpace objects, 1(904KB) LOS objects, 49% free, 14MB/29MB, paused 83us,65us total 102.952ms
D/CameraXBasic: Average luminosity: 164.35158528645835
D/CameraXBasic: Average luminosity: 148.8256890190972
D/CameraXBasic: Average luminosity: 20.761807725694446
D/CameraXBasic: Average luminosity: 37.78360134548611
D/CameraXBasic: Average luminosity: 34.35765407986111
D/CameraXBasic: Average luminosity: 37.430590277777775
D/CameraXBasic: Average luminosity: 39.97730143229167
D/CameraXBasic: Average luminosity: 41.49381401909722
D/CameraXBasic: Average luminosity: 42.373653428819445
D/CameraXBasic: Average luminosity: 43.053776041666666
ch...@google.com <ch...@google.com> #17
Hi,
-
Just want to confirm that you did see the
for the setBufferFormat related issue.comment14 -
After investigating and testing, I found that the captured JPEG byte array can be correctly decoded by removing some data in the head. I'm trying to fix the issue in CameraX side. But it might take some time and the solution will only be included in 1.4.0-alpha version releases. If your app needs to use stable version like 1.3.0, please try the following steps to workaround this issue.
2.1 For the A24 devices, taking picture by the
in-memory approach.ImageCapture#takePicture(java.util.concurrent.Executor,androidx.camera.core.ImageCapture.OnImageCapturedCallback) 2.2 When receiving the ImageProxy from the OnImageCapturedCallback, trying to find the second
ffd8
marker position.Take IMG_2023_11_08_17_33_21_398.jpg as example:
0000000 d8ff e1ff 7cff 7845 6669 0000 4949 002a <-- In the beginning, the JPEG byte data starts from a `ffd8` ... 0000580 d8ff e0ff 1000 464a 4649 0100 0001 0100 <-- In position 0x0000580, another `ffd8` occurs
2.3 Only write the byte data from the second
ffd8
to the end to the output jpeg file.
Please let me know whether any of the above two approaches can fix the issue in your side. Thanks.
pa...@gmail.com <pa...@gmail.com> #18
we tried with the first option of removing ImageAnalyzer(as suggested in comment no. #14) while creating the camera object and setting the buffer format in ImageCaptureBuilder(as suggested in comment no. #12) as shown below -
ImageCapture imageCapture = new ImageCapture.Builder()
.setBufferFormat(ImageFormat.YUV_420_888)
.build()
We have tested with this fix and we are not getting crash for the Images we were getting previous to this fix. We are releasing temp fix for this specific devices in our app. I will share feedback once app goes live. Thanks for your prompt response and support.
ch...@google.com <ch...@google.com> #19
Hi,
Could you help to try the attached CameraXBasic apk which was built with the JPEG metadata correction solution? Please also help to check the following log is printed to ensure the solution is loaded.
JpegMetadataCorrector is loaded!
Thanks.
ch...@google.com <ch...@google.com> #20
Re-upload the correct APK because the previous one has some problem which the workaround can't be correctly loaded on A24 devices.
pa...@gmail.com <pa...@gmail.com> #21
I have installed the above app on Samsung A 24 device and tried to take pictures but all images - (simple as well as images having complex colors) are getting corrupted and able to see blank images.
and yes the log is getting printed - JpegMetadataCorrector is loaded!
Sharing the video for example -
Logs of device session from android studio -
ch...@google.com <ch...@google.com> #22
Hi,
Thanks for providing the info. From the log, I can only see some luminosity related log. I can't find the
A24IssueTag D IncorrectJpegMetadataQuirk is loaded!
A24IssueTag D canParseSosMarker: false <= To know whether JPEG SOS marker can be parsed successfully from the original JPEG byte data
A24IssueTag D Success to decode the processed byte data! size: 4032x2268, decoding took 128 ms! <= To know whether the JPEG byte data processed by the quirk can be successfully decoded to bitmap or not
Thanks.
ap...@google.com <ap...@google.com> #23
Branch: androidx-main
commit 82cc306db3df0b49c5facc265f8f32a86dd5afa1
Author: CharcoalChen <charcoalchen@google.com>
Date: Wed Nov 15 17:55:05 2023
Fix the incorrect JPEG image metadata issue on Samsung A24 devices
Some unexpected data exists in the head of the problematic JPEG images captured from the Samsung A24 devices. Removing those data can fix the JPEG images.
Relnote: "Fixed the incorrect JPEG image metadata issue on Samsung A24 devices. With the fix, CameraX can successfully save the JPEG image, or correct Bitmap objects can be returned when calling the ImageProxy.toBitmap() function on Samsung A24 devices."
Bug: 309005680
Test: ./gradlew bOS
Change-Id: I8d6eb3b4cc6f68237248cda566f0b9742f98862d
M camera/camera-core/src/androidTest/java/androidx/camera/core/imagecapture/Image2JpegBytesDeviceTest.kt
M camera/camera-core/src/androidTest/java/androidx/camera/core/imagecapture/ProcessingNodeDeviceTest.kt
M camera/camera-core/src/main/java/androidx/camera/core/imagecapture/Image2JpegBytes.java
M camera/camera-core/src/main/java/androidx/camera/core/imagecapture/ProcessingNode.java
M camera/camera-core/src/main/java/androidx/camera/core/internal/compat/quirk/DeviceQuirks.java
M camera/camera-core/src/main/java/androidx/camera/core/internal/compat/quirk/DeviceQuirksLoader.java
A camera/camera-core/src/main/java/androidx/camera/core/internal/compat/quirk/IncorrectJpegMetadataQuirk.java
A camera/camera-core/src/main/java/androidx/camera/core/internal/compat/workaround/JpegMetadataCorrector.java
M camera/camera-core/src/test/java/androidx/camera/core/imagecapture/Image2JpegBytesTest.kt
M camera/camera-core/src/test/java/androidx/camera/core/imagecapture/ProcessingNodeTest.kt
M camera/camera-core/src/test/java/androidx/camera/core/internal/compat/quirk/DeviceQuirks.java
A camera/camera-core/src/test/java/androidx/camera/core/internal/compat/workaround/JpegMetadataCorrectorTest.kt
M camera/camera-testing/src/main/java/androidx/camera/testing/impl/TestImageUtil.java
ch...@google.com <ch...@google.com>
ch...@google.com <ch...@google.com> #24
Update some info from Samsung about this issue. Samsung had found this issue and had their FOTA plans to fix this issue. The schedule might vary with regions and carriers. Once the end users' device get new available FOTA ROM, please update it to get the fix. Thanks.
na...@google.com <na...@google.com> #25
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.camera:camera-core:1.3.2
na...@google.com <na...@google.com> #26
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.camera:camera-core:1.4.0-alpha05
pr...@paralleldots.com <pr...@paralleldots.com> #27
Crash log :
Fatal Exception: java.lang.UnsupportedOperationException
Decode jpeg byte array failed
androidx.camera.core.internal.utils.ImageUtil.createBitmapFromJpegImage (ImageUtil.java:453)
androidx.camera.core.ImageProxy.toBitmap (ImageProxy.java:154)
When will this be fixed for this device?
Description
def camerax_version = '1.1.0-beta01' and camerax_version = "1.1.0"
CAMERA APPLICATION NAME AND VERSION: -App Name: Camera & Version: 13.1.00.80
ANDROID OS BUILD NUMBER: TP1A.220624.014.A245FXXS3AWH4
DEVICE NAME: (Samsung A24)
DESCRIPTION:
We are using in our app camerax2 API for clicking images but recently observed the issue of image corruption on Specific samsung device and that too on images which have more objects and image reflection. One sample image attached here. When we debugged we are getting IO Exception in Imagecapture callback.
Our client have 100s of this kind of device and facing issue. Image are getting corrupted and getting exception.
Please let us know if you need any inputs from our end.
LIST ANY EXPERIMENTAL FEATURES: no experimental feature used
STEPS TO REPRODUCE:
1. Open camera
2. Click photo attached in attachments
OBSERVED RESULTS:
Image is not getting saved and corrupted and getting Exception - ImageCaptureException - IO issue not able to save temp(raw image) file.
EXPECTED RESULTS: App should not get the exception and should save in device the image as well show in image preview.
REPRODUCIBILITY: 4 out of 5 if used similar images having lot of objects and light reflection
ADDITIONAL INFORMATION: The same issue happening in sample app given by google for camera2 API and cameraxBasic sample app
CODE FRAGMENTS (this will help us troubleshoot your issues):
public void capturePhoto() {
long timeStamp = System.currentTimeMillis();
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME,timeStamp);
contentValues.put(MediaStore.MediaColumns.MIME_TYPE,"image/jpeg");
if (cameraProvider == null) {
if (ownCameraXListeners != null) {
ownCameraXListeners.cameraNotAvailable();
}
return;
}
// Get a stable reference of the modifiable image capture use case
// Create output options object which contains file + metadata
ImageCapture.OutputFileOptions outputOptions = new ImageCapture.OutputFileOptions.Builder(
context.getContentResolver(),
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
contentValues
).build();
if (flashEnabled) {
imageCapture.setFlashMode(ImageCapture.FLASH_MODE_ON);
} else {
imageCapture.setFlashMode(ImageCapture.FLASH_MODE_OFF);
}
imageCapture.setTargetRotation(surfaceRotation);
// Set up image capture listener, which is triggered after photo has
// been taken
Log.i("capture","clicked");
imageCapture.takePicture(
outputOptions, executor , new ImageCapture.OnImageSavedCallback() {
@Override
public void onImageSaved(@NonNull ImageCapture.OutputFileResults outputFileResults) {
Log.i("capture","callback onImageSaved started");
InputStream iStream;
byte[] inputData;
try {
iStream = context.getContentResolver().openInputStream(Uri.fromFile(tempCapturedFile));
inputData = getBytes(iStream);
if (ownCameraXListeners != null) {
ownCameraXListeners.onPictureTaken(tempCapturedFile);
}
} catch (Exception e) {
e.printStackTrace();
FirebaseCrashlytics.getInstance().recordException(e);
if(ownCameraXListeners!=null){
ownCameraXListeners.onPictureTakenError(e);
}
}
}
@Override
public void onError(@NonNull ImageCaptureException e) {
e.printStackTrace();
FirebaseCrashlytics.getInstance().recordException(e);
if(ownCameraXListeners!=null){
ownCameraXListeners.onPictureTakenError(e);
}
}
});
}