From patchwork Mon Mar 18 16:54:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 47187 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:958e:b0:1a3:31a3:7958 with SMTP id iu14csp1140051pzb; Mon, 18 Mar 2024 09:58:22 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWiny0U7L9Jbow4LEWMKzcIdtlqzyL3IuyC3ReXuLcDPdmJBEadxablLUCBRlamTlW06ElIPs27BhGncm+ad1dxZcJCflhNwc4WIw== X-Google-Smtp-Source: AGHT+IEplWg3AfM3oXCHrRSs8n9qHj9ioq4rRircNWY3gG40+7OMBjH9SPaSrhvTqmcwZVbh23tZ X-Received: by 2002:a2e:241a:0:b0:2d4:70e8:3630 with SMTP id k26-20020a2e241a000000b002d470e83630mr7647664ljk.48.1710781102123; Mon, 18 Mar 2024 09:58:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1710781102; cv=none; d=google.com; s=arc-20160816; b=KypSFdpcObXZaspbQqBIhIWhlkruMeRakdsUgp9uwCsoRdnTjgHTMoIlNZrH/ex37J 5NeSWRBE4IE+DIxJQGr031dn9dHtZ+PPWx9Q8kZQlokoYrwYLWvXUQER0cOsjIgjinnX B7nc3iAIoyyIqzhGu1kBRhhqxQOjrQLX3hHRHaBTM/fwgDZmuOyu56h2xbzrKKFKB8h9 zyga5RRrapSxZv1/fSVKQFy8W4Sfl6h3Qm4+VOzQZtalRnIEGJ1U6rFzWklnefPMbLGk CQQPlx6jP4LQZXt3VlvRXRqQ+0HRBuTrlFsNDTHX6ZGE3JwPSyVO8znYIIB6qn+JJm1S yRCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=qT0DuWRx9IeIRHr0lx2SKRpTItkp5nYNKbQFjvpifDo=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=KxUDF3vBXMgTshU1DK03KouxeD/QD4gl/d7Rcy9rIkABc8KcG9vt4V1S6g86S2bHHy bOvB4j+ddpnJjhCNimgttzyD+kLEP6axQbeYuRslIV2smKrtR39AWSArZ/Vdx1mlr1My U0Kzvls+rfAuugcG9U/hkmXlTD+6P5d9IsaRu689au25ip7uDgmbuRxA4A7fpt8JJXKI TP4w8AbBXoUmOa8UD+8LwaU6EcmoThxRw+1hC+hgbl4xEJkXKiFp6UVwICVHbt0ouaXz q0X+A+3tTdbtsf94yHA0UiDdHiXp/J2s+OYrOtCPmZfkrlSK/CHDMsW4JW2sOQ4Xn2rw EOxw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=KhG1pWYo; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id ij12-20020a056402158c00b005685e440818si4530849edb.447.2024.03.18.09.58.21; Mon, 18 Mar 2024 09:58:22 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=KhG1pWYo; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C0E8768D384; Mon, 18 Mar 2024 18:57:13 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0D2CD68D337 for ; Mon, 18 Mar 2024 18:57:03 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1710781018; bh=WocNVYEIcIsC0dPgTyy3a1uKc/DcPil4cXrzyHAZFZ4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KhG1pWYouCHNC/JED3DXf0RG1Xe8hJtq5hVHYFLYOSMNU2SFOS7AYJl2YYpZSYXf+ I7Pq6YDrxzXlSS+kTmTnXO7ZlXyyjFU1Hw0XMwKERwkxqaMG/PR/bFAUwpXKXCG0Of UvKBITb1RlY/2RTbqZeuSwQ7NJ0vbftH8BZmmzq4= Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id 9C282435CF; Mon, 18 Mar 2024 17:56:58 +0100 (CET) From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Mon, 18 Mar 2024 17:54:15 +0100 Message-ID: <20240318165651.75520-8-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240318165651.75520-1-ffmpeg@haasn.xyz> References: <20240318165651.75520-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v4 07/13] avcodec/libdavv1d: signal new AVFilmGrainParams members X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Cc: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: wK+YBRhYjGOr From: Niklas Haas Not directly signalled by AV1, but we should still set this accordingly so that users will know what the original intended video characteristics and chroma resolution were. --- libavcodec/libdav1d.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c index 1aa2d1f3436..361b988825c 100644 --- a/libavcodec/libdav1d.c +++ b/libavcodec/libdav1d.c @@ -613,6 +613,8 @@ static int libdav1d_receive_frame(AVCodecContext *c, AVFrame *frame) if (p->frame_hdr->film_grain.present && (!dav1d->apply_grain || (c->export_side_data & AV_CODEC_EXPORT_DATA_FILM_GRAIN))) { AVFilmGrainParams *fgp = av_film_grain_params_create_side_data(frame); + const AVPixFmtDescriptor *pixdesc = av_pix_fmt_desc_get(frame->format); + av_assert0(pixdesc); if (!fgp) { res = AVERROR(ENOMEM); goto fail; @@ -620,6 +622,14 @@ static int libdav1d_receive_frame(AVCodecContext *c, AVFrame *frame) fgp->type = AV_FILM_GRAIN_PARAMS_AV1; fgp->seed = p->frame_hdr->film_grain.data.seed; + fgp->width = frame->width; + fgp->height = frame->height; + fgp->color_range = frame->color_range; + fgp->color_primaries = frame->color_primaries; + fgp->color_trc = frame->color_trc; + fgp->color_space = frame->colorspace; + fgp->subsampling_x = pixdesc->log2_chroma_w; + fgp->subsampling_y = pixdesc->log2_chroma_h; fgp->codec.aom.num_y_points = p->frame_hdr->film_grain.data.num_y_points; fgp->codec.aom.chroma_scaling_from_luma = p->frame_hdr->film_grain.data.chroma_scaling_from_luma; fgp->codec.aom.scaling_shift = p->frame_hdr->film_grain.data.scaling_shift;