Skip to content

Commit 5fb50e2

Browse files
committed
Merge branch 'master' into github_live
Change-Id: If98ad10e45eea5eef75b27548eb9af7de8eacbb5
2 parents 790cec4 + 25a39c5 commit 5fb50e2

File tree

1 file changed

+15
-3
lines changed
  • visionSamples/barcode-reader/app/src/main/java/com/google/android/gms/samples/vision/barcodereader/ui/camera

1 file changed

+15
-3
lines changed

visionSamples/barcode-reader/app/src/main/java/com/google/android/gms/samples/vision/barcodereader/ui/camera/CameraSource.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -760,7 +760,10 @@ private Camera createCamera() {
760760

761761
Camera.Parameters parameters = camera.getParameters();
762762

763-
parameters.setPictureSize(pictureSize.getWidth(), pictureSize.getHeight());
763+
if (pictureSize != null) {
764+
parameters.setPictureSize(pictureSize.getWidth(), pictureSize.getHeight());
765+
}
766+
764767
parameters.setPreviewSize(mPreviewSize.getWidth(), mPreviewSize.getHeight());
765768
parameters.setPreviewFpsRange(
766769
previewFpsRange[Camera.Parameters.PREVIEW_FPS_MIN_INDEX],
@@ -874,7 +877,9 @@ private static class SizePair {
874877
public SizePair(android.hardware.Camera.Size previewSize,
875878
android.hardware.Camera.Size pictureSize) {
876879
mPreview = new Size(previewSize.width, previewSize.height);
877-
mPicture = new Size(pictureSize.width, pictureSize.height);
880+
if (pictureSize != null) {
881+
mPicture = new Size(pictureSize.width, pictureSize.height);
882+
}
878883
}
879884

880885
public Size previewSize() {
@@ -1117,6 +1122,13 @@ void setNextFrame(byte[] data, Camera camera) {
11171122
mPendingFrameData = null;
11181123
}
11191124

1125+
if (!mBytesToByteBuffer.containsKey(data)) {
1126+
Log.d(TAG,
1127+
"Skipping frame. Could not find ByteBuffer associated with the image " +
1128+
"data from the camera.");
1129+
return;
1130+
}
1131+
11201132
// Timestamp and frame ID are maintained here, which will give downstream code some
11211133
// idea of the timing of frames received and when frames were dropped along the way.
11221134
mPendingTimeMillis = SystemClock.elapsedRealtime() - mStartTimeMillis;
@@ -1149,7 +1161,7 @@ public void run() {
11491161

11501162
while (true) {
11511163
synchronized (mLock) {
1152-
if (mActive && (mPendingFrameData == null)) {
1164+
while (mActive && (mPendingFrameData == null)) {
11531165
try {
11541166
// Wait for the next frame to be received from the camera, since we
11551167
// don't have it yet.

0 commit comments

Comments
 (0)