diff --git a/src/config.c b/src/config.c index 89942f7..b4c6cfb 100644 --- a/src/config.c +++ b/src/config.c @@ -79,6 +79,10 @@ VAStatus RequestCreateConfig(VADriverContextP context, VAProfile profile, // backend; validation happens at vaCreateContext / control // submission time. break; + case VAProfileVP9Profile0: + // fresnel-fourier iter4: VP9 Profile 0 enabled on rkvdec. + // Same shape — no profile-specific validation here. + break; default: return VA_STATUS_ERROR_UNSUPPORTED_PROFILE; } @@ -175,6 +179,16 @@ VAStatus RequestQueryConfigProfiles(VADriverContextP context, if (found && index < (V4L2_REQUEST_MAX_CONFIG_ATTRIBUTES - 1)) profiles[index++] = VAProfileVP8Version0_3; + /* fresnel-fourier iter4: VP9 enumeration on rkvdec */ + found = v4l2_find_format(driver_data->video_fd, + V4L2_BUF_TYPE_VIDEO_OUTPUT, + V4L2_PIX_FMT_VP9_FRAME) || + v4l2_find_format(driver_data->video_fd, + V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, + V4L2_PIX_FMT_VP9_FRAME); + if (found && index < (V4L2_REQUEST_MAX_CONFIG_ATTRIBUTES - 1)) + profiles[index++] = VAProfileVP9Profile0; + *profiles_count = index; return VA_STATUS_SUCCESS; @@ -195,6 +209,7 @@ VAStatus RequestQueryConfigEntrypoints(VADriverContextP context, case VAProfileH264StereoHigh: case VAProfileHEVCMain: case VAProfileVP8Version0_3: + case VAProfileVP9Profile0: entrypoints[0] = VAEntrypointVLD; *entrypoints_count = 1; break;