iter25 α-25 fix: add FRAME_MBS_ONLY to H264 dummy SPS
rkvdec_h264_validate_sps doubles height when FRAME_MBS_ONLY is unset (field-to-frame). Dummy with 1080-height was failing validation as 2176 > 1080, returning -EINVAL silently (void-cast). Even though libva ignores the result of v4l2_set_controls, the side effect was leaving ctx->image_fmt at ANY → first per-frame H264_SPS still hit -EBUSY in try_or_set_cluster → setup loop broke (Bug 4 unchanged). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -270,6 +270,14 @@ VAStatus RequestCreateContext(VADriverContextP context, VAConfigID config_id,
|
|||||||
(picture_height + 15) / 16 - 1;
|
(picture_height + 15) / 16 - 1;
|
||||||
dummy_sps.profile_idc = 100; /* High */
|
dummy_sps.profile_idc = 100; /* High */
|
||||||
dummy_sps.level_idc = 41;
|
dummy_sps.level_idc = 41;
|
||||||
|
/*
|
||||||
|
* FRAME_MBS_ONLY required: rkvdec_h264_validate_sps
|
||||||
|
* doubles height for non-frame-mbs-only streams to
|
||||||
|
* compute frame-height from field-height. Without
|
||||||
|
* this flag, dummy with (height_in_map_units+1)*16
|
||||||
|
* = 1088 doubles to 2176 > coded_fmt 1080 → -EINVAL.
|
||||||
|
*/
|
||||||
|
dummy_sps.flags = V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY;
|
||||||
|
|
||||||
dummy_ctrl.id = V4L2_CID_STATELESS_H264_SPS;
|
dummy_ctrl.id = V4L2_CID_STATELESS_H264_SPS;
|
||||||
dummy_ctrl.ptr = &dummy_sps;
|
dummy_ctrl.ptr = &dummy_sps;
|
||||||
|
|||||||
Reference in New Issue
Block a user