When launching a PreviewView
, sometimes the video appears grainy, at a low resolution (680x480). Is this being triggered by something that I'm doing?
See a side-by-side comparison of my PreviewView
s. The application in both images are using the exact same code. It seems to happen randomly.
Main camera code:
package com.adriansoftware.myapplication
import android.Manifest
import android.annotation.SuppressLint
import android.content.pm.PackageManager
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.camera.camera2.Camera2Config
import androidx.camera.core.*
import androidx.camera.core.impl.VideoCaptureConfig
import androidx.camera.lifecycle.ProcessCameraProvider
import androidx.camera.view.PreviewView
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.lifecycle.LifecycleOwner
import com.google.common.util.concurrent.ListenableFuture
import java.util.concurrent.Executors
private const val tag = "RecordActivity"
private const val REQUEST_CODE_PERMISSIONS = 10
class MainActivity : AppCompatActivity(), CameraXConfig.Provider {
private lateinit var camera: Camera
private val REQUIRED_PERMISSIONS = arrayOf(Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO)
private lateinit var cameraProviderFuture: ListenableFuture<ProcessCameraProvider>
private lateinit var videoCapture: VideoCapture
private val executor = Executors.newSingleThreadExecutor()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
if (!allPermissionsGranted()) {
Log.v(tag, "Attempting to request permissions...")
ActivityCompat.requestPermissions(
this, REQUIRED_PERMISSIONS, REQUEST_CODE_PERMISSIONS)
}
}
override fun onRequestPermissionsResult(
requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
if (requestCode == REQUEST_CODE_PERMISSIONS) {
if (!allPermissionsGranted()) {
Toast.makeText(this,
"Permissions not granted by the user.",
Toast.LENGTH_SHORT).show()
finish()
}
}
}
/**
* Check if all permission specified in the manifest have been granted
*/
private fun allPermissionsGranted() = REQUIRED_PERMISSIONS.all {
ContextCompat.checkSelfPermission(
baseContext, it) == PackageManager.PERMISSION_GRANTED
}
override fun getCameraXConfig(): CameraXConfig {
return Camera2Config
.defaultConfig()
}
fun startCameraOne(view: View) {
startCameraProvider(findViewById(R.id.preview1))
}
fun startCameraTwo(view: View) {
startCameraProvider(findViewById(R.id.preview2))
}
fun startCameraProvider(previewView: PreviewView) {
cameraProviderFuture = ProcessCameraProvider.getInstance(baseContext)
cameraProviderFuture.addListener(Runnable {
val cameraProvider = cameraProviderFuture.get()
bindPreview(previewView, cameraProvider)
}, ContextCompat.getMainExecutor(baseContext))
}
@SuppressLint("RestrictedApi")
private fun bindPreview(previewView: PreviewView, cameraProvider: ProcessCameraProvider) {
CameraX.unbindAll()
val cameraSelector: CameraSelector = CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_FRONT)
.build()
val preview: Preview = Preview.Builder()
.setCameraSelector(cameraSelector)
.build()
videoCapture = VideoCaptureConfig.Builder().apply {
setCameraSelector(cameraSelector)
}.build()
camera = cameraProvider.bindToLifecycle(this as LifecycleOwner,
cameraSelector,
videoCapture,
preview)
previewView.scaleType = PreviewView.ScaleType.FILL_CENTER
preview.setSurfaceProvider((previewView as PreviewView).createSurfaceProvider(camera.cameraInfo))
}
}
With the following logs:
2020-05-14 20:03:27.431 4551-4590/com.adriansoftware.myapplication I/Adreno: QUALCOMM build : 9b214d0, Ibc75db1fca
Build Date : 06/30/19
OpenGL ES Shader Compiler Version: EV031.26.06.00
Local Branch : AU124
Remote Branch :
Remote Branch :
Reconstruct Branch :
2020-05-14 20:03:27.431 4551-4590/com.adriansoftware.myapplication I/Adreno: Build Config : S P 8.0.6 AArch64
2020-05-14 20:03:27.434 4551-4590/com.adriansoftware.myapplication I/Adreno: PFP: 0x016ee185, ME: 0x00000000
2020-05-14 20:03:28.412 4551-4551/com.adriansoftware.myapplication W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@23cde6e
2020-05-14 20:03:28.497 4551-4551/com.adriansoftware.myapplication V/ViewUtils: Setting image filter for tagged ImageView
2020-05-14 20:03:28.497 4551-4551/com.adriansoftware.myapplication I/chatty: uid=10324(com.adriansoftware.myapplication) identical 5 lines
2020-05-14 20:03:28.497 4551-4551/com.adriansoftware.myapplication V/ViewUtils: Setting image filter for tagged ImageView
2020-05-14 20:03:28.498 4551-4551/com.adriansoftware.myapplication I/CameraManagerGlobal: Connecting to camera service
2020-05-14 20:03:29.722 4551-8582/com.adriansoftware.myapplication D/CameraRepository: Added camera: 0
2020-05-14 20:03:29.730 4551-8582/com.adriansoftware.myapplication I/Camera2CameraInfo: Device Level: INFO_SUPPORTED_HARDWARE_LEVEL_FULL
2020-05-14 20:03:29.731 4551-8584/com.adriansoftware.myapplication D/UseCaseAttachState: Active and online use case: [] for camera: 0
2020-05-14 20:03:29.732 4551-8582/com.adriansoftware.myapplication D/CameraRepository: Added camera: 1
2020-05-14 20:03:29.734 4551-8582/com.adriansoftware.myapplication I/Camera2CameraInfo: Device Level: INFO_SUPPORTED_HARDWARE_LEVEL_FULL
2020-05-14 20:03:29.734 4551-8582/com.adriansoftware.myapplication D/CameraRepository: Added camera: 2
2020-05-14 20:03:29.734 4551-8584/com.adriansoftware.myapplication D/UseCaseAttachState: Active and online use case: [] for camera: 1
2020-05-14 20:03:29.735 4551-8582/com.adriansoftware.myapplication I/Camera2CameraInfo: Device Level: INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
2020-05-14 20:03:29.735 4551-8584/com.adriansoftware.myapplication D/UseCaseAttachState: Active and online use case: [] for camera: 2
2020-05-14 20:03:29.736 4551-4551/com.adriansoftware.myapplication D/MainActivity: Active preview view resolution: 714x714
2020-05-14 20:03:29.767 4551-8588/com.adriansoftware.myapplication D/CCodec: allocate(c2.qti.avc.encoder)
2020-05-14 20:03:29.768 4551-8588/com.adriansoftware.myapplication I/Codec2Client: Available Codec2 services: "default" "software"
2020-05-14 20:03:29.768 4551-8588/com.adriansoftware.myapplication I/Codec2Client: Creating a Codec2 client to service "default"
2020-05-14 20:03:29.769 4551-8588/com.adriansoftware.myapplication I/Codec2Client: Client to Codec2 service "default" created
2020-05-14 20:03:29.769 4551-8588/com.adriansoftware.myapplication I/CCodec: setting up 'default' as default (vendor) store
2020-05-14 20:03:29.769 4551-8588/com.adriansoftware.myapplication I/Codec2Client: Creating a Codec2 client to service "default"
2020-05-14 20:03:29.770 4551-8588/com.adriansoftware.myapplication I/Codec2Client: Client to Codec2 service "default" created
2020-05-14 20:03:29.771 4551-8588/com.adriansoftware.myapplication I/CCodec: Created component [c2.qti.avc.encoder]
2020-05-14 20:03:29.771 4551-8588/com.adriansoftware.myapplication D/CCodecConfig: read media type: video/avc
2020-05-14 20:03:29.773 4551-8588/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: output.buffers.pool-ids.values
2020-05-14 20:03:29.774 4551-8588/com.adriansoftware.myapplication D/CCodecConfig: ignoring local param raw.color (0xc2001809) as it is already supported
2020-05-14 20:03:29.774 4551-8588/com.adriansoftware.myapplication I/CCodecConfig: query failed after returning 20 values (BAD_INDEX)
2020-05-14 20:03:29.774 4551-8588/com.adriansoftware.myapplication D/CCodecConfig: c2 config diff is Dict {
c2::u32 algo.bitrate-mode.value = 3
c2::i32 algo.priority.value = -1
c2::float algo.rate.value = 30
c2::u32 coded.bitrate.value = 20000000
c2::float coded.frame-rate.value = 30
c2::u32 coded.pl.level = 20480
c2::u32 coded.pl.profile = 20480
c2::u32 coded.vui.color.matrix = 255
c2::u32 coded.vui.color.primaries = 0
c2::u32 coded.vui.color.range = 0
c2::u32 coded.vui.color.transfer = 255
c2::u32 coding.intra-refresh.mode = 0
c2::float coding.intra-refresh.period = 0
c2::u32 coding.request-sync-frame.value = 0
c2::i64 coding.sync-frame-interval.value = 1000000
Buffer coding.temporal-layering = {
00000000: 10 00 00 00 07 20 01 52 00 00 00 00 00 00 00 00 ..... .R........
}
c2::u32 default.color.matrix = 255
c2::u32 default.color.primaries = 0
c2::u32 default.color.range = 0
c2::u32 default.color.transfer = 255
c2::u32 input.delay.value = 0
string input.media-type.value = "video/raw"
c2::u32 output.buffers.prepend-header.value = 2
c2
2020-05-14 20:03:29.774 4551-8588/com.adriansoftware.myapplication W/ColorUtils: expected specified color aspects (0:0:255:255)
2020-05-14 20:03:29.776 4551-8593/com.adriansoftware.myapplication D/CCodec: allocate(c2.android.aac.encoder)
2020-05-14 20:03:29.776 4551-8593/com.adriansoftware.myapplication I/Codec2Client: Creating a Codec2 client to service "default"
2020-05-14 20:03:29.777 4551-8593/com.adriansoftware.myapplication I/Codec2Client: Client to Codec2 service "default" created
2020-05-14 20:03:29.778 4551-8593/com.adriansoftware.myapplication I/CCodec: setting up 'default' as default (vendor) store
2020-05-14 20:03:29.778 4551-8593/com.adriansoftware.myapplication E/Codec2Client: createComponent(c2.android.aac.encoder) -- call failed: NOT_FOUND.
2020-05-14 20:03:29.778 4551-8593/com.adriansoftware.myapplication I/Codec2Client: Creating a Codec2 client to service "software"
2020-05-14 20:03:29.779 4551-8593/com.adriansoftware.myapplication I/Codec2Client: Client to Codec2 service "software" created
2020-05-14 20:03:29.781 4551-8593/com.adriansoftware.myapplication I/CCodec: Created component [c2.android.aac.encoder]
2020-05-14 20:03:29.781 4551-8593/com.adriansoftware.myapplication D/CCodecConfig: read media type: audio/mp4a-latm
2020-05-14 20:03:29.782 4551-8593/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: algo.buffers.max-count.values
2020-05-14 20:03:29.782 4551-8593/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: output.subscribed-indices.values
2020-05-14 20:03:29.782 4551-8593/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: input.buffers.allocator-ids.values
2020-05-14 20:03:29.782 4551-8593/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: output.buffers.allocator-ids.values
2020-05-14 20:03:29.782 4551-8593/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: algo.buffers.allocator-ids.values
2020-05-14 20:03:29.782 4551-8593/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: output.buffers.pool-ids.values
2020-05-14 20:03:29.782 4551-8593/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: algo.buffers.pool-ids.values
2020-05-14 20:03:29.783 4551-8593/com.adriansoftware.myapplication I/CCodecConfig: query failed after returning 9 values (BAD_INDEX)
2020-05-14 20:03:29.783 4551-8593/com.adriansoftware.myapplication D/CCodecConfig: c2 config diff is Dict {
c2::u32 coded.bitrate.value = 64000
c2::u32 coded.pl.level = 0
c2::u32 coded.pl.profile = 8192
c2::u32 coding.aac-sbr-mode.value = 3
c2::u32 input.buffers.max-size.value = 2048
c2::u32 input.delay.value = 0
string input.media-type.value = "audio/raw"
string output.media-type.value = "audio/mp4a-latm"
c2::u32 raw.channel-count.value = 1
c2::u32 raw.sample-rate.value = 44100
}
2020-05-14 20:03:29.786 4551-8588/com.adriansoftware.myapplication D/CCodec: allocate(c2.qti.avc.encoder)
2020-05-14 20:03:29.786 4551-8588/com.adriansoftware.myapplication I/Codec2Client: Creating a Codec2 client to service "default"
2020-05-14 20:03:29.788 4551-8588/com.adriansoftware.myapplication I/Codec2Client: Client to Codec2 service "default" created
2020-05-14 20:03:29.788 4551-8588/com.adriansoftware.myapplication I/CCodec: setting up 'default' as default (vendor) store
2020-05-14 20:03:29.789 4551-8588/com.adriansoftware.myapplication I/CCodec: Created component [c2.qti.avc.encoder]
2020-05-14 20:03:29.789 4551-8588/com.adriansoftware.myapplication D/CCodecConfig: read media type: video/avc
2020-05-14 20:03:29.790 4551-8588/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: output.buffers.pool-ids.values
2020-05-14 20:03:29.791 4551-8588/com.adriansoftware.myapplication D/CCodecConfig: ignoring local param raw.color (0xc2001809) as it is already supported
2020-05-14 20:03:29.792 4551-8588/com.adriansoftware.myapplication I/CCodecConfig: query failed after returning 20 values (BAD_INDEX)
2020-05-14 20:03:29.792 4551-8588/com.adriansoftware.myapplication D/CCodecConfig: c2 config diff is Dict {
c2::u32 algo.bitrate-mode.value = 3
c2::i32 algo.priority.value = -1
c2::float algo.rate.value = 30
c2::u32 coded.bitrate.value = 20000000
c2::float coded.frame-rate.value = 30
c2::u32 coded.pl.level = 20480
c2::u32 coded.pl.profile = 20480
c2::u32 coded.vui.color.matrix = 255
c2::u32 coded.vui.color.primaries = 0
c2::u32 coded.vui.color.range = 0
c2::u32 coded.vui.color.transfer = 255
c2::u32 coding.intra-refresh.mode = 0
c2::float coding.intra-refresh.period = 0
c2::u32 coding.request-sync-frame.value = 0
c2::i64 coding.sync-frame-interval.value = 1000000
Buffer coding.temporal-layering = {
00000000: 10 00 00 00 07 20 01 52 00 00 00 00 00 00 00 00 ..... .R........
}
c2::u32 default.color.matrix = 255
c2::u32 default.color.primaries = 0
c2::u32 default.color.range = 0
c2::u32 default.color.transfer = 255
c2::u32 input.delay.value = 0
string input.media-type.value = "video/raw"
c2::u32 output.buffers.prepend-header.value = 2
c2
2020-05-14 20:03:29.792 4551-8588/com.adriansoftware.myapplication W/ColorUtils: expected specified color aspects (0:0:255:255)
2020-05-14 20:03:29.793 4551-8588/com.adriansoftware.myapplication D/CCodecConfig: no c2 equivalents for color-format
2020-05-14 20:03:29.793 4551-8588/com.adriansoftware.myapplication D/CCodecConfig: no c2 equivalents for encoder
2020-05-14 20:03:29.794 4551-8588/com.adriansoftware.myapplication D/CCodecConfig: c2 config diff is c2::u32 coded.bitrate.value = 8388608
c2::u32 raw.pixel-format.value = 34
c2::u32 raw.size.height = 480
c2::u32 raw.size.width = 640
2020-05-14 20:03:29.794 4551-8588/com.adriansoftware.myapplication W/ColorUtils: expected specified color aspects (0:0:255:255)
2020-05-14 20:03:29.794 4551-8588/com.adriansoftware.myapplication W/Codec2Client: query -- param skipped: index = 3254781982.
2020-05-14 20:03:29.794 4551-8588/com.adriansoftware.myapplication D/CCodec: setup formats input: AMessage(what = 0x00000000) = {
Rect crop(0, 0, 639, 479)
int32_t color-standard = 130816
int32_t color-range = 0
int32_t color-transfer = 65791
int32_t frame-rate = 30
int32_t height = 480
int32_t intra-refresh-period = 0
string mime = "video/raw"
int32_t prepend-sps-pps-to-idr-frames = 1
int32_t priority = 1
int32_t width = 640
int32_t android._dataspace = 12648448
int32_t android._color-format = 2130708361
int32_t color-format = 2130708361
} and output: AMessage(what = 0x00000000) = {
int32_t bitrate = 8388608
int32_t bitrate-mode = 1
Rect crop(0, 0, 639, 479)
int32_t width = 640
int32_t color-standard = 130816
int32_t color-range = 0
int32_t color-transfer = 65791
int32_t frame-rate = 30
int32_t height = 480
int32_t intra-refresh-period = 0
int32_t level = 1
int32_t max-bitrate = 8388608
string mime = "video/avc"
int32_t prepend-sps-pps-to-idr-frames = 1
int32_t priority = 1
int32_t profile = 1
}
2020-05-14 20:03:29.795 4551-8588/com.adriansoftware.myapplication D/CCodec: input format changed to AMessage(what = 0x00000000) = {
Rect crop(0, 0, 639, 479)
int32_t color-standard = 130820
int32_t color-range = 2
int32_t color-transfer = 65791
int32_t frame-rate = 30
int32_t height = 480
int32_t intra-refresh-period = 0
string mime = "video/raw"
int32_t prepend-sps-pps-to-idr-frames = 1
int32_t priority = 1
int32_t width = 640
int32_t android._dataspace = 281346048
int32_t android._color-format = 2130708361
int32_t color-format = 2130708361
}
2020-05-14 20:03:29.797 4551-8588/com.adriansoftware.myapplication D/GraphicBufferSource: setting dataspace: 0x10c50000, acquired=0
2020-05-14 20:03:29.797 4551-8588/com.adriansoftware.myapplication D/CCodec: ISConfig timeOffset 0us (=> INVALID_OPERATION) timeLapse 0fps as 0fps (=> INVALID_OPERATION) start at 0us resume at -1us
2020-05-14 20:03:29.802 4551-8593/com.adriansoftware.myapplication D/CCodec: allocate(c2.android.aac.encoder)
2020-05-14 20:03:29.802 4551-8593/com.adriansoftware.myapplication I/Codec2Client: Creating a Codec2 client to service "default"
2020-05-14 20:03:29.803 4551-8593/com.adriansoftware.myapplication I/Codec2Client: Client to Codec2 service "default" created
2020-05-14 20:03:29.803 4551-8593/com.adriansoftware.myapplication I/CCodec: setting up 'default' as default (vendor) store
2020-05-14 20:03:29.805 4551-8593/com.adriansoftware.myapplication I/CCodec: Created component [c2.android.aac.encoder]
2020-05-14 20:03:29.805 4551-8593/com.adriansoftware.myapplication D/CCodecConfig: read media type: audio/mp4a-latm
2020-05-14 20:03:29.806 4551-8593/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: algo.buffers.max-count.values
2020-05-14 20:03:29.807 4551-8593/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: output.subscribed-indices.values
2020-05-14 20:03:29.807 4551-8593/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: input.buffers.allocator-ids.values
2020-05-14 20:03:29.807 4551-8593/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: output.buffers.allocator-ids.values
2020-05-14 20:03:29.807 4551-8593/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: algo.buffers.allocator-ids.values
2020-05-14 20:03:29.807 4551-8593/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: output.buffers.pool-ids.values
2020-05-14 20:03:29.807 4551-8593/com.adriansoftware.myapplication D/ReflectedParamUpdater: extent() != 1 for single value type: algo.buffers.pool-ids.values
2020-05-14 20:03:29.808 4551-8593/com.adriansoftware.myapplication I/CCodecConfig: query failed after returning 9 values (BAD_INDEX)
2020-05-14 20:03:29.808 4551-8593/com.adriansoftware.myapplication D/CCodecConfig: c2 config diff is Dict {
c2::u32 coded.bitrate.value = 64000
c2::u32 coded.pl.level = 0
c2::u32 coded.pl.profile = 8192
c2::u32 coding.aac-sbr-mode.value = 3
c2::u32 input.buffers.max-size.value = 2048
c2::u32 input.delay.value = 0
string input.media-type.value = "audio/raw"
string output.media-type.value = "audio/mp4a-latm"
c2::u32 raw.channel-count.value = 1
c2::u32 raw.sample-rate.value = 44100
}
2020-05-14 20:03:29.809 4551-8593/com.adriansoftware.myapplication D/CCodecConfig: no c2 equivalents for aac-profile
2020-05-14 20:03:29.809 4551-8593/com.adriansoftware.myapplication D/CCodecConfig: no c2 equivalents for encoder
2020-05-14 20:03:29.809 4551-8593/com.adriansoftware.myapplication D/CCodecConfig: c2 config diff is c2::u32 coded.bitrate.value = 96000
c2::u32 raw.sample-rate.value = 48000
2020-05-14 20:03:29.809 4551-8593/com.adriansoftware.myapplication W/Codec2Client: query -- param skipped: index = 1107298332.
2020-05-14 20:03:29.809 4551-8593/com.adriansoftware.myapplication D/CCodec: setup formats input: AMessage(what = 0x00000000) = {
int32_t channel-count = 1
int32_t max-input-size = 2048
string mime = "audio/raw"
int32_t sample-rate = 48000
} and output: AMessage(what = 0x00000000) = {
int32_t bitrate = 96000
int32_t channel-count = 1
int32_t level = 0
int32_t max-bitrate = 96000
string mime = "audio/mp4a-latm"
int32_t profile = 2
int32_t sample-rate = 48000
}
2020-05-14 20:03:29.823 4551-4551/com.adriansoftware.myapplication I/VideoCapture: source: 1 audioSampleRate: 48000 channelConfig: 16 audioFormat: 2 bufferSize: 3840
2020-05-14 20:03:29.827 4551-8584/com.adriansoftware.myapplication D/Camera: Use cases [androidx.camera.core.VideoCapture@a4499fe, Preview:androidx.camera.core.Preview-6bc38f70-2068-4f4d-afc6-8606114fe9a5] now ONLINE for camera 2
2020-05-14 20:03:29.828 4551-8584/com.adriansoftware.myapplication D/UseCaseAttachState: Active and online use case: [] for camera: 2
2020-05-14 20:03:29.828 4551-8584/com.adriansoftware.myapplication D/Camera: Resetting Capture Session
2020-05-14 20:03:29.828 4551-8584/com.adriansoftware.myapplication D/Camera: releasing session in state INITIALIZED
2020-05-14 20:03:29.828 4551-8584/com.adriansoftware.myapplication D/Camera: Transitioning camera internal state: INITIALIZED --> OPENING
2020-05-14 20:03:29.828 4551-8584/com.adriansoftware.myapplication D/Camera: Opening camera: 2
2020-05-14 20:03:29.829 4551-8584/com.adriansoftware.myapplication D/UseCaseAttachState: All use case: [androidx.camera.core.VideoCapture-361a9a7d-a582-4d4e-9dc9-18c9b3960b5d, androidx.camera.core.Preview-6bc38f70-2068-4f4d-afc6-8606114fe9a5] for camera: 2
2020-05-14 20:03:29.842 4551-8584/com.adriansoftware.myapplication D/Camera: Use case androidx.camera.core.VideoCapture@a4499fe INACTIVE for camera 2
2020-05-14 20:03:29.843 4551-8584/com.adriansoftware.myapplication D/UseCaseAttachState: Active and online use case: [] for camera: 2
2020-05-14 20:03:29.843 4551-8584/com.adriansoftware.myapplication D/Camera: Use case Preview:androidx.camera.core.Preview-6bc38f70-2068-4f4d-afc6-8606114fe9a5 INACTIVE for camera 2
2020-05-14 20:03:29.843 4551-8584/com.adriansoftware.myapplication D/UseCaseAttachState: Active and online use case: [] for camera: 2
2020-05-14 20:03:29.843 4551-8584/com.adriansoftware.myapplication D/Camera: Use case Preview:androidx.camera.core.Preview-6bc38f70-2068-4f4d-afc6-8606114fe9a5 ACTIVE for camera 2
2020-05-14 20:03:29.843 4551-8584/com.adriansoftware.myapplication D/UseCaseAttachState: Active and online use case: [androidx.camera.core.Preview-6bc38f70-2068-4f4d-afc6-8606114fe9a5] for camera: 2
2020-05-14 20:03:29.843 4551-8584/com.adriansoftware.myapplication D/Camera: Use case Preview:androidx.camera.core.Preview-6bc38f70-2068-4f4d-afc6-8606114fe9a5 RESET for camera 2
2020-05-14 20:03:29.843 4551-8584/com.adriansoftware.myapplication D/Camera: Resetting Capture Session
2020-05-14 20:03:29.843 4551-8584/com.adriansoftware.myapplication D/Camera: releasing session in state OPENING
2020-05-14 20:03:29.844 4551-8584/com.adriansoftware.myapplication D/UseCaseAttachState: Active and online use case: [androidx.camera.core.Preview-6bc38f70-2068-4f4d-afc6-8606114fe9a5] for camera: 2
2020-05-14 20:03:29.844 4551-8584/com.adriansoftware.myapplication D/Camera: CameraDevice.onOpened(): 2
2020-05-14 20:03:29.845 4551-8584/com.adriansoftware.myapplication D/Camera: Transitioning camera internal state: OPENING --> OPENED
2020-05-14 20:03:29.845 4551-8584/com.adriansoftware.myapplication D/UseCaseAttachState: All use case: [androidx.camera.core.VideoCapture-361a9a7d-a582-4d4e-9dc9-18c9b3960b5d, androidx.camera.core.Preview-6bc38f70-2068-4f4d-afc6-8606114fe9a5] for camera: 2
2020-05-14 20:03:29.847 4551-8584/com.adriansoftware.myapplication D/CaptureSession: Some surfaces were closed.
2020-05-14 20:03:29.848 4551-8584/com.adriansoftware.myapplication D/Camera: Posting surface closed
java.lang.Throwable
at androidx.camera.camera2.internal.Camera2CameraImpl.postSurfaceClosedError(Camera2CameraImpl.java:920)
at androidx.camera.camera2.internal.Camera2CameraImpl$3.onFailure(Camera2CameraImpl.java:861)
at androidx.camera.core.impl.utils.futures.Futures$CallbackListener.run(Futures.java:338)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.os.HandlerThread.run(HandlerThread.java:67)
2020-05-14 20:03:29.855 4551-8584/com.adriansoftware.myapplication D/Camera: Use case Preview:androidx.camera.core.Preview-6bc38f70-2068-4f4d-afc6-8606114fe9a5 RESET for camera 2
2020-05-14 20:03:29.855 4551-8584/com.adriansoftware.myapplication D/Camera: Resetting Capture Session
2020-05-14 20:03:29.855 4551-8584/com.adriansoftware.myapplication D/Camera: releasing session in state OPENED
2020-05-14 20:03:29.855 4551-8584/com.adriansoftware.myapplication D/UseCaseAttachState: Active and online use case: [androidx.camera.core.Preview-6bc38f70-2068-4f4d-afc6-8606114fe9a5] for camera: 2
2020-05-14 20:03:29.855 4551-8584/com.adriansoftware.myapplication D/UseCaseAttachState: All use case: [androidx.camera.core.VideoCapture-361a9a7d-a582-4d4e-9dc9-18c9b3960b5d, androidx.camera.core.Preview-6bc38f70-2068-4f4d-afc6-8606114fe9a5] for camera: 2
2020-05-14 20:03:29.869 4551-8584/com.adriansoftware.myapplication D/CaptureSession: Opening capture session.
2020-05-14 20:03:29.993 4551-8584/com.adriansoftware.myapplication D/CaptureSession: Attempting to send capture request onConfigured
2020-05-14 20:03:29.993 4551-8584/com.adriansoftware.myapplication D/CaptureSession: Issuing request for session.
2020-05-14 20:03:29.996 4551-8584/com.adriansoftware.myapplication D/CaptureSession: CameraCaptureSession.onConfigured() mState=OPENED
2020-05-14 20:03:29.996 4551-8584/com.adriansoftware.myapplication D/CaptureSession: CameraCaptureSession.onReady() OPENED
User contributions licensed under CC BY-SA 3.0