react-native-vision-camera-spoof-detector 1.1.17 → 1.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -100,42 +100,33 @@ class HybridSpoofDetectorOutput(
100
100
  val width = image.width
101
101
  val height = image.height
102
102
  val bytesPerPixel = 4
103
- val rowBytes = width * bytesPerPixel
104
- val rgba = ByteArray(rowBytes * height)
103
+ val outputSize = width * height * bytesPerPixel
104
+ val packed = ByteArray(outputSize)
105
105
  val buffer = plane.buffer.duplicate()
106
106
  buffer.order(java.nio.ByteOrder.nativeOrder())
107
107
 
108
- for (y in 0 until height) {
109
- val srcOffset = y * rowStride
110
- val dstOffset = y * rowBytes
111
- val copyLength = rowBytes.coerceAtMost(rowStride)
112
- buffer.position(srcOffset)
113
- val slice = ByteArray(copyLength)
114
- buffer.get(slice)
115
- System.arraycopy(slice, 0, rgba, dstOffset, copyLength)
108
+ if (pixelStride == bytesPerPixel && rowStride == width * bytesPerPixel) {
109
+ buffer.get(packed)
110
+ return packed
116
111
  }
117
112
 
118
- if (pixelStride != 4) {
119
- val packed = ByteArray(width * height * bytesPerPixel)
120
- var outputIndex = 0
121
- for (y in 0 until height) {
122
- val rowOffset = y * rowStride
123
- for (x in 0 until width) {
124
- val pixelOffset = rowOffset + x * pixelStride
125
- val r = buffer.get(pixelOffset).toInt() and 0xFF
126
- val g = buffer.get(pixelOffset + 1).toInt() and 0xFF
127
- val b = buffer.get(pixelOffset + 2).toInt() and 0xFF
128
- val a = buffer.get(pixelOffset + 3).toInt() and 0xFF
129
- packed[outputIndex++] = r.toByte()
130
- packed[outputIndex++] = g.toByte()
131
- packed[outputIndex++] = b.toByte()
132
- packed[outputIndex++] = a.toByte()
133
- }
113
+ var outputIndex = 0
114
+ for (y in 0 until height) {
115
+ val rowOffset = y * rowStride
116
+ for (x in 0 until width) {
117
+ val pixelOffset = rowOffset + x * pixelStride
118
+ val r = buffer.get(pixelOffset).toInt() and 0xFF
119
+ val g = buffer.get(pixelOffset + 1).toInt() and 0xFF
120
+ val b = buffer.get(pixelOffset + 2).toInt() and 0xFF
121
+ val a = buffer.get(pixelOffset + 3).toInt() and 0xFF
122
+ packed[outputIndex++] = r.toByte()
123
+ packed[outputIndex++] = g.toByte()
124
+ packed[outputIndex++] = b.toByte()
125
+ packed[outputIndex++] = a.toByte()
134
126
  }
135
- return packed
136
127
  }
137
128
 
138
- return rgba
129
+ return packed
139
130
  }
140
131
 
141
132
  override fun dispose() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-vision-camera-spoof-detector",
3
- "version": "1.1.17",
3
+ "version": "1.1.18",
4
4
  "description": "High-performance face anti-spoofing and liveness detection module for React Native Vision Camera. Uses TensorFlow Lite with GPU acceleration and optimized YUV processing.",
5
5
  "homepage": "https://github.com/dpraful/react-native-vision-camera-spoof-detector",
6
6
  "repository": {