From patchwork Tue Jan 10 21:19:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 39955 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp4271031pzb; Tue, 10 Jan 2023 13:20:08 -0800 (PST) X-Google-Smtp-Source: AMrXdXvm8NguiFGjDtc1K/oknnwqUxm212Z2/qn2j14+OAbIBggMQL4y6T+gPjYS9mUwoL9dQfkR X-Received: by 2002:a17:907:d410:b0:7c1:fbea:c5ce with SMTP id vi16-20020a170907d41000b007c1fbeac5cemr61169087ejc.7.1673385608460; Tue, 10 Jan 2023 13:20:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673385608; cv=none; d=google.com; s=arc-20160816; b=ipf+P2xMfr6KF4+cWijWHBa1XOgkVVUOqSlmCUKFe/0+47aKIy34dYf65rqpUoMJ1r P4jZc1EOYzPrvzUm44qtw7IUsfW8kdGqhxqfEgtU4gPVnI6AIJ4vbwIrFo3Yy4eZKV4r IdbHoK3dBDLoBS4FJYg6GjFHmte9HUfEaIUY7y9bXcgfcBw3uIM+1QgLwNQyXxYy50PR XwPvXkjAR9v1yB2cQRq/vbLDj1eIbfdsVJsY+LS2R6AyhDRQjH0gfCClG+4lJRTKsSV9 G34TsUALTDJUjZ2RZFfnDgU8SIS7IQxJUHvb1YarRrCZeATjONPJGA0EzQknRxSYic/z RghA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=E+D4M6LnNGMgQydinUEX9e5e8UhWa2KSBhfbTAVLln4=; b=aesj7l3xGY+T0lTxOKNddDyg6naQf2OHQs/7y4K4lYpJHLwWHXoXtTTS/Jd6dyvnn7 Bh46h11loLADVr8PEXx50pUdHakxEiYFN4ARKO335uRZsSDm60o/KlQv4M3mQakQYece QvONLfbqUvF0jM075KektSbpOl+WjndXYZ1FTntjFLUooGjRyAPb73DLyJ1nDzxh73qw /y71R/X5JIQeU+bYmkxl8apUY5XU+fWunF0cXdItasTw55jhAJVKRF/H7ZBytPSwMw/Q uIMkuBP5Lttgrqxn/9NH564r55J6TA31tzC2fSqEswnBeOmLTUqo8miVsSd7t3F8acSY GE4g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Z3e12k21; 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 gn2-20020a1709070d0200b00829e391ba00si13426831ejc.80.2023.01.10.13.20.07; Tue, 10 Jan 2023 13:20:08 -0800 (PST) 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=Z3e12k21; 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 A9B3068BD19; Tue, 10 Jan 2023 23:20:03 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com [209.85.208.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2072E68BB59 for ; Tue, 10 Jan 2023 23:19:57 +0200 (EET) Received: by mail-lj1-f181.google.com with SMTP id p25so7762234ljn.12 for ; Tue, 10 Jan 2023 13:19:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=9A3Ufglc5t9rENPtlXdms5MqDCUoU1+sX3glo/yQzWY=; b=Z3e12k21S5UYonMBDM6/xQTmNJdeBgmbrBZEI8+rcHQHFQAzcA6VzaXbFv4gSz+xAi hQe9RrvHRuDV1WMlekbpfZxLc8J+dYzZr6mNiaSoUULhgF6dX3wkuvsK/9CZVx9ETZhB YZdEoL70++MCErhwJmqQHppeI9KWoVzjRoSxrVrPsyFCdPTjHxxrVX5PMJdr+npFTh9v AAE5iN1OtHuO+gnO5e/kaOP+DppoVH0Rbto9Zse+gBAIJz8Lcj08Te4y4uk4o4fSkhSI 2gB+dLqNDy+PZXUMeSJSHvR5p89ZoGfgQqkRBoePyoOW6W6hgKErmqOVQJP9GIk1JaZ/ R8Gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=9A3Ufglc5t9rENPtlXdms5MqDCUoU1+sX3glo/yQzWY=; b=uoNG5HSxzzVVv+Y7mmnu21bvA29bhDb2K3XhIOUq+3jIxgXImKDvdLWPYRd3PnEzri YU0Hpjb4frnefbiXs2kLqoSlxWpiwuaHXIGflAD9l90wy9/lZTzM09fIPpr8bDuLfn73 Dcy0QgbdIybjKzKAZ8//zBWhIXPvjE7gZqFgulE3lbrw1vqwaxj3AXvG5riW3vwLU5K8 82ssMEZlpyWyHWOaGTcnocA2AHpFl7XvLo47/+hy2yht4MrPlAUTCejKM5NnUK8Ek61z kJTrzqmJ5KzDubTKO6Fs1WdDmIn4CREYSNjsKpORPJL+EFeepci4NxODvhOETW5OYq45 tNMA== X-Gm-Message-State: AFqh2kq2X4frjFynv34C9sNIvXfWkiclbtrHWvlxMvuW9o1MI87zcvHa oQmTztGqnL7cGyxVa95r1mGFEa+EY6Y= X-Received: by 2002:a2e:aa93:0:b0:284:254a:9d5a with SMTP id bj19-20020a2eaa93000000b00284254a9d5amr2752472ljb.39.1673385596342; Tue, 10 Jan 2023 13:19:56 -0800 (PST) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id r4-20020a2e8e24000000b00283ad9caa59sm1142240ljk.140.2023.01.10.13.19.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Jan 2023 13:19:55 -0800 (PST) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Tue, 10 Jan 2023 23:19:46 +0200 Message-Id: <20230110211949.8195-1-jeebjp@gmail.com> X-Mailer: git-send-email 2.39.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/4] avcodec/cbs_{h2645, sei}: add support for Ambient Viewing Environment SEI 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: elWTcR/fQeOx Defined by H.274, this SEI message is utilized by iPhones to save the nominal ambient viewing environment for the display of recorded HDR content. --- libavcodec/cbs_h2645.c | 6 ++++++ libavcodec/cbs_sei.h | 6 ++++++ libavcodec/cbs_sei_syntax_template.c | 17 +++++++++++++++++ 3 files changed, 29 insertions(+) diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c index 4ee06003c3..80e48829af 100644 --- a/libavcodec/cbs_h2645.c +++ b/libavcodec/cbs_h2645.c @@ -1500,6 +1500,12 @@ static const SEIMessageTypeDescriptor cbs_sei_common_types[] = { sizeof(SEIRawAlternativeTransferCharacteristics), SEI_MESSAGE_RW(sei, alternative_transfer_characteristics), }, + { + SEI_TYPE_AMBIENT_VIEWING_ENVIRONMENT, + 1, 0, + sizeof(SEIRawAmbientViewingEnvironment), + SEI_MESSAGE_RW(sei, ambient_viewing_environment), + }, SEI_MESSAGE_TYPE_END, }; diff --git a/libavcodec/cbs_sei.h b/libavcodec/cbs_sei.h index c7a7a95be0..1c327a4689 100644 --- a/libavcodec/cbs_sei.h +++ b/libavcodec/cbs_sei.h @@ -65,6 +65,12 @@ typedef struct SEIRawAlternativeTransferCharacteristics { uint8_t preferred_transfer_characteristics; } SEIRawAlternativeTransferCharacteristics; +typedef struct SEIRawAmbientViewingEnvironment { + uint32_t ambient_illuminance; + uint16_t ambient_light_x; + uint16_t ambient_light_y; +} SEIRawAmbientViewingEnvironment; + typedef struct SEIRawMessage { uint32_t payload_type; uint32_t payload_size; diff --git a/libavcodec/cbs_sei_syntax_template.c b/libavcodec/cbs_sei_syntax_template.c index 0ef7b42ed9..6a7cc36dda 100644 --- a/libavcodec/cbs_sei_syntax_template.c +++ b/libavcodec/cbs_sei_syntax_template.c @@ -144,6 +144,23 @@ static int FUNC(alternative_transfer_characteristics) return 0; } +static int FUNC(ambient_viewing_environment) + (CodedBitstreamContext *ctx, RWContext *rw, + SEIRawAmbientViewingEnvironment *current, + SEIMessageState *state) +{ + static const uint16_t max_ambient_light_value = 50000; + int err; + + HEADER("Ambient Viewing Environment"); + + u(32, ambient_illuminance, 1, MAX_UINT_BITS(32)); + u(16, ambient_light_x, 0, max_ambient_light_value); + u(16, ambient_light_y, 0, max_ambient_light_value); + + return 0; +} + static int FUNC(message)(CodedBitstreamContext *ctx, RWContext *rw, SEIRawMessage *current) {