This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5728: H264 decoding on IVAHD

Part Number: AM5728

Hi,

I am working on AM5728 based on the am57xx-evm design.

I cannot get IVAHD hardware H264 decoding working on kernel 5.10.168.

Here is output:

gst-launch-1.0 playbin uri=file:///usr/share/ti/video/TearOfSteel-Short-1920x80
0.mov 'audio-sink=alsasink device=hw:0,0' 'video-sink=kmssink scale=true'
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Missing element: MPEG-4 AAC decoder
WARNING: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: No decoder available for type 
'audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, level=(string)2, base-
profile=(string)lc, profile=(string)lc, codec_data=(buffer)1210, rate=(int)44100, channels=(int)2'.
Additional debug info:
../gst-plugins-base-1.16.3/gst/playback/gsturidecodebin.c(920): unknown_type_cb (): /GstPlayBin:playbin0
/GstURIDecodeBin:uridecodebin0
MmRpc_create: Error: open failed, name=/dev/rpmsg-dce
../git/libdce.c:416:    dce_ipc_init    ERROR: Failed eError == DCE_EOK error val -4../git/libdce.c:47E:
ngine_open      ERROR: Failed dce_ipc_init(coreIdx) == DCE_EOK error val -4MmRpc_create: Error: open fai
led, name=/dev/rpmsg-dce
../git/libdce.c:416:    dce_ipc_init    ERROR: Failed eError == DCE_EOK error val -4../git/libdce.c:47E:
ngine_open      ERROR: Failed dce_ipc_init(coreIdx) == DCE_EOK error val -4Missing element: H.264 (High 
Profile) decoder
WARNING: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: No decoder available for type 
'video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)4, profile=(string
)high, width=(int)1920, height=(int)800, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, int
erlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(
uint)8, parsed=(boolean)true'.
Additional debug info:
../gst-plugins-base-1.16.3/gst/playback/gsturidecodebin.c(920): unknown_type_cb (): /GstPlayBin:playbin0
/GstURIDecodeBin:uridecodebin0
ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: Your GStreamer installation is m
issing a plug-in.
Additional debug info:
../gst-plugins-base-1.16.3/gst/playback/gsturidecodebin.c(987): no_more_pads_full (): /GstPlayBin:playbi
n0/GstURIDecodeBin:uridecodebin0:
no suitable plugins found:
../gst-plugins-base-1.16.3/gst/playback/gstdecodebin2.c(4678): gst_decode_bin_expose (): /GstPlayBin:pla
ybin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0:
no suitable plugins found:
Couldn't set ducatih264decvpe0 to READYCouldn't set ducatih264dec0 to READY
Missing decoder: MPEG-4 AAC (audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string
)raw, level=(string)2, base-profile=(string)lc, profile=(string)lc, codec_data=(buffer)1210, rate=(int)4
4100, channels=(int)2)

ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

It seems I am missing /dev/rpmsg-dce ?

However IPU2 firmware is loaded:

cat /sys/kernel/debug/remoteproc/remoteproc1/trace0                            
[0][      0.000] 17 Resource entries at 0x3000
[0][      0.000] Watchdog enabled: TimerBase = 0x6803e000 SMP-Core = 0 Freq = 20000000
[0][      0.000] Watchdog enabled: TimerBase = 0x68036000 SMP-Core = 1 Freq = 20000000
[0][      0.000] Watchdog_restore registered as a resume callback
[0][      0.000] IPU2 starting..
[0][      0.000] 
[0][      0.000] 
[0][      0.000]  **** IPUMM VERSION INFO **** 
[0][      0.000] 
[0][      0.000] Compile DATE Sep  6 2023 TIME 07:15:46 
[0][      0.000] GIT IPUMM 
[0][      0.000]        BRANCH : master 
[0][      0.000]        TAG : IPUMM commit df4c50a version MMIP 3_00_15_00  IPC 3_50_01_00  
[0][      0.000]        COMMIT-ID : df4c50a
[0][      0.000] CODEC-VER BEGIN: 
[0][      0.000]        H264D-02.00.22.01
[0][      0.000]        MPEG4D-01.00.17.01
[0][      0.000]        MPEG2D-01.00.18.01
[0][      0.000]        VC1D-01.00.02.08
[0][      0.000]        MJPEGD-01.00.16.01
[0][      0.000]  
[0][      0.000]        H264E-02.00.09.01
[0][      0.000]        MPEG4E-01.00.02.01
[0][      0.000]        MJPEGE-01.00.17.01
[0][      0.000] CODEC-VER END: 
[0][      0.000] 
[0][      0.000] ** IPUMM VERSION INFO END ** 
[0][      0.000] Trace level PA 0x95f53320 Trace Level 0                   
[0][      0.000] Trace Usage: level:[0-4: 0-no trace, 1-err, 2-debug, 3-info, 4-CE,FC,IPC traces] 
[0][      0.000] 
[0][      0.000] Trace Buffer PA 0x98a00000 kpi_control (PA 0x95f4f7b4 value 0x0)
[1][      0.000] OMAPRPC: registered channel: dce-callback
[1][      0.000] OMAPRPC: Returning Object @80209388
[1][      0.000] loadTask: started
[1][      0.000]   SLEEP_TICKS: 1000
[1][      0.000]   Load_hwiEnabled: 0
[1][      0.000]   Load_swiEnabled: 0
[1][      0.000]   Load_taskEnabled: 1
[1][      0.000]   Load_updateInIdle: 1
[1][      0.000]   Load_windowInMs: 11
[1][      0.001] OMAPRPC: connecting from local endpoint 101 to port 101
[1][      0.001] registering rpmsg-rpc:dce-callback service on 101 with HOST
[1][      0.001] OMAPRPC: started channel dce-callback on port: 101
[0][      0.001] OMAPRPC: registered channel: rpmsg-dce
[0][      0.001] OMAPRPC: Returning Object @8020c440
[1][      0.001] OMAPRPC: connecting from local endpoint 102 to port 102
[1][      0.002] registering rpmsg-rpc:rpmsg-dce service on 102 with HOST
[1][      0.002] OMAPRPC: started channel rpmsg-dce on port: 102

What am I missing?

BR,

Primoz