B4A Library [Class] CameraEx - Extends the camera library functionality

Status
Not open for further replies.

Shadow&Max

Active Member
Licensed User
Longtime User
Nope, doesn't fail in the example.... Guess I have some searching to do... Thanks Erel...
 

Shadow&Max

Active Member
Licensed User
Longtime User
I found my error... just had to change a few sub calls. Thanks Erel...
 

RAJAN MBA

Member
Licensed User
Longtime User
Hi
Were you able to check wink and double wink sensor? How to raise the event? I think DriveSafe4Glass uses the wink detection. Would be great to emulate that app in B4A.
 

kiki78

Active Member
Licensed User
Longtime User
Just a remark for people that want to use Preview event for image analysis.
Data parameter of Preview event is image coded in YUV420sp, and fortunately this is standardized by Google for all preview camera data.

One interesting point of this format is that luminance is really easy to extract.
Just extract beginning of Data for number of pixels of preview image.
You obtain an array of byte with gray scaled levels for your analysis.

Regards,
 

Beja

Expert
Licensed User
Longtime User
The example in the first post of Erel worked fine.. with real-time movement without loss of quality. but I found the following:

Effects button threw ArithmeticException (devide by zero)

Samsong DUOS GT-18552 - running Android 4.1.2 - 8GB memory and 2GB SDCard.
 

Beja

Expert
Licensed User
Longtime User
Absolutely!
Is there additional library or class that I should have included?
real device exception:

Error occured
An error has occurred in sub:
main_btneffect_click (java line:
311)
java.langArithmaticException:
devide by zero
Continue?
====================================================

And the following is the log at compile time

LogCat connected to: emulator-5554
** Service (kioskservice) Create **
** Service (kioskservice) Start **
** Activity (main) Create, isFirst = true **
** Activity (main) Resume **
java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: android.hardware.Camera$CameraInfo
at anywheresoftware.b4a.agraham.reflection.Reflection.CreateObject(Reflection.java:242)
at anywheresoftware.b4a.samples.camera.cameraexclass._findcamera(cameraexclass.java:184)
at anywheresoftware.b4a.samples.camera.cameraexclass._initialize(cameraexclass.java:374)
at anywheresoftware.b4a.samples.camera.main._initializecamera(main.java:477)
at anywheresoftware.b4a.samples.camera.main._activity_resume(main.java:292)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:174)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:158)
at anywheresoftware.b4a.samples.camera.main.afterFirstLayout(main.java:104)
at anywheresoftware.b4a.samples.camera.main.access$100(main.java:16)
at anywheresoftware.b4a.samples.camera.main$WaitForLayout.run(main.java:76)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: android.hardware.Camera$CameraInfo
at anywheresoftware.b4a.agraham.reflection.Reflection.classforname(Reflection.java:170)
at anywheresoftware.b4a.agraham.reflection.Reflection.CreateObject(Reflection.java:238)
... 20 more
Caused by: java.lang.ClassNotFoundException: android.hardware.Camera$CameraInfo
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:235)
at java.lang.Class.forName(Class.java:182)
at anywheresoftware.b4a.agraham.reflection.Reflection.classforname(Reflection.java:167)
... 21 more
Caused by: java.lang.NoClassDefFoundError: android.hardware.Camera$CameraInfo
... 25 more
Caused by: java.lang.ClassNotFoundException: android.hardware.Camera$CameraInfo in loader dalvik.system.PathClassLoader[/data/app/anywheresoftware.b4a.samples.camera-1.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
... 25 more
java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: android.hardware.Camera$CameraInfo
java.lang.NoSuchMethodException: getSupportedColorEffects
at java.lang.ClassCache.findMethodByName(ClassCache.java:308)
at java.lang.Class.getDeclaredMethod(Class.java:748)
at anywheresoftware.b4a.agraham.reflection.Reflection.runmethod(Reflection.java:214)
at anywheresoftware.b4a.agraham.reflection.Reflection.RunMethod(Reflection.java:802)
at anywheresoftware.b4a.samples.camera.cameraexclass._getsupportedcoloreffects(cameraexclass.java:302)
at anywheresoftware.b4a.samples.camera.main._btneffect_click(main.java:302)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:174)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:162)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:158)
at anywheresoftware.b4a.objects.ViewWrapper$1.onClick(ViewWrapper.java:66)
at android.view.View.performClick(View.java:2408)
at android.view.View$PerformClick.run(View.java:8816)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
java.lang.NoSuchMethodException: getSupportedColorEffects
java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: android.hardware.Camera$CameraInfo
at anywheresoftware.b4a.agraham.reflection.Reflection.CreateObject(Reflection.java:242)
at anywheresoftware.b4a.samples.camera.cameraexclass._findcamera(cameraexclass.java:184)
at anywheresoftware.b4a.samples.camera.cameraexclass._initialize(cameraexclass.java:374)
at anywheresoftware.b4a.samples.camera.main._initializecamera(main.java:477)
at anywheresoftware.b4a.samples.camera.main._changecamera_click(main.java:449)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:174)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:162)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:158)
at anywheresoftware.b4a.objects.ViewWrapper$1.onClick(ViewWrapper.java:66)
at android.view.View.performClick(View.java:2408)
at android.view.View$PerformClick.run(View.java:8816)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: android.hardware.Camera$CameraInfo
at anywheresoftware.b4a.agraham.reflection.Reflection.classforname(Reflection.java:170)
at anywheresoftware.b4a.agraham.reflection.Reflection.CreateObject(Reflection.java:238)
... 21 more
Caused by: java.lang.ClassNotFoundException: android.hardware.Camera$CameraInfo
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:235)
at java.lang.Class.forName(Class.java:182)
at anywheresoftware.b4a.agraham.reflection.Reflection.classforname(Reflection.java:167)
... 22 more
Caused by: java.lang.NoClassDefFoundError: android.hardware.Camera$CameraInfo
... 26 more
Caused by: java.lang.ClassNotFoundException: android.hardware.Camera$CameraInfo in loader dalvik.system.PathClassLoader[/data/app/anywheresoftware.b4a.samples.camera-1.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
... 26 more
java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: android.hardware.Camera$CameraInfo
 

wimpie3

Well-Known Member
Licensed User
Longtime User
Nexus 5 bug: after calling cam.TakePicture, Camera_PictureTaken is never fired.
 

wimpie3

Well-Known Member
Licensed User
Longtime User
When I use the PreviewImageToJpeg function to save a preview frame to the JPEG format, i notice that the orientation is wrong. The preview images are rotated on the screen, but the JPEG file has the wrong orientation. How can I fix this?
 

wimpie3

Well-Known Member
Licensed User
Longtime User

Thanks! Your demo works just fine... however, when I try to integrate the "NV21toRGB.proceed" function in my own program, I get this:

B4X:
Fatal signal 6 (SIGABRT) at 0x00001d9b (code=-6), thread 7579
 

JordiCP

Expert
Licensed User
Longtime User
Can you tell me which preview resolution and also bitmap size are you using? Also, if possible, the other arguments for this function call

Bitmap must be mutable
 

wimpie3

Well-Known Member
Licensed User
Longtime User
B4X:
Dim NV21toRGB As NV21util
Dim myBitmap As Bitmap
myBitmap.InitializeMutable(camEx.GetPreviewSize.Height, camEx.GetPreviewSize.Width)       
Main.NV21toRGB.proceed( previewImage, camEx.GetPreviewSize.Width, camEx.GetPreviewSize.Height, 1, myBitmap, True, camEx.Front, camEx.DispRotation, 0)

previewImage is a byte array containing a copy of the preview image. Preview size is 1024x768. The problem is the library works fine when used with your demo program. As soon as I integrate it in my own software, the segfault occurs.
 

JordiCP

Expert
Licensed User
Longtime User
Strange, everything seems correct. Could you please log the following values at runtime?

Log(PreviewPic.length)
Log(myBitmap.Width&","&myBitmap.Height)
Log(CamEx.DispRotation)
Log(camEx.GetPreviewSize.Height&","&camEx.GetPreviewSize.Width)

Also, do you work with the same values in the example?
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…