Git Product home page Git Product logo

eviacam's Issues

Couldn't compile on Linux (fixed?) / Camera support problem

Error while compiling "Invalid conversion from char** to void**"

I edited the file src/viacamcontroller.cpp and changed the line 233 from:
(char**)NULL, wxDEFAULT_DIALOG_STYLE | wxOK | wxCANCEL | wxCENTRE);
to:
(void**)NULL, wxDEFAULT_DIALOG_STYLE | wxOK | wxCANCEL | wxCENTRE);

Compilation worked flawlessly but when I run the app I get the message:

[libwebcam] Unknown V4L2 private control ID encountered: 0x08000000 (V4L2_CID_PRIVATE_BASE + 0) [libwebcam] Unknown V4L2 private control ID encountered: 0x08000001 (V4L2_CID_PRIVATE_BASE + 1) [libwebcam] Unknown V4L2 private control ID encountered: 0x08000002 (V4L2_CID_PRIVATE_BASE + 2) [libwebcam] Unknown V4L2 private control ID encountered: 0x08000003 (V4L2_CID_PRIVATE_BASE + 3) [ WARN:0] global /build/opencv/src/opencv-4.5.2/modules/videoio/src/videoio_c.cpp (15) cvCreateCameraCapture cvCreateCameraCapture doesn't support legacy API anymore.

Thank you

Conflicting declarations of GdkWindow from gtk and wx

On arch linux I'm getting:

In file included from /usr/include/gtk-3.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-3.0/gdk/gdk.h:32,
                 from /usr/include/gtk-3.0/gdk/gdkx.h:28,
                 from wxappbar.cpp:46:
/usr/include/gtk-3.0/gdk/gdktypes.h:143:39: error: conflicting declaration ‘typedef struct _GdkWindow GdkWindow’
  143 | typedef struct _GdkWindow             GdkWindow;
      |                                       ^~~~~~~~~
In file included from /usr/include/wx-3.0/wx/wxprec.h:12,
                 from wxappbar.cpp:24:
/usr/include/wx-3.0/wx/defs.h:3466:33: note: previous declaration as ‘typedef struct _GdkDrawable GdkWindow’

The problem remains after removing arch's package wxgtk3 and leaving only 2. I can't remove gtk3 without wrecking my box.

checking gtk version... 3.24.13
checking wxWidgets version... 3.0.4
checking opencv version... 4.2.0

Wrong cam-ID detection if more webcam is plugged

The situation, i have 3 webcam and 1 FakeCam. This devices working fine in OBS and in other apps.

When i started eviacamloader and select any other cam instead default (video0), the eviacam cannot starting. (my suggestion is that there should be an error window here, because now there is nothing)

Example for reporcedure error:

My devices:

 ls /dev/video*
/dev/video0  /dev/video1  /dev/video2  /dev/video20  /dev/video3  /dev/video4  /dev/video5

After selected "FakeCam" which 'video20' the config this is:

cat .eviacam
[settings]
cameraName=" (Id:5) FakeCam"
checkUpdatesAtStartup=1

Cannot start, and the output displayed 'video1' device can't open....

Use: 1000, Group: 1001. Eff. usr: 0, Eff. group: 1001
[libwebcam] Invalid V4L2 control type encountered: ctrl_id = 0x00980001, name = 'User Controls', type = 6
[libwebcam] Invalid or unsupported V4L2 control encountered: ctrl_id = 0x00980001, name = 'User Controls'
[libwebcam] Unknown V4L2 user control ID encountered: 0x0098F900 (V4L2_CID_USER_BASE + 61440)
[libwebcam] Unknown V4L2 user control ID encountered: 0x0098F901 (V4L2_CID_USER_BASE + 61441)
[libwebcam] Unknown V4L2 user control ID encountered: 0x0098F902 (V4L2_CID_USER_BASE + 61442)
[libwebcam] Unknown V4L2 user control ID encountered: 0x0098F903 (V4L2_CID_USER_BASE + 61443)
[ WARN:[email protected]] global opencv-4.6.0/modules/videoio/src/cap_gstreamer.cpp (1405) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
[ WARN:[email protected]] global opencv-4.6.0/modules/videoio/src/cap_gstreamer.cpp (2401) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src1 reported: A(z) „/dev/video1” not a recorder device
[ WARN:[email protected]] global opencv-4.6.0/modules/videoio/src/cap_gstreamer.cpp (1356) open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:[email protected]] global opencv-4.6.0/modules/videoio/src/cap_gstreamer.cpp (862) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
[ WARN:[email protected]] global opencv-4.6.0/modules/videoio/src/cap_v4l.cpp (902) open VIDEOIO(V4L2:/dev/video1): can't open camera by index
Use: 1000, Group: 1001. Eff. usr: 1000, Eff. group: 1001

eViacam works well with the default webcam (video0)!
But this happens when I select a different camera (video2/4/20)...

RGDS

eviacam 2.1.2 crashs on Debian 9

Hi,

I've issues with eviacam 2.1.2 (master branch) on Debian 9.1 (stable, XFCE).

After using eviacam a few minutes eviacam suddenly crashes with the following errors:

user@debian:~$ eviacamloader
Use: 1000, Group: 1000. Eff. usr: 0, Eff. group: 1000

(eviacam:1395): Gtk-WARNING **: gtk_disable_setlocale() must be called before gtk_init()
HIGHGUI ERROR: V4L: index 1 is not correct!
**
Gdk:ERROR:/build/gtk+2.0-1aCJs4/gtk+2.0-2.24.31/gdk/gdkregion-generic.c:1306:miSubtractNonO1: assertion failed: (y1<y2)
*** Error in `/usr/local/bin/eviacam': malloc(): memory corruption (fast): 0x00007fb70c0a0460 ***
Use: 1000, Group: 1000. Eff. usr: 1000, Eff. group: 1000


user@debian:~$ eviacamloader
Use: 1000, Group: 1000. Eff. usr: 0, Eff. group: 1000

(eviacam:1014): Gtk-WARNING **: gtk_disable_setlocale() must be called before gtk_init()
HIGHGUI ERROR: V4L: index 1 is not correct!
**
Gdk:ERROR:/build/gtk+2.0-1aCJs4/gtk+2.0-2.24.31/gdk/gdkregion-generic.c:1110:miUnionNonO: assertion failed: (y1 < y2)
Use: 1000, Group: 1000. Eff. usr: 1000, Eff. group: 1000

Toggle camera during a video meeting

I have a feature request to add a button or hotkey to toggle the camera. The reason is because I use video meetings like Zoom/Hangouts quite frequently. I can't share my video in Zoom with eViacam turned on. I'd like a quick way to turn off video in eViacam temporarily during a video meeting, then turn it back on again when I'm done.

Currently I have to exit the app and then reopen it again. I run with admin permissions so I have retype my password in again too. That's kind of a pain and would be easier if I could leave the app open but just toggle the camera.

One advantage of a hotkey is that I can wire a speech recognition command and just stay "toggle camera" and it will do it for me without even maximizing the window.

Crash on startup

Here:
#0 0x00007f25bbe133e0 gst_element_get_state (libgstreamer-1.0.so.0)
#1 0x00007f25be0cebde _ZN16GStreamerCaptureD2Ev (libopencv_videoio.so.4.0)
#2 0x00007f25be0d2426 _ZN2cv22createGStreamerCaptureEi (libopencv_videoio.so.4.0)
#3 0x00007f25be0abdb0 _ZN2cv19VideoCapture_createERP9CvCaptureRNS_3PtrINS_13IVideoCaptureEEENS_16VideoCaptureAPIsEi (libopencv_videoio.so.4.0)
#4 0x00007f25be0b76fa cvCreateCameraCapture (libopencv_videoio.so.4.0)
#5 0x00005648f08972b8 _ZN9CCameraCV13GetNumDevicesEv (eviacam)
#6 0x00005648f0897081 _ZN11CCameraEnum9getCameraEiijjf (eviacam)
#7 0x00005648f0841192 _ZN17CViacamController11SetUpCameraEv (eviacam)
#8 0x00005648f08426de _ZN17CViacamController10InitializeEv (eviacam)
#9 0x00005648f083a2af _ZN10EViacamApp6OnInitEv (eviacam)
#10 0x00007f25c1095d3a _Z7wxEntryRiPPw (libwx_baseu-3.1.so.3)
#11 0x00005648f08209f2 main (eviacam)
#12 0x00007f25bda52153 __libc_start_main (libc.so.6)
#13 0x00005648f082749e _start (eviacam)

GDB doesn't seem to know any locals in this build. I could try to rebuild all the libs with debug info if the problem isn't already clear

Add ability to move mouse click toolbar

I'm looking to be able to move the mouse click toolbar to the side or bottom of the screen. Due to mobility issues, a person is having a difficult time reaching the top left side of the screen.

Won't load, error message provided

Hi all,

Trying to load on Pop OS version 22.04 LTS

No interface loads, and I get the following:

$ eviacam [libwebcam] Invalid V4L2 control type encountered: ctrl_id = 0x00980001, name = 'User Controls', type = 6 [libwebcam] Invalid or unsupported V4L2 control encountered: ctrl_id = 0x00980001, name = 'User Controls' [libwebcam] Invalid V4L2 control type encountered: ctrl_id = 0x009A0001, name = 'Camera Controls', type = 6 [libwebcam] Invalid or unsupported V4L2 control encountered: ctrl_id = 0x009A0001, name = 'Camera Controls' [ WARN:0] global ./modules/videoio/src/videoio_c.cpp (15) cvCreateCameraCapture cvCreateCameraCapture doesn't support legacy API anymore.

Does anyone have any suggestions on how to get this working?

Thank you for your time.

Will only open hardware cameras. Does not allow use by software.

I noticed just now that if I create a virtual camera object on my system - for example using the OS virtual camera - to mirror my only input camera to a secondary camera screen, I cannot open that secondary OBS virtual camera in the app.

I just tried to mirror my hardware camera to a virtual device, its not even listed as a input device in viacam that's available even though it's clearly available for every other app on my system, including zoom, discord, etc.

This means that accessibility is by default restricted to people who have multiple cameras, and it also means that some apps just cant be used with it due to this needless device restriction, and while this may not be an issue for many people from a cost perspective it's better for us to be allowed to use software solutions as modern day hardware is more than fast enough to be able to keep up with this, and it would allow accessibility for many more apps.

A quick look at the code at

static CResult refresh_device_list (void)
makes me think that maybe there's simply devices that are not being considered that would be otherwise available for opening.

Maybe we're just restricting it to only hardware ID's for hardware cameras based on the code when it should be a larger set of device types?

Gtk-ERROR

I installed eviacam on Linux-mint 19.3 then I went to the terminal and entered eviacam and got the following.
(eviacam:14569): Gtk-ERROR **: 10:39:20.064: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported Trace/breakpoint trap (core #dumped)

Thanks!

New integration with Precision Gaze Mouse

Hi I am the creator of Precision Gaze Mouse and I thought you'd like to hear that I've integrated support for eViacam. One of your users made the suggestion to use eViacam and I really like it!

Precision Gaze Mouse allows people to use eye trackers like Tobii EyeX to quickly jump the mouse across the screen just by looking with their eyes. I paired it with eViacam by turning the X and Y speed down so that I can have small precision movements when I rotate my head. It can also reduce fatigue because you don't need to rotate your head so much. It's open source and you can check it out here http://precisiongazemouse.com/

If you think this is something other users might find useful, it would be great to have a link in your Related Projects section 😃 I also added a link to your site from the setup docs.

Webcam flipped even if it's unnecessary

Hi,

My webcam is by default in mirrored mode, so when eViacam perform it's camera flip, the face tracking is inverted.

Is there an option to avoid that please ? Thanks a lot !

Broken on Ubuntu 20.04.1 LTS

Versions (all installed from distro package source):

  • eViacam 2.1.4-2
  • opencv 4.2.0
  • wxWidget stuff at 3.0.4

Symptom when running "eviacamloader" (both as regular user and as root):

[ WARN:0] global ../modules/videoio/src/videoio_c.cpp (15) cvCreateCameraCapture cvCreateCameraCapture doesn't support legacy API anymore.

A warning, but nevertheless fatal - no program GUI ever appears.

I am trying to compile from source, but having no luck so far (can't get past "AM_GNU_GETTEXT not found" issues) - will keep trying for a bit more...

P.S. gnome-mousetrap is also broken, with almost the same error message, so I guess this relates to breaking changes in recent versions of opencv

Dark mode

I'd like to suggest a dark mode for the clickwindows in Windows.

Cannot compile on Linux Mint 19: invalid conversion from ‘char**’ to ‘void**’

Well, I've gotten this far, but am stumped.

  • All dependencies installed
  • Installed GTK3
  • Removed the included version of wxWidgets
  • Compiled wxWidgets 3.1.2 from source (successful)
  • autogen & configure eviacam 2.1.3 successfully (also tried the current commit just in case this was a known/fixed problem, but same result).

During the make process, it errors out with the following:

......

viacamcontroller.cpp: In member function ‘CCamera* CViacamController::SetUpCamera()’:
viacamcontroller.cpp:233:70: error: invalid conversion from ‘char**’ to ‘void**’ [-fpermissive]
     (char**)NULL, wxDEFAULT_DIALOG_STYLE | wxOK | wxCANCEL | wxCENTRE);
                                                                      ^
In file included from /usr/local/include/wx-3.1/wx/choicdlg.h:18:0,
                 from viacamcontroller.cpp:40:
/usr/local/include/wx-3.1/wx/generic/choicdgg.h:110:5: note:   initializing argument 5 of ‘wxSingleChoiceDialog::wxSingleChoiceDialog(wxWindow*, const wxString&, const wxString&, const wxArrayString&, void**, long int, const wxPoint&)’
     wxSingleChoiceDialog(wxWindow *parent,
     ^~~~~~~~~~~~~~~~~~~~
Makefile:865: recipe for target 'eviacam-viacamcontroller.o' failed
make[2]: *** [eviacam-viacamcontroller.o] Error 1
make[2]: Leaving directory '/tmp/eviacam/src'
Makefile:514: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/tmp/eviacam'
Makefile:423: recipe for target 'all' failed
make: *** [all] Error 2

Thoughts?

My arm is killing me... I'd really like to get eViacam working :)

Thanks!

Unable to change camera

Initial set up I selected the wrong camera but now I'm unable to get back to the original set up that allows me to select the camera options.

When trying to change in the general options I'm given this when clicking "Change":
Selection_088

Feature request: automatic switching between two screens

I found this app, because I was looking for some way to conveniently switch between two physical screens, but it seems there is currently no way. My problem is that when I want to scroll or refresh the secondary screen, I need to move the mouse all way there, then click to activate the window, then start scrolling; and afterwards do the same to continue working in the main screen. Using Alt+Tab is possible, but it then defeats the whole purpose of having two screens.

Proposed feature: the app doesn't move the mouse, but detects when one looks at another screen and places the mouse into the center of that screen. Optionally also activates (focuses) the window that is (say, in the middle) in that screen.

Start eViacam at user logon -> "No such file or directory"

If I enable "Start eViacam at user logon" the error message

Impossible to get permissions for file '/usr/share/eviacam/eviacam.desktop' (error 2: No such file or directory)

appears. (see attached Screenshot)
error

I think it's because the "eviacam.desktop" file is in /usr/share/applications/ and not in /usr/share/eviacam/

Happened with Debian 9, eViacam installed via Debian repository and also with the latest master branch.

Allow tracking when hotkey is held down

Hey I really enjoy this program! The last camera mouse I tried was CameraMouse, and this is way more accurate! That said, I find it a little distracting that the mouse pointer is constantly moving as I look around the screen. I really only need to move the mouse just before a click. It'd be great if it could track on key down, wait for the cursor to position, and then stop tracking on key up. The reason for holding a key is because I use a USB switch for clicking and I would like to use it to enable tracking as well. Does that make sense? Would you be open to this kind of setting?

Assertion on startup: assert "wxDynamicCast(ptr, T)" failed in wxCheckCast(): wxStaticCast() used incorrectly

On Arch Linux, with:
wxgtk: 3.0.2
opencv: 3.2.0

With the following backtrace:

ASSERT INFO:
/usr/include/wx-3.0/wx/object.h(160): assert "wxDynamicCast(ptr, T)" failed in wxCheckCast(): wxStaticCast() used incorrectly

BACKTRACE:
[1] wxToggleButton* wxCheckCast<wxToggleButton>(void const*, wxToggleButton*) /usr/include/wx-3.0/wx/object.h:160
[2] CClickWindowText::CreateControls(wxString const&) /home/lordaro/dev/eviacam/src/clickwindowtext.cpp:72
[3] CClickWindow::Create(wxWindow*, wxString const&) /home/lordaro/dev/eviacam/src/clickwindow.cpp:61
[4] CClickWindowText::CClickWindowText(wxWindow*, wxString const&) /home/lordaro/dev/eviacam/src/clickwindowtext.cpp:52
[5] wxString::ConvertedBuffer<char>::~ConvertedBuffer() /usr/include/wx-3.0/wx/string.h:3490
[6] CDwellClick::EnableVisualAlerts(bool) /home/lordaro/dev/eviacam/src/dwellclick.cpp:203
[7] CPointerAction::CPointerAction() /home/lordaro/dev/eviacam/src/pointeraction.cpp:43
[8] CViacamController::Initialize() /home/lordaro/dev/eviacam/src/viacamcontroller.cpp:292
[9] EViacamApp::OnInit() /home/lordaro/dev/eviacam/src/eviacamapp.cpp:176
[10] wxEntry(int&, wchar_t**)
[11] main /home/lordaro/dev/eviacam/src/eviacamapp.cpp:82
[12] __libc_start_main
[13] _start

Latest version doesn't run on Ubuntu Artful (Core Dump)

ant@vanta:~/$ eviacam

(eviacam:7900): Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported
Trace/breakpoint trap (core dumped)

Not sure what version numbers you'd need to know, so let me know if you need more information:

ant@vanta:~/Projects/eviacam$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=17.10
DISTRIB_CODENAME=artful

Please support OpenCV 3

Hi,

Current eviacam can not build with opencv 3.
Becuse eviacam is using cvCalcOpticalFlowHS, but this has been removed from opencv 3.
We need to use cv::calcOpticalFlowFarneback instead of cvCalcOpticalFlowHS.

Best regards,
Nobuhiro

./autogen.sh error in Solus os Linux

$ ./autogen.sh 
configure.ac:19: warning: macro 'AM_PROG_LIBTOOL' not found in library
configure.ac:33: warning: macro 'AM_GNU_GETTEXT' not found in library
./autogen.sh: line 6: libtoolize: command not found
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE ([^ \t=:+{}]+)}/ at /usr/bin/automake line 3930.
Makefile.am:81: warning: whitespace following trailing backslash
creavision/Makefile.am:10: error: Libtool library used but 'LIBTOOL' is undefined
creavision/Makefile.am:10:   The usual way to define 'LIBTOOL' is to add 'LT_INIT'
creavision/Makefile.am:10:   to 'configure.ac' and run 'aclocal' and 'autoconf' again.
creavision/Makefile.am:10:   If 'LT_INIT' is in 'configure.ac', make sure
creavision/Makefile.am:10:   its definition is in aclocal's search path.
creavision/libwebcam/Makefile.am:7: error: Libtool library used but 'LIBTOOL' is undefined
creavision/libwebcam/Makefile.am:7:   The usual way to define 'LIBTOOL' is to add 'LT_INIT'
creavision/libwebcam/Makefile.am:7:   to 'configure.ac' and run 'aclocal' and 'autoconf' again.
creavision/libwebcam/Makefile.am:7:   If 'LT_INIT' is in 'configure.ac', make sure
creavision/libwebcam/Makefile.am:7:   its definition is in aclocal's search path.
simplelog/Makefile.am:6: error: Libtool library used but 'LIBTOOL' is undefined
simplelog/Makefile.am:6:   The usual way to define 'LIBTOOL' is to add 'LT_INIT'
simplelog/Makefile.am:6:   to 'configure.ac' and run 'aclocal' and 'autoconf' again.
simplelog/Makefile.am:6:   If 'LT_INIT' is in 'configure.ac', make sure
simplelog/Makefile.am:6:   its definition is in aclocal's search path.
wxcamwindow/Makefile.am:3: error: Libtool library used but 'LIBTOOL' is undefined
wxcamwindow/Makefile.am:3:   The usual way to define 'LIBTOOL' is to add 'LT_INIT'
wxcamwindow/Makefile.am:3:   to 'configure.ac' and run 'aclocal' and 'autoconf' again.
wxcamwindow/Makefile.am:3:   If 'LT_INIT' is in 'configure.ac', make sure
wxcamwindow/Makefile.am:3:   its definition is in aclocal's search path.
wxutil/Makefile.am:13: error: Libtool library used but 'LIBTOOL' is undefined
wxutil/Makefile.am:13:   The usual way to define 'LIBTOOL' is to add 'LT_INIT'
wxutil/Makefile.am:13:   to 'configure.ac' and run 'aclocal' and 'autoconf' again.
wxutil/Makefile.am:13:   If 'LT_INIT' is in 'configure.ac', make sure
wxutil/Makefile.am:13:   its definition is in aclocal's search path.

libtool is installed

Support for macOS?

Hi, do you know how difficult it would be to compile this on macOS?

Thanks!

(I always appreciate the work people put into open source projects. I don't expect this feature to be implemented just for me, I'm just curious what technical problems would need to be overcome to port this to the Mac.)

Still broken on tablets

I downloaded this from SourceForge set my webcam to my tablets fromt camera. It blinks twice and then says "Camera not detected"

Please add support for 60FPS cameras

Support for higher frame rates than 30 FPS would make the tracking more responsive. This would make cursor adjustments easier, faster and using Enable Viacam a more pleasant experience.

I'm currently trying to use a Logitech C922x Pro, which supports 60 FPS at 720p. (Only 30 FPS at 1080p). I'd be happy to purchase any camera if eviacam would support a higher frame rate with it. Some specialized webcams cameras support 120 FPS and higher. But I think eviacam is capped at 30 FPS?

The Logitech C922x Pro works at 60 FPS on OBS Studio, but the frame rate and resolution has to be specifically set in OBS Studio to work. So I think eviacam would need to do something similar: setting the resolution and the frame rate. If it's easier to add, reading an ini file at launch would work too.

I tried to make this change myself when I found void setIdealFramerate(int deviceID, int idealFramerate); and bool setupDevice(int deviceID, int w, int h); inside of videoInput.h. I suspect I just needed to change the defaults when setupDevice is first used, but I was unable to get the source building. This is mostly because the required tools and dependences (opencv, MinGW, etc.) are foreign to me. Or maybe I was just using too new of a version of Windows or Visual Studio or whatever.

Cheers,
Rusty

Couldnt able to build on my windows pc

hi @cmauri

thanks for your work

I couldnt able to build the code in my vs2017 win10 pc.
lot of errors.

image

if u have any doc related to code building please help

i am trying to add opencv Dnn based face detection which is robust and will work for non frontal face too. but since i couldnt get rid of the build error i could not go forward.
once cleared all the build error i will release the PR .

highly appreaciated your help on this.

The face localization option is off

When I start eviacam I get the above message and then it crashes.
I have two cameras. It once asked me which to use before dying from opencv deprecating the main open-cam api, so I rebuilt against opencv 4.0.1, but it hasn't asked again which cam to use.
I don't have any files in ~/.eviacam
Arch linux.
Built at d5db860 against gtk 3.24.13, wxWidgets 3.1.3 for gtk3 and opencv 4.0.1

GTK-3 support ?

Hello,

Is there any plan for supporting gtk-3 ?
We are considering retiring wxWidgets gtk-2 build and eviacam is one of the only blocker.

Thank you !

process receives a SIGSEGV on Fedora 29

Hello @cmauri,

I'm trying to make eviacam work on Fedora 29, but when building from source using the latest v2.1.3 tag the process receives a SIGSEGV and gets killed.

$ ./src/eviacam --debug

DEBUG:   Opened device 'video0' successfully (handle = 1)

DEBUG:   Getting device information for handle 1 ...

DEBUG:     { shortName = 'video0', name = 'Integrated Camera: Integrated C', driver = 'uvcvideo', location = 'usb-0000:00:14.0-8', vid = 04f2, pid = b5c1, bcd = 4 }

DEBUG:   Getting control information for handle 1 ...

DEBUG:     Control found: Brightness

DEBUG:       { id = 1, name = 'Brightness', type = 6, flags = 3
DEBUG: , min = 0, max = 255, def = 128, step = 1
DEBUG:  }

DEBUG:     Control found: Contrast

DEBUG:       { id = 2, name = 'Contrast', type = 6, flags = 3
DEBUG: , min = 0, max = 255, def = 32, step = 1
DEBUG:  }

DEBUG:     Control found: Saturation

DEBUG:       { id = 4, name = 'Saturation', type = 6, flags = 3
DEBUG: , min = 0, max = 100, def = 64, step = 1
DEBUG:  }

DEBUG:     Control found: Hue

DEBUG:       { id = 5, name = 'Hue', type = 6, flags = 3
DEBUG: , min = -180, max = 180, def = 0, step = 1
DEBUG:  }

DEBUG:     Control found: White Balance Temperature, Auto

DEBUG:       { id = 9, name = 'White Balance Temperature, Auto', type = 2, flags = 3
DEBUG: , min = 0, max = 1, def = 1, step = 1
DEBUG:  }

DEBUG:     Control found: Gamma

DEBUG:       { id = 6, name = 'Gamma', type = 6, flags = 3
DEBUG: , min = 90, max = 150, def = 120, step = 1
DEBUG:  }

DEBUG:     Control found: Power Line Frequency

DEBUG:       { id = 13, name = 'Power Line Frequency', type = 3, flags = 3
DEBUG: , choice = {
DEBUG:  'Disabled'[0]
DEBUG:  '50 Hz'[1]
DEBUG:  '60 Hz'[2]
DEBUG:  }
DEBUG:  }

DEBUG:     Control found: White Balance Temperature

DEBUG:       { id = 8, name = 'White Balance Temperature', type = 6, flags = 3
DEBUG: , min = 2800, max = 6500, def = 4000, step = 1
DEBUG:  }

DEBUG:     Control found: Sharpness

DEBUG:       { id = 7, name = 'Sharpness', type = 6, flags = 3
DEBUG: , min = 0, max = 7, def = 2, step = 1
DEBUG:  }

DEBUG:     Control found: Backlight Compensation

DEBUG:       { id = 12, name = 'Backlight Compensation', type = 6, flags = 3
DEBUG: , min = 0, max = 2, def = 1, step = 1
DEBUG:  }

DEBUG:     Control found: Exposure, Auto

DEBUG:       { id = 15, name = 'Exposure, Auto', type = 3, flags = 3
DEBUG: , choice = {
DEBUG:  'Manual Mode'[1]
DEBUG:  'Aperture Priority Mode'[3]
DEBUG:  }
DEBUG:  }

DEBUG:     Control found: Exposure (Absolute)

DEBUG:       { id = 17, name = 'Exposure (Absolute)', type = 6, flags = 3
DEBUG: , min = 4, max = 1250, def = 156, step = 1
DEBUG:  }

DEBUG:     Control found: Exposure, Auto Priority

DEBUG:       { id = 16, name = 'Exposure, Auto Priority', type = 2, flags = 3
DEBUG: , min = 0, max = 1, def = 0, step = 1
DEBUG:  }

DEBUG:   Closed device 'video0' (handle = 0)


DEBUG:   Opened device 'video1' successfully (handle = 2)

DEBUG:   Getting device information for handle 2 ...

DEBUG:     { shortName = 'video1', name = 'Integrated Camera: Integrated C', driver = 'uvcvideo', location = 'usb-0000:00:14.0-8', vid = 04f2, pid = b5c1, bcd = 4 }

DEBUG:   Getting control information for handle 2 ...

DEBUG:   No controls found (ret = 0).

DEBUG:   Closed device 'video1' (handle = 0)


INFO: Previous used camera:  (Id:0) Integrated Camera: Integrated C... 
INFO: FOUND
INFO: Detected 2 camera(s)
INFO: Selected camera: 0
INFO: Try to open the camera to make sure it works...
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
VIDEOIO ERROR: V4L: device /dev/video1: Unable to query number of channels
warning: Cannot query video position: status=0 value=-1 duration=-1
 (/builddir/build/BUILD/opencv-3.4.1/modules/videoio/src/cap_gstreamer.cpp:952)
VIDEOIO ERROR: V4L: index 2 is not correct!
warning: Cannot query video position: status=0 value=-1 duration=-1
 (/builddir/build/BUILD/opencv-3.4.1/modules/videoio/src/cap_gstreamer.cpp:952)
VIDEOIO ERROR: V4L: index 3 is not correct!
warning: Cannot query video position: status=0 value=-1 duration=-1
 (/builddir/build/BUILD/opencv-3.4.1/modules/videoio/src/cap_gstreamer.cpp:952)
VIDEOIO ERROR: V4L: index 4 is not correct!
warning: Cannot query video position: status=0 value=-1 duration=-1
 (/builddir/build/BUILD/opencv-3.4.1/modules/videoio/src/cap_gstreamer.cpp:952)
VIDEOIO ERROR: V4L: index 5 is not correct!
warning: Cannot query video position: status=0 value=-1 duration=-1
 (/builddir/build/BUILD/opencv-3.4.1/modules/videoio/src/cap_gstreamer.cpp:952)
VIDEOIO ERROR: V4L: index 6 is not correct!
warning: Cannot query video position: status=0 value=-1 duration=-1
 (/builddir/build/BUILD/opencv-3.4.1/modules/videoio/src/cap_gstreamer.cpp:952)
VIDEOIO ERROR: V4L: index 7 is not correct!
warning: Cannot query video position: status=0 value=-1 duration=-1
 (/builddir/build/BUILD/opencv-3.4.1/modules/videoio/src/cap_gstreamer.cpp:952)
VIDEOIO ERROR: V4L: index 8 is not correct!
warning: Cannot query video position: status=0 value=-1 duration=-1
 (/builddir/build/BUILD/opencv-3.4.1/modules/videoio/src/cap_gstreamer.cpp:952)
VIDEOIO ERROR: V4L: index 9 is not correct!
warning: Cannot query video position: status=0 value=-1 duration=-1
 (/builddir/build/BUILD/opencv-3.4.1/modules/videoio/src/cap_gstreamer.cpp:952)
Segmentation fault (core dumped)

The problem is in the call to DisplayHeight() in CMouseControl::GetScreenSize():

$ gdb ./src/eviacam
...
Thread 1 "eviacam" received signal SIGSEGV, Segmentation fault.
0x0000000000477f5d in CMouseControl::GetScreenSize (this=this@entry=0xebae10) at mousecontrol.cpp:136
136             m_ScreenHeight=
(gdb) bt
#0  0x0000000000477f5d in CMouseControl::GetScreenSize() (this=this@entry=0xebae10) at mousecontrol.cpp:136
#1  0x00000000004780a9 in CMouseControl::OnDisplayChanged() (this=this@entry=0xebae10) at mousecontrol.cpp:174
#2  0x0000000000478108 in CMouseControl::CMouseControl(void*) (this=0xebae10, pDisplay=<optimized out>) at mousecontrol.cpp:102
#3  0x000000000046ffc6 in CPointerAction::CPointerAction() (this=0x1115640) at pointeraction.cpp:39
#4  0x000000000043c1f0 in CViacamController::Initialize() (this=this@entry=0xd35e00) at viacamcontroller.cpp:317
#5  0x0000000000435617 in EViacamApp::OnInit() (this=0x9fb230) at eviacamapp.cpp:176
#6  0x00007ffff7390d32 in wxEntry(int&, wchar_t**) (argc=<optimized out>, argv=<optimized out>) at ../include/wx/init.h:109
#7  0x0000000000422c52 in main(int, char**) (argc=<optimized out>, argv=0x7fffffffd1e8) at eviacamapp.cpp:81
...
(gdb) list
131             if (!retval) { exit (-1); }
132
133             m_ScreenHeight= devMode.dmPelsHeight;
134             m_ScreenWidth= devMode.dmPelsWidth;
135     #else // Linux
136             m_ScreenHeight= 
137                     DisplayHeight (static_cast<Display*>(m_pDisplay), DefaultScreen (static_cast<Display*>(m_pDisplay)));
138             m_ScreenWidth= 
139                     DisplayWidth (static_cast<Display*>(m_pDisplay), DefaultScreen (static_cast<Display*>(m_pDisplay)));
140     #endif
...
(gdb) print m_pDisplay
$6 = (void *) 0xa8a000
(gdb) print m_ScreenHeight
$7 = 0
(gdb) print m_ScreenWidth
$8 = 0

I see that m_pDisplay is set though, to the pDisplay argument received by the CMouseControl::CMouseControl() constructor:

$ gdb ./src/eviacam
...
(gdb) break CMouseControl
Breakpoint 1 at 0x4780c0: file mousecontrol.cpp, line 79.
(gdb) run
...
Thread 1 "eviacam" hit Breakpoint 1, CMouseControl::CMouseControl (this=0xc34de0, pDisplay=0xa8a800) at mousecontrol.cpp:79
79      CMouseControl::CMouseControl (void* pDisplay)
(gdb) print pDisplay
$1 = (void *) 0xa8a800
(gdb) continue
Continuing.

Thread 1 "eviacam" received signal SIGSEGV, Segmentation fault.
0x0000000000477f5d in CMouseControl::GetScreenSize (this=this@entry=0xc34de0) at mousecontrol.cpp:143
143             m_ScreenHeight=
(gdb) print m_pDisplay
$2 = (void *) 0xa8a800

So I don't really understand why DisplayHeight() causes a NULL pointer deference since m_pDisplay seems to be set correctly.

Maybe is a red herring, but I'm using Wayland + XWayland for X clients. Do you know if eviacam is supposed to work on this setup or should only under X?

In case is useful, the wxWidgets backend is GTK3.

$ wx-config --selected-config
gtk3-unicode-3.0

Any hints on how to further debug this?

For those who experience intermittent camera freezes...

Over the years of using eViacam, occasionally I've experienced a situation where the camera will freeze (it will no longer track head movements for cursor control, and the cursor will randomly move around the screen). Up until recently, I had created and used a custom Dragon voice command that would terminate the current eViacam task and restart it again - which worked well. However, I recently came across an article https://appuals.com/webcam-not-working-after-windows-10-anniversay-update/ that may have fixed the problem. I've made the suggested registry change and have yet to see the problem return.

So, for anyone there that may be experiencing this problem, try the aforementioned registry change.

Signed,
A happy and grateful eViacam user.

Change language -> "locale 'en_GB' cannot be set."

If I change the language of eViacam via settings for example to "English" and restart eViacam the error message

locale 'en_GB' cannot be set.

appears. (See attached Screenshot)
locale_error

eViacam starts in the changed language but this error appears on every start until I changed the language back to "system default".

Happened with Debian 9, eViacam installed via Debian repository and also with the latest master branch.

Raspberry pi 3

Hello, is it possible to use this in Raspberry pi 3?
Thanks!

cvCreateCameraCapture doesn't support legacy API anymore.

When i run eviacam against opencv-4.1.2 the following occurs

[ WARN:0] global /var/tmp/portage/media-libs/opencv-4.1.2-r1/work/opencv-4.1.2/modules/videoio/src/videoio_c.cpp (15) cvCreateCameraCapture cvCreateCameraCapture doesn't support legacy API anymore.

and eviacam exits.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.