I am having trouble working with the nvtee element. Using a regular tee, both branches work, Using an nvtee with a single branch, it works, Using an nvtee with two branches, neither work (but, the first branch should still work even if the second hasn’t started. Any thoughts as to why? There is nearly no documentation or examples for nvtee.
I understand that the branch of the nvtee from the “vid_src” branch will not play until receiving the “start recording” signal on the nvtee. But the branch attached to “pre-src” should run regardless.
I’m working in C (just so you know these aren’t gst-launch pipelines)
This works (nothing attached to the other branches of nvtee):
nvarguscamerasrc → capsfilter → nvtee
nvtee (pre-src) → queue → videorate → capsfilter → nvvidconv → capsfilter → nvjpegenc → jpegparse → appsink
This does not enter the playing state:
nvarguscamerasrc → capsfilter → nvtee
nvtee (pre-src) → queue → videorate → capsfilter → nvvidconv → capsfilter → nvjpegenc → jpegparse → appsink
nvtee (vid-src) → fakesink
This works (using regular tee, also has worked with a more complicated second branch):
nvarguscamerasrc → capsfilter → tee
tee → queue → videorate → capsfilter → nvvidconv → capsfilter → nvjpegenc → jpegparse → appsink
tee → fakesink
As mentioned, it appears the problem is that as soon as anything is attached to the vid-src branch of the nvtee, the branch attached to the pre-src is unable to enter the playing state.
However, this old pipeline (from a previous developer) does work (and the pre-src branch enters playing even if the vid-src has not yet been started):
nvarguscamerasrc → capsfilter → nvtee
nvtee (pre-src) → nvvidconv → capsfilter → omxh264enc → capsfilter → h264parse → mpegtsmux → hlssink
nvtee (vid-src) → nvvidconv → nvjpegenc → framerate → capsfilter → multifilesink
Please let me know any thoughts, thanks.