v4l2 driver write register and get raw data question

Hi everyone,

I try to make a driver for my camera base one imx219 driver. My sensor register is 8bit address 8bit value so I changed regmap_config, in driver I use regmap_util_write_table_8 to write my register table, but I found a odd thing that I can’t write address 0x01, other registers can be write well. And after write the 0x01 register other write operation seems no effect, but regmap_util_write_table_8 return success. And at the same time I can use I2cset command to write 0x01 successfully in terminal. I don’t know why?

The other question is I can use nvgstcapture preview. But other app like cheese can’t find my camera. I guess if the gstream driver is different from normal v4l2 driver? I need capture raw data from my sensor, so I wonder if gstream can get raw data and if it can’t how should I do?

I found the reason about write 0x01 fail. That’s because IMX219_TABLE_END be set to 1…

Now only one question about get raw data

Hi zhaoxiang,

Answering your question about getting raw data with gstreamer, yes it is possible. In order to do it you will need to use the v4l2src element. The pipeline below is an example:

gst-launch-1.0 v4l2src ! 'video/x-bayer, width=(int)1920, height=(int)1080, format=(string)rggb, framerate=(fraction)30/1' ! filesink  location=video_capture.raw -e

Take into consideration that you may require to patch GStreamer (in consequence install GStreamer from source) in order acquire RAW10/RAW12 pixel formats, you may want to check this wiki: https://developer.ridgerun.com/wiki/index.php?title=Compile_gstreamer_on_Jetson_TX1_and_TX2#Steps_to_patch_gstreamer_to_support_RAW10

-Jafet