Jetson Tx2 Omxh264dec Fast-Forwarding 1080p Stream Black Frames


I use omxh264enc , for encoding, I do encode two 576p cameras and one 1080p camera. While recording, I try to stream 1080p footage at x4 however the stream is not smooth, there are black frames inside the video around %50 of the time.

What is the problem?

The problem does not occur with avdec_h264, is it about omxh264dec? Is there a way to solve it while staying on gpu decoding?

Since we are deprecating omx plugins, could you upgrade to r32.2 and try nvv4l2decoder?

Please note the decoding is not on GPU. We have NVDEC hardware engine on TX2.

“Please note the decoding is not on GPU. We have NVDEC hardware engine on TX2.”

So is it not on cpu either? What is NVDEC hardware engine, does it work on cpu or gpu?

And will nvdec decode on GPU on next releases, I can pass onto that if it is so.


It is independent hardware engine. Please check Figure 1 in Techinical Reference Manual:

So to my understanding it does neither work on cpu nor gpu. So where does this engine work on? Is it an independent hardware?

And about omx elements, were they working on gpu? Or are they same as well?

To be more pricise, does encoding/decoding tire or use cuda cores?

I can’t seem to see increase gpu usage while doing heavy decoding or encoding. Is it because of that?

There are independent hardware encoder and decoder. Neither on CPU nor on GPU. You can check Figure 1 for all hardware blocks on TX2.

I see encoder and decoder block inside the gpu, I think we use them with hardware acceleration don’t we not?

Or do we use the encoder/decoder blocks on the right side of it?

It is on [Video encode] and [Video decode] blocks.

Oh is that so?

So does omx use these as well?

And what about compress/decompress element in the GPU Pascal, I thought they were used with hardware acceleration. When or how are these used if hardware acceleration uses blocks outside the gpu?

On TX2, the hardware acceleration is on [Video encode] and [Video decode] blocks, not on GPU. ‘sudo tegrastats’ can show the status. NVDEC is the [Video decode] block and NVENC is the [Video encode] block.

I think you might be mistaken about this,

this photo in this link

shows me that nvdec and nvenc are the block that resides in GPU.

If you are correct then what does compress/decompress block do in gpu, what is it’s task?

VIDEO CODEC SDK is not supported on Jetson platforms. It is supported on desktop GPUs. On Jetson platforms, we support gstreamer and tegra_multimedia_api, which do not run decoding/encoding on GPU.

Thank you, do you plan to support it in the future?

And does that block in the gpu has no jobs in jetson platforms, if VIDEO CODEC SDK in not supported?

On TX2, there are independent encoding/decoding hardware blocks, so we do not have plan to enable the blocks in GPU.

Hello again;

-Since we are deprecating omx plugins, could you upgrade to r32.2 and try nvv4l2decoder?
I tried nvv4l2decoder I can fast forward but can’t rewind.

This is a critical property, when does NVIDIA plan to add it to hardware decoder?


We think it is advance function and don’t have plan to support it now. If you would like to request the feature, please follow the suggestion