obsproject / obs-studio

OBS Studio - Free and open source software for live streaming and screen recording
https://obsproject.com
GNU General Public License v2.0
60.38k stars 7.99k forks source link

manual exposure ranges (issue is on the SW side, not the camera driver) #11290

Closed juanfelipegiraldoc closed 2 months ago

juanfelipegiraldoc commented 2 months ago

Operating System Info

Windows 11

Other OS

No response

OBS Studio Version

30.2.3

OBS Studio Version (Other)

No response

OBS Studio Log URL

https://obsproject.com/logs/Pw54R4ROdxA5GbqJ

OBS Studio Crash Log URL

No response

Expected Behavior

Manual exposure range should be from 1 to 16. As you can see below, the minimum value should be 1 and maximum 16. Screenshot 2024-09-16 114622

Current Behavior

Manual exposure range shows up from -13 to -9. Screenshot 2024-09-16 114412 Screenshot 2024-09-16 114423

When -13 it sends the index '1d' When -12 it sends the index '2d' When -11 it sends the index '5d' When -10 it sends the index '10d' When -9 it sends the index '16d'

So at the end it recognizes the range is 1 to 16, but there are some missing indexes.

Other than that, something that I'm not sure if it's normal when I move the slider from '-10' to '-9' in manual exposure, it sends the following commands in the order below:

Auto exposure requests. Set auto exposure Set manual exposure Auto exposure requests Set auto exposure Set manual exposure The debug messages below show this behavior, but it seems too much just for changing 1 value in manual exposure. If I move the slider 2 values, it's 12 requests in a row, which sometimes kills my camera.

(11:59:05.718) Auto Exposure (11:59:05.718) GET_CUR (11:59:05.718) USBStpCB:VCI GET_REQ - RequestOption: 0x1, Value sent: [byte 0] 0x1 (hex) (11:59:05.718) USBStpCB:VCI GET_REQ - RequestOption: 0x1, Value sent: [byte 0] 1 (uint8_t) (11:59:05.718) USBStpCB:VCI GET_REQ - RequestOption: 0x1, Value sent: [byte 0] 1 (int8_t) (11:59:05.718) USBStpCB:VCI GET_REQ - RequestOption: 0x1, Value sent: [byte 1] 0x0 (hex) (11:59:05.718) USBStpCB:VCI GET_REQ - RequestOption: 0x1, Value sent: [byte 1] 0 (uint8_t) (11:59:05.718) USBStpCB:VCI GET_REQ - RequestOption: 0x1, Value sent: [byte 1] 0 (int8_t) (11:59:05.718) Auto Exposure (11:59:05.718) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 0] 0x0 (hex) (11:59:05.718) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 0] 0 (uint8_t) (11:59:05.718) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 0] 0 (int8_t) (11:59:05.718) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 1] 0x0 (hex) (11:59:05.718) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 1] 0 (uint8_t) (11:59:05.718) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 1] 0 (int8_t) (11:59:05.718) USBStpCB:VCI SET_CUR_REQ - Total readCount: 1 (11:59:05.718) set Auto exposure = 1 (11:59:05.718) (11:59:05.718) Register = 0x5002: Value = 0x29C (11:59:05.718) Manual Exposure (11:59:05.718) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 0] 0x0 (hex) (11:59:05.718) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 0] 0 (uint8_t) (11:59:05.718) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 0] 0 (int8_t) (11:59:05.718) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 1] 0x0 (hex) (11:59:05.718) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 1] 0 (uint8_t) (11:59:05.718) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 1] 0 (int8_t) (11:59:05.718) USBStpCB:VCI SET_CUR_REQ - Total readCount: 4 (11:59:05.718) set Manual exposure = 16 (11:59:05.718) (11:59:05.718) Register = 0x5002: Value = 0x290 (11:59:05.718) Register = 0x500C: Value = 0x3E8 (11:59:05.718) Register = 0x5006: Value = 0x1000 (11:59:05.919) Auto Exposure (11:59:05.919) GET_CUR (11:59:05.919) USBStpCB:VCI GET_REQ - RequestOption: 0x1, Value sent: [byte 0] 0x1 (hex) (11:59:05.919) USBStpCB:VCI GET_REQ - RequestOption: 0x1, Value sent: [byte 0] 1 (uint8_t) (11:59:05.919) USBStpCB:VCI GET_REQ - RequestOption: 0x1, Value sent: [byte 0] 1 (int8_t) (11:59:05.919) USBStpCB:VCI GET_REQ - RequestOption: 0x1, Value sent: [byte 1] 0x0 (hex) (11:59:05.919) USBStpCB:VCI GET_REQ - RequestOption: 0x1, Value sent: [byte 1] 0 (uint8_t) (11:59:05.919) USBStpCB:VCI GET_REQ - RequestOption: 0x1, Value sent: [byte 1] 0 (int8_t) (11:59:05.919) Auto Exposure (11:59:05.919) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 0] 0x0 (hex) (11:59:05.919) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 0] 0 (uint8_t) (11:59:05.919) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 0] 0 (int8_t) (11:59:05.919) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 1] 0x0 (hex) (11:59:05.919) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 1] 0 (uint8_t) (11:59:05.919) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 1] 0 (int8_t) (11:59:05.919) USBStpCB:VCI SET_CUR_REQ - Total readCount: 1 (11:59:05.919) set Auto exposure = 1 (11:59:05.919) (11:59:05.919) Register = 0x5002: Value = 0x29C (11:59:05.919) Manual Exposure (11:59:05.919) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 0] 0x0 (hex) (11:59:05.919) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 0] 0 (uint8_t) (11:59:05.919) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 0] 0 (int8_t) (11:59:05.919) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 1] 0x0 (hex) (11:59:05.919) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 1] 0 (uint8_t) (11:59:05.919) USBStpCB:VCI SET_CUR_REQ - Value received: [byte 1] 0 (int8_t) (11:59:05.919) USBStpCB:VCI SET_CUR_REQ - Total readCount: 4 (11:59:05.919) set Manual exposure = 16 (11:59:05.919) (11:59:05.919) Register = 0x5002: Value = 0x290 (11:59:05.919) Register = 0x500C: Value = 0x3E8 (11:59:05.919) Register = 0x5006: Value = 0x1000

Steps to Reproduce

  1. Open the properties of the camera
  2. Check the manual exposure ranges
  3. ...

Anything else we should know?

I'm the developer of this camera, and I've seen all the Processing Unit Descriptors work perfectly (Brightness, contrast, saturation, etc), same as the Input (Camera) Terminal Descriptor (like zoom, or auto exposure). The only one not setting the range correctly is manual exposure.

I also noticed the behavior is the same with the integrated camera in my laptop.

kkartaltepe commented 2 months ago

Duplicate #11289