diff --git a/src/av1.c b/src/av1.c index 964c035..0148567 100644 --- a/src/av1.c +++ b/src/av1.c @@ -462,12 +462,11 @@ static void av1_fill_film_grain(VADecPictureParameterBufferAV1 *picture, if (fg->film_grain_info_fields.bits.apply_grain) ctrl->flags |= V4L2_AV1_FILM_GRAIN_FLAG_APPLY_GRAIN; - /* VAAPI doesn't expose update_grain; not setting the flag means - * "reuse params from film_grain_params_ref_idx" — defaulting to - * "update with submitted params" (which is what apply_grain implies - * when set). The flag's omission is safe for vpu981 which derives - * grain state from the submitted control payload, not from a - * separate reuse signal. */ + /* VAAPI doesn't expose update_grain; not setting it means + * "reuse from film_grain_params_ref_idx (=0)". A previous test + * with UPDATE_GRAIN=1 unconditional triggered a segfault on the + * 352x288 film_grain-50 fixture — keep update_grain implicit-zero + * here and revisit during Phase 3 deeper investigation. */ if (fg->film_grain_info_fields.bits.chroma_scaling_from_luma) ctrl->flags |= V4L2_AV1_FILM_GRAIN_FLAG_CHROMA_SCALING_FROM_LUMA; if (fg->film_grain_info_fields.bits.overlap_flag)