From patchwork Fri Feb 10 17:50:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 2484 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.89.21 with SMTP id n21csp614775vsb; Fri, 10 Feb 2017 09:51:26 -0800 (PST) X-Received: by 10.28.10.68 with SMTP id 65mr8640388wmk.63.1486749086613; Fri, 10 Feb 2017 09:51:26 -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 o131si2056862wmd.167.2017.02.10.09.51.25; Fri, 10 Feb 2017 09:51:26 -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 ACA58689DA9; Fri, 10 Feb 2017 19:51:08 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt0-f193.google.com (mail-qt0-f193.google.com [209.85.216.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A272A68992B for ; Fri, 10 Feb 2017 19:51:02 +0200 (EET) Received: by mail-qt0-f193.google.com with SMTP id w20so5392816qtb.1 for ; Fri, 10 Feb 2017 09:51:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=kj+k3UMprvo0pU99GdJ3S099lPFHm0ggKQJRziUmXqk=; b=Xm0A5iRD5gxEKBalrBpd8Bdl1/y3pd7X38QtptPVwiWiNEESEsx2BO2PcMooLh+FK6 fApF4idOuv0ct0JApgFmbWtmk9+aktkDgkHNSH1GBkzepk0AZCbWhKScqGTzXDn/QV9+ kYVFPuH4DMsDtZ1XXKTgtfgr/AITpRIVdxrCnl9hw03suzGgfSF/G3f6ThkkwA2/hXMD ODK6PMmJBZOWQphpHXbWdKwHPbkCK/kOCSpg65VtthEJLyjNo1VuV03WN3lfb5Dyvo3h jvgksFcphPj7hdWAXfR5DNFf7Lh8JLwwVhIvjQRaXiptfTKlAbgjS8h0yfYEJE+/xUUq OEwQ== 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:in-reply-to :references; bh=kj+k3UMprvo0pU99GdJ3S099lPFHm0ggKQJRziUmXqk=; b=PVZq80W1SXmSwyTCluFnMuMsfc1t4XAqTJV+bXditwOQeoR0Gr5UPX5YXNk/E9Hitw wH3N87p7sfhvFXkjnT86+PURP9ym77Zty3VqVOxOJK1NydnBSlzfHHSVj8eX8zCmA9QX Xkx/HFOHOFX5GuAuKFEolBSL5b++SdNTMvRXvan9iN6jttoJZZTCboQJA8dy2eq9p6aW ZZwHr5wH4vQSUq9LDQ+GyQzxDrj78keIELHPT5vzOhZeoxdu7dusTnMSaAb9iy2UNbph 2PqrB5At49pMSjUzvRrtELTzXql1PIQ1rCpG/UBuesoTroZ69oVHLKhaL557RvVUXl/a qWcw== X-Gm-Message-State: AMke39mrqUopSRfGryXTBZxjnHB3fJV3+m9Sa3bE2JhUCF1/3pS3DGdpmB51ixQO+F5JWA== X-Received: by 10.237.39.148 with SMTP id a20mr9643919qtd.65.1486749065128; Fri, 10 Feb 2017 09:51:05 -0800 (PST) Received: from localhost.localdomain ([181.231.87.206]) by smtp.gmail.com with ESMTPSA id z23sm2052588qkb.30.2017.02.10.09.51.04 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 10 Feb 2017 09:51:04 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 10 Feb 2017 14:50:49 -0300 Message-Id: <20170210175049.5660-2-jamrial@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170210175049.5660-1-jamrial@gmail.com> References: <20170210175049.5660-1-jamrial@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/2] avformat/apetag: account for header size if present when returning the start position 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" The size field in the header/footer accounts for the entire APE tag structure except the 32 bytes from header, for compatibility with APEv1. Signed-off-by: James Almer --- libavformat/apetag.c | 6 +++++- libavformat/apetag.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libavformat/apetag.c b/libavformat/apetag.c index a05b32d9e5..b23f8cdd1f 100644 --- a/libavformat/apetag.c +++ b/libavformat/apetag.c @@ -150,7 +150,6 @@ int64_t ff_ape_parse_tag(AVFormatContext *s) av_log(s, AV_LOG_ERROR, "Invalid tag size %"PRIu32".\n", tag_bytes); return 0; } - tag_start = file_size - tag_bytes - APE_TAG_FOOTER_BYTES; fields = avio_rl32(pb); /* number of fields */ if (fields > 65536) { @@ -166,6 +165,11 @@ int64_t ff_ape_parse_tag(AVFormatContext *s) avio_seek(pb, file_size - tag_bytes, SEEK_SET); + if (val & APE_TAG_FLAG_CONTAINS_HEADER) + tag_bytes += APE_TAG_HEADER_BYTES; + + tag_start = file_size - tag_bytes; + for (i=0; i