[Libva] VAProfileH264Baseline missing from i965_QueryConfigEntrypoints in i965_drv_video.c

Yuan, Shengquan shengquan.yuan at intel.com
Wed Jan 6 01:17:31 PST 2016


Can you try to use “./h264encode -profile HP” or “./h264encode -profile MP”, or apply bellow patch?

diff --git a/test/encode/h264encode.c b/test/encode/h264encode.c
index dbe2314..a7b687a 100644
--- a/test/encode/h264encode.c
+++ b/test/encode/h264encode.c
@@ -945,10 +945,10 @@ static int init_va(void)
         if ((h264_profile != ~0) && h264_profile != profile_list[i])
             continue;

-        h264_profile = profile_list[i];
-        vaQueryConfigEntrypoints(va_dpy, h264_profile, entrypoints, &num_entrypoints);
+        vaQueryConfigEntrypoints(va_dpy, profile_list[i], entrypoints, &num_entrypoints);
         for (slice_entrypoint = 0; slice_entrypoint < num_entrypoints; slice_entrypoint++) {
             if (entrypoints[slice_entrypoint] == VAEntrypointEncSlice) {
+                h264_profile = profile_list[i];
                 support_encode = 1;
                 break;
             }

From: Libva [mailto:libva-bounces at lists.freedesktop.org] On Behalf Of Hamza Shahid
Sent: Wednesday, January 6, 2016 5:03 PM
To: Xiang, Haihao <haihao.xiang at intel.com>
Cc: libva at lists.freedesktop.org
Subject: Re: [Libva] VAProfileH264Baseline missing from i965_QueryConfigEntrypoints in i965_drv_video.c

If that's the case then the h264encode test application should be updated to reflect this change because it accepts baseline profile for encoding and then gives an error.
Thanks
Hamza

On Wed, Jan 6, 2016 at 1:35 PM, Xiang, Haihao <haihao.xiang at intel.com<mailto:haihao.xiang at intel.com>> wrote:

This is by design. H.264 Baseline Profile isn't supported by the driver.

Thanks
Haihao

Hi All,

I am running into an issue here which I don't know if anybody else has faced or not. When I use the test application h264encode in libva/tests/encode and use the command line option --profile to set the h264 profile to "BP" (baseline), I get the following error:

Can't find VAEntrypointEncSlice for H264 profiles

Upon further investigation, it seems that the function i965_QueryConfigEntrypoints inside i965_drv_video.c does not handle VAProfileH264Baseline and returns VA_STATUS_ERROR_UNSUPPORTED_PROFILE. The following code snippet shows the unhandled enumeration :

    case VAProfileH264ConstrainedBaseline:
    case VAProfileH264Main:
    case VAProfileH264High:
        if (HAS_H264_DECODING(i965))
            entrypoint_list[n++] = VAEntrypointVLD;

        if (HAS_H264_ENCODING(i965))
            entrypoint_list[n++] = VAEntrypointEncSlice;

        break;

Is this by design or did someone forget to handle this case in the switch statement ?

Regards
Hamza Shahid
_______________________________________________
Libva mailing list
Libva at lists.freedesktop.org<mailto:Libva at lists.freedesktop.org><mailto:Libva at lists.freedesktop.org<mailto:Libva at lists.freedesktop.org>>
http://lists.freedesktop.org/mailman/listinfo/libva

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libva/attachments/20160106/5ef237f6/attachment-0001.html>


More information about the Libva mailing list