From 16b397305dd8a6c443da3a2d6e200de56ec91ba5 Mon Sep 17 00:00:00 2001 From: claude-noether Date: Sun, 10 May 2026 06:34:14 +0000 Subject: [PATCH] fresnel-fourier iter4 Phase 6 commit A: VP9 enumeration + dispatch in config.c 3 sites: 1. RequestQueryConfigProfiles: probe V4L2_PIX_FMT_VP9_FRAME against single + MPLANE OUTPUT formats; advertise VAProfileVP9Profile0. 2. RequestCreateConfig: VAProfileVP9Profile0 case (no profile-specific validation; defer to vaCreateContext / control submission time). 3. RequestQueryConfigEntrypoints: add VAProfileVP9Profile0 to the VAEntrypointVLD fall-through. Verified on fresnel: vainfo (auto-detect rkvdec) now shows VAProfileVP9Profile0 alongside H.264x5 + HEVCMain. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/config.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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;