fresnel-fourier iter5b-β Phase 6 commit B: config.c — wire object_config->pixelformat
Populate the previously-dead pixelformat field at config.h:46 from pixelformat_for_profile(profile). The switch at lines 54-88 already rejects unsupported profiles, so by the time we reach the assignment at line 98, pixelformat_for_profile returns non-zero. Commit C reads this field at CreateContext to set the V4L2 OUTPUT format correctly per profile (the β architectural fix for Bug 2 — HEVC/VP9/VP8 currently dispatch through the pre-iter5b H264_SLICE hardcode at surface.c:173 because surface.c has no config_id to look up the profile). Signed-off-by: claude-noether <claude-noether@reauktion.de>
This commit is contained in:
@@ -36,6 +36,7 @@
|
|||||||
|
|
||||||
#include <hevc-ctrls.h>
|
#include <hevc-ctrls.h>
|
||||||
|
|
||||||
|
#include "codec.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "v4l2.h"
|
#include "v4l2.h"
|
||||||
|
|
||||||
@@ -97,6 +98,16 @@ VAStatus RequestCreateConfig(VADriverContextP context, VAProfile profile,
|
|||||||
|
|
||||||
config_object->profile = profile;
|
config_object->profile = profile;
|
||||||
config_object->entrypoint = entrypoint;
|
config_object->entrypoint = entrypoint;
|
||||||
|
/*
|
||||||
|
* iter5b-β: cache the V4L2 OUTPUT-side FOURCC for this profile so
|
||||||
|
* context.c::RequestCreateContext can read it without re-running
|
||||||
|
* the profile→pixelformat mapping. Wires up the previously-dead
|
||||||
|
* pixelformat field at config.h:46. The switch above already
|
||||||
|
* rejected unsupported profiles via VA_STATUS_ERROR_UNSUPPORTED_PROFILE,
|
||||||
|
* so pixelformat_for_profile here returns non-zero for every
|
||||||
|
* profile that reaches this assignment.
|
||||||
|
*/
|
||||||
|
config_object->pixelformat = pixelformat_for_profile(profile);
|
||||||
config_object->attributes[0].type = VAConfigAttribRTFormat;
|
config_object->attributes[0].type = VAConfigAttribRTFormat;
|
||||||
config_object->attributes[0].value = VA_RT_FORMAT_YUV420;
|
config_object->attributes[0].value = VA_RT_FORMAT_YUV420;
|
||||||
config_object->attributes_count = 1;
|
config_object->attributes_count = 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user