Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

missing controls? #24

Open
smremde opened this issue Oct 18, 2016 · 9 comments
Open

missing controls? #24

smremde opened this issue Oct 18, 2016 · 9 comments

Comments

@smremde
Copy link

smremde commented Oct 18, 2016

node-v4l2camera: 1.0.4
v4l2: 1.6.0-2
distro rasbian (arm6
Bus 001 Device 005: ID 045e:0772 Microsoft Corp. LifeCam Studio

$ v4l2-ctl  -l
                     brightness (int)    : min=30 max=255 step=1 default=-8193 value=102
                       contrast (int)    : min=0 max=10 step=1 default=57343 value=5
                     saturation (int)    : min=0 max=200 step=1 default=57343 value=103
 white_balance_temperature_auto (bool)   : default=1 value=1
           power_line_frequency (menu)   : min=0 max=2 default=2 value=2
      white_balance_temperature (int)    : min=2500 max=10000 step=1 default=57343 value=4500 flags=inactive
                      sharpness (int)    : min=0 max=50 step=1 default=57343 value=25
         backlight_compensation (int)    : min=0 max=10 step=1 default=57343 value=0
                  exposure_auto (menu)   : min=0 max=3 default=0 value=3
              exposure_absolute (int)    : min=1 max=10000 step=1 default=156 value=156 flags=inactive
                   pan_absolute (int)    : min=-529200 max=529200 step=3600 default=0 value=0
                  tilt_absolute (int)    : min=-432000 max=432000 step=3600 default=0 value=0
                 focus_absolute (int)    : min=0 max=40 step=1 default=57343 value=18
                     focus_auto (bool)   : default=1 value=0
                  zoom_absolute (int)    : min=0 max=317 step=1 default=57343 value=0
                     brightness (int)    : min=30 max=255 step=1 default=-8193 value=102
                       contrast (int)    : min=0 max=10 step=1 default=57343 value=5
                     saturation (int)    : min=0 max=200 step=1 default=57343 value=103
 white_balance_temperature_auto (bool)   : default=1 value=1
           power_line_frequency (menu)   : min=0 max=2 default=2 value=2
      white_balance_temperature (int)    : min=2500 max=10000 step=1 default=57343 value=4500 flags=inactive
                      sharpness (int)    : min=0 max=50 step=1 default=57343 value=25
         backlight_compensation (int)    : min=0 max=10 step=1 default=57343 value=0

But when i use node-v4l2camera, I only see the first seven...

[
  {
    "id": 9963776,
    "name": "Brightness",
    "type": "int",
    "min": 30,
    "max": 255,
    "step": 1,
    "default": -8193,
    "flags": {
      "disabled": false,
      "grabbed": false,
      "readOnly": false,
      "update": false,
      "inactive": false,
      "slider": false,
      "writeOnly": false,
      "volatile": false
    },
    "menu": []
  },
  {
    "id": 9963777,
    "name": "Contrast",
    "type": "int",
    "min": 0,
    "max": 10,
    "step": 1,
    "default": 57343,
    "flags": {
      "disabled": false,
      "grabbed": false,
      "readOnly": false,
      "update": false,
      "inactive": false,
      "slider": false,
      "writeOnly": false,
      "volatile": false
    },
    "menu": []
  },
  {
    "id": 9963778,
    "name": "Saturation",
    "type": "int",
    "min": 0,
    "max": 200,
    "step": 1,
    "default": 57343,
    "flags": {
      "disabled": false,
      "grabbed": false,
      "readOnly": false,
      "update": false,
      "inactive": false,
      "slider": false,
      "writeOnly": false,
      "volatile": false
    },
    "menu": []
  },
  {
    "id": 9963788,
    "name": "White Balance Temperature, Auto",
    "type": "bool",
    "min": 0,
    "max": 1,
    "step": 1,
    "default": 1,
    "flags": {
      "disabled": false,
      "grabbed": false,
      "readOnly": false,
      "update": false,
      "inactive": false,
      "slider": false,
      "writeOnly": false,
      "volatile": false
    },
    "menu": []
  },
  {
    "id": 9963800,
    "name": "Power Line Frequency",
    "type": "menu",
    "min": 0,
    "max": 2,
    "step": 1,
    "default": 2,
    "flags": {
      "disabled": false,
      "grabbed": false,
      "readOnly": false,
      "update": false,
      "inactive": false,
      "slider": false,
      "writeOnly": false,
      "volatile": false
    },
    "menu": [
      "Disabled",
      "50 Hz",
      "60 Hz"
    ]
  },
  {
    "id": 9963802,
    "name": "White Balance Temperature",
    "type": "int",
    "min": 2500,
    "max": 10000,
    "step": 1,
    "default": 57343,
    "flags": {
      "disabled": false,
      "grabbed": false,
      "readOnly": false,
      "update": false,
      "inactive": true,
      "slider": false,
      "writeOnly": false,
      "volatile": false
    },
    "menu": []
  },
  {
    "id": 9963803,
    "name": "Sharpness",
    "type": "int",
    "min": 0,
    "max": 50,
    "step": 1,
    "default": 57343,
    "flags": {
      "disabled": false,
      "grabbed": false,
      "readOnly": false,
      "update": false,
      "inactive": false,
      "slider": false,
      "writeOnly": false,
      "volatile": false
    },
    "menu": []
  },
  {
    "id": 9963804,
    "name": "Backlight Compensation",
    "type": "int",
    "min": 0,
    "max": 10,
    "step": 1,
    "default": 57343,
    "flags": {
      "disabled": false,
      "grabbed": false,
      "readOnly": false,
      "update": false,
      "inactive": false,
      "slider": false,
      "writeOnly": false,
      "volatile": false
    },
    "menu": []
  }
]
@iglosiggio
Copy link

Your camera is using the v4l2 extended api, i'm currently working on a patch :)

@smremde
Copy link
Author

smremde commented Oct 18, 2016

Awesome - thanks.

@iglosiggio
Copy link

Try using https://github.com/iglosiggio/node-v4l2camera/ y wrote the patch half an hour ago but i think it'll work.

npm install iglosiggio/node-v4l2camera

@smremde
Copy link
Author

smremde commented Oct 19, 2016

This seems to work! I haven't tested fully, but the controls now appear and I can get/set them. I won't have time till this evening to test if that are actually changing (but you might know if getting/setting is enough to prove this works.)

Warning during build:

make: Entering directory '/home/pi/LaserPI/node_modules/v4l2camera/build'
  CC(target) Release/obj.target/v4l2camera/capture.o
../capture.c: In function ‘camera_controls_menus’:
../capture.c:468:13: warning: passing argument 1 of ‘error’ discards ‘const’ qualifier from pointer target type
       error(camera, "VIDIOC_QUERYMENU");
             ^
../capture.c:28:13: note: expected ‘struct camera_t *’ but argument is of type ‘const struct camera_t *’
 static bool error(camera_t* camera, const char * msg)
             ^
  CXX(target) Release/obj.target/v4l2camera/v4l2camera.o
  SOLINK_MODULE(target) Release/obj.target/v4l2camera.node
  COPY Release/v4l2camera.node
make: Leaving directory '/home/pi/LaserPI/node_modules/v4l2camera/build'

@iglosiggio
Copy link

Repaired, now compiles cleanly! 💃

@smremde
Copy link
Author

smremde commented Oct 21, 2016

This works perfectly.

@iglosiggio
Copy link

If you need to always have an RGB or YUV format you can try with this branch https://github.com/iglosiggio/node-v4l2camera/tree/libv4l2 (requires libv4l which emulates the other outputs)

@JeffJassky
Copy link

Is there any reason you don't make a pull request for your extended API patch?

@iglosiggio
Copy link

Is there any reason you don't make a pull request for your extended API patch?

I did a PR a few years ago. I'm not currently using the library and iirc modern node extensions do not use NAN. I'm not sure if my fork compiles against a modern node.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants