From patchwork Mon Mar 28 12:41:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 35013 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c05:b0:7a:e998:b410 with SMTP id bw5csp205106pzb; Mon, 28 Mar 2022 05:41:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyV0Yh2LmRzLXbmpvdfEssg8LzAR6mjtUhrcfo5mvUJfulPqwyGjg5Y0K2XKpG3iMDvsS5j X-Received: by 2002:a05:6402:1909:b0:418:d876:3119 with SMTP id e9-20020a056402190900b00418d8763119mr16296016edz.266.1648471290222; Mon, 28 Mar 2022 05:41:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648471290; cv=none; d=google.com; s=arc-20160816; b=AbaNc23ZaTsU+feOf9WQBwrVuUn4CkJgj1T1Zg/xLAqm6Hj+YsqX+gClEBA6BnbDju Zo1Z5nMwvnqpfh4kmSRaH5xpKtQMwh06f4lRjuyFz+8pfE8UjHtvkqbS2VyV/NlsBgq8 zQ9KTuVNIp6rWW4nX6Pgdu9WjhQy2XzSeaB+7ExyVMaihEzVkCdP0lfMAwt1bMLCDEG2 oicinm+vXQK/lI6I/O7OBT3f7FZy2R2K+zi4eXLPtgMHYk2g3ogG4KfhI1WS9jbyPKpK JDxeG20+g5L6k+M8M2VhMTkwKwNfTaFWzNxvCJ+j23UOH0IopW33YaWNNlkkEWUf8Oaa dljg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to; bh=EasCMxOyBzEp5YTD3OHrXXErXh20Levfyv86L0t12AY=; b=xDe+QsUW6mBvIY7+DI47plwnQj6+Bi5EyWbsIsPlAuoePsMXPsn6x62ur3KvT3pelB DMI1H6RASC67Ddw502fVNNZMzoIvgTxZ5FGLbWmHoS+nqjgGaijhGM02eW8ZjfnrSltQ FvvuSINeWWjW0dVFb2+zekJP98cIoqK/DX9rZqpV+Kb2Hqkzp1nPKWt8jPjYHZnYUAEf E4q2aGKZxHThDr+n/WuszeNFrRRvo8K3A+YqkGfWVs3cng064yRoq9Vs/hEyz+6wzofw FVylGK/Z5bJsf5EbiVey/VrRxi97+31ZR9M2QSpAjbQHpxL90k4CONswqR/pdYeCut3V +lXA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=TpcvuUvz; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id h9-20020a1709060f4900b006df76385cc3si14330134ejj.355.2022.03.28.05.41.29; Mon, 28 Mar 2022 05:41:30 -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=@gmail.com header.s=20210112 header.b=TpcvuUvz; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E24FA68B1AD; Mon, 28 Mar 2022 15:41:24 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6259768A2F6 for ; Mon, 28 Mar 2022 15:41:18 +0300 (EEST) Received: by mail-pg1-f181.google.com with SMTP id c2so12142907pga.10 for ; Mon, 28 Mar 2022 05:41:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=s6qSFiICEJ6bYNgmIja0oXLc79RCZ5tTq6JMBwwfBss=; b=TpcvuUvzG1UGT3PB4Gkfd+fLZUmGNJ1Tol+hqNN0rCd68Giw4SScG5u4zUnLBaHpYa yS1d7jgnjzLIVfR5ulEj3EUMjdnJO09o2/6znNGjHXpUssa0ZdO6uCZISQr+VfZHc1Ue 5J37A8oGQtKaSo3FsJ2nbO7exvXhSUcDgYtOuRYW8mibw1k+RVpx2uUqqKey+3rq1vOs Zkd7FUHOvAwKSjdCRS0bQGzUi/YCFJiH0j+djdcHabrDVfvozCJkikhaCyn2KgcLqOrY +6PlWp5SJKZC42E6a42dVWcnRV08UU5jkDXr81gTxKBO3saqUK7U3icUULbXpw2iqq0N hcXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=s6qSFiICEJ6bYNgmIja0oXLc79RCZ5tTq6JMBwwfBss=; b=py9maLU1PiDxW9zBQMtYWiZvRm5rVivbbsvE900D9UsG7IRvQAAVUdNeGobTFneRHh C8ghP3YBHjUPTaIIqLefppWVrXLNpu9XR3o7kvSZV78JsoBpIzP+X1mFnr0wczpr8PPs mRSopQHJQC04Pqo2YIFDhk/+xP4ZTVm083QJoeG7KUzlUbS8jIzm3qYee77XNcHD6AoL 1ysyyJEaYw2pWfR9HB/KDoqaXoPLc9bh9DfPYNeB6s6qwbZtLwM0oEilEC7KogsXnEEM EltyTqnnG5gYBXOTT7+nLG6Q4wtwttiGejjCKRCfmYM28C4ndhbPjfPSRmf1BvOYggrg O2aw== X-Gm-Message-State: AOAM532DQufBe7nrKM1dRDaCz4tOQCfx+rscUstWgqC3A8CbE8Tradxs avFVD8GLtVvj1fNyZss25MpE9aHlu2yLbg== X-Received: by 2002:a63:3e8d:0:b0:398:5222:3a3 with SMTP id l135-20020a633e8d000000b00398522203a3mr3413191pga.561.1648471276098; Mon, 28 Mar 2022 05:41:16 -0700 (PDT) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id b2-20020a056a000a8200b004f1111c66afsm17895304pfl.148.2022.03.28.05.41.14 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Mar 2022 05:41:15 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Mon, 28 Mar 2022 20:41:08 +0800 Message-Id: <1648471271-22016-1-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1648423513-21261-1-git-send-email-lance.lmwang@gmail.com> References: <1648423513-21261-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v2 1/4] avutil: add ambient viewing environment metadata side data 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: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: nOwzk33B558I From: Limin Wang Signed-off-by: Limin Wang --- libavutil/frame.c | 1 + libavutil/frame.h | 6 +++++ libavutil/mastering_display_metadata.c | 23 +++++++++++++++++ libavutil/mastering_display_metadata.h | 45 ++++++++++++++++++++++++++++++++++ 4 files changed, 75 insertions(+) diff --git a/libavutil/frame.c b/libavutil/frame.c index fbb869f..8882da2 100644 --- a/libavutil/frame.c +++ b/libavutil/frame.c @@ -815,6 +815,7 @@ const char *av_frame_side_data_name(enum AVFrameSideDataType type) case AV_FRAME_DATA_DETECTION_BBOXES: return "Bounding boxes for object detection and classification"; case AV_FRAME_DATA_DOVI_RPU_BUFFER: return "Dolby Vision RPU Data"; case AV_FRAME_DATA_DOVI_METADATA: return "Dolby Vision Metadata"; + case AV_FRAME_DATA_AMBIENT_VIEWING_ENV: return "Ambient Viewing Environment"; } return NULL; } diff --git a/libavutil/frame.h b/libavutil/frame.h index 33fac20..f7b1d4e 100644 --- a/libavutil/frame.h +++ b/libavutil/frame.h @@ -209,6 +209,12 @@ enum AVFrameSideDataType { * volume transform - CUVA 005.1-2021. */ AV_FRAME_DATA_DYNAMIC_HDR_VIVID, + + /** + * ambient viewing environment for a video frame, as described by + * the AVAmbientViewingEnvMetadata. + */ + AV_FRAME_DATA_AMBIENT_VIEWING_ENV, }; enum AVActiveFormatDescription { diff --git a/libavutil/mastering_display_metadata.c b/libavutil/mastering_display_metadata.c index 6069347..ba1c80f 100644 --- a/libavutil/mastering_display_metadata.c +++ b/libavutil/mastering_display_metadata.c @@ -64,3 +64,26 @@ AVContentLightMetadata *av_content_light_metadata_create_side_data(AVFrame *fram return (AVContentLightMetadata *)side_data->data; } + +AVAmbientViewingEnvMetadata *av_ambient_viewing_env_metadata_alloc(size_t *size) +{ + AVAmbientViewingEnvMetadata *metadata = av_mallocz(sizeof(*metadata)); + + if (size) + *size = sizeof(*metadata); + + return metadata; +} + +AVAmbientViewingEnvMetadata *av_ambient_viewing_env_metadata_create_side_data(AVFrame *frame) +{ + AVFrameSideData *side_data = av_frame_new_side_data(frame, + AV_FRAME_DATA_AMBIENT_VIEWING_ENV, + sizeof(AVAmbientViewingEnvMetadata)); + if (!side_data) + return NULL; + + memset(side_data->data, 0, sizeof(AVAmbientViewingEnvMetadata)); + + return (AVAmbientViewingEnvMetadata *)side_data->data; +} diff --git a/libavutil/mastering_display_metadata.h b/libavutil/mastering_display_metadata.h index c23b07c..d7598c1 100644 --- a/libavutil/mastering_display_metadata.h +++ b/libavutil/mastering_display_metadata.h @@ -125,4 +125,49 @@ AVContentLightMetadata *av_content_light_metadata_alloc(size_t *size); */ AVContentLightMetadata *av_content_light_metadata_create_side_data(AVFrame *frame); +/** + * The characteristics of the nominal ambient viewing environment for + * the display of the associated video content. + * To be used as payload of a AVFrameSideData the appropriate type. + * + * @note The struct should be allocated with av_ambient_viewing_env_metadata_alloc() + * and its size is not a part of the public ABI. + */ +typedef struct AVAmbientViewingEnvMetadata { + /** + * specifies the environmental illuminance of the ambient viewing + * environment in units of 0.0001 lux. + * ambient_illuminance shall not be equal to 0. + */ + uint32_t ambient_illuminance; + /** + * specify the normalized x and y chromaticity coordinates, respectively, + * of the environmental ambient light in the nominal viewing environment, + * according to the CIE 1931 definition of x and y as specified in ISO + * 11664-1 (see also ISO 11664-3 and CIE 15), in normalized increments of + * 0.00002. The values of ambient_light_x and ambient_light_y shall be in + * the range of 0 to 50000 + */ + uint16_t ambient_light_x; + uint16_t ambient_light_y; +} AVAmbientViewingEnvMetadata; + +/** + * Allocate an AVAmbientViewingEnvMetadata structure and set its fields to + * default values. The resulting struct can be freed using av_freep(). + * + * @return An AVAmbientViewingEnvMetadata filled with default values or NULL + * on failure. + */ +AVAmbientViewingEnvMetadata *av_ambient_viewing_env_metadata_alloc(size_t *size); + +/** + * Allocate a complete AVAmbientViewingEnvMetadata and add it to the frame. + * + * @param frame The frame which side data is added to. + * + * @return The AVAmbientViewingEnvMetadata structure to be filled by caller. + */ +AVAmbientViewingEnvMetadata *av_ambient_viewing_env_metadata_create_side_data(AVFrame *frame); + #endif /* AVUTIL_MASTERING_DISPLAY_METADATA_H */ From patchwork Mon Mar 28 12:41:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 35014 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c05:b0:7a:e998:b410 with SMTP id bw5csp205230pzb; Mon, 28 Mar 2022 05:41:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwmNx+O3FLtFoieVpGnTtoRjG8/mZeiCWk5sLYaKCwXJUTx7BIklWRxFzBGopf/isoGg9xm X-Received: by 2002:a17:907:d2a:b0:6e0:963c:97d9 with SMTP id gn42-20020a1709070d2a00b006e0963c97d9mr21638739ejc.736.1648471300764; Mon, 28 Mar 2022 05:41:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648471300; cv=none; d=google.com; s=arc-20160816; b=mAizot0bZU3asT61ZjFcE08DG3vvkPTv+kmQ50R+zdemnEM0jq0ug/7V6KlQxyrrQU fbGZvEcGXKTLgtU+p7WIyKE25iGAUuldPCdGMXSYPuMHzSf8XNcbI7nVbZ8iTnA+FOgS aGiUv0EcHjzMS07FGL5zK5r/Ea3OGvkQBVkeJQCwE8wAepSJPA4fE54/fHaJ9oy8H375 uXEAuAxIY5JlM6t5ixhddoAd1h9U7y2GbxHxcMLUPlZnnMhaAii3Fb8Tyn8izkxs7FFR 2liYxgYca1OQni4uLy6aqjHxhH4jxIXpc+mn8dZ8grI3Qi8WfTN6Q9N6XfCdnBvgVqC5 cqYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to; bh=iyQ0pTbzi+IYDE6A8cTy6PAPRAC7PHZjVAc+JjPgT2w=; b=sdj/avGflVaz+KOZncq+foyV1mJBtcQdAC9ZFW37RWiiJzalQq8NFpZexAzQtn6vE1 K6bLI4k4cW7AM9P2Vpf44isOiOjY0AuxTQEb3x9mdP61fGZQRPjLxYkWunRscygfjvGN MdbRCnpd4w7XRL6bjr4VXwmSaLqadyzUJLjNL/waf9HAFPkbARgNZgozcbfIy0wtor1+ LfxsDG7OVcEq5QBVbZjynybPdJOk56Z8p1nJKGdRAWyzqxtd5vZnJyaDmMXMPn8SgnyO p52HckLRUYDjyjWOhi4HXhbZki1VdjSmBB9ppz+xUmrz2gg69nKhAvTTX8TNm+ldohmr 8egQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=nNdpMBnw; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id u29-20020a50a41d000000b00418c2b5bf6asi13770363edb.588.2022.03.28.05.41.40; Mon, 28 Mar 2022 05:41:40 -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=@gmail.com header.s=20210112 header.b=nNdpMBnw; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E705E68B1F1; Mon, 28 Mar 2022 15:41:27 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 28A5E68A2F6 for ; Mon, 28 Mar 2022 15:41:19 +0300 (EEST) Received: by mail-pf1-f170.google.com with SMTP id w7so9827789pfu.11 for ; Mon, 28 Mar 2022 05:41:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=3M7Ajv6Q+Tp2WWmWp7AXQaobTk/Ud777HqAPKxOXuZA=; b=nNdpMBnw8AvDGAk5MgyP+5LqBD8VvnHbfaHzqyJfTeekvUtU0GC9qJ/kAgO/xsfcff ahaj4yiqxQiIwUeR7wEWLFBlI9IIMzCWv9w9BE8Sy5X0Z7bxa3G8vy84GEytNWuIK77Z +1fGKgCLSheTycdmoLrsvjvMGn106w0m5mZMiyA3F9hn1vgqT3V1BoMVAvc/Om/eL/B2 zxw2QkmkZx7fmXZqkGV0l+sd9UMUc1KlqJr4T+s7Fx2cq68SXVKWuRTjUtzre3cFdKQ+ oT5OpjNDOVAkCJbuF96VucChgUCq+r2QCg8f1Yqf39ryJfvUsOap8fUlgcRtS+1p0vms kYyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=3M7Ajv6Q+Tp2WWmWp7AXQaobTk/Ud777HqAPKxOXuZA=; b=V9yW+WV/nol01mcylHoNUOwPafj8/gwUZMKeOZgbS1GIy+weKnPxb7vkl4CkHCvmfr j/HE2t7SB1RUMeMAgf2ibHDT1sWW7Z4sejZrwWxvaq/cdZIqRYxu5KgEadfalYzYLMp9 Un4lnoRP+W1x+j2xMB+LCU0zrqVmuuzUlEEZPHmU8vswJklpkOQxAdAcecm3I9D4RWIA rqLiJzZgSZdzR+yFOnnC+he/Tu9xG1vDSjSKUE08ERXO38iEHIXjXMldvG36Zaao8ShA YL14wcpQuCmQby27QbOMtbhQ4mtb58HDRNv0oFC+COExg/ULtDeOfrgY4lL0hwsop+00 N+kg== X-Gm-Message-State: AOAM533iGGbDL3eXDmEtwCAI+JvrlAxmON49PpdI/HWMsAYCYANDJ+Rf YUefpuMLKjCfQJs6Adqvk49KywBfu3vIYA== X-Received: by 2002:a62:1c8d:0:b0:4fa:8dcb:6da2 with SMTP id c135-20020a621c8d000000b004fa8dcb6da2mr465035pfc.19.1648471277370; Mon, 28 Mar 2022 05:41:17 -0700 (PDT) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id b2-20020a056a000a8200b004f1111c66afsm17895304pfl.148.2022.03.28.05.41.16 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Mar 2022 05:41:17 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Mon, 28 Mar 2022 20:41:09 +0800 Message-Id: <1648471271-22016-2-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1648471271-22016-1-git-send-email-lance.lmwang@gmail.com> References: <1648423513-21261-1-git-send-email-lance.lmwang@gmail.com> <1648471271-22016-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v2 2/4] avcodec: add support for hevc ambient viewing environment SEI message 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: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: rj9rB+VZXBF8 From: Limin Wang Signed-off-by: Limin Wang --- libavcodec/hevc_sei.c | 19 +++++++++++++++++++ libavcodec/hevc_sei.h | 8 ++++++++ libavcodec/hevcdec.c | 10 ++++++++++ tests/ref/fate/hevc-dv-rpu | 6 ++++++ 4 files changed, 43 insertions(+) diff --git a/libavcodec/hevc_sei.c b/libavcodec/hevc_sei.c index ec3036f..d94df4e 100644 --- a/libavcodec/hevc_sei.c +++ b/libavcodec/hevc_sei.c @@ -497,6 +497,23 @@ static int decode_film_grain_characteristics(HEVCSEIFilmGrainCharacteristics *h, return 0; } +static int decode_ambient_viewing_env(HEVCSEIAmbientViewingEnvironment *s, GetBitContext *gb, int size) +{ + if (size < 8) + return AVERROR_INVALIDDATA; + + s->ambient_illuminance = get_bits(gb, 32); + s->ambient_light_x = get_bits(gb, 16); + s->ambient_light_y = get_bits(gb, 16); + size -= 8; + + s->present = 1; + + skip_bits_long(gb, 8 * size); + return 0; +} + + static int decode_nal_sei_prefix(GetBitContext *gb, void *logctx, HEVCSEI *s, const HEVCParamSets *ps, int type, int size) { @@ -525,6 +542,8 @@ static int decode_nal_sei_prefix(GetBitContext *gb, void *logctx, HEVCSEI *s, return decode_nal_sei_timecode(&s->timecode, gb); case SEI_TYPE_FILM_GRAIN_CHARACTERISTICS: return decode_film_grain_characteristics(&s->film_grain_characteristics, gb); + case SEI_TYPE_AMBIENT_VIEWING_ENVIRONMENT: + return decode_ambient_viewing_env(&s->ambient_viewing_env, gb, size); default: av_log(logctx, AV_LOG_DEBUG, "Skipped PREFIX SEI %d\n", type); skip_bits_long(gb, 8 * size); diff --git a/libavcodec/hevc_sei.h b/libavcodec/hevc_sei.h index f198402..c7623f5 100644 --- a/libavcodec/hevc_sei.h +++ b/libavcodec/hevc_sei.h @@ -134,6 +134,13 @@ typedef struct HEVCSEIFilmGrainCharacteristics { int persistence_flag; } HEVCSEIFilmGrainCharacteristics; +typedef struct HEVCSEIAmbientViewingEnvironment { + int present; + uint32_t ambient_illuminance; + uint16_t ambient_light_x; + uint16_t ambient_light_y; +} HEVCSEIAmbientViewingEnvironment; + typedef struct HEVCSEI { HEVCSEIPictureHash picture_hash; HEVCSEIFramePacking frame_packing; @@ -149,6 +156,7 @@ typedef struct HEVCSEI { HEVCSEIAlternativeTransfer alternative_transfer; HEVCSEITimeCode timecode; HEVCSEIFilmGrainCharacteristics film_grain_characteristics; + HEVCSEIAmbientViewingEnvironment ambient_viewing_env; } HEVCSEI; struct HEVCParamSets; diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index 09c07ac..13c6642 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -2998,6 +2998,15 @@ static int set_side_data(HEVCContext *s) } } + if (s->sei.ambient_viewing_env.present > 0) { + AVAmbientViewingEnvMetadata *metadata = av_ambient_viewing_env_metadata_create_side_data(out); + if (!metadata) + return AVERROR(ENOMEM); + metadata->ambient_illuminance = s->sei.ambient_viewing_env.ambient_illuminance; + metadata->ambient_light_x = s->sei.ambient_viewing_env.ambient_light_x; + metadata->ambient_light_y = s->sei.ambient_viewing_env.ambient_light_y; + } + return 0; } @@ -3800,6 +3809,7 @@ static int hevc_update_thread_context(AVCodecContext *dst, s->sei.mastering_display = s0->sei.mastering_display; s->sei.content_light = s0->sei.content_light; s->sei.alternative_transfer = s0->sei.alternative_transfer; + s->sei.ambient_viewing_env = s0->sei.ambient_viewing_env; ret = export_stream_params_from_sei(s); if (ret < 0) diff --git a/tests/ref/fate/hevc-dv-rpu b/tests/ref/fate/hevc-dv-rpu index 1980ab1..6879f71 100644 --- a/tests/ref/fate/hevc-dv-rpu +++ b/tests/ref/fate/hevc-dv-rpu @@ -117,6 +117,9 @@ source_min_pq=0 source_max_pq=3079 source_diagonal=42 [/SIDE_DATA] +[SIDE_DATA] +side_data_type=Ambient Viewing Environment +[/SIDE_DATA] [/FRAME] [FRAME] [SIDE_DATA] @@ -234,4 +237,7 @@ source_min_pq=0 source_max_pq=3079 source_diagonal=42 [/SIDE_DATA] +[SIDE_DATA] +side_data_type=Ambient Viewing Environment +[/SIDE_DATA] [/FRAME] From patchwork Mon Mar 28 12:41:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 35015 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c05:b0:7a:e998:b410 with SMTP id bw5csp205342pzb; Mon, 28 Mar 2022 05:41:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTxDGgGM9E3pIcDWT830hgKlP+UTxjqkewghEvSUrUmvCRE2HSTzkTfRtRH9YPea0xGX// X-Received: by 2002:a17:906:68c2:b0:6b4:9f26:c099 with SMTP id y2-20020a17090668c200b006b49f26c099mr27825318ejr.41.1648471311236; Mon, 28 Mar 2022 05:41:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648471311; cv=none; d=google.com; s=arc-20160816; b=CDQVYs5GG3rqzpqXAyF7nBt038B6/kreI0rJJQYlIWld+PwPATKZ8Vq0ZLfHtmTaGx TE9LsNaG7QAks25c8JEVDbCOC9y/9Deupw4BX2oJa6v045pJa9iqgEU7iS/rfvddKZdk NjQs3IVFP66LhBWV/n1drSnE1XM8zQd+bZQxl6/VT2GgRPuG+yAxWj+L6sFNI62xsn2V yn7IlmNmHXtE28bohZDeLrVUYiRiV5FO4DPBOzNDXanH1ANxkk8OjVM9/49aQHtSUdOg XImOBOg6S2WYVyAVUDhVdz5j6fQ6RFbKxwemL5Gh46Sa0BAbYpJ+BLiNxvvAkT7za0oN WvWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to; bh=68elnbbKynqVFRi1VkOpPf11GsVmNdkpOt9c0A7MbKY=; b=YG6IdhjUnpP3/Ds9OsOP3vQCeL0EINstXPznJT1QwjNDGAh4RAPzMJYdu73R6Wmymt 7ePFzImTv6vjEbnp69q5viQvT6oNitLc0Nh/ndenoyy7W///pjg7qaSvcPYS1OuCUns1 G0D7o6Nz99xwrvvqnoOnoSSyrn6+7tsAsCjIznypCMeVWz/PsHBWSEnekVrvI1P7RE6l OVYNlKhiyCrWeyy632ZLVoUWZYjGxzqPKLmcjvz6G9NLO+rnaagsHLS2Qas+UWTdc8sl /AitbqzbBVwiQ8AWH+5piuqWFosePPxbfzB9bZ39EB95bZUgBtqTwmb5ntz/jxsF7r1v RGAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=BNlu81II; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id k7-20020a1709067ac700b006e08357b31bsi13011530ejo.546.2022.03.28.05.41.50; Mon, 28 Mar 2022 05:41:51 -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=@gmail.com header.s=20210112 header.b=BNlu81II; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C3E6A68B223; Mon, 28 Mar 2022 15:41:28 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f52.google.com (mail-pj1-f52.google.com [209.85.216.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 97B7768B1F1 for ; Mon, 28 Mar 2022 15:41:20 +0300 (EEST) Received: by mail-pj1-f52.google.com with SMTP id m22so13930932pja.0 for ; Mon, 28 Mar 2022 05:41:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=fjpoJg+kJLhyknxhHM5XbYuKXbzU0rXMA9/+Ivk8jNU=; b=BNlu81IIlhezl+5f7iLSmy+tfx+zUejGI3L9yFlyc4FrNB7fxP7+mLXU9LP5/fDGpr 9IShqv0EAgjHBQkrCKoFfbCirm80B+ZxUGzMdhkoePT2icUV4KkMTmCldTLUwcrnvr/5 L07I6tqQlshgcpMAwykrQu01tu6aZod9fj31OJelJu/nKG/9maUZVMDz1Dz6yCxyalT5 pu3jlQKxMEtZ2pLgnNBW8A8PYUqJc5k8Snwtc6nq3oZF+LLH41wgfQoEdBtJYtvjYXQh EMV8+kZ5umugA6AinXgmjUdKSucFkTmgtTT89KLt/jS7sX3bzrVHqKPJKQQfpyY0Rl/G pMdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=fjpoJg+kJLhyknxhHM5XbYuKXbzU0rXMA9/+Ivk8jNU=; b=OmlgGUS6QWkgzkOPbul/+FHTJJ0L22GCf0eyTX6qTw1VytwFBC+8cKZ5GTF3GOVrNi EXUpbrXUw+Z6Uqz6eMYH+VfPR8pgPuZflDM/UHhDNCgcTj2k3H2Ji02vga5iNGRNczE6 AAhdCr4ZrfsfFfk/3AXat36NbAvsF2syDt6Ses0q4fcZjyts9Il0ryGqICfDEL3RaTjM xCc6MKf4GASApzZ7wXz6JQUVvnLMI1ANSmwCjcvp78KnpVbDTxQWl7aQFmesTrTL+Mu1 hEQ6jY95Q+6lT8Pj+Dmi9gpyTOLkOcpB4CcvueWj2O3jXEeclFcL+gUVI0a6S56Ax+18 UISg== X-Gm-Message-State: AOAM532C1oHA/Mt8irLl7zpxnhicAVdK4imQtNLFE3jCma1tqkoBwACr CD6VdPirNm/YmvhIcVx0TtY+Mh3JqZhuPw== X-Received: by 2002:a17:90b:4a0b:b0:1c7:221a:a600 with SMTP id kk11-20020a17090b4a0b00b001c7221aa600mr40396735pjb.112.1648471278692; Mon, 28 Mar 2022 05:41:18 -0700 (PDT) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id b2-20020a056a000a8200b004f1111c66afsm17895304pfl.148.2022.03.28.05.41.17 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Mar 2022 05:41:18 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Mon, 28 Mar 2022 20:41:10 +0800 Message-Id: <1648471271-22016-3-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1648471271-22016-1-git-send-email-lance.lmwang@gmail.com> References: <1648423513-21261-1-git-send-email-lance.lmwang@gmail.com> <1648471271-22016-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v2 3/4] avfilter/vf_showinfo: add support for ambient viewing environment 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: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: lAc0U/ZlmkyB From: Limin Wang Signed-off-by: Limin Wang --- libavfilter/vf_showinfo.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libavfilter/vf_showinfo.c b/libavfilter/vf_showinfo.c index 12d3931..f11b3d9 100644 --- a/libavfilter/vf_showinfo.c +++ b/libavfilter/vf_showinfo.c @@ -651,6 +651,15 @@ static void dump_color_property(AVFilterContext *ctx, AVFrame *frame) av_log(ctx, AV_LOG_INFO, "\n"); } +static void dump_ambient_viewing_env_metadata(AVFilterContext *ctx, AVFrameSideData *sd) +{ + const AVAmbientViewingEnvMetadata *metadata = (const AVAmbientViewingEnvMetadata *)sd->data; + + av_log(ctx, AV_LOG_INFO, "Ambient Viewing Environment metadata: \n"); + av_log(ctx, AV_LOG_INFO, " ambient_illuminance=%d, ambient_light_x=%d, ambient_light_y=%d", + metadata->ambient_illuminance, metadata->ambient_light_x, metadata->ambient_light_y); +} + static void update_sample_stats_8(const uint8_t *src, int len, int64_t *sum, int64_t *sum2) { int i; @@ -812,6 +821,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) case AV_FRAME_DATA_DOVI_METADATA: dump_dovi_metadata(ctx, sd); break; + case AV_FRAME_DATA_AMBIENT_VIEWING_ENV: + dump_ambient_viewing_env_metadata(ctx, sd); + break; default: av_log(ctx, AV_LOG_WARNING, "unknown side data type %d " "(%"SIZE_SPECIFIER" bytes)\n", sd->type, sd->size); From patchwork Mon Mar 28 12:41:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 35016 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c05:b0:7a:e998:b410 with SMTP id bw5csp205445pzb; Mon, 28 Mar 2022 05:42:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz6jh2PwOlG0bSkIjKMeaty8FxmW5f/JyzPUZvT2gX53gxJa0qDHe3s2q7U9gXrXQjixqTV X-Received: by 2002:a05:6402:2706:b0:418:fcb2:3a02 with SMTP id y6-20020a056402270600b00418fcb23a02mr15739762edd.111.1648471323634; Mon, 28 Mar 2022 05:42:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648471323; cv=none; d=google.com; s=arc-20160816; b=mgapm3PsVgmqt2N7/SJqnLEWT2Dri61vFyRI2CNWdnHqSTufX8CKXj6XlSjW2K+ea3 2uyYqL5HBkJFG6oXK2Wgbx/oBTYGNtdA3s30qTHHyIACDD2i0MFPjoF73cswJQFl/Gg9 YWUwpJd7Lqph8f5Q3wgTMJbf2YZAdyH99cGWzpI1xW0nfu7EV+t7cjMW/UA/bjdQzsLa 903goh+K44wxKKLc3OAkcrAdZYjDtRZSxErOK2/wyW9Zj2UO9R+OHACRZwsV4Hq80wjG JPIASIz5WIBbYEtu/VzXzaGYmyO6ioe6BS5+dyMtM1PyMtGVgGnHppDyBXJRjnjnnDgc WGWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to; bh=DBA4RLSH/29x6cnmwEHwbKbr1nwHlaMRlJPkOo+IGwM=; b=isJ0Vj6QLUewmMLEJbazt5EbrM/EK4eIHABiNNonvOphCm8UK6YBQIrvywHJzw6JGz htOljjIbJ2HwUpeRP0z18piAF2YRHab3EgVvFTmB7q+mkEK2vgtmJmb8sRQbrOeCU8bB uml5lWHihK0d3xhTsqTbHhsN/zcffV5j+c9AeycYpfeAC9uDsi4z+9VXrkPPmcnnOWKU BfnRZ4i3KG/9cqvOCjCoJZ1IYtbv4GKSwkQjdx7GX7LrmqMAoxreGjSN3D/H8jwCFsXR TBsfOBkG1CRw5pojKa7w/Cv3bE1xEIBh/QbzQ1YtO2xd7TQ590uH44e6I9N+liU1WHKj b5kw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=XIejxeZ3; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c3-20020a50cf03000000b00419040ba62bsi13247073edk.395.2022.03.28.05.42.01; Mon, 28 Mar 2022 05:42:03 -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=@gmail.com header.s=20210112 header.b=XIejxeZ3; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A93DD68B122; Mon, 28 Mar 2022 15:41:29 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C2DEF68A8FD for ; Mon, 28 Mar 2022 15:41:21 +0300 (EEST) Received: by mail-pf1-f171.google.com with SMTP id b13so10637372pfv.0 for ; Mon, 28 Mar 2022 05:41:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ldo9N2NRGQBSjR/UBqMkBrXVR75o4K3HaFgdH+Vm1oE=; b=XIejxeZ3oODrwPRAcfhxCm4QE8/G2q+rW0gVkyNh0o0f4tJ47HRbSfHe90INkX5Nlw 6pwtpOnE7FgExAChRMmtsbszZZN2PRTAtQk+BQ/0tm1kWT5dUbLXux85kTUCPPxK3rQL CuQYgXDM7THwsjDaGe3TV/HLTYLNzSCbQMZy83O9XTBPJH5QJ+U0W6sWwk0fAE97rJ9P gjizemSAw/vhE1+tWkrWOFJ5gYD6X2jsGTrRidiwLQ/YQAddgH7ejAhtu2Wez3WJxPGY XTLl1Nmp5mdDEPDYRKm7pKVOzG4+gzJoTm4RamrUpptMTl0Q/toPZjIeSem7i3zWwzsd cyJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ldo9N2NRGQBSjR/UBqMkBrXVR75o4K3HaFgdH+Vm1oE=; b=isD1QxWPWnHE8ykxVz7zrg1EbcZpbTBecCu0ncQIxN/busZToqjQ2ndOQatnSQ4RTJ HmzTZeNCD486K2jOHebm7HKGyVpyxm0b375F7FVoK73Ndn5ys4KOfxsoNn5yJokul+5+ K/OGd4aiFUTi3yShWtnyiUBx3qeG4EmyvkFGVsGxHFYIt7gE3dczCoWBNbPYb/X0Qlyy q/xptWxDrfurNF8LbeQwMKTHcHMcqfblXzL+3wbjkPiyQ3c90OWa7G5KNWusVebSIefR /g9Cu3wPX24aJwyxeR+Zo2KPA0A+zmrNQkolZqcIRuvh8ML5RaOHi8o8urkqQLf1mEFw A2Xw== X-Gm-Message-State: AOAM5323oTWdlOHO7FWWK3E/Dt3bhOFw+g518Z0MNIgi3fyMeGxLwTaB 1FDHjlQG1VyN2mLA4Aby+wKCijN1HPOK4g== X-Received: by 2002:a05:6a00:2408:b0:4f7:a8cb:9b63 with SMTP id z8-20020a056a00240800b004f7a8cb9b63mr23070294pfh.33.1648471280037; Mon, 28 Mar 2022 05:41:20 -0700 (PDT) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id b2-20020a056a000a8200b004f1111c66afsm17895304pfl.148.2022.03.28.05.41.18 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Mar 2022 05:41:19 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Mon, 28 Mar 2022 20:41:11 +0800 Message-Id: <1648471271-22016-4-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1648471271-22016-1-git-send-email-lance.lmwang@gmail.com> References: <1648423513-21261-1-git-send-email-lance.lmwang@gmail.com> <1648471271-22016-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v2 4/4] fftools/ffprobe: add support for ambient viewing environment 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: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: +O8FMyUCKG36 From: Limin Wang Signed-off-by: Limin Wang --- fftools/ffprobe.c | 5 +++++ tests/ref/fate/hevc-dv-rpu | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index 05c167e..39773c4 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -2605,6 +2605,11 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream, AVContentLightMetadata *metadata = (AVContentLightMetadata *)sd->data; print_int("max_content", metadata->MaxCLL); print_int("max_average", metadata->MaxFALL); + } else if (sd->type == AV_FRAME_DATA_AMBIENT_VIEWING_ENV) { + AVAmbientViewingEnvMetadata *metadata = (AVAmbientViewingEnvMetadata *)sd->data; + print_int("ambient_illuminance", metadata->ambient_illuminance); + print_int("ambient_light_x", metadata->ambient_light_x); + print_int("ambient_light_y", metadata->ambient_light_y); } else if (sd->type == AV_FRAME_DATA_ICC_PROFILE) { const AVDictionaryEntry *tag = av_dict_get(sd->metadata, "name", NULL, AV_DICT_MATCH_CASE); if (tag) diff --git a/tests/ref/fate/hevc-dv-rpu b/tests/ref/fate/hevc-dv-rpu index 6879f71..4ad5436 100644 --- a/tests/ref/fate/hevc-dv-rpu +++ b/tests/ref/fate/hevc-dv-rpu @@ -119,6 +119,9 @@ source_diagonal=42 [/SIDE_DATA] [SIDE_DATA] side_data_type=Ambient Viewing Environment +ambient_illuminance=3140000 +ambient_light_x=15635 +ambient_light_y=16450 [/SIDE_DATA] [/FRAME] [FRAME] @@ -239,5 +242,8 @@ source_diagonal=42 [/SIDE_DATA] [SIDE_DATA] side_data_type=Ambient Viewing Environment +ambient_illuminance=3140000 +ambient_light_x=15635 +ambient_light_y=16450 [/SIDE_DATA] [/FRAME]