From patchwork Mon Jun 17 13:41:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Derek Buitenhuis X-Patchwork-Id: 49975 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:9196:0:b0:460:55fa:d5ed with SMTP id s22csp1953157vqg; Mon, 17 Jun 2024 06:42:51 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUP2KYjVbEpmrXZH+NGzgsm1YfGAn6gWE4Aej2rvgw4tISfa5wiCd9LwqzzWVBCxXYfu8DcUSBaM4rdqmV/nvGkPcFts7h0SdUGCg== X-Google-Smtp-Source: AGHT+IFYMl2XpwivZy8Xji/DuhkpXul4diA6hrlox34t/P0/ER+N88Vd/REMTxtILRUMRue4GBiT X-Received: by 2002:a05:6402:1247:b0:57c:d3d4:bad2 with SMTP id 4fb4d7f45d1cf-57cd3d4bafbmr2784663a12.4.1718631770870; Mon, 17 Jun 2024 06:42:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1718631770; cv=none; d=google.com; s=arc-20160816; b=aMZVrK1SIYbvvvWfhC79eZ3wugUWWG574v1bymnar+Wo/Nx3Ta2ghmTO1SB9z7X0Tm 0Hi7MN7gjPSWFXLh5SQHo4XsaU1cz1nlrPMpO5g7Vx9spPDgVFxGKGTZcgpPbtEPppB5 kd24SScsixS1jpeukVIkc9hDS/MKgABp3+0svFeBDnSZV8irWgih2+rygSu5Vl5QEUoY JexQ9vxh5MFhnJXVJToJFJjsCgAovbFAPw7Jrimg2Ex4VTdsahaaygePYVLqZh60Gd9Y 9wyoGQ8ryRGBa/nP24MY0HLFzIxicYBkwWHkUoU6BfKXdAMUW36w17lfNYW3AU+mx6um rfSQ== 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:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=UYbfFutHhJjyL0jT1T4lnS1lGbgtozG+Zw+oa3w/Jpk=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=rWjq7a7mG94NdSmIUdQVQFjvFGocpkCKyVBlOOU6C2LkSoOJKEMzzYPFaNFnDsVTlo IOhLbH6+c8MJe06ba7V3poFossR7aJSFNyh94qBHc6L7hnKhJ09Ac/6iZOt0W8JORjXP Y6XtKmLMKxoZ2T9hLxiCHKkHRcGQ0Rms1OaOZb3H0X/2dX6otKXmvMAStKjlZEW7qgnu kbxTtxAEV+FcfEjA57XqXgtiq6fTOsitUUE0EX3wuJwYknLgi1foN6Qwsf5F23RE+li5 NHMo6/9GwosMlwF79onJjkXBKRXFLonl0EYhXCDSgJ+8GmOWreRNTzBphRcAgKDPk1ts LWlw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=dbvoCKnG; 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 4fb4d7f45d1cf-57cb72d6b49si4669132a12.75.2024.06.17.06.42.49; Mon, 17 Jun 2024 06:42:50 -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=20230601 header.b=dbvoCKnG; 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 3849268D796; Mon, 17 Jun 2024 16:42:07 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9E61D68D76D for ; Mon, 17 Jun 2024 16:41:57 +0300 (EEST) Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-4217d808034so38175235e9.3 for ; Mon, 17 Jun 2024 06:41:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718631716; x=1719236516; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=sOyWr0NQ8NVMunluntBog7eG4FXYiLZY3pjGphecwDI=; b=dbvoCKnGnIwdigcJSmnzMaOtzlYswv6/fkOw9eqwyvMzPHcOXAtmHZFmu/y20q+dkQ JSxIAo2I6WIPCjOZZu2nZ7ahZ0SGpbh42YEaoCtxvQ3kMPgEEl65cQ2UROGEVz8a3gaj w5ZMysj0LKoMZPgkcXNZOJmuQufG2Q0cMSz/Gh67vsoOjEIPDPvSVFFJv5a+S795/BrS C0n6iXMMrH1wCtX/baEO8Y3Gn0nZrenQtc9Y/lJXE2YxVDFoEl7ZxpDgTzlbAxVkyOPV SpWaCGVJNy2YCKj8gCQrqUYNkPLeIuWdC4Bbc2waqNmTca2DN0L8HQyjAvjIyQgegTEt 6G0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718631716; x=1719236516; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sOyWr0NQ8NVMunluntBog7eG4FXYiLZY3pjGphecwDI=; b=QS03r85H4Ptl8jjG7uhvxI+tUVnCA/HX5xDDoxmU1+lJOl2AeT47Yhh5Hl3R3+vzpf UG6utACou2AMIJ75tuafsoXyEmdVmgYBYaD+3abPaeglt0a9U8242csG+9t45ju8pIAQ Exg4+S9OQxOprL+QfxJaXUTYXER9FqNgTQtebAVi9Zs5KmPL22ypp8DmA1AXUNEVNP+L pvQ+rerkBvwIO6JXDBoboHns1CJKnh5yJwHtUu+Qoh0MqwwgiDQhdMrM2lHylFDmVQdw wytbLTT9jA0ttMQe2irIJ/h9Mt0YVM2uGWF4kk25lSNHUwjvNGKIF5NVRJt/9EARTOkx ItTw== X-Gm-Message-State: AOJu0YzdDNwTBiaOUQBa02oYFjK8ZdhYESBA91gbndADjJCOvZh9TQUh 5oUyS6Warm5UR7qbePIm9hbXPR3bTNxkG9cWgwT68u9BvLGHBzs3O96XZg== X-Received: by 2002:a05:600c:46ce:b0:421:81b7:49ef with SMTP id 5b1f17b1804b1-423048227a4mr73814045e9.8.1718631716492; Mon, 17 Jun 2024 06:41:56 -0700 (PDT) Received: from localhost.localdomain (0540dce9.skybroadband.com. [5.64.220.233]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3607509c790sm11915391f8f.38.2024.06.17.06.41.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Jun 2024 06:41:55 -0700 (PDT) From: Derek Buitenhuis To: ffmpeg-devel@ffmpeg.org Date: Mon, 17 Jun 2024 14:41:41 +0100 Message-ID: <20240617134141.224614-6-derek.buitenhuis@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240617134141.224614-1-derek.buitenhuis@gmail.com> References: <20240617134141.224614-1-derek.buitenhuis@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 5/5] avformat/mov: Add support for reading and exporting horizontal field of view 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: oc0li6Arp3QP These boxes are created by the Apple Vision Pro and the iPhone 15+ when capture for the Vision Pro is enabled. Based off of the swift API: * https://developer.apple.com/documentation/coremedia/kcmformatdescriptionextension_horizontalfieldofview Signed-off-by: Derek Buitenhuis --- libavformat/mov.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/libavformat/mov.c b/libavformat/mov.c index a7ca0b5a3c..391b11a4e1 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -6755,6 +6755,34 @@ static int mov_read_vexu(MOVContext *c, AVIOContext *pb, MOVAtom atom) return 0; } +static int mov_read_hfov(MOVContext *c, AVIOContext *pb, MOVAtom atom) +{ + AVStream *st; + MOVStreamContext *sc; + + if (c->fc->nb_streams < 1) + return 0; + + st = c->fc->streams[c->fc->nb_streams - 1]; + sc = st->priv_data; + + if (atom.size != 4) { + av_log(c->fc, AV_LOG_ERROR, "Invalid size of hfov box: %"PRIu64"\n", atom.size); + return AVERROR_INVALIDDATA; + } + + + if (!sc->stereo3d) { + sc->stereo3d = av_stereo3d_alloc(); + if (!sc->stereo3d) + return AVERROR(ENOMEM); + } + + sc->stereo3d->horizontal_field_of_view = avio_rb32(pb); + + return 0; +} + static int mov_parse_uuid_spherical(MOVStreamContext *sc, AVIOContext *pb, size_t len) { int ret = 0; @@ -8874,6 +8902,7 @@ static const MOVParseTableEntry mov_default_parse_table[] = { { MKTAG('s','t','3','d'), mov_read_st3d }, /* stereoscopic 3D video box */ { MKTAG('s','v','3','d'), mov_read_sv3d }, /* spherical video box */ { MKTAG('v','e','x','u'), mov_read_vexu }, /* video extension usage */ +{ MKTAG('h','f','o','v'), mov_read_hfov }, { MKTAG('d','O','p','s'), mov_read_dops }, { MKTAG('d','m','l','p'), mov_read_dmlp }, { MKTAG('S','m','D','m'), mov_read_smdm },