GstCUDA - Example - cudafilter: NVMM direct mapping
This page gives a set of test pipelines to use cudafilter element for NVMM direct mapping mode.
![]() | These examples will only run in JetPack 3.0 and below. For newer JetPack versions,
please refer to GstCUDA_-_Example_-_cudafilter:_Unified_memory_allocator |
Problems running the pipelines shown on this page? Please see our GStreamer Debugging guide for help.
![]() | Note: NVMM direct mapping is only supported on Jetson platforms. |
The perf element can be downloaded from this repository. Otherwise, the element can be removed from the pipeline without any issues.
Gray-scale filter CUDA library algorithm
For these examples, remember to be in the correct path to use the filters:
cd $GstCUDA_DIR/tests/examples/cudafilter_algorithms/gray-scale-filter/
1080p 60fps capture to display (in-place=true)
Example pipeline
gst-launch-1.0 nvarguscamerasrc ! "video/x-raw(memory:NVMM),width=1920,height=1080,format=I420,framerate=60/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=1920,height=1080,format=I420,framerate=60/1" ! cudafilter in-place=true location=./gray-scale-filter.so ! perf print-arm-load=true ! nvoverlaysink --gst-debug=0
Performance stats
GST-PERF INFO --> Timestamp: 0:02:13.615967657; Bps: 776; fps: 60.0; CPU: 8; GST-PERF INFO --> Timestamp: 0:02:14.632537582; Bps: 763; fps: 60.3; CPU: 8; GST-PERF INFO --> Timestamp: 0:02:15.632844549; Bps: 776; fps: 60.0; CPU: 8; GST-PERF INFO --> Timestamp: 0:02:16.649615644; Bps: 763; fps: 60.3; CPU: 9; GST-PERF INFO --> Timestamp: 0:02:17.666065311; Bps: 763; fps: 60.3; CPU: 12; GST-PERF INFO --> Timestamp: 0:02:18.682560220; Bps: 763; fps: 60.3; CPU: 12; GST-PERF INFO --> Timestamp: 0:02:19.699122957; Bps: 763; fps: 60.3; CPU: 11; GST-PERF INFO --> Timestamp: 0:02:20.699298792; Bps: 776; fps: 60.0; CPU: 11; GST-PERF INFO --> Timestamp: 0:02:21.715510459; Bps: 763; fps: 60.3; CPU: 11; GST-PERF INFO --> Timestamp: 0:02:22.715910009; Bps: 776; fps: 60.0; CPU: 11;
4K 60fps capture to display (in-place=true)
Example pipeline
gst-launch-1.0 nvarguscamerasrc ! "video/x-raw(memory:NVMM),width=3840,height=2160,format=I420,framerate=60/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=3840,height=2160,format=I420,framerate=60/1" ! cudafilter in-place=true location=./gray-scale-filter.so ! perf print-arm-load=true ! nvoverlaysink --gst-debug=0
Performance stats
GST-PERF INFO --> Timestamp: 0:03:56.819087040; Bps: 776; fps: 60.0; CPU: 16; GST-PERF INFO --> Timestamp: 0:03:57.825121037; Bps: 771; fps: 59.64; CPU: 13; GST-PERF INFO --> Timestamp: 0:03:58.837141233; Bps: 766; fps: 59.28; CPU: 14; GST-PERF INFO --> Timestamp: 0:03:59.849401695; Bps: 766; fps: 59.28; CPU: 14; GST-PERF INFO --> Timestamp: 0:04:00.859525079; Bps: 768; fps: 59.40; CPU: 13; GST-PERF INFO --> Timestamp: 0:04:01.871618207; Bps: 766; fps: 59.28; CPU: 15; GST-PERF INFO --> Timestamp: 0:04:02.883459413; Bps: 767; fps: 59.34; CPU: 15; GST-PERF INFO --> Timestamp: 0:04:03.894646509; Bps: 767; fps: 59.34; CPU: 14; GST-PERF INFO --> Timestamp: 0:04:04.906216370; Bps: 767; fps: 59.34; CPU: 14; GST-PERF INFO --> Timestamp: 0:04:05.917121183; Bps: 768; fps: 59.40; CPU: 14;
720p 60fps videotestsrc to display (in-place=true)
Example pipeline
gst-launch-1.0 videotestsrc is-live=true ! "video/x-raw,width=1280,height=720,format=I420,framerate=60/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=1280,height=720,format=I420,framerate=60/1" ! cudafilter in-place=true location=./gray-scale-filter.so ! perf print-arm-load=true ! nvoverlaysink --gst-debug=0
Performance stats
GST-PERF INFO --> Timestamp: 0:12:29.994184572; Bps: 776; fps: 60.0; CPU: 18; GST-PERF INFO --> Timestamp: 0:12:31.010495933; Bps: 763; fps: 60.3; CPU: 18; GST-PERF INFO --> Timestamp: 0:12:32.010535558; Bps: 776; fps: 60.0; CPU: 18; GST-PERF INFO --> Timestamp: 0:12:33.027377442; Bps: 763; fps: 60.3; CPU: 18; GST-PERF INFO --> Timestamp: 0:12:34.044071960; Bps: 763; fps: 60.3; CPU: 18; GST-PERF INFO --> Timestamp: 0:12:35.044204013; Bps: 776; fps: 60.0; CPU: 19; GST-PERF INFO --> Timestamp: 0:12:36.044224584; Bps: 776; fps: 60.0; CPU: 19; GST-PERF INFO --> Timestamp: 0:12:37.060451742; Bps: 763; fps: 60.3; CPU: 19; GST-PERF INFO --> Timestamp: 0:12:38.060585805; Bps: 776; fps: 60.0; CPU: 19; GST-PERF INFO --> Timestamp: 0:12:39.060628072; Bps: 776; fps: 60.0; CPU: 18;
1080p 60fps capture to display (in-place=false)
Example pipeline
gst-launch-1.0 nvarguscamerasrc ! "video/x-raw(memory:NVMM),width=1920,height=1080,format=I420,framerate=60/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=1920,height=1080,format=I420,framerate=60/1" ! cudafilter in-place=false location=./gray-scale-filter.so ! nvvidconv ! perf print-arm-load=true ! nvoverlaysink --gst-debug=0
Performance stats
GST-PERF INFO --> Timestamp: 0:05:46.167015649; Bps: 776; fps: 60.0; CPU: 20; GST-PERF INFO --> Timestamp: 0:05:47.167023874; Bps: 776; fps: 60.0; CPU: 18; GST-PERF INFO --> Timestamp: 0:05:48.183394748; Bps: 763; fps: 60.3; CPU: 19; GST-PERF INFO --> Timestamp: 0:05:49.183590994; Bps: 776; fps: 60.0; CPU: 23; GST-PERF INFO --> Timestamp: 0:05:50.183618490; Bps: 776; fps: 60.0; CPU: 27; GST-PERF INFO --> Timestamp: 0:05:51.184194423; Bps: 776; fps: 60.0; CPU: 45; GST-PERF INFO --> Timestamp: 0:05:52.200942016; Bps: 763; fps: 60.3; CPU: 46; GST-PERF INFO --> Timestamp: 0:05:53.216856380; Bps: 764; fps: 60.9; CPU: 45; GST-PERF INFO --> Timestamp: 0:05:54.217181741; Bps: 776; fps: 60.0; CPU: 46; GST-PERF INFO --> Timestamp: 0:05:55.217598561; Bps: 776; fps: 60.0; CPU: 46;
4K 60fps capture to fakesink (in-place=false)
Example pipeline
gst-launch-1.0 nvarguscamerasrc ! "video/x-raw(memory:NVMM),width=3840,height=2160,format=I420,framerate=60/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=3840,height=2160,format=I420,framerate=60/1" ! cudafilter in-place=false location=./gray-scale-filter.so ! perf print-arm-load=true ! fakesink --gst-debug=0
Performance stats
GST-PERF INFO --> Timestamp: 0:08:40.062814951; Bps: 12330624; fps: 59.46; CPU: 22; GST-PERF INFO --> Timestamp: 0:08:41.074953852; Bps: 12294071; fps: 59.28; CPU: 23; GST-PERF INFO --> Timestamp: 0:08:42.087998326; Bps: 12281934; fps: 59.23; CPU: 22; GST-PERF INFO --> Timestamp: 0:08:43.097597957; Bps: 12330624; fps: 59.46; CPU: 22; GST-PERF INFO --> Timestamp: 0:08:44.109302715; Bps: 12306231; fps: 59.34; CPU: 25; GST-PERF INFO --> Timestamp: 0:08:45.120250840; Bps: 12318415; fps: 59.40; CPU: 22; GST-PERF INFO --> Timestamp: 0:08:46.132807638; Bps: 12294071; fps: 59.28; CPU: 23; GST-PERF INFO --> Timestamp: 0:08:47.144759986; Bps: 12306231; fps: 59.34; CPU: 21; GST-PERF INFO --> Timestamp: 0:08:48.154396985; Bps: 12330624; fps: 59.46; CPU: 22; GST-PERF INFO --> Timestamp: 0:08:49.167064442; Bps: 12294071; fps: 59.28; CPU: 23; GST-PERF INFO --> Timestamp: 0:08:50.178082366; Bps: 12306231; fps: 59.34; CPU: 23;
720p 60fps videotestsrc to display (in-place=false)
Example pipeline
gst-launch-1.0 videotestsrc is-live=true ! "video/x-raw,width=1280,height=720,format=I420,framerate=60/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=1280,height=720,format=I420,framerate=60/1" ! cudafilter in-place=false location=./gray-scale-filter.so ! nvvidconv ! perf print-arm-load=true ! nvoverlaysink --gst-debug=0
Performance stats
GST-PERF INFO --> Timestamp: 0:16:38.724108163; Bps: 763; fps: 60.3; CPU: 12; GST-PERF INFO --> Timestamp: 0:16:39.724682234; Bps: 776; fps: 60.0; CPU: 12; GST-PERF INFO --> Timestamp: 0:16:40.740983855; Bps: 763; fps: 60.3; CPU: 12; GST-PERF INFO --> Timestamp: 0:16:41.740991843; Bps: 776; fps: 60.0; CPU: 11; GST-PERF INFO --> Timestamp: 0:16:42.757944147; Bps: 763; fps: 60.3; CPU: 12; GST-PERF INFO --> Timestamp: 0:16:43.758090059; Bps: 776; fps: 60.0; CPU: 12; GST-PERF INFO --> Timestamp: 0:16:44.774079094; Bps: 764; fps: 60.9; CPU: 12; GST-PERF INFO --> Timestamp: 0:16:45.774631002; Bps: 776; fps: 60.0; CPU: 12; GST-PERF INFO --> Timestamp: 0:16:46.774633540; Bps: 776; fps: 60.0; CPU: 13; GST-PERF INFO --> Timestamp: 0:16:47.791021283; Bps: 763; fps: 60.3; CPU: 12;
HW accelerated memcpy CUDA library algorithm
For these examples, remember to be in the correct path to use the filters:
cd $GstCUDA_DIR/tests/examples/cudafilter_algorithms/memcpy/
1080p 60fps capture to display (in-place=true)
Example pipeline
gst-launch-1.0 nvarguscamerasrc ! "video/x-raw(memory:NVMM),width=1920,height=1080,format=I420,framerate=60/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=1920,height=1080,format=I420,framerate=60/1" ! cudafilter in-place=true location=./memcpy.so ! perf print-arm-load=true ! nvoverlaysink --gst-debug=0
Performance stats
GST-PERF INFO --> Timestamp: 0:19:39.222044712; Bps: 763; fps: 60.3; CPU: 12; GST-PERF INFO --> Timestamp: 0:19:40.222362703; Bps: 776; fps: 60.0; CPU: 11; GST-PERF INFO --> Timestamp: 0:19:41.222364533; Bps: 776; fps: 60.0; CPU: 12; GST-PERF INFO --> Timestamp: 0:19:42.238761022; Bps: 763; fps: 60.3; CPU: 11; GST-PERF INFO --> Timestamp: 0:19:43.255579257; Bps: 763; fps: 60.3; CPU: 10; GST-PERF INFO --> Timestamp: 0:19:44.255680715; Bps: 776; fps: 60.0; CPU: 9; GST-PERF INFO --> Timestamp: 0:19:45.272253134; Bps: 763; fps: 60.3; CPU: 8; GST-PERF INFO --> Timestamp: 0:19:46.288675431; Bps: 763; fps: 60.3; CPU: 8; GST-PERF INFO --> Timestamp: 0:19:47.288955264; Bps: 776; fps: 60.0; CPU: 7; GST-PERF INFO --> Timestamp: 0:19:48.305432418; Bps: 763; fps: 60.3; CPU: 7;
4K 60fps capture to display (in-place=true)
Example pipeline
gst-launch-1.0 nvarguscamerasrc ! "video/x-raw(memory:NVMM),width=3840,height=2160,format=I420,framerate=60/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=3840,height=2160,format=I420,framerate=60/1" ! cudafilter in-place=true location=./memcpy.so ! perf print-arm-load=true ! nvoverlaysink --gst-debug=0
Performance stats
GST-PERF INFO --> Timestamp: 0:21:09.056777389; Bps: 771; fps: 60.63; CPU: 17; GST-PERF INFO --> Timestamp: 0:21:10.057380551; Bps: 776; fps: 60.0; CPU: 13; GST-PERF INFO --> Timestamp: 0:21:11.058196962; Bps: 776; fps: 60.0; CPU: 16; GST-PERF INFO --> Timestamp: 0:21:12.074104172; Bps: 764; fps: 60.9; CPU: 16; GST-PERF INFO --> Timestamp: 0:21:13.074630372; Bps: 776; fps: 60.0; CPU: 15; GST-PERF INFO --> Timestamp: 0:21:14.091400223; Bps: 763; fps: 60.3; CPU: 15; GST-PERF INFO --> Timestamp: 0:21:15.097895519; Bps: 771; fps: 59.64; CPU: 14; GST-PERF INFO --> Timestamp: 0:21:16.110965925; Bps: 766; fps: 59.23; CPU: 14; GST-PERF INFO --> Timestamp: 0:21:17.121792522; Bps: 768; fps: 59.40; CPU: 14; GST-PERF INFO --> Timestamp: 0:21:18.132254616; Bps: 768; fps: 59.40; CPU: 13;
720p 60fps videotestsrc to display (in-place=true)
Example pipeline
gst-launch-1.0 videotestsrc is-live=true ! "video/x-raw,width=1280,height=720,format=I420,framerate=60/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=1280,height=720,format=I420,framerate=60/1" ! cudafilter in-place=true location=./memcpy.so ! perf print-arm-load=true ! nvoverlaysink --gst-debug=0
Performance stats
GST-PERF INFO --> Timestamp: 0:22:07.386021069; Bps: 764; fps: 64.3; CPU: 20; GST-PERF INFO --> Timestamp: 0:22:08.386441053; Bps: 776; fps: 60.0; CPU: 20; GST-PERF INFO --> Timestamp: 0:22:09.386539808; Bps: 776; fps: 60.0; CPU: 18; GST-PERF INFO --> Timestamp: 0:22:10.403048527; Bps: 763; fps: 60.3; CPU: 20; GST-PERF INFO --> Timestamp: 0:22:11.419435652; Bps: 763; fps: 60.3; CPU: 20; GST-PERF INFO --> Timestamp: 0:22:12.436397894; Bps: 763; fps: 60.3; CPU: 22; GST-PERF INFO --> Timestamp: 0:22:13.436511097; Bps: 776; fps: 60.0; CPU: 22; GST-PERF INFO --> Timestamp: 0:22:14.452705935; Bps: 763; fps: 60.3; CPU: 22; GST-PERF INFO --> Timestamp: 0:22:15.453137400; Bps: 776; fps: 60.0; CPU: 21; GST-PERF INFO --> Timestamp: 0:22:16.469405139; Bps: 763; fps: 60.3; CPU: 21;
1080p 60fps capture to display (in-place=false)
Example pipeline
gst-launch-1.0 nvarguscamerasrc ! "video/x-raw(memory:NVMM),width=1920,height=1080,format=I420,framerate=60/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=1920,height=1080,format=I420,framerate=60/1" ! cudafilter in-place=false location=./memcpy.so ! nvvidconv ! perf print-arm-load=true ! nvoverlaysink --gst-debug=0
Performance stats
GST-PERF INFO --> Timestamp: 0:23:01.138137454; Bps: 767; fps: 59.34; CPU: 22; GST-PERF INFO --> Timestamp: 0:23:02.154873022; Bps: 763; fps: 60.3; CPU: 26; GST-PERF INFO --> Timestamp: 0:23:03.171479180; Bps: 763; fps: 60.3; CPU: 29; GST-PERF INFO --> Timestamp: 0:23:04.188158165; Bps: 763; fps: 60.3; CPU: 25; GST-PERF INFO --> Timestamp: 0:23:05.188244497; Bps: 776; fps: 60.0; CPU: 21; GST-PERF INFO --> Timestamp: 0:23:06.188254958; Bps: 776; fps: 60.0; CPU: 22; GST-PERF INFO --> Timestamp: 0:23:07.204520450; Bps: 763; fps: 60.3; CPU: 19; GST-PERF INFO --> Timestamp: 0:23:08.204789584; Bps: 776; fps: 60.0; CPU: 20; GST-PERF INFO --> Timestamp: 0:23:09.204948578; Bps: 776; fps: 60.0; CPU: 20; GST-PERF INFO --> Timestamp: 0:23:10.221653172; Bps: 763; fps: 60.3; CPU: 20;
4K 60fps capture to fakesink (in-place=false)
Example pipeline
gst-launch-1.0 nvarguscamerasrc ! "video/x-raw(memory:NVMM),width=3840,height=2160,format=I420,framerate=60/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=3840,height=2160,format=I420,framerate=60/1" ! cudafilter in-place=false location=./memcpy.so ! perf print-arm-load=true ! fakesink --gst-debug=0
Performance stats
GST-PERF INFO --> Timestamp: 0:24:09.089973138; Bps: 12294071; fps: 64.22; CPU: 26; GST-PERF INFO --> Timestamp: 0:24:10.101478081; Bps: 12306231; fps: 59.34; CPU: 21; GST-PERF INFO --> Timestamp: 0:24:11.113397407; Bps: 12306231; fps: 59.34; CPU: 20; GST-PERF INFO --> Timestamp: 0:24:12.124119254; Bps: 12318415; fps: 59.40; CPU: 21; GST-PERF INFO --> Timestamp: 0:24:13.135918813; Bps: 12306231; fps: 59.34; CPU: 22; GST-PERF INFO --> Timestamp: 0:24:14.147912287; Bps: 12306231; fps: 59.34; CPU: 22; GST-PERF INFO --> Timestamp: 0:24:15.158284015; Bps: 12318415; fps: 59.40; CPU: 22; GST-PERF INFO --> Timestamp: 0:24:16.170463292; Bps: 12294071; fps: 59.28; CPU: 24; GST-PERF INFO --> Timestamp: 0:24:17.180258276; Bps: 12330624; fps: 59.46; CPU: 24; GST-PERF INFO --> Timestamp: 0:24:18.193795065; Bps: 12281934; fps: 59.23; CPU: 21;
720p 60fps videotestsrc to display (in-place=false)
Example pipeline
gst-launch-1.0 videotestsrc is-live=true ! "video/x-raw,width=1280,height=720,format=I420,framerate=60/1" ! nvvidconv ! "video/x-raw(memory:NVMM),width=1280,height=720,format=I420,framerate=60/1" ! cudafilter in-place=false location=./memcpy.so ! nvvidconv ! perf print-arm-load=true ! nvoverlaysink --gst-debug=0
Performance stats
GST-PERF INFO --> Timestamp: 0:24:57.867517465; Bps: 763; fps: 60.3; CPU: 18; GST-PERF INFO --> Timestamp: 0:24:58.884439856; Bps: 763; fps: 60.3; CPU: 16; GST-PERF INFO --> Timestamp: 0:24:59.900505960; Bps: 763; fps: 60.3; CPU: 16; GST-PERF INFO --> Timestamp: 0:25:00.900508129; Bps: 776; fps: 60.0; CPU: 16; GST-PERF INFO --> Timestamp: 0:25:01.900516089; Bps: 776; fps: 60.0; CPU: 17; GST-PERF INFO --> Timestamp: 0:25:02.900852285; Bps: 776; fps: 60.0; CPU: 16; GST-PERF INFO --> Timestamp: 0:25:03.917406393; Bps: 763; fps: 60.3; CPU: 17; GST-PERF INFO --> Timestamp: 0:25:04.917408755; Bps: 776; fps: 60.0; CPU: 16; GST-PERF INFO --> Timestamp: 0:25:05.917422898; Bps: 776; fps: 60.0; CPU: 16; GST-PERF INFO --> Timestamp: 0:25:06.934306770; Bps: 763; fps: 60.3; CPU: 17;