- Boot using the above images and run the following commands for QoS settings:
devmem 0xfd3b0008 w 0x3 #DEC0, DEC1<->HP3_FPD devmem 0xfd3b001c w 0x3 devmem 0xfd3b0004 w 0xf devmem 0xfd3b0018 w 0xf devmem 0xfd390008 w 0x3 #ENC1<->HP1_FPD devmem 0xfd39001c w 0x3 devmem 0xfd390004 w 0xf devmem 0xfd390018 w 0xf devmem 0xfd3a0008 w 0x3 #ENC0<->HP2_FPD devmem 0xfd3a001c w 0x3 devmem 0xfd3a0004 w 0xf devmem 0xfd3a0018 w 0xf devmem 0xfd360008 w 0x3 #MCU<->HPC0 devmem 0xfd36001c w 0x3 devmem 0xfd360004 w 0x7 devmem 0xfd360018 w 0x7
- Set XV20 for mem2mem video node:
v4l2-ctl -d /dev/video0 --set-fmt-video=width=3840, height=2160, pixelformat='XV20'
Note: The format will vary based on the format that you are using. For example:- XV20 when using 4:2:2 10-bit
- NV12 when using 4:2:0 8-bit
- GStreamer Pipeline Example for Measuring Performance
-
gst-launch-1.0 filesrc location="/run/1600frames.h264" ! h264parse ! queue ! omxh264dec internal-entropy-buffers=7 ! queue max-size-bytes=0 ! v4l2convert output-io-mode=5 capture-io-mode=4 disable-passthrough=1 import-buffer-alignment=true! omxh265enc num-slices=8 prefetch-buffer=true ! fpsdisplaysink name=fpssink text-overlay=false video-sink="fakesink sync=false" sync=false -v
- GStreamer Pipeline to Run Transcode (Decode to Encode)
-
gst-launch-1.0 filesrc location="/run/1600frames.h264"! h264parse! queue! omxh264dec internal-entropy-buffers=7! queue max-size-bytes=0! v4l2convert output-io-mode=5 capture-io-mode=4 disable-passthrough=1 import-buffer-alignment=true! omxh265enc num-slices=8 prefetch-buffer=true! filesink location="op.h265"
Note: A V4L2convert is required for the transcode usecase when encoder and decoder are using different DDRs. For example, the encoder is using PS and the decoder is using PL. These configuration of using separate DDR is used to achieve performance.