I have now resolved the PHY interrupt at 0x40 and confirmed that data is coming in to MIPI. Now all that’s left is to check the video with gstreamer. Currently my pixelformat is BG10. How to check the pixelformat with gstreamer?
hello lewis15,
please test with following to check the output frames with preview disabled.
for example,
$ gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=0 ! 'video/x-raw(memory:NVMM),width=1920, height=1080, framerate=30/1, format=NV12' ! nvvidconv ! fpsdisplaysink text-overlay=0 name=sink_0 video-sink=fakesink sync=0 -v
Hello JerryChang.
I tried example. Here is result.
root@litbig:~# gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=0 ! 'video/x-raw(memory:NVMM),width=1920, height=1080, framerate=30/1, format=NV12' ! nvvidconv ! fpsdisplaysink text-overlay=0 name=sink_0 video-sink=fakesink sync=0 -v
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
/GstPipeline:pipeline0/GstFPSDisplaySink:sink_0/GstFakeSink:fakesink0: sync = false
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:751 /GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
No cameras available/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstFPSDisplaySink:sink_0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstFPSDisplaySink:sink_0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstFPSDisplaySink:sink_0.GstGhostPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstFPSDisplaySink:sink_0/GstFakeSink:fakesink0: sync = false
Got EOS from element "pipeline0".
Execution ended after 0:00:00.079652331
Setting pipeline to NULL ...
Freeing pipeline ...
And this is the result of executing the command according to the image format I use.
root@litbig:~# gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=0 ! 'video/x-raw(memory:NVMM),width=1280, height=960, framerate=30/1, format=BG10' ! nvvidconv !
fpsdisplaysink text-overlay=0 name=sink_0 video-sink=fakesink sync=0 -v
0:00:00.254799696 3699 0xaaaae0ddf230 ERROR GST_PIPELINE grammar.y:728:gst_parse_perform_link: could not link nvarguscamerasrc0 to nvvconv0, neither element can handle caps video/x-raw(memory:NVMM), width=(int)1280, height=(int)960, framerate=(fraction)30/1, format=(string)BG10
WARNING: erroneous pipeline: could not link nvarguscamerasrc0 to nvvconv0, neither element can handle caps video/x-raw(memory:NVMM), width=(int)1280, height=(int)960, framerate=(fraction)30/1, format=(string)BG10
hello lewis15,
just double check you’re able to fetch the sensor stream via v4l2 IOCTL.
for instance,
$ v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=BG10 --set-ctrl bypass_mode=0 --stream-mmap --stream-skip=33 --stream-count=100
since it shows No cameras available failure.
there might be some failure in the sensor device tree property settings.
please see-also Debugging Tips section to examine your sensor driver.
hello JerryChang.
I checked the debugging tips you gave me and my code seems to be fine.
And this is the result that appears when I input the example you gave me.
root@litbig:~# v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=BG10 --set-ctrl bypass_mode=0 --stream-mmap --stream-skip=33 --stream-count=100
[ 3893.066891] bwmgr API not supported
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.14 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.14 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.14 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.14 fps
<<<<<<<<<<<[ 3897.620670] bwmgr API not supported
hello lewis15,
please share me the sensor device tree property settings for examination.
Hello JerryChang.
Here is my device tree. And it’s ov2310 image sensor spec.

max96724-overlay.txt (2.3 KB)
max96724.txt (13.1 KB)
hello lewis15,
please refer to Camera Architecture Stack.
Argus did not support YUV sensor types,
for instance,
i2c@c250000 {
max96724_cam: max96724@60 {
compatible = "nvidia,max96724";
mode0 {
dynamic_pixel_bit_depth = "12";
csi_pixel_bit_depth = "16";
mode_type = "yuv";
pixel_phase = "uyvy";
please test with v4l2src or nvv4l2camerasrc to enable the preview stream.
for instance,
$ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1280,height=960,format=UYVY,framerate=30/1 ! xvimagesink
or…
$ gst-launch-1.0 nvv4l2camerasrc device=/dev/video0 ! 'video/x-raw(memory:NVMM),format=UYVY,width=1280,height=960,framerate=30/1 ! nvvidconv ! xvimagesink
Hello JerryChang.
When I entered the command gst-launch-1.0 nvv4l2camerasrc device=/dev/video0 ! 'video/x-raw(memory:NVMM),format=UYVY,width=1280,height=960,framerate=30/1' ! nvvidconv ! xvimagesink you gave me, I was able to see the screen.
However, something like noise appears on the screen. Is there any way to solve this?
I will attach a captured screen.
hello lewis15,
it seems there’re two image quality related issues.
did you meant… (1) dot noise, or, (2) over-saturate on the bottom-left corner.
for the (1) dot noise.
it may due to sensor processing with high analog gain settings.
you may try increase the scene lumiance for confirmation.
for the (2) over-saturate.
it usually due to sensor side configuration.
assume it’s running with SDR sensor mode, you must setting csi_pixel_bit_depth as same as dynamic_pixel_bit_depth in sensor device tree.
Hello JerryChang.
-
You said to increase the scene lumiance for confirmation. How do you increase it??
-
Over-saturation occurs when an object appears nearby because the IR LED Camera is used, so it does not seem to be a problem.
hello lewis15,
you may try turns the lights on, or, try capturing the frame of outdoor scene.
Currently, I am testing indoors with the lights on. However, dot noise is still occurring.
hello lewis15,
this may due to sensor capability.
please try enable the camera stream, and running with v4l2 IOCTL to get the value of controls by querying gain and exposure settings.
for instance, $ v4l2-ctl -Cgain -Cexposure
When you enter the “v4l2-ctl -Cgain -Cexposure” command, the output is as follows.
root@litbig:/home/litbig# v4l2-ctl -Cgain -Cexposure
unknown control 'exposure'
Hello JerryChang.
Looking closely at the dot noise, it seems that RGB appears as an intersection.
Since I am currently using an IR Camera, I think this problem will be solved if I output only Y or Gray. Could you please give me some advice on this?
hello lewis15,
I see…
it depends-on sensor side configuration,
since the camera frame already output with UYVY formats, you may using video converter to process the frames into monochrome or gray scale.
for instance,
$ gst-launch-1.0 nvv4l2camerasrc device=/dev/video0 ! 'video/x-raw(memory:NVMM),format=UYVY,width=1280,height=960,framerate=30/1' ! nvvidconv ! 'video/x-raw(memory:NVMM),format=GRAY8' ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! nvvidconv ! xvimagesink
Hello JerryChang.
There is no dot noise that causes the command you gave to be executed.
I am grateful beyond words :)
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
