Skip to content

android.media.image passing in FirebaseVisionImage.fromMediaImage gives java.nio.BufferUnderflowException #1527

Open
@mihirmodiofficial

Description

@mihirmodiofficial
it.setAnalyzer(cameraExecutor, LuminosityAnalyzer { luma, image ->
getCardDetails(image,rotation)
})

private fun getCardDetails(imageProxy: ImageProxy, rotation: Int) {

    val mediaImage = imageProxy.image

    val planes = mediaImage!!.planes
    if (planes.size >= 3) {

        val image = mediaImage?.let { FirebaseVisionImage.fromMediaImage(it, getRotationConstant(rotation)) }
        //val image = mediaImage?.let { FirebaseVisionImage.fromByteArray(dataYUV, metadata) }
        val firebaseVisionTextDetector = FirebaseVision.getInstance().onDeviceTextRecognizer

        if (image != null) {
            firebaseVisionTextDetector.processImage(image)
                    .addOnSuccessListener {
                        val words = it.text.split("\n")
                        Toast.makeText(context, words.get(0), Toast.LENGTH_LONG).show()

                    }
                    .addOnFailureListener {
                        Toast.makeText(context, "Sorry, something went wrong!", Toast.LENGTH_SHORT).show()
                    }

        }
    }

}

private fun getRotationConstant(rotation: Int): Int {
return when (rotation) {
90 -> FirebaseVisionImageMetadata.ROTATION_90
180 -> FirebaseVisionImageMetadata.ROTATION_180
270 -> FirebaseVisionImageMetadata.ROTATION_270
else -> FirebaseVisionImageMetadata.ROTATION_0
}
}

// Error

Process: com.demo, PID: 24383
java.nio.BufferUnderflowException
at java.nio.DirectByteBuffer.get(DirectByteBuffer.java:240)
at com.google.android.gms.internal.firebase_ml.zzsc.zza(com.google.firebase:firebase-ml-vision@@24.0.3:42)
at com.google.firebase.ml.vision.common.FirebaseVisionImage.fromMediaImage(com.google.firebase:firebase-ml-vision@@24.0.3:20)
at com.demo.ui.gift_shop.fragment.ScanPayFragment.getCardDetails(ScanPayFragment.kt:529)
at com.demo.ui.gift_shop.fragment.ScanPayFragment.access$getCardDetails(ScanPayFragment.kt:54)
at com.demo.ui.gift_shop.fragment.ScanPayFragment$bindCameraUseCases$1$$special$$inlined$also$lambda$1.invoke(ScanPayFragment.kt:271)
at com.demo.ui.gift_shop.fragment.ScanPayFragment$bindCameraUseCases$1$$special$$inlined$also$lambda$1.invoke(ScanPayFragment.kt:54)
at com.demo.ui.gift_shop.fragment.ScanPayFragment$LuminosityAnalyzer.analyze(ScanPayFragment.kt:383)
at androidx.camera.core.ImageAnalysisAbstractAnalyzer.lambda$analyzeImage$0$ImageAnalysisAbstractAnalyzer(ImageAnalysisAbstractAnalyzer.java:87)
at androidx.camera.core.-$$Lambda$ImageAnalysisAbstractAnalyzer$V6Gtux2-h8spda8vf4wFnIZntYI.run(Unknown Source:8)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions