GNOME Bugzilla – Bug 732213
vaapidecode: h264, add support for constrained baseline profile
Last modified: 2018-05-04 12:44:56 UTC
There is a fix for h264 constrained baseline profile. But only in gst-plugins-vaapi branch. Is there a reason, why this fix is not merged to the master tree?
CBP is already supported in the master tree. You are probably talking about trying to support BP streams, even if the HW does not support those? If so, this cannot happen in the general case. If you really want to allow all baseline profile streams on hardware that only support constrained-baseline, you will need a very robust driver to safely recover from an incorrect submission. This currently is not the case in the current VA driver landscape. If you submit HW commands that are not going to be supported, this will fail, and you basically risk a DoS. On remote transcoding server farms, this is a high risk. So, it's better to simply not try to support baseline profile streams especially since we can know the hardware would not support those.
You are right, I meant the workaround to enable baseline profile, which is available in gst-plugins-vaapi. BP is used very often in the field. Only supporting this new CBP means a lot of encoders/cameras (which are in the field) are not supported with vaapi. Grrrrr.....
(In reply to comment #2) > You are right, I meant the workaround to enable baseline profile, which is > available in gst-plugins-vaapi. > BP is used very often in the field. > Only supporting this new CBP means a lot of encoders/cameras (which are in the > field) are not supported with vaapi. > Grrrrr..... If you know a decent way to detect baseline profile clips that don't involve ASO and FMO, without the need to parse PPS or slice-header, then I would happily look into it. Otherwise, the current approach is to let h264parse expose the detected profile in caps, and let autopluging machinery pick up a valid decoder. e.g. SW fallback with libavcodec, or that CISCO baseline profile decoder. And yes, failing early also has the advantage to allow fallbacks. Otherwise, you'd need to reconfigure the pipeline.
Note: that fallback machinery does not work yet either. That's something to implement, and related to bug #730997 too.
*** Bug 732278 has been marked as a duplicate of this bug. ***
Moving to Product:GStreamer, Component:gstreamer-vaapi
baseline profile is deprecated in libva 2.0