From patchwork Tue Mar 19 19:16:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 47229 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:958e:b0:1a3:31a3:7958 with SMTP id iu14csp1880850pzb; Tue, 19 Mar 2024 12:17:15 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWEXKk+1l90TymtWsnwhxv1hk6BQywf440g3k6VOq/bIB4Jknvz2HW+ZoqENB3+dKDCQ0Q7TTvVpj9bMv7SECq+GA+QFQ7r8CwUPw== X-Google-Smtp-Source: AGHT+IFCLZt9NwxaPoX+DwMGMj/fmwSfQbGd+LYkVfbyLacHiQNTSTVIrehNgil231iICRQlrw8f X-Received: by 2002:a17:906:360a:b0:a46:6046:5d56 with SMTP id q10-20020a170906360a00b00a4660465d56mr2256491ejb.4.1710875835624; Tue, 19 Mar 2024 12:17:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1710875835; cv=none; d=google.com; s=arc-20160816; b=AM9KggRlPXsaLNVvxzb90SfBCbxTT6en+YrcatX3jGMjlpIN1+FbwgSY1Fa2/8B6cW h6LlRncJ+UiJ62DSwIpSB7imh4sEQCv2HwPhPoR5MriRGR9AH4NkspkaZ1vANSAP98vn Ofhbr6GuJ7soTtX14Cq4HzQEEJfovzh6kZiQnDrfo8b4XJm9oO1EGmpUj4vPUTuzC/A+ 4W0w6d/JdMa51Qh0VeawdgOSje1v1M2KwtX4eJJjAyJ1KuFoTt0mQ3SHIpb00RElLzL4 YvUnghcTsw8t68pmakjIqD+AUG1FybbBV8WmBXWICW8W4e/Xrb5ktkJuRB/6878gdh9B ns0A== 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=/BylUKJdPj3iEBjxuK1qhOoLxnYZJLbCebwjK1Frr5A=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=M3JQou8Kljc1jG7al8HLE3U1Jp7DrD/RLaTpqgSQ6xiUUz0Mt0XojVfimtAWG72DNY MVwplB2nphhR8DZ3Bwib9PMzhqnFpl9oT3dcqyjDD0Fx1hdYyhjJCgZOjeZ4UtbNrSOP S17HYBH5TtRyp+Z7wtq8C7T1ArWRRyqCmVf4DutIBo/Hqc4w8wHcTiU8jxuwGKid8TKK apRlnlnwjH4sTgCFSdQUiwRjI7JrgH0TOpLtvF0iQLxvOhHLrEkZ/8fjLv7d+jCDHy5k ezxYK5B46D/nXdA1RB+1v5OvRcnBQjkiLcfMBkoBF06pJh0cMJtRVahOgStQQDV8CEXA Ah6A==; 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=K+oxVtth; 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 bw9-20020a170906c1c900b00a44a9139b09si5740125ejb.299.2024.03.19.12.17.14; Tue, 19 Mar 2024 12:17:15 -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=K+oxVtth; 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 BB58468D42C; Tue, 19 Mar 2024 21:16:56 +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 3887868D367 for ; Tue, 19 Mar 2024 21:16:48 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1710875808; bh=8CEBlMPMBZmHgbk0KURfEVwVLCpltFfMmIUSbnEiVM8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=K+oxVtthk6gFdHTUFFRer23gVPDXbyt0W9F+zLy0733J6WatIFBxcNT7gNzBAwgVr PFT7CGT7EUSUTnXGH/dWqIu76XL+qq21M2Gs+M+76ECxPOkKATuJlZvUEikS2lMaYN G08MM184eZ6o8ZwN3c5R1Oz+QozzdO58YmaHnkMQ= Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id 086C1408E3; Tue, 19 Mar 2024 20:16:48 +0100 (CET) From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Tue, 19 Mar 2024 20:16:41 +0100 Message-ID: <20240319191642.95217-3-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240319191642.95217-1-ffmpeg@haasn.xyz> References: <20240319191642.95217-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/4] avcodec/libaomenc: encode dovi RPUs as T.35 metadata 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: QsxnK9Y8Mx+8 From: Niklas Haas Using the new conversion function implemented in the previous commit. --- libavcodec/libaomenc.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c index 8c1f84cc9fb..2c8fe524fa7 100644 --- a/libavcodec/libaomenc.c +++ b/libavcodec/libaomenc.c @@ -42,6 +42,7 @@ #include "avcodec.h" #include "bsf.h" #include "codec_internal.h" +#include "dovi_rpu.h" #include "encode.h" #include "internal.h" #include "libaom.h" @@ -1283,6 +1284,7 @@ static int aom_encode(AVCodecContext *avctx, AVPacket *pkt, aom_enc_frame_flags_t flags = 0; if (frame) { + AVFrameSideData *sd; rawimg = &ctx->rawimg; rawimg->planes[AOM_PLANE_Y] = frame->data[0]; rawimg->planes[AOM_PLANE_U] = frame->data[1]; @@ -1318,6 +1320,17 @@ FF_ENABLE_DEPRECATION_WARNINGS break; } + if ((sd = av_frame_get_side_data(frame, AV_FRAME_DATA_DOVI_RPU_BUFFER))) { + AVBufferRef *t35; + if ((res = ff_dovi_rpu_to_t35(avctx, sd->data, sd->size, &t35)) < 0) + return res; + res = aom_img_add_metadata(rawimg, OBU_METADATA_TYPE_ITUT_T35, + t35->data, t35->size, AOM_MIF_ANY_FRAME); + av_buffer_unref(&t35); + if (res != AOM_CODEC_OK) + return AVERROR(ENOMEM); + } + if (frame->pict_type == AV_PICTURE_TYPE_I) flags |= AOM_EFLAG_FORCE_KF; }