From patchwork Mon Nov 30 22:42:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 24218 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 7412244B24A for ; Tue, 1 Dec 2020 00:43:48 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4E8646881E4; Tue, 1 Dec 2020 00:43:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f194.google.com (mail-qk1-f194.google.com [209.85.222.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CF0846881B6 for ; Tue, 1 Dec 2020 00:43:40 +0200 (EET) Received: by mail-qk1-f194.google.com with SMTP id n132so12608825qke.1 for ; Mon, 30 Nov 2020 14:43:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=7FXBqG9SOQF1xp/dMqMmLKloUhu0Uwp/JmS7yLSDfYs=; b=qVILdjC57gFHrN85nRo4rHvEU4RPZcNIYRIC3mEu5VpFcjfEWW7O7nptTIIRKGBxdX ywR91/bGDMf/5xpURBEnKnYXiIf/bbNzBaSEizyHDNTDKS3JIPBR/3FYvCmjxp+gSEFX KW8NflsQOesDJD2S7D1FZ7yX11PwpUhfFkfMQ9Lviql3SnXdLap6AFK+A7Ikxc3E3VzB bX6K5lm5wS2GX3Lh+SaYMmuNBaxQQgbBtW9ptoCNxj1VoAu70q1QGU/IfDGzyXztWDpZ 3qZKrdJHO94yXGPleFe3OaHaAE/4Gim1i+b7mHFy4esCohPBms2ZR4BBXFgRCdUqJRLy j7hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=7FXBqG9SOQF1xp/dMqMmLKloUhu0Uwp/JmS7yLSDfYs=; b=KIwJgSTSwpJ9plILIa0JzrWMi2CvmtCZTLBVV/CqvoO1G9rN0Pq+mkO3AYFHuqvuY9 qUHD76JP7+EDAUrT67qiKlhM8wo8Ycmo3dBysUuUY8hGR7R6haDF1YT1SNXBYs6bHuD9 SzMD/h79h9VC80vF3e2heWhOOntgKeaRakaZIv3lxeloAfHHS0ypl3Z6EGNNad+qwAnz CGjbukThYx/LxjifgG1sfLFOR5T6VQyR8rNcB0t9GevuH8RwBbhin28KUczEXTre6O0k zycenbnoZIv1a1ef/I+n92fPUAYAwF+Ccm6lQc2YdmPuPqHPRmgC7Myy4p2hpsURyWHo 7trQ== X-Gm-Message-State: AOAM530sLQSMA5t7+l6r1cKawC36DN75PdI22XkA5WR2Y09w0IEktMkN sltkCS4sk9jOuSI507nTb2ZiFuLixTo= X-Google-Smtp-Source: ABdhPJy5L/hRoLgzi+WmOdQni8naiy4BdY2Azb49IuZeGqnsGnQgDNZCY3/IQA0/mU2IVo/dWoBGhw== X-Received: by 2002:a37:6041:: with SMTP id u62mr8244817qkb.239.1606776218871; Mon, 30 Nov 2020 14:43:38 -0800 (PST) Received: from localhost.localdomain ([181.23.66.196]) by smtp.gmail.com with ESMTPSA id l22sm17415966qke.118.2020.11.30.14.43.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Nov 2020 14:43:38 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 30 Nov 2020 19:42:58 -0300 Message-Id: <20201130224258.5225-1-jamrial@gmail.com> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/vaapi_av1: fill the remaining VAFilmGrainStructAV1 fields X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: James Almer --- libavcodec/vaapi_av1.c | 60 +++++++++++++++++++++++++++++++++++------- 1 file changed, 51 insertions(+), 9 deletions(-) diff --git a/libavcodec/vaapi_av1.c b/libavcodec/vaapi_av1.c index 2763c1e866..b76e217daa 100644 --- a/libavcodec/vaapi_av1.c +++ b/libavcodec/vaapi_av1.c @@ -115,15 +115,27 @@ static int vaapi_av1_start_frame(AVCodecContext *avctx, .temporal_update = frame_header->segmentation_temporal_update, .update_data = frame_header->segmentation_update_data, }, - .film_grain_info.film_grain_info_fields.bits = { - .apply_grain = film_grain->apply_grain, - .chroma_scaling_from_luma = film_grain->chroma_scaling_from_luma, - .grain_scaling_minus_8 = film_grain->grain_scaling_minus_8, - .ar_coeff_lag = film_grain->ar_coeff_lag, - .ar_coeff_shift_minus_6 = film_grain->ar_coeff_shift_minus_6, - .grain_scale_shift = film_grain->grain_scale_shift, - .overlap_flag = film_grain->overlap_flag, - .clip_to_restricted_range = film_grain->clip_to_restricted_range, + .film_grain_info = { + .film_grain_info_fields.bits = { + .apply_grain = film_grain->apply_grain, + .chroma_scaling_from_luma = film_grain->chroma_scaling_from_luma, + .grain_scaling_minus_8 = film_grain->grain_scaling_minus_8, + .ar_coeff_lag = film_grain->ar_coeff_lag, + .ar_coeff_shift_minus_6 = film_grain->ar_coeff_shift_minus_6, + .grain_scale_shift = film_grain->grain_scale_shift, + .overlap_flag = film_grain->overlap_flag, + .clip_to_restricted_range = film_grain->clip_to_restricted_range, + }, + .grain_seed = film_grain->grain_seed, + .num_y_points = film_grain->num_y_points, + .num_cb_points = film_grain->num_cb_points, + .num_cr_points = film_grain->num_cr_points, + .cb_mult = film_grain->cb_mult, + .cb_luma_mult = film_grain->cb_luma_mult, + .cb_offset = film_grain->cb_offset, + .cr_mult = film_grain->cr_mult, + .cr_luma_mult = film_grain->cr_luma_mult, + .cr_offset = film_grain->cr_offset, }, .pic_info_fields.bits = { .frame_type = frame_header->frame_type, @@ -203,6 +215,36 @@ static int vaapi_av1_start_frame(AVCodecContext *avctx, for (int j = 0; j < 6; j++) pic_param.wm[i - 1].wmmat[j] = s->cur_frame.gm_params[i][j]; } + if (film_grain->apply_grain) { + for (int i = 0; i < film_grain->num_y_points; i++) { + pic_param.film_grain_info.point_y_value[i] = + film_grain->point_y_value[i]; + pic_param.film_grain_info.point_y_scaling[i] = + film_grain->point_y_scaling[i]; + } + for (int i = 0; i < film_grain->num_cb_points; i++) { + pic_param.film_grain_info.point_cb_value[i] = + film_grain->point_cb_value[i]; + pic_param.film_grain_info.point_cb_scaling[i] = + film_grain->point_cb_scaling[i]; + } + for (int i = 0; i < film_grain->num_cr_points; i++) { + pic_param.film_grain_info.point_cr_value[i] = + film_grain->point_cr_value[i]; + pic_param.film_grain_info.point_cr_scaling[i] = + film_grain->point_cr_scaling[i]; + } + for (int i = 0; i < 24; i++) { + pic_param.film_grain_info.ar_coeffs_y[i] = + film_grain->ar_coeffs_y_plus_128[i] - 128; + } + for (int i = 0; i < 25; i++) { + pic_param.film_grain_info.ar_coeffs_cb[i] = + film_grain->ar_coeffs_cb_plus_128[i] - 128; + pic_param.film_grain_info.ar_coeffs_cr[i] = + film_grain->ar_coeffs_cr_plus_128[i] - 128; + } + } err = ff_vaapi_decode_make_param_buffer(avctx, pic, VAPictureParameterBufferType, &pic_param, sizeof(pic_param));