regarding the official Jetson Linux API Reference Documentation it states:
Jetson Linux API References documents API elements that you can use directly .
But if I want to use e.g. the NvJPEGEncoder I get undefined Reference errors:
Checking the libnvjpeg.so seems not to include this class and export it’s functions
Regarding the included codesamples it’s seems that the class is rather part of the samples instead of the API, cause it will be build by the sample’s Makefile
So my Questions are:
are all Parts in the documented API really included in the API an can be used directly as stated
or do I have to build everything on myself
and finally: where is than stated what to build and what exists and where i get the Information in which .so/library the listed API elements are included?
thx for answering… but it’s not the answer I expected.
I did check the samples. And as I wrote it is not obvious which parts are really part of the API and which belongs to the samples and have to be build.
So when the Documentation tells me I can use the elements directly I expect them to be included in an existing library, rather then figuring out which one I have to build on my own as e.g. the mentioned NvJPEGEncoder-class.
On the other Hand there is also a NvBuffer-class listed in the API and inside the samples include/common classes… but NvBuffer-related stuff is usable via libnvbuf-utils.so (well… unless it is not a special same-named-samples NvBuffer-class)
Also the samples aren’t really a help here cause every single sample compiles with every class from the common class folder (via samples/Rules.mk) and links against every library listed in the Rules.mk… so it’s more guessing/filtering what is really essentially needed than a dedicated help…
Well I think it is quiet obvious that every thing should/may work when I link it to the world and compile every class I can find… but I won’t call it a strategy or solution ;)
So once again I would reference to my previous Questions:
What is really part of the documented API and directly usable…? (btw. what is the meaning of directly usable in this case?)
And when the stated classes are part of the API… why do they come with the samples-code and are build via/inside them as if thy where little unimpressive helping classes?
And when everything in common classes is build anyway (regardless of it’s use) with every single sample-code, why there is not just an precompiled/existing or via JetPack installed library containing the documented API elements?
For certain hardware functions such as video encoding, we suggest use NvVideoEncoder. However, some users may want to implement it through v4l2_ioctl(). Since all classes/samples are open source, users do have flexibility to do it on their own.
From Jetpack 4.6, we have moved TensorRT-related libs to the individual samples:
-lnvinfer -lnvparsers -lnvonnxparser \
There is still room for improvement. We will check this. For now if you don’t need the classes or don’t need to link to the libs, please remove them from Rules.mk.