gstreamer-vaapi: vaapidecode & vaapisink playback issues when scaling h264/mp4 videos

josephmcd joe.mcdonald at
Fri Apr 25 11:19:06 PDT 2014

Hi all,

I've been plunking away at this for a couple days now and don't seem to be
any closer to getting it working the way I would like than when I started.
Quick summary; my final goal is to tile 4 h264 encoded videos into a 2x2
grid.  This will require decode, and scaling to fit the videos to the output
screen properly.

Thus far these are the pipelines that I've found to work properly:
(No Scaling) -> gst-launch-1.0 filesrc location= <filename>.mp4 ! qtdemux !
vaapidecode ! videoscale ! video/x-raw ! vaapisink
(No GPU offload for decode) -> gst-launch-1.0 filesrc location=
<filename>.mp4 ! qtdemux ! avdec_h264 ! videoscale !
video/x-raw,width=640,height=360 ! vaapisink

As soon as I modify the "video/x-raw" to scale (i.e.,
"video/x-raw,width=640,height=480") with vaapidecode the pipeline rolls but
the playback is horribly stuttery and I get many warnings complaining about
the PC being too slow or timestamps being incorrect.  

Some background.  
Intel Atom E3845 development board
 - 4GB RAM
 - 120GB SSD
Running Ubuntu 13.10
 - gstreamer-vaapi 0.5.8

I've only started diving into gstreamer proper for the few days so forgive
any ignorance on my behalf. I'm hoping someone can help me figure out why
the performance of h264 video scaling is so horrific.  

Some notes:
- MPEG2 TS scaling works fine with vaapidecode and vaapisink (proper GPU
offload on those test cases)
- using avdec_h264 allows for proper videoscaling and playback but without
an appropriate GPU offload (CPU utilization much higher than it should be).  

Thank you for any input.

P.S. Also having trouble getting straight MPEG2 files to playback using
vaapidecode and vaapisink...any input there would be great also :)

View this message in context:
Sent from the GStreamer-devel mailing list archive at

More information about the gstreamer-devel mailing list