Hi,
The hardware decoder decodes frames into NVMM buffers. OpenCV take CPU buffers, so the memory copy is required if you have to use OpenCV.
If caps is not specified in the pipeline, it does auto caps negotiation. By default the appsink requests for CPU buffers in BGR format so it still runs like
videoconvert ! video/x-raw,format=BGR ! appsink
It is optimal solution to run OpenCV on Jetson platforms. Due to limitation of hardware converter, need to have software converter to convert RGBA/BGRx to BGR.