Tool/software: Linux
Dear Experts,
I have 4 questions listed below I'm hoping somebody can help me with.
I'm using an AM437x GP EVM running ti-processor-sdk-linux-am437x-evm-03.02.00.05 pre-built image booting from SD card. I have an mp4 (h.264) file that I want to decode and measure the performance in terms of framerate and CPU loading. The file I'm decoding has the following specs as reported by vnc.
Codec: H264 - MPEG-4 AVC (part 10)(avc1)
Resolution: 768x322
Frame rate: 24
I'm new to gstreamer but I've managed to get something working. With weston running, but matrix killed, I can use
root@am437x-evm:~# gst-play-1.0 /tmp/MyFile.mp4
I put the file into the tmp filesystem which I believe is RAM based as opposed to reading from SD card. It didn't really make a performance difference though. It decodes properly and I can see it in a weston window. The problem I have is, it's only getting about what looks like about 5fps. I would have expected more I guess. top reports roughly 75% CPU load for gstreamer and another 11% for weston.
I tried other gstreamer methods like the following,
gst-launch-1.0 -v playbin uri=file:/tmp/MyFile.mp4
Pretty much get the same results. So my first question is:
Q1) Is there a better pipeline I should use to get better performance?
Next, I started examining the h/264 decode example in the Matrix GUI under Multimedia. I found on a TI wiki page, and this matches what shows on the matrix screen, the gstreamer pipeline used.
gst-launch-0.10 filesrc location=$filename ! h264parse ! ffdec_h264 ! ffmpegcolorspace ! fbdevsink device=/dev/fb0
However, when I try that, I get
root@am437x-evm:~# gst-launch-1.0 filesrc location=/tmp/MyFile.mp4 ! h264parse ! ffdec_h264 ! ffmpegcolorpsace ! fbdevsink device=/dev/fb0
WARNING: erroneous pipeline: no element "ffdec_h264"
So I have a couple questions related to this
Q2) Is this not the gstreamer command used for the Matrix GUI H.264 decode example?
Q3) What resolution and framerate is the matrix H.264 decode demo?
This is a more generic question
Q4) Does anybody know how to measure framerate while using gstreamer? I googled it for a while but nothing seems to be working for me.
Thanks,