But when I installed the L4T-Base container for R35.5.0 (per this) and installed accelerated gstreamer, I did not get the expected new properties in any elements. Here is what I get in my R35.5.0 container:
The OP in that thread had to recompile gstnvarguscamerasrc.cpp from source to get those. Ideally I would like to just download the latest package from the repos here rather than building from source, because I would like to test quickly to see if it solves my problem.
root@tegra-ubuntu:/sys/kernel/debug/bpmp/debug/clk# gst-inspect-1.0 nvarguscamerasrc
Factory Details:
Rank primary (256)
Long-name NvArgusCameraSrc
Klass Video/Capture
Description nVidia ARGUS Camera Source
Author Viranjan Pagar <vpagar@nvidia.com>, Amit Pandya <apandya@nvidia.com>
Plugin Details:
Name nvarguscamerasrc
Description nVidia ARGUS Source Component
Filename /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvarguscamerasrc.so
Version 1.0.0
License Proprietary
Source module nvarguscamerasrc
Binary package NvARGUSCameraSrc
Origin URL http://nvidia.com/
GObject
+----GInitiallyUnowned
+----GstObject
+----GstElement
+----GstBaseSrc
+----GstNvArgusCameraSrc
Pad Templates:
SRC template: 'src'
Availability: Always
Capabilities:
video/x-raw(memory:NVMM)
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
format: { (string)NV12 }
framerate: [ 0/1, 2147483647/1 ]
Element has no clocking capabilities.
Element has no URI handling capabilities.
Pads:
SRC: 'src'
Pad Template: 'src'
Element Properties:
acquire-wait : Set the waiting time for the acquireFrame before timeout. Default 5000000000 (in nanosec)
flags: readable, writable
Unsigned Integer64. Range: 5000000000 - 18446744073709551615 Default: 5000000000
aeantibanding : property to set the auto exposure antibanding mode
flags: readable, writable
Enum "GstNvArgusCamAeAntiBandingMode" Default: 1, "AeAntibandingMode_Auto"
(0): AeAntibandingMode_Off - GST_NVCAM_AEANTIBANDING_OFF
(1): AeAntibandingMode_Auto - GST_NVCAM_AEANTIBANDING_AUTO
(2): AeAntibandingMode_50HZ - GST_NVCAM_AEANTIBANDING_50HZ
(3): AeAntibandingMode_60HZ - GST_NVCAM_AEANTIBANDING_60HZ
aelock : set or unset the auto exposure lock
flags: readable, writable
Boolean. Default: false
aeregion : Property to set region of interest for auto exposure
with values of ROI coordinates (left, top, right, bottom)
and weight (float number) in that order, to set the property
use for example: aeregion="0 0 256 256 1"
flags: readable, writable
String. Default: null
awblock : set or unset the auto white balance lock
flags: readable, writable
Boolean. Default: false
blocksize : Size in bytes to read per buffer (-1 = default)
flags: readable, writable
Unsigned Integer. Range: 0 - 4294967295 Default: 4096
do-timestamp : Apply current stream time to buffers
flags: readable, writable
Boolean. Default: true
ee-mode : property to select edge enhnacement mode
flags: readable, writable
Enum "GstNvArgusCamEEMode" Default: 1, "EdgeEnhancement_Fast"
(0): EdgeEnhancement_Off - GST_NVCAM_EE_OFF
(1): EdgeEnhancement_Fast - GST_NVCAM_EE_FAST
(2): EdgeEnhancement_HighQuality - GST_NVCAM_EE_HIGHQUALITY
ee-strength : property to adjust edge enhancement strength
flags: readable, writable
Float. Range: -1 - 1 Default: -1
event-wait : Set the waiting time for the event before timeout. Default 3000000000 (in nanosec)
flags: readable, writable
Unsigned Integer64. Range: 3000000000 - 18446744073709551615 Default: 3000000000
exposurecompensation: property to adjust exposure compensation
flags: readable, writable
Float. Range: -2 - 2 Default: 0
exposuretimerange : Property to adjust exposure time range in nanoseconds
Use string with values of Exposure Time Range (low, high)
in that order, to set the property.
eg: exposuretimerange="34000 358733000"
Unfortunately I am unable to find that in the Docker container.
Maybe the updated version of the dpkg is available in the downloadable BSP tbz2, but not updated in the APT repo?
To be sure that it wasn’t an issue with my Dockerfile, I also tried with R35.4.1 because that is also supposed to have the updated source (with the “acquire-wait” property in nvarguscamerasrc). R35.4.1 does have an official Docker tag in L4T-Base containers, unlike R35.5.0:
docker pull nvcr.io/nvidia/l4t-base:35.4.1
But I got the same issue. The “acquire-wait” property is missing, it should be the first property:
I think I’ve figured it out. It’s not possible to do in a Docker container on Jetson because the L4T-Base Docker will actually link to the host libraries. In my case, the host Jetson version is R35.3, so the new property are absent in those libraries “within” the container.
Presumably, running the rootfs in l4t-base:35.4.1 (including the install of nvidia-l4t-gstreamer) natively on the Jetson will yield the correct versions of packages, but I will test that later.