Hello,
I am doing some experimentation using gstreamer-vaapi on an Intel i3-4370 CPU. I am running libva 1.6.1, and libva Intel driver 1.6.0 on Ubuntu 15.04.
My issue is that I cannot seem to get the thing to do anything except constrained baseline, despite asking it to do other profiles.
For example:
gst-launch-1.0 filesrc location=/ramdisk/bbb_sunflower_1080p_30fps_normal.mp4 ! qtdemux ! vaapidecode ! vaapiencode_h264 ! video/x-h264,profile=high ! qtmux ! filesink location=/ramdisk/tmp.mov
appears to work fine, but something like:
avprobe -show_streams /ramdisk/tmp.mov
will indicate
profile=Constrained Baseline
Indeed, the output file sizes don't change much, if at all, between the profiles.
The only way that I can see a change what avprobe reports for the profile is to change the encoder element to:
vaapiencode_h264 dct8x8=1
My question is, is this correct behavior? Do we need dct8x8 to do anything higher than Constrained Baseline? If so, why? Is this a fundamental detail of H.264, or is this an implementation detail?
I am trying to compare some tradeoffs between HW and SW implementations, so I am trying to be very careful which knobs I turn, in order to be able to properly compare.
Thanks in advance for any feedback!
-Bill Katsak