From patchwork Sun Feb 4 15:14:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Stejerean X-Patchwork-Id: 46017 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:7b08:b0:19e:8a94:b663 with SMTP id s8csp272332pzh; Sun, 4 Feb 2024 07:14:32 -0800 (PST) X-Google-Smtp-Source: AGHT+IFPAN64zu52LxnAbN4Ix607cRPJitHHUppBNfKI0pT1F4qYYxfpRKM+Q7V6AHqZL+YU/9Iv X-Received: by 2002:aa7:c30f:0:b0:55f:ec52:73c4 with SMTP id l15-20020aa7c30f000000b0055fec5273c4mr3453019edq.34.1707059671758; Sun, 04 Feb 2024 07:14:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1707059671; cv=none; d=google.com; s=arc-20160816; b=Su2zoCt/HgQi+sft+FZoNCLsiUq26Pa4g747JVIFjgQ5pS8LMCLO/iO5MWloKUOrYN TQio5YvM+qEP3bqYJYTRLHKtYcPi8ij0dWu3HNty96dBDtVYwZLmflfVuhUy7y74Ekai a+e/MZfApYCEwVJ1s/cMrbUwdW1xicVMDbK+UpYqQ3E0zRXnWGQ/fc7+x4UeUBESymDn AO39t5q22X/b0xeRCR1gkWO7+xQQEhAEzb3fU1JxTMRAvEXIcLYUmrGWcKCQHEKIu1td 8G8ydjsZj99p+eobLauku7stZWr77wkEq2Oq3Qz1a1ft98kungdrL392u9wRxPD3rCvn CDZg== 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:from :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:feedback-id:message-id:thread-topic :thread-index:references:in-reply-to:mime-version:date:to :delivered-to; bh=uDDh+ZbqYuTdp6auzg8e0fFM502VrEXCOSkj604PzSs=; fh=8f2go5e8M8ZvHHEWnGkwYcok1gUQj/gAHgANnfmuWo0=; b=YX9yTgXTW46yE7/mSX3Kxo0lrzpaAiFF5aGzuE/M/IH/QE2kLgBeZDL5ARjK5b9axb M6hNMMXoKGYmKCyB/Zj+8NwvSb4xix5qo/T0MvYf3xysgxyGS1EXyblXw4iPYAD0sE88 SX835IwFTxsI+pAgiDvbKPSRXLWv0Frb4b2Gdmy3xlY0jIPMssngLZS64O94/5Y5belX C2FAz1qdx1JyZnsHr7moPTbGwCP23mM4NhxcpErz7cpdIC9LQu8O/OKmS7S+WK0yqZLi 4L72lh0Jb6+UZBP5m4DTkWYX4i4cPYQexlnvOgjBimsF2l2+m+0AVIKv+ztQ9aCcz+kK 2iEQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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 X-Forwarded-Encrypted: i=0; AJvYcCVvuaXVi8B+QPF0G24RFLgZSkkhig/WOc3VNX4cTtJysOmc+ZgNJNRg1Y6X3uivKDnu/dE71E0qDNqzUJAVsGFqjGiqD4sN0oZo7TA2yprgihcsFYXNcRzhGLUU3qfJHRKBpCfXNdfu5PeLouN2hEKfep7SYhSyLRCQ7hJQ6wqLHDV2xSF9VyDooDPbLXBziYhPza4+/Aa7nsa5Rb5xyR0nnyxBHgvMp49h+JvSQmUvt3gBG9IDQREaeIFesfe5zAHNNWKBZXCDwmZ0ZYiqHmSyXsbLKhc/WwApSwV/1UB9+n6G2uf/IAjLXN3VMppUzAub9wS4kCyATULeS7bcjJ3flVzHQ36qx+jAOw+uU6Hku0ir1SjQCeFXJ6gCu6n4ewAGlwRu6dvaIr1siGvVERpE41tXbytP2aJ+xQU/AYGNB4zcBtnSpWJLS4v2so+gvmR+k9ufSpEJG5ExsFIE+Kz/JM6fBW4y5/A7PU11RpuLq+k9eLFvlrrgdnTAiPhhZzFcNKbdM6baFBUFxbg0YgVqdrmHV4+fBcaYmom+MeG+/g/xDQVpACRLaZwZAvufejq8sMoNILUB7k4zKMSg1YuPBEQQmiEshb4nXIf8EPzL4r7fn1B8dvjA52niLn6y5wbB/VGUU+J/7d36M8e9V+MOiin7g/08NF9d5Y/vTEPOcoV0yXOHgmNGqNiKZIfpG2lGErU2pyUg6Cy+jcQJ8O1KqX8DDjHT5gyfhB0Noqr5lhCWfpJ97W8C6Ng4x4KxTvElmE4HeQh7OSKgI6NxI2okhNvqcwdP2FntdrMWX85N+2Lcr/2RbHSOT107xggVQ0NiKVtWpegxsKFR5F+yVK/JBfP3yGfqU143ztBqgOg4PUg1AtUDVX4muVZ/nEBq9mMPlFdMxIfNxzE71do9shCglK7khtiwsIcn1nceYxe+snyC8QjBdQZm0rraGjVnV5pPuU RI4cNkz9DS7zqEayEU2d+72HzGNHqcCcXF9lvBO0ackX5bbfYP0Jh/+1urx4r+KNnXBBWboFjs/o58F4cCcZDNmdkz0K/pPG2K1g2eX5ADxM4Osx/jJ85ZWWzh62pG1OReR//bsJ/lQ0LXIs+U8xdbjzCgbw0tIoQtMEIjXlqmhog82rEezX501t7W91ODc25wKqk/07Xwrz2j+Iq6UN1X9RnzNpt8vyIzdMLor8pxwmI5Du8mG1tQF/m9hMm2DVl7YwumUw3IQL6jf2p2m62FRpFyoYtJEfP8vIJObItDbKBNxJ7hU2Zn73oVfggfwk2J0IpUBuVhLASjTq6LWrdgQzVt68JaHyyUWaIdUjOEDzZceO4/XHMRg7zOWpSuQexO5pDDwocHe28KKVOy+EOIjO/c8NiQqzDZgGNEoZMlatawvxucj171672FrR0W5wUTWiLGizwAvTQt2JK+tShNCaKxwgJjiuCpAK74L56G4euLN4qyfnwcF/Nvdn1dErx6/cJY9+bzkMlA/gY9c/oCai3/3awSMe4DdeKK/PuQEA5wOWD9uQssYXgf5aMTfbGixt9HI9VCCzqN3zudr/rPmJ8ZlGtYAMr7ypd5PrLtllNGqMuv6sgePPJKF4KBeai20+0CbULzJQQiHVL1cA== Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 12-20020a508e4c000000b0055f13f8627dsi2928779edx.166.2024.02.04.07.14.31; Sun, 04 Feb 2024 07:14:31 -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; 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 2C9AA68CE0C; Sun, 4 Feb 2024 17:14:20 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from a27-228.smtp-out.us-west-2.amazonses.com (a27-228.smtp-out.us-west-2.amazonses.com [54.240.27.228]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 68A5568CE0C for ; Sun, 4 Feb 2024 17:14:13 +0200 (EET) To: =?utf-8?q?ffmpeg-devel=40ffmpeg=2Eorg?= Date: Sun, 4 Feb 2024 15:14:10 +0000 Mime-Version: 1.0 In-Reply-To: <20240204151404.28289-1-cosmin@cosmin.at> References: <20240204151404.28289-1-cosmin@cosmin.at> <20240204151404.28289-2-cosmin@cosmin.at> X-Mailer: Amazon WorkMail Thread-Index: AQHaV3zM+T1rFAMATIyo76W5iH4qaAAAAEtJ Thread-Topic: [PATCH v4 1/3] avcodec: add ambient viewing environment packet side data. X-Original-Mailer: git-send-email 2.42.1 X-Wm-Sent-Timestamp: 1707059649 Message-ID: <0101018d74af1fbe-f83033cd-38a7-448a-ab20-a948c3c63553-000000@us-west-2.amazonses.com> Feedback-ID: 1.us-west-2.An468LAV0jCjQDrDLvlZjeAthld7qrhZr+vow8irkvU=:AmazonSES X-SES-Outgoing: 2024.02.04-54.240.27.228 Subject: [FFmpeg-devel] [PATCH v4 1/3] avcodec: add ambient viewing environment packet 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: , X-Patchwork-Original-From: Cosmin Stejerean via ffmpeg-devel From: Cosmin Stejerean Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Cosmin_Stejerean?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: ZBK/iYOJerxW From: Damiano Galassi --- doc/APIchanges | 3 +++ fftools/ffprobe.c | 3 +++ libavcodec/avpacket.c | 1 + libavcodec/decode.c | 1 + libavcodec/packet.h | 9 ++++++++- libavcodec/version.h | 2 +- 6 files changed, 17 insertions(+), 2 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index e477ed78e0..1f5724324a 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -2,6 +2,9 @@ The last version increases of all libraries were on 2023-02-09 API changes, most recent first: +2024-02-04 - xxxxxxxxxx - lavc 60.39.100 - packet.h + Add AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT. + 2023-11-xx - xxxxxxxxxx - lavfi 9.16.100 - buffersink.h buffersrc.h Add av_buffersink_get_colorspace and av_buffersink_get_color_range. Add AVBufferSrcParameters.color_space and AVBufferSrcParameters.color_range. diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index f33e2471cb..aa1153e709 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -2392,6 +2392,9 @@ static void print_pkt_side_data(WriterContext *w, AVContentLightMetadata *metadata = (AVContentLightMetadata *)sd->data; print_int("max_content", metadata->MaxCLL); print_int("max_average", metadata->MaxFALL); + } else if (sd->type == AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT) { + print_ambient_viewing_environment( + w, (const AVAmbientViewingEnvironment *)sd->data); } else if (sd->type == AV_PKT_DATA_DYNAMIC_HDR10_PLUS) { AVDynamicHDRPlus *metadata = (AVDynamicHDRPlus *)sd->data; print_dynamic_hdr10_plus(w, metadata); diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c index 0f8c9b77ae..e118bbaad1 100644 --- a/libavcodec/avpacket.c +++ b/libavcodec/avpacket.c @@ -301,6 +301,7 @@ const char *av_packet_side_data_name(enum AVPacketSideDataType type) case AV_PKT_DATA_DOVI_CONF: return "DOVI configuration record"; case AV_PKT_DATA_S12M_TIMECODE: return "SMPTE ST 12-1:2014 timecode"; case AV_PKT_DATA_DYNAMIC_HDR10_PLUS: return "HDR10+ Dynamic Metadata (SMPTE 2094-40)"; + case AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT:return "Ambient viewing environment"; case AV_PKT_DATA_IAMF_MIX_GAIN_PARAM: return "IAMF Mix Gain Parameter Data"; case AV_PKT_DATA_IAMF_DEMIXING_INFO_PARAM: return "IAMF Demixing Info Parameter Data"; case AV_PKT_DATA_IAMF_RECON_GAIN_INFO_PARAM: return "IAMF Recon Gain Info Parameter Data"; diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 2cfb3fcf97..da6446d879 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -1434,6 +1434,7 @@ static const struct { { AV_PKT_DATA_CONTENT_LIGHT_LEVEL, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL }, { AV_PKT_DATA_ICC_PROFILE, AV_FRAME_DATA_ICC_PROFILE }, { AV_PKT_DATA_DYNAMIC_HDR10_PLUS, AV_FRAME_DATA_DYNAMIC_HDR_PLUS }, + { AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT,AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT }, }; int ff_decode_frame_props_from_pkt(const AVCodecContext *avctx, diff --git a/libavcodec/packet.h b/libavcodec/packet.h index 2c57d262c6..bb28e7d62a 100644 --- a/libavcodec/packet.h +++ b/libavcodec/packet.h @@ -331,7 +331,14 @@ enum AVPacketSideDataType { * If its value becomes huge, some code using it * needs to be updated as it assumes it to be smaller than other limits. */ - AV_PKT_DATA_NB + AV_PKT_DATA_NB, + + /** + * Ambient viewing environment metadata, as defined by H.274.. This metadata + * should be associated with a video stream and contains data in the form + * of the AVAmbientViewingEnvironment struct. + */ + AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT }; #define AV_PKT_DATA_QUALITY_FACTOR AV_PKT_DATA_QUALITY_STATS //DEPRECATED diff --git a/libavcodec/version.h b/libavcodec/version.h index 0fae3d06d3..f2f14eaed1 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #include "version_major.h" -#define LIBAVCODEC_VERSION_MINOR 38 +#define LIBAVCODEC_VERSION_MINOR 39 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ From patchwork Sun Feb 4 15:14:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Stejerean X-Patchwork-Id: 46018 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:7b08:b0:19e:8a94:b663 with SMTP id s8csp272391pzh; Sun, 4 Feb 2024 07:14:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IGpNGeufhbRLADlmWEgV2dam5SZPnO8UvCw7tIFGeJhnbbjsUslS02a/CMT6gQan7aNAhBj X-Received: by 2002:a19:7405:0:b0:511:319d:5151 with SMTP id v5-20020a197405000000b00511319d5151mr5606134lfe.6.1707059679666; Sun, 04 Feb 2024 07:14:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1707059679; cv=none; d=google.com; s=arc-20160816; b=rxCslv1TVMfPyyoP5ZVIRWEXyP8OYF4CoBfhM6Ap6dLTrqQJ5ifS8XcYxKeiDVkhPa PlVAKgKuBsX3QkS+kypxF7KP4js7Z5IsEdPYaS1QjU7yiVrh3LTEzrIcCBzDywzVlqCm mykD8rPZLutl7wSThRRDhW38eavfx2QThaoGqBJMQmcxtD7EFSOfNS1n0ASv6Lr6Plk6 CSJlGXKE3W/8pmKzhSubi8G4WyS4DMYoAFJn6nJGQ7m6XaeQKnY0XBLFGVArw81wYaxq RqfynFD7ZAPORaSlShJkD0395Dcgbd+P2eId+BQTVNbMwJIY4H19k1VyKquWiIfO1qQb y8pQ== 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:from :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:feedback-id:message-id:thread-topic :thread-index:references:in-reply-to:mime-version:date:to :delivered-to; bh=2XuswmyjbX/q/poU7Kop1Puiz0v/P4UBjox+mkWuq3s=; fh=UfTzU68W/lxCxTz+mWD6dfGTXORlc2UiGEuRh3FOa9c=; b=jlwWca2lqDQxyXFYViIj9XWbwiVEH6msPVReLEFYxlsy313aRvAk2iXn1SI/VhoHwq h5/BRuf7zy1LmhqbnTQdq0TttbNb0s/lBU3sRoUQ0j7nvlC3Rwd+CBZVkgTbaUGa4/mc CpCZ+H1mPeCTzaPP2JSXl86RJMTqX5KvjpMOptfHl8QsXVNpxozCOKfhBiFpSxPmw0xH FaruWzMsdTNzlaJiZroXr82tQBKhgdGw69eE0l12qVnX1a5s5btCcKQsYnheaBHdOJ6o vg9L2inlMWLB4f5moy+vENWYrgFAAv+Qxni3I88EGzUz2RcVdTtn23QmYmN3HSpfFebW cTRw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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 X-Forwarded-Encrypted: i=0; AJvYcCX4co4H4o7uiR8FoyPDLmVkNkd/yHVdyfqIeKkmGO/RhjggrG8z6/wTmOhkUP8w2KdzKopUGwbg6acc5nTgH80/YSkZpiO5FHKVzn+rBBf96e72SO9UImWxOuoTEzKTjzui5F0X8kotL8zCXrRWV81tqXaBxUG3/OSXo9Q6hMeOvnww/VrGwGCrWwD18pMZTpSXfPfi41TMyoeOgjI6m3S1YxH6pf2ErWoFLIPtP2ADod3yAoY6qXM/nU1eScfuC8hnzMSZCw/4xALCe6j0ld43H1Dmp3E1c61XhpJ9NiV0Bl0d95njVt+uIdUDBpLubLrip0m1Gq7dK+yvfdTM9KczLE9qKIp+EAKTyck9Mn0euwp2EhxUXrJkitnhPPBXA7boSdjRtp8U3IQAmXRS4BQCaV7lW6dWR3mNfKL3f6g9geBnIGNLsAwRP1Pf9q5SCYbt/L6nckhQIjdchmrWGyEWU2FxzD9vOQAK5ETtsIgGSXRoL9zsVfodjsGCGBiUluz8EMITJpN+HQSJvjGZORKJb4lAtuTn6LnhyFWtFmRHtXbvcI1ZXBtfqMJIQeH3tvWpC7UPb6mEQuraXo89mYXX7CUmbIe3FgcejlA+I/BLB0DxuLQTyvWjQ+lhrNm5VJTgEeW9AWJgdDt3ZYVYDPXrOZuofz1+N4Sc1yNtCVfGYZnzogpRc2vJLWNK9Xs2cmk4Tq9k5Nwan8Njr89v/reN9/XE0V198QXbQg46fRl6InnSRbMCs/4w5I1tbWunG5OKSy7+0P08U/3VuAJry/XVtSk9ao4Wxr+bsdpUa6+BHWAXFtV0MN8Tbit8eef58goGGWJbBLnBtKl8rWvzlmqllKQ35cf8jYIENj45RoUvUHLe/7OJ/Ty1/fKlkv+1BP+kfBbe8C8PDrNcPS9vIfvsh7Fxv+auC83AaT9xtRmJvRGCBPwwWUxn9aQIP1+eeLva8L bUtxN1WbZS7MzzhO3pDZiQEeGpN9NvgxTcp6BpK9womsk3BKmmFK/SS+qWEQab/V4s3fDh+FQvegxw61yGVUi7cLbndrXgO0/pIdPUr5YVuSv3p/eFRC+uue4ky86HUX9vv87MDl4cJGXYXC1ZTpAxoR4n3vyIbopLj0a+YzPJizz+TvJnTbPv1XYr9JkI+EmuiNVh6iI7SH1S86z4bvZ0FxcMm9UlsmBKqETlUynxu4MFRsSyGiWbj1RssVSRD+FouPzzUfxmEpgT0C63wdxIGdyQs9u9Ag1G3MSn8d8v/0ZTkQsuuVUBNcdek9z0Ls+kKdLML9zFbF4QBVeKWrs+DDiPq8F1tYK/7K7oc0n9jG+yHD5uHQFyc5F8suUGyK7k5Zuhf/xHZLam+cfF0VzGgjIqYP22YvifGQuvQhCGHal7aGIi5h2Pic35PIHUU2P1cfTok836FR9BosFDcO5jasSXr8NjJBm3ef/yqmTO//XSJuokVOZIXX93Iv9ZS2SNlrkhx/hs1oJf8xnyrHSZcKRnlrgBbkX5hwMGP6YVmExiApyNMM3fL0CRZGl6ClNpFgPjMMdnzB0mKZXk3K5D67cI/5b1F6ku+cox1Rh2/6yO1PjsDknu3m4HvNBpELZfKIV4fHiWzByB+m0= Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id u4-20020aa7d984000000b0055ffd604d4esi2436964eds.285.2024.02.04.07.14.39; Sun, 04 Feb 2024 07:14:39 -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; 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 43AD668D128; Sun, 4 Feb 2024 17:14:22 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from a27-32.smtp-out.us-west-2.amazonses.com (a27-32.smtp-out.us-west-2.amazonses.com [54.240.27.32]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7AD3B68D130 for ; Sun, 4 Feb 2024 17:14:14 +0200 (EET) To: =?utf-8?q?ffmpeg-devel=40ffmpeg=2Eorg?= Date: Sun, 4 Feb 2024 15:14:11 +0000 Mime-Version: 1.0 In-Reply-To: <20240204151404.28289-1-cosmin@cosmin.at> References: <20240204151404.28289-1-cosmin@cosmin.at> <20240204151404.28289-3-cosmin@cosmin.at> X-Mailer: Amazon WorkMail Thread-Index: AQHaV3zM+T1rFAMATIyo76W5iH4qaAAAAH8N Thread-Topic: [PATCH v4 2/3] avformat/mov: add support for 'amve' ambient viewing environment box. As defined in ISOBMFF (ISO/IEC 14496-12) document. X-Original-Mailer: git-send-email 2.42.1 X-Wm-Sent-Timestamp: 1707059650 Message-ID: <0101018d74af24d8-b0b1fe71-e0cf-49b5-95fb-069de82c855f-000000@us-west-2.amazonses.com> Feedback-ID: 1.us-west-2.An468LAV0jCjQDrDLvlZjeAthld7qrhZr+vow8irkvU=:AmazonSES X-SES-Outgoing: 2024.02.04-54.240.27.32 Subject: [FFmpeg-devel] [PATCH v4 2/3] avformat/mov: add support for 'amve' ambient viewing environment box. As defined in ISOBMFF (ISO/IEC 14496-12) document. 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: , X-Patchwork-Original-From: Cosmin Stejerean via ffmpeg-devel From: Cosmin Stejerean Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Cosmin_Stejerean?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: xXSjIo8y02c9 From: Damiano Galassi Co-Authored-By: Cosmin Stejerean --- libavformat/dump.c | 15 +++++++++++++ libavformat/isom.h | 3 +++ libavformat/mov.c | 35 +++++++++++++++++++++++++++++++ libavformat/movenc.c | 50 ++++++++++++++++++++++++++++++++++---------- 4 files changed, 92 insertions(+), 11 deletions(-) diff --git a/libavformat/dump.c b/libavformat/dump.c index aff51b43f6..add38914f2 100644 --- a/libavformat/dump.c +++ b/libavformat/dump.c @@ -28,6 +28,7 @@ #include "libavutil/intreadwrite.h" #include "libavutil/log.h" #include "libavutil/mastering_display_metadata.h" +#include "libavutil/ambient_viewing_environment.h" #include "libavutil/dovi_meta.h" #include "libavutil/mathematics.h" #include "libavutil/opt.h" @@ -379,6 +380,17 @@ static void dump_content_light_metadata(void *ctx, const AVPacketSideData *sd, metadata->MaxCLL, metadata->MaxFALL); } +static void dump_ambient_viewing_environment_metadata(void *ctx, const AVPacketSideData *sd) +{ + const AVAmbientViewingEnvironment *ambient = + (const AVAmbientViewingEnvironment *)sd->data; + av_log(ctx, AV_LOG_INFO, "Ambient Viewing Environment, " + "ambient_illuminance=%f, ambient_light_x=%f, ambient_light_y=%f", + av_q2d(ambient->ambient_illuminance), + av_q2d(ambient->ambient_light_x), + av_q2d(ambient->ambient_light_y)); +} + static void dump_spherical(void *ctx, const AVCodecParameters *par, const AVPacketSideData *sd, int log_level) { @@ -513,6 +525,9 @@ static void dump_sidedata(void *ctx, const AVStream *st, const char *indent, av_log(ctx, log_level, "SMPTE ST 12-1:2014: "); dump_s12m_timecode(ctx, st, sd, log_level); break; + case AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT: + dump_ambient_viewing_environment_metadata(ctx, sd); + break; default: av_log(ctx, log_level, "unknown side data type %d " "(%"SIZE_SPECIFIER" bytes)", sd->type, sd->size); diff --git a/libavformat/isom.h b/libavformat/isom.h index 77221d06e4..a4cca4c798 100644 --- a/libavformat/isom.h +++ b/libavformat/isom.h @@ -29,6 +29,7 @@ #include "libavutil/encryption_info.h" #include "libavutil/mastering_display_metadata.h" +#include "libavutil/ambient_viewing_environment.h" #include "libavutil/spherical.h" #include "libavutil/stereo3d.h" @@ -249,6 +250,8 @@ typedef struct MOVStreamContext { AVMasteringDisplayMetadata *mastering; AVContentLightMetadata *coll; size_t coll_size; + AVAmbientViewingEnvironment *ambient; + size_t ambient_size; uint32_t format; diff --git a/libavformat/mov.c b/libavformat/mov.c index 5fae777adb..42b0135987 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -6039,6 +6039,31 @@ static int mov_read_clli(MOVContext *c, AVIOContext *pb, MOVAtom atom) return 0; } +static int mov_read_amve(MOVContext *c, AVIOContext *pb, MOVAtom atom) +{ + MOVStreamContext *sc; + const int illuminance_den = 10000; + const int ambient_den = 50000; + if (c->fc->nb_streams < 1) + return AVERROR_INVALIDDATA; + sc = c->fc->streams[c->fc->nb_streams - 1]->priv_data; + if (atom.size < 6) { + av_log(c->fc, AV_LOG_ERROR, "Empty Ambient Viewing Environment Info box\n"); + return AVERROR_INVALIDDATA; + } + if (sc->ambient){ + av_log(c->fc, AV_LOG_WARNING, "Ignoring duplicate AMVE\n"); + return 0; + } + sc->ambient = av_ambient_viewing_environment_alloc(&sc->ambient_size); + if (!sc->ambient) + return AVERROR(ENOMEM); + sc->ambient->ambient_illuminance = av_make_q(avio_rb32(pb), illuminance_den); + sc->ambient->ambient_light_x = av_make_q(avio_rb16(pb), ambient_den); + sc->ambient->ambient_light_y = av_make_q(avio_rb16(pb), ambient_den); + return 0; +} + static int mov_read_st3d(MOVContext *c, AVIOContext *pb, MOVAtom atom) { AVStream *st; @@ -8215,6 +8240,7 @@ static const MOVParseTableEntry mov_default_parse_table[] = { { MKTAG('i','s','p','e'), mov_read_ispe }, { MKTAG('i','p','r','p'), mov_read_iprp }, { MKTAG('i','i','n','f'), mov_read_iinf }, +{ MKTAG('a','m','v','e'), mov_read_amve }, /* ambient viewing environment box */ { 0, NULL } }; @@ -8680,6 +8706,7 @@ static void mov_free_stream_context(AVFormatContext *s, AVStream *st) av_freep(&sc->spherical); av_freep(&sc->mastering); av_freep(&sc->coll); + av_freep(&sc->ambient); } static int mov_read_close(AVFormatContext *s) @@ -9072,6 +9099,14 @@ static int mov_read_header(AVFormatContext *s) sc->coll = NULL; } + if (sc->ambient) { + if (!av_packet_side_data_add(&st->codecpar->coded_side_data, &st->codecpar->nb_coded_side_data, + AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT, + (uint8_t *) sc->ambient, sc->ambient_size, 0)) + return AVERROR(ENOMEM); + + sc->ambient = NULL; + } break; } } diff --git a/libavformat/movenc.c b/libavformat/movenc.c index b724bd5ebc..47f0681258 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -2208,7 +2208,7 @@ static int mov_write_clli_tag(AVIOContext *pb, MOVTrack *track) return 12; } -static inline int64_t rescale_mdcv(AVRational q, int b) +static inline int64_t rescale(AVRational q, int b) { return av_rescale(q.num, b, q.den); } @@ -2231,19 +2231,46 @@ static int mov_write_mdcv_tag(AVIOContext *pb, MOVTrack *track) avio_wb32(pb, 32); // size ffio_wfourcc(pb, "mdcv"); - avio_wb16(pb, rescale_mdcv(metadata->display_primaries[1][0], chroma_den)); - avio_wb16(pb, rescale_mdcv(metadata->display_primaries[1][1], chroma_den)); - avio_wb16(pb, rescale_mdcv(metadata->display_primaries[2][0], chroma_den)); - avio_wb16(pb, rescale_mdcv(metadata->display_primaries[2][1], chroma_den)); - avio_wb16(pb, rescale_mdcv(metadata->display_primaries[0][0], chroma_den)); - avio_wb16(pb, rescale_mdcv(metadata->display_primaries[0][1], chroma_den)); - avio_wb16(pb, rescale_mdcv(metadata->white_point[0], chroma_den)); - avio_wb16(pb, rescale_mdcv(metadata->white_point[1], chroma_den)); - avio_wb32(pb, rescale_mdcv(metadata->max_luminance, luma_den)); - avio_wb32(pb, rescale_mdcv(metadata->min_luminance, luma_den)); + avio_wb16(pb, rescale(metadata->display_primaries[1][0], chroma_den)); + avio_wb16(pb, rescale(metadata->display_primaries[1][1], chroma_den)); + avio_wb16(pb, rescale(metadata->display_primaries[2][0], chroma_den)); + avio_wb16(pb, rescale(metadata->display_primaries[2][1], chroma_den)); + avio_wb16(pb, rescale(metadata->display_primaries[0][0], chroma_den)); + avio_wb16(pb, rescale(metadata->display_primaries[0][1], chroma_den)); + avio_wb16(pb, rescale(metadata->white_point[0], chroma_den)); + avio_wb16(pb, rescale(metadata->white_point[1], chroma_den)); + avio_wb32(pb, rescale(metadata->max_luminance, luma_den)); + avio_wb32(pb, rescale(metadata->min_luminance, luma_den)); return 32; } +static int mov_write_amve_tag(AVIOContext *pb, MOVTrack *track) +{ + const int illuminance_den = 10000; + const int ambient_den = 50000; + const AVPacketSideData *side_data; + const AVAmbientViewingEnvironment *ambient; + + + side_data = av_packet_side_data_get(track->st->codecpar->coded_side_data, + track->st->codecpar->nb_coded_side_data, + AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT); + + if (!side_data) + return 0; + + ambient = (const AVAmbientViewingEnvironment*)side_data->data; + if (!ambient || !ambient->ambient_illuminance.num) + return 0; + + avio_wb32(pb, 16); // size + ffio_wfourcc(pb, "amve"); + avio_wb32(pb, rescale(ambient->ambient_illuminance, illuminance_den)); + avio_wb16(pb, rescale(ambient->ambient_light_x, ambient_den)); + avio_wb16(pb, rescale(ambient->ambient_light_y, ambient_den)); + return 16; +} + static void find_compressor(char * compressor_name, int len, MOVTrack *track) { AVDictionaryEntry *encoder; @@ -2457,6 +2484,7 @@ static int mov_write_video_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex if (track->mode == MODE_MOV || track->mode == MODE_MP4) { mov_write_clli_tag(pb, track); mov_write_mdcv_tag(pb, track); + mov_write_amve_tag(pb, track); } if (track->mode == MODE_MP4 && mov->fc->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) { From patchwork Sun Feb 4 15:14:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cosmin Stejerean X-Patchwork-Id: 46019 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:7b08:b0:19e:8a94:b663 with SMTP id s8csp272439pzh; Sun, 4 Feb 2024 07:14:48 -0800 (PST) X-Google-Smtp-Source: AGHT+IHOtwcfe0NOiPfuHA63s7aP6kwI7ZsTQauv+18Fr5ogYskNXF91/dr7sR2QFx35+1jR2668 X-Received: by 2002:a17:906:5784:b0:a37:b1b8:a64a with SMTP id k4-20020a170906578400b00a37b1b8a64amr487605ejq.32.1707059687958; Sun, 04 Feb 2024 07:14:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1707059687; cv=none; d=google.com; s=arc-20160816; b=VuEDRJxVjz6CDizSDVPHKyLCeLwDGQW6qkf7t8Xmzd7BBC5kZ/1zhj6XU/YRtk+vSv pcod2TuwmfwQYcXBHNXiUVGREQEOjsw+e4dbsoLIovuJ2qq6NUXpG16PbD7OU9BhrR2+ sK+DbsXYob226jjO+AveEYa9Znzv74ZZS3z4RdVKHpbcMUIuQX/0cLgxUGo7Vci1m0Rg +cpNv54HnMJuCvo9tNbdZ8p99Zjz2eeidARRAYA4aJs6/TKYkzewwlu2yxpf4nhd10UA l7zDWhYRLrw7SNRGhVx969BVhkghQkSUaLvU8WyFGkVmjsUPhfzOYulnmkABeXvAuPad tawg== 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:from :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:feedback-id:message-id:thread-topic :thread-index:references:in-reply-to:mime-version:date:to :delivered-to; bh=KlAhKiuneuMtecY/wTiuf+uV89bb4B6B1D3auOp7Gt8=; fh=0e6AgS22OZWWRkY8dGlFQWO3zfaPI4d2dzm/n6occlA=; b=Nv72MZjp68qOj5sA1JeJIEPywCaIArB2Bs6aNvWyupqGzV+fT9abe8msQBFpYta64i BhYRAQPkCLtzNyIETPqmCwOr8MLB+IWZYE4vBkLZmXpw9DGgrwwga9XPkjpqf564rN6E I7PsyLDIDFlyyHTX2j+PmHdabTpdJt85/r6TcnDA6iSAy58yOCE/BB0RfpkfJnR/lN16 KBGjPoaiwspcl60UbXIP2+bGEeoCtFT3b46vO06XctCQM7KZxDFw99BgtKTYEX3Ke9Dg YXZN7yuHsk2lTCpfNo/bVvsANnKt5XCfSYKw6iqICAwvKRyMqvVEeeA1iJi5PyKY7zRj 7Ouw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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 X-Forwarded-Encrypted: i=0; AJvYcCXiCuXjPP9ZW8YXU8VgM0QZnhlqfgwOpjF8O5utxI1KY0pHPGhYb4db9/53JXwDLS4CCLgibYc5N7843SwKA5OWy7imV1a7r8TC2Ef4U2ZInZI66phS5US1Zs3S6JAm862E6wJuMANO466saS1kTMCMec07ybwlFRjxK2yvru/8qCxBEd7/IyuuTv9m2tMknAMrfM0hcFYGYZ1icwHSU23sWn5todkg2QZYveSuM3WCrjCUCF8OrOMBpJo0YehyRouKWmLmc1W20ypp3q8RmC+qmd0QFt2ClfPD8dUNBYOFPbbRP66GwY3d1l5P7iGgfJf4iu7JmFqNGULdcQihpCqC01UVXpc2pBxlZMhAO899mMq5OykW+mazZU/kMVG68Y+PREXL+VhV7zEkF2CNwcQWnIMNCfFnkAu2SOkTY/0N7OlXzgCPC0tM7HgvFUoMt+soLz8Z+5VfWiS2GL76edGqaEESvrZHLhy/ghoL6wI1YQYOHzGtR9tXYd1MK/zwasMDCgtSwJGAFbDMsvwdygTOFLzRniyE08NoRXJaMHJ3fDY3aLH9scFKoblBs+kwezMQWaxb64SaePu1qofE31p2FBJZ4wYYV1gKAtQwDkA4xlHifx9Rn0t3rv2ltAvJw9CXRJUtjpgvz4060g9ecFBv8VP+LpCCe7T4GGUTUztl6w4GE72XpkMG5HxF2q7tlZTRuZkBdxCivI2QlCWXfJc01gcW6ryre+7bNdnlb+N9ZmJkyv2vdT7sn4mwPK1ooXEAdBkQQ5aBZMgpqCCzmulneumbGfoKUl0HQmHfoRca11E6KsAkoSfoaBaqAcfjutm9l80Q1XebmgDmw+/wbFOS3xvWQQaHsrYa0Yle6WOpU8bw22ojQRZUUHxPVtjF5CyWSl8xNWBvKXQdqjtd21bbzjTLP6BvyEVH7WhKlx5u5sfAr+1ZIrgw6P3UhyaMoJZZph 9LHddGYEucVOVKEKQ+HjdiUQt0XtbCqj/DNH0pxULdZk2sgIMndyyRDYBujHKL//LapjpyeDqYUwK7Ra7YJ8fV6cV+kub+rGU4jkZvjjHyYES5FstzwkJFTS3HzOpz2jfJhWl2gxvlDlcEjYmPYo7bY+5DEH/GjUkZdouXGiinTJ4og1YpnVk0FillXtgzBJtkb/UGiUMM0cfohKk0pG10R6eSOgB6WXHWKyJp8aKe3joofYGequU9R8YEjgTu0I8bd7j418Vaqye47CpTW9su703kfsitOWsq/V4B8x+2tIBoVX8+OOsjbOvYWQqmBCuIId9EIrDS2Os98uAW3CICU/AVow9fAQbgdfl/b5BsvRHzih/2I6Qlv+tJtX7l78DwMnGKTUDM/dIjjp5Wc67D+eMD0MN9uZVdHSMIi+NDIGGARz8/ZVfYSM8RF6zYTQKr+UQLqnXWHvnh/sS78BFbNOXny2R8BU5isjEDax/uPNnZuwR0cbgKMV7RHZ8/TmNkqu4+yo1kp3FjzYI5cJBaHTQTHeOkaXi1XF8urQJuhwOupvlPbJCl9FhH7e+oOM5aaavNsZLTqjm2lQk65iHdl1YYVWVMahWrP1iG6xxAilPhQEVYGau8m0mY6W7Q1fPbeFwA83Ea Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j7-20020a170906278700b00a37b76105fesi129895ejc.857.2024.02.04.07.14.47; Sun, 04 Feb 2024 07:14:47 -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; 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 5568168D163; Sun, 4 Feb 2024 17:14:24 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from a27-222.smtp-out.us-west-2.amazonses.com (a27-222.smtp-out.us-west-2.amazonses.com [54.240.27.222]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8E49568D13F for ; Sun, 4 Feb 2024 17:14:15 +0200 (EET) To: =?utf-8?q?ffmpeg-devel=40ffmpeg=2Eorg?= Date: Sun, 4 Feb 2024 15:14:13 +0000 Mime-Version: 1.0 In-Reply-To: <20240204151404.28289-1-cosmin@cosmin.at> References: <20240204151404.28289-1-cosmin@cosmin.at> <20240204151404.28289-4-cosmin@cosmin.at> X-Mailer: Amazon WorkMail Thread-Index: AQHaV3zM+T1rFAMATIyo76W5iH4qaAAAALTY Thread-Topic: [PATCH v4 3/3] tests/fate/mov: add a test for reading and writing amve box X-Original-Mailer: git-send-email 2.42.1 X-Wm-Sent-Timestamp: 1707059652 Message-ID: <0101018d74af2a10-78b9d97b-fda6-43f1-a3b1-eaebd863b97d-000000@us-west-2.amazonses.com> Feedback-ID: 1.us-west-2.An468LAV0jCjQDrDLvlZjeAthld7qrhZr+vow8irkvU=:AmazonSES X-SES-Outgoing: 2024.02.04-54.240.27.222 Subject: [FFmpeg-devel] [PATCH v4 3/3] tests/fate/mov: add a test for reading and writing amve box 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: , X-Patchwork-Original-From: Cosmin Stejerean via ffmpeg-devel From: Cosmin Stejerean Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Cosmin_Stejerean?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: zfgTw1g6Ou/E From: Cosmin Stejerean --- tests/fate/mov.mak | 5 +++++ tests/ref/fate/mov-read-amve | 8 ++++++++ tests/ref/fate/mov-write-amve | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 tests/ref/fate/mov-read-amve create mode 100644 tests/ref/fate/mov-write-amve diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak index f202f36d96..65854d1628 100644 --- a/tests/fate/mov.mak +++ b/tests/fate/mov.mak @@ -9,6 +9,7 @@ FATE_MOV = fate-mov-3elist \ fate-mov-frag-encrypted \ fate-mov-tenc-only-encrypted \ fate-mov-invalid-elst-entry-count \ + fate-mov-write-amve \ fate-mov-gpmf-remux \ fate-mov-440hz-10ms \ fate-mov-ibi-elst-starts-b \ @@ -25,6 +26,7 @@ FATE_MOV_FFPROBE = fate-mov-neg-firstpts-discard \ fate-mov-zombie \ fate-mov-init-nonkeyframe \ fate-mov-displaymatrix \ + fate-mov-read-amve \ fate-mov-spherical-mono \ fate-mov-guess-delay-1 \ fate-mov-guess-delay-2 \ @@ -109,6 +111,9 @@ fate-mov-init-nonkeyframe: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_packets - fate-mov-displaymatrix: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=display_aspect_ratio,sample_aspect_ratio:stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/displaymatrix.mov +fate-mov-read-amve: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/amve.mov +fate-mov-write-amve: CMD = transcode mov $(TARGET_SAMPLES)/mov/amve.mov mp4 "-c copy" "-c:v copy -t 0.5" "-show_entries stream_side_data_list" + fate-mov-spherical-mono: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream_side_data_list -select_streams v -v 0 $(TARGET_SAMPLES)/mov/spherical.mov fate-mov-gpmf-remux: CMD = md5 -i $(TARGET_SAMPLES)/mov/fake-gp-media-with-real-gpmf.mp4 -map 0 -c copy -fflags +bitexact -f mp4 diff --git a/tests/ref/fate/mov-read-amve b/tests/ref/fate/mov-read-amve new file mode 100644 index 0000000000..91d34d94dd --- /dev/null +++ b/tests/ref/fate/mov-read-amve @@ -0,0 +1,8 @@ +[STREAM] +[SIDE_DATA] +side_data_type=Ambient viewing environment +ambient_illuminance=3140000/10000 +ambient_light_x=15635/50000 +ambient_light_y=16450/50000 +[/SIDE_DATA] +[/STREAM] diff --git a/tests/ref/fate/mov-write-amve b/tests/ref/fate/mov-write-amve new file mode 100644 index 0000000000..115cdbd9f0 --- /dev/null +++ b/tests/ref/fate/mov-write-amve @@ -0,0 +1,33 @@ +850c56be1114aa21a2e41bd4ea3da144 *tests/data/fate/mov-write-amve.mp4 +23677 tests/data/fate/mov-write-amve.mp4 +#extradata 0: 49, 0x7f8d1145 +#tb 0: 1/15360 +#media_type 0: video +#codec_id 0: h264 +#dimensions 0: 640x360 +#sar 0: 0/1 +0, -1024, 0, 512, 11849, 0xf21aa1d0 +0, -512, 2048, 512, 1572, 0xf0c41b68, F=0x0 +0, 0, 1024, 512, 347, 0x9b8daabf, F=0x0 +0, 512, 512, 512, 195, 0x557e58db, F=0x0 +0, 1024, 1536, 512, 134, 0x423541b4, F=0x0 +0, 1536, 3072, 512, 1454, 0xe5a2cdad, F=0x0 +0, 2048, 2560, 512, 168, 0xd0ef5402, F=0x0 +0, 2560, 5120, 512, 1395, 0x603eb602, F=0x0 +0, 3072, 4096, 512, 304, 0x69cc92a6, F=0x0 +0, 3584, 3584, 512, 145, 0x3f1a4462, F=0x0 +0, 4096, 4608, 512, 154, 0x953851d1, F=0x0 +0, 4608, 5632, 512, 876, 0xad65ace7, F=0x0 +0, 5120, 7680, 512, 742, 0x6b6d689f, F=0x0 +0, 5632, 6656, 512, 177, 0xa4f2573b, F=0x0 +0, 6144, 6144, 512, 101, 0xb0722d2b, F=0x0 +0, 6656, 7168, 512, 105, 0x1f6033ed, F=0x0 +0, 7168, 9728, 512, 589, 0xcd912063, F=0x0 +[STREAM] +[SIDE_DATA] +side_data_type=Ambient viewing environment +ambient_illuminance=3140000/10000 +ambient_light_x=15635/50000 +ambient_light_y=16450/50000 +[/SIDE_DATA] +[/STREAM]