From patchwork Wed Feb 1 11:50:51 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 2398 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.89.21 with SMTP id n21csp2397014vsb; Wed, 1 Feb 2017 03:51:20 -0800 (PST) X-Received: by 10.28.184.133 with SMTP id i127mr2380818wmf.49.1485949879927; Wed, 01 Feb 2017 03:51:19 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 57si24567562wrv.17.2017.02.01.03.51.18; Wed, 01 Feb 2017 03:51:19 -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; 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=NONE 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 8E256680A9B; Wed, 1 Feb 2017 13:51:13 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm0-f67.google.com (mail-wm0-f67.google.com [74.125.82.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CE6EF680A43 for ; Wed, 1 Feb 2017 13:51:06 +0200 (EET) Received: by mail-wm0-f67.google.com with SMTP id u63so5256471wmu.2 for ; Wed, 01 Feb 2017 03:51:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=Br6phZs4hjpW7FmeN3DFyOUhWiZZrwZ+34krxBczcI0=; b=RyLYO/sENOoPZtY9IXfKMzbIVSIiCV6oYfyk/S1qHkaUOajTo1nXEHH3PWXW9nUC/u o/UmF631Md6M2LFpkRFnipXXBNY58lMJh6qtAr/3sJn4OTn/pqeIWvdcTJcVOohZv/oR Jsd3HuTsLSdgwlTx9f2ALZmheqab8cDMAcn1MSMV+vwEuNx9DqxZFTu/C9JJylThIeMe RoREr/AMANo98bmZVTnL2XDXpq7j+s/QqTpmAPjccyiAi40E1Zi2yEvoy/KvZB2x32k2 OwqWicT+2OFznqFxXJLyPBmDNKTrsDN45ptgGh1G7q1iDR22/66Q7DQLGepoPaoZUJno 5YNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=Br6phZs4hjpW7FmeN3DFyOUhWiZZrwZ+34krxBczcI0=; b=p2VlQmTy4RY2wQkJyxUJ8tupnMEvQkhYdQt09vTd/T54KeO39FMFvL6RI3CjDRjSYG vjn0JFqGIT1p2allvO94zjBbuWq+9gnbcOBu22+Zy7Eqzg3e9w7XvyeyqEM0SA5rfNt7 zXYgK+83k/CGnlaccmFkMbrpASX5p04wQw/O1/AK5O3ha0mST2kwU+00eqoCyjq+/qek 2P3CX58g8omXW9/yl2l86R/MFUGiF/t99tHJ3E3bb5r0aqC3jI6TyQvhsK1i2forbCUP aLCQCYo1HwvgfvE2LvsfGN4tJc4G9XC5sMq48sOzmOSM+1lZCSLV4Y4jsh7K8meWqXjF 9JMw== X-Gm-Message-State: AIkVDXJn4N6y6mF0yQ7IPz7ucZ04Wyo1XH9Gn7fZYIVY34KQ9nFjpNQaa8vwd7oFKfMJsg== X-Received: by 10.28.143.204 with SMTP id r195mr2538150wmd.32.1485949869271; Wed, 01 Feb 2017 03:51:09 -0800 (PST) Received: from localhost.localdomain ([94.250.174.60]) by smtp.gmail.com with ESMTPSA id i189sm29382197wmg.7.2017.02.01.03.51.07 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 01 Feb 2017 03:51:08 -0800 (PST) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Wed, 1 Feb 2017 12:50:51 +0100 Message-Id: <20170201115051.13328-1-onemda@gmail.com> X-Mailer: git-send-email 2.9.3 Subject: [FFmpeg-devel] [PATCH] avformat/mov: export xml metadata X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Paul B Mahol --- libavformat/mov.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/libavformat/mov.c b/libavformat/mov.c index 9ae4f8c..75e1c9c60 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -3764,6 +3764,25 @@ static int mov_read_keys(MOVContext *c, AVIOContext *pb, MOVAtom atom) return 0; } +static int mov_read_xml(MOVContext *c, AVIOContext *pb, MOVAtom atom) +{ + uint8_t *xml; + + if (atom.size < 5) + return 0; + + avio_skip(pb, 4); + xml = av_calloc(atom.size - 4 + 1, sizeof(uint8_t)); + if (!xml) + return AVERROR(ENOMEM); + + avio_read(pb, xml, atom.size - 4); + av_dict_set(&c->fc->metadata, "xml", xml, 0); + av_free(xml); + + return 0; +} + static int mov_read_custom(MOVContext *c, AVIOContext *pb, MOVAtom atom) { int64_t end = avio_tell(pb) + atom.size; @@ -5280,6 +5299,12 @@ static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom) parse = mov_read_keys; } + if (!parse && + atom.type == MKTAG('m','e','t','a') && + a.type == MKTAG('x','m','l',' ')) { + parse = mov_read_xml; + } + if (!parse) { /* skip leaf atoms data */ avio_skip(pb, a.size); } else {