From patchwork Mon Oct 10 10:00:01 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Jean_Caille=CC=81?= X-Patchwork-Id: 945 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.140.66 with SMTP id o63csp2274201vsd; Mon, 10 Oct 2016 03:02:26 -0700 (PDT) X-Received: by 10.194.85.18 with SMTP id d18mr34270602wjz.43.1476093746232; Mon, 10 Oct 2016 03:02:26 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id qo3si33202336wjc.266.2016.10.10.03.02.25; Mon, 10 Oct 2016 03:02:26 -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; 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 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 E6894689B5D; Mon, 10 Oct 2016 13:01:58 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk0-f195.google.com (mail-qk0-f195.google.com [209.85.220.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 70630689AEC for ; Mon, 10 Oct 2016 12:59:59 +0300 (EEST) Received: by mail-qk0-f195.google.com with SMTP id v138so5136839qka.2 for ; Mon, 10 Oct 2016 03:00:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nusQ3vXMezqNFC2tuH9cAMv6WGLVmJ69C6fOv5Mi8N4=; b=0mIAx/8mOQqDUfnbqQryXWYaX0oF222K+TnQ0hzD6SaaSXZ63pr36k2NHnk33VfLyO lNoj/7muuLrJPi8XTNNuaCRJSn5UDyB5ammeAMWKurWxRtE6d5/0EsLwlKpXhsbJOcDE nYB9DvqXMSqsRQTDMSmX0C3RXFV6BuBw2QSH0iakeLqJbULt2L2dbpecu1E+LQ1+y9ld 3a1nl2965YwobOkGtStuSkpiVW8plhLJ+9a7vrgfPqIiwxiBu2XE04GPo8U3PeljrXzh mB8bk7v/Dv9zO6zG3U+2ocmuvM27AlSMjUjboZH/vB+s//Ja86y0AWasnfBmRE54uNOZ K8ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=nusQ3vXMezqNFC2tuH9cAMv6WGLVmJ69C6fOv5Mi8N4=; b=I9ZvRFu3nl/vJ/Rw4Me6nVsnD4N52KKlkoFSAYmICfXPlsgJ8faJrNkfWPuT+bdyS5 zm//jZUg/JdUpujX8BmQz+kOT3dwQigARQQAKnhzCdxkyFjBGntHYlh3nXoNkd9iEJ6R HnNyquBFDtOq4uvIN7lUVo1xwvg0JRX9HZHXb/RyzpA6ny2fAwwuooaSvwpfcYiFRamu A7HBzfr/g19TBPx901fax7jHPqWwdM7ID4LNC0H7sOHwUqHAIUJ/W8NStALFnUbD1IxJ HxzkGk3iUoGU82ID8U3E0Q3dJjDQNk2By/tHs0ItRNUAri1II0zTOwxrC/e5o1ifvKU0 QJXQ== X-Gm-Message-State: AA6/9RmPsokeCSlH3irFtof8QtmfXhqbAxiveMELiaITAO0hbZ26AtP5UFMwiZ0NjT0CSQ== X-Received: by 10.194.201.36 with SMTP id jx4mr28442905wjc.38.1476093615470; Mon, 10 Oct 2016 03:00:15 -0700 (PDT) Received: from MBR-30922.gopro.lcl (LPuteaux-656-1-74-135.w80-12.abo.wanadoo.fr. [80.12.80.135]) by smtp.gmail.com with ESMTPSA id jt8sm34360758wjc.33.2016.10.10.03.00.14 (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 10 Oct 2016 03:00:14 -0700 (PDT) From: =?UTF-8?q?Jean=20Caille=CC=81?= To: ffmpeg-devel@ffmpeg.org Date: Mon, 10 Oct 2016 12:00:01 +0200 Message-Id: <1476093601-20057-3-git-send-email-jcaille@gmail.com> X-Mailer: git-send-email 2.7.4 (Apple Git-66) In-Reply-To: <1476093601-20057-1-git-send-email-jcaille@gmail.com> References: <1476093601-20057-1-git-send-email-jcaille@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Mon, 10 Oct 2016 13:01:57 +0300 Subject: [FFmpeg-devel] [PATCH 2/2] lavf/mov: support gopro hero moments udta tag 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 Cc: =?UTF-8?q?Jean=20Caille=CC=81?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Jean CailleĢ --- libavformat/mov.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/libavformat/mov.c b/libavformat/mov.c index add1812..3e73320 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -268,6 +268,23 @@ static int mov_metadata_loci(MOVContext *c, AVIOContext *pb, unsigned len) return av_dict_set(&c->fc->metadata, key, buf, 0); } +static int mov_metadata_hmmt(MOVContext *c, AVIOContext *pb, unsigned len) +{ + int i, n_hmmt; + + if (len < 2) + return 0; + if (c->ignore_chapters) + return 0; + + n_hmmt = avio_rb32(pb); + for (i = 0; i < n_hmmt; i++) { + int moment_time = avio_rb32(pb); + avpriv_new_chapter(c->fc, i, av_make_q(1, 1000), moment_time, AV_NOPTS_VALUE, NULL); + } + return 0; +} + static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom) { char tmp_key[5]; @@ -303,6 +320,8 @@ static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom) parse = mov_metadata_gnre; break; case MKTAG( 'h','d','v','d'): key = "hd_video"; parse = mov_metadata_int8_no_padding; break; + case MKTAG( 'H','M','M','T'): + return mov_metadata_hmmt(c, pb, atom.size); case MKTAG( 'k','e','y','w'): key = "keywords"; break; case MKTAG( 'l','d','e','s'): key = "synopsis"; break; case MKTAG( 'l','o','c','i'):