BeagleBone Camera Cape and Gstreamer

Hi everyone,

I’ve bought a camera cape and I’d to turn my old BeagleBone to a remote camera which can capture images and send to a server. But I’m having a problem when capturing pictures using gstreamer-0.10, the captured images were very dark and I do not know what is the cause of this.

My gstreamer pipeline for image capturing:

gst-launch v4l2src device=/dev/video0 num-buffers=1 ! video/x-raw-yuv, width=800, height=600 ! ffmpegcolorspace ! jpegenc ! filesink location=1.jpg

during the process, I got an error

Src:v4l2src0:
system error: Inappropriate ioctl for device

Thank you.

Here are some debug info, could any one help me to find out the cause of this problem?

Driver Info:
Driver name : cssp_camera
Card type : cssp_camera
Bus info : cssp_camera-000
Driver version: 3.2.42
Capabilities : 0x05000001
Video Capture
Read/Write
Streaming

Compliance test for device /dev/video0 (not using libv4l2):

Required ioctls:
VIDIOC_QUERYCAP returned 0 (Success)
test VIDIOC_QUERYCAP: OK

Allow for multiple opens:
test second video open: OK
VIDIOC_QUERYCAP returned 0 (Success)
test VIDIOC_QUERYCAP: OK
VIDIOC_G_PRIORITY returned 0 (Success)
VIDIOC_G_PRIORITY returned 0 (Success)
VIDIOC_S_PRIORITY returned 0 (Success)
VIDIOC_G_PRIORITY returned 0 (Success)
VIDIOC_G_PRIORITY returned 0 (Success)
VIDIOC_S_PRIORITY returned -1 (Device or resource busy)
VIDIOC_S_PRIORITY returned 0 (Success)
VIDIOC_G_PRIORITY returned 0 (Success)
VIDIOC_G_PRIORITY returned 0 (Success)
test VIDIOC_G/S_PRIORITY: OK

Debug ioctls:
VIDIOC_DBG_G_CHIP_IDENT returned -1 (Inappropriate ioctl for device)
test VIDIOC_DBG_G_CHIP_IDENT: FAIL
VIDIOC_DBG_G_REGISTER returned -1 (Inappropriate ioctl for device)
fail: v4l2-test-debug.cpp(82): uid == 0 && ret
test VIDIOC_DBG_G/S_REGISTER: FAIL
VIDIOC_LOG_STATUS returned 0 (Success)
test VIDIOC_LOG_STATUS: OK

Input ioctls:
VIDIOC_G_STD returned -1 (Inappropriate ioctl for device)
VIDIOC_G_TUNER returned -1 (Inappropriate ioctl for device)
fail: v4l2-test-input-output.cpp(133): couldn’t get tuner 0
test VIDIOC_G/S_TUNER: FAIL
VIDIOC_G_FREQUENCY returned -1 (Inappropriate ioctl for device)
fail: v4l2-test-input-output.cpp(228): could get frequency for invalid tuner 0
test VIDIOC_G/S_FREQUENCY: FAIL
VIDIOC_ENUMAUDIO returned -1 (Inappropriate ioctl for device)
fail: v4l2-test-input-output.cpp(358): could not enumerate audio input 0
test VIDIOC_ENUMAUDIO: FAIL
VIDIOC_G_INPUT returned 0 (Success)
VIDIOC_ENUMINPUT returned 0 (Success)
VIDIOC_S_INPUT returned 0 (Success)
VIDIOC_ENUMINPUT returned -1 (Invalid argument)
VIDIOC_S_INPUT returned -1 (Invalid argument)
VIDIOC_S_INPUT returned 0 (Success)
test VIDIOC_G/S/ENUMINPUT: OK
VIDIOC_S_INPUT returned 0 (Success)
VIDIOC_ENUMINPUT returned 0 (Success)
VIDIOC_G_AUDIO returned -1 (Inappropriate ioctl for device)
fail: v4l2-test-input-output.cpp(377): No audio inputs, but G_AUDIO did not return EINVAL
fail: v4l2-test-input-output.cpp(421): invalid audioset for input 0
test VIDIOC_G/S_AUDIO: FAIL
Inputs: 1 Audio Inputs: 0 Tuners: 0

Output ioctls:
VIDIOC_G_MODULATOR returned -1 (Inappropriate ioctl for device)
fail: v4l2-test-input-output.cpp(479): couldn’t get modulator 0
test VIDIOC_G/S_MODULATOR: FAIL
VIDIOC_G_FREQUENCY returned -1 (Inappropriate ioctl for device)
fail: v4l2-test-input-output.cpp(563): could get frequency for invalid modulator 0
test VIDIOC_G/S_FREQUENCY: FAIL
VIDIOC_ENUMAUDOUT returned -1 (Inappropriate ioctl for device)
fail: v4l2-test-input-output.cpp(682): could not enumerate audio output 0
test VIDIOC_ENUMAUDOUT: FAIL
VIDIOC_G_OUTPUT returned -1 (Inappropriate ioctl for device)
test VIDIOC_G/S/ENUMOUTPUT: FAIL
test VIDIOC_G/S_AUDOUT: Not Supported
Outputs: 0 Audio Outputs: 0 Modulators: 0

Control ioctls:
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
VIDIOC_QUERYCTRL returned -1 (Invalid argument)
test VIDIOC_QUERYCTRL/MENU: OK
VIDIOC_G_CTRL returned -1 (Invalid argument)
VIDIOC_S_CTRL returned -1 (Invalid argument)
test VIDIOC_G/S_CTRL: OK
VIDIOC_G_EXT_CTRLS returned -1 (Invalid argument)
test VIDIOC_G/S/TRY_EXT_CTRLS: Not Supported
Standard Controls: 0 Private Controls: 0

Input/Output configuration ioctls:
VIDIOC_ENUMINPUT returned 0 (Success)
VIDIOC_S_INPUT returned 0 (Success)
VIDIOC_G_STD returned -1 (Inappropriate ioctl for device)
VIDIOC_S_STD returned -1 (Inappropriate ioctl for device)
VIDIOC_S_STD returned -1 (Inappropriate ioctl for device)
fail: v4l2-test-io-config.cpp(63): could set standard to ATSC, which is not supported anymore
fail: v4l2-test-io-config.cpp(121): STD failed for input 0.
test VIDIOC_ENUM/G/S/QUERY_STD: FAIL
VIDIOC_ENUMINPUT returned 0 (Success)
VIDIOC_S_INPUT returned 0 (Success)
VIDIOC_G_DV_PRESET returned -1 (Inappropriate ioctl for device)
VIDIOC_S_DV_PRESET returned -1 (Inappropriate ioctl for device)
VIDIOC_S_DV_PRESET returned -1 (Inappropriate ioctl for device)
fail: v4l2-test-io-config.cpp(167): could set preset V4L2_DV_INVALID
fail: v4l2-test-io-config.cpp(216): Presets failed for input 0.
test VIDIOC_ENUM/G/S/QUERY_DV_PRESETS: FAIL
VIDIOC_ENUMINPUT returned 0 (Success)
VIDIOC_S_INPUT returned 0 (Success)
VIDIOC_G_DV_TIMINGS returned -1 (Inappropriate ioctl for device)
test VIDIOC_G/S_DV_TIMINGS: Not Supported

Format ioctls:
VIDIOC_ENUM_FMT returned -1 (Invalid argument)
VIDIOC_ENUM_FMT returned 0 (Success)
VIDIOC_ENUM_FRAMESIZES returned -1 (Inappropriate ioctl for device)
fail: v4l2-test-formats.cpp(138): expected EINVAL, but got 25 when enumerating framesize 0
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: FAIL
VIDIOC_G_FBUF returned -1 (Inappropriate ioctl for device)
fail: v4l2-test-formats.cpp(327): expected EINVAL, but got 25 when getting framebuffer format
test VIDIOC_G_FBUF: FAIL
VIDIOC_G_FMT returned -1 (Invalid argument)
VIDIOC_G_FMT returned 0 (Success)
fail: v4l2-test-formats.cpp(386): unknown pixelformat 56595559 for buftype 1
test VIDIOC_G_FMT: FAIL
VIDIOC_G_SLICED_VBI_CAP returned -1 (Inappropriate ioctl for device)
fail: v4l2-test-formats.cpp(509): ret && ret != EINVAL && sliced_type
test VIDIOC_G_SLICED_VBI_CAP: FAIL
Total: 27 Succeeded: 11 Failed: 16 Warnings: 0