From patchwork Mon Jan 8 14:03:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eduard Sinelnikov X-Patchwork-Id: 7204 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.78.2 with SMTP id r2csp2700275jaa; Mon, 8 Jan 2018 06:09:57 -0800 (PST) X-Google-Smtp-Source: ACJfBosgc9HYmwTxmo7OVM5zz4N3+hZSImuOLZQ0/DbGhGjw6hOjNcegJkmB44bwcOlcadxULmZq X-Received: by 10.223.134.26 with SMTP id 26mr9528182wrv.218.1515420597061; Mon, 08 Jan 2018 06:09:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1515420597; cv=none; d=google.com; s=arc-20160816; b=RykZIp5qu5xdL+g0qa1Q/Q1zrFU7fV0FeJ1xhheJlMTugNucEPp0UMQyqj4PmMvQPO AZ4Zig9fCAqjvszGNh49ab2ngqPaYjiOUw7IIU8B9b9k2CY3RQkRpAkPg/8sxUVV+EJk AkNZ/vI1eJF6SBzzZmh2WjPDCfckI4D2qKNtvkpnXNcL2P5sS4eIvM1GMjXqxdxzHtdP AVOpSYOfCx1eb3KygKoQ6s7YcONRNaRahh7Hnz8P4rkJZn0V2cB3W1nnTih2fa66s38B z/kjm3VVSb4j4o+j2iLNYShCPQV+e/60Z35Y7wiIrc5upFXByGryDvf/jjMNH2l9j0H3 hUiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=KdQ/D+MfPlQ5MHsF0PS6qV37yXDg+mr0iWbTQvTKje0=; b=yG1uQJ0PVMIltlUhe2O77b7050+oYjmkeRYjk8Tw3T39Xbtpd1ld8Zl7UfMvITk2vH PsDQvYt+fI8y/vE4sBXb+49lTt0Dm5HzRMwnnVyp5ZNrMz1GRTkqXI/b5hTunmkfSLug q2reVvUXlxgg+VQ5bxWJi4U/1l07kzbQrolDpJhtT9nMaqNcQWwsku7zdSZv0jYTW9CL lG6Fw3o697XxtoI36X+1yXUoZWtxCTYFBDwh8N5WCxdouIYV7nVbvf9vzVo5/X0jnz0A 9cnQipTMz/ty4oth02FqgmN9nUqipvs+x8ZLWIX1jVcLbAE9A7xFpw+GIQB50n1ySMwE /djA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=kOv0xn+C; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j27si9500467wrb.57.2018.01.08.06.09.56; Mon, 08 Jan 2018 06:09:57 -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 header.s=20161025 header.b=kOv0xn+C; 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 A0AB2689F51; Mon, 8 Jan 2018 16:09:53 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 85D87689D45 for ; Mon, 8 Jan 2018 16:09:47 +0200 (EET) Received: by mail-wm0-f66.google.com with SMTP id n138so14332936wmg.2 for ; Mon, 08 Jan 2018 06:09:48 -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=xWTVb0JQWxwLwuQcKKsA1H+31IgfSUckcywpHT1P3ns=; b=kOv0xn+CFbLG8aS4hwSgYOXa6C/iffglkpJXI3f5sO3mHs9D5nnyi+E6ndSplESG48 +JciwQzxdIp0BSDAoALgEKr/mL9Cz5DBg0UgNL/pysaQ19Vj485mF6mUkRAa6Air/WG3 EY6wQnjAqteKlOTD8k1yXHLTAMPivAdRa3sGVmy6iVFotzSVmTUaWIfxbb50u68sFeP0 48yxGaHThKRXGpjoA5eBB07OXDbOltxWHlXdjjCPnXm3hfx4xBAptHYCvvKFGtEoed1e pnDshKEBJaNxmHCNbhwwRGmTwQTyDYxFnrM9sQZGguFy842Nk33AfW5RiE/lp/jPcE5n sAkg== 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=xWTVb0JQWxwLwuQcKKsA1H+31IgfSUckcywpHT1P3ns=; b=osNsbUE3qAjPjcRIQSIzMpQvhxnEovqlptUwOB+0eNRs7Qj/XPNVj9159aOeyFSUw7 blmKD4EJxS7pZVJjx7IuFouHxvDU4A7oDAeKLvZ/WXnI77IOdUq0B896Dz6QuxBN0qzJ zfTjy+zByi77BCEnPo61DXDPB5QOONaZczvnvpLJODU83aLqVXxlQnZU430xQ2/prs1C 9JCjlgyDf4cgvjmKrWeekxljr5w0iUxh21EvK5eiOA3EXkKI4NnPoQrsHFNZOYW6fE5r 13TKsa8CZZB3VBYU8djCX0LtXga/XgGYPD3/j7bsIl8ypczcC/a/JfwbvgA7BdZs0Kj8 95Cg== X-Gm-Message-State: AKGB3mKmVzy+gBo+N8t2hJwxRIaY1D5ir8LHLIzKrrmNDIzdr+nO+YBk e8HbtErf1WC4sHicaEtKiHz9jg== X-Received: by 10.28.141.18 with SMTP id p18mr9565467wmd.133.1515420223480; Mon, 08 Jan 2018 06:03:43 -0800 (PST) Received: from ubuntu-xenial.localdomain (bzq-82-81-224-162.cablep.bezeqint.net. [82.81.224.162]) by smtp.gmail.com with ESMTPSA id 34sm14589140wry.34.2018.01.08.06.03.41 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 08 Jan 2018 06:03:42 -0800 (PST) From: endushka@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Mon, 8 Jan 2018 14:03:40 +0000 Message-Id: <1515420220-9540-1-git-send-email-endushka@gmail.com> X-Mailer: git-send-email 2.7.4 Subject: [FFmpeg-devel] [PATCH] avformat/aiffdec: AIFF fix in case of ANNO 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" From: Eduard Sinelnikov Apple's AIFF protocol clearly states that each chucnk which is odd sized a padding should be added. In the old version of aiffdec adding of padding was done in `get_meta`. And in case of unknown chunk name it was done in defalut case. The new version has deleted the padding in default case and added padding adding after the switch. But the new version didn't removed the padding adding in the `get_meta` function so in some cases padding was added twice which leaded to a bug. --- libavformat/aiffdec.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c index 99e05c7..20decc5 100644 --- a/libavformat/aiffdec.c +++ b/libavformat/aiffdec.c @@ -81,11 +81,10 @@ static void get_meta(AVFormatContext *s, const char *key, int size) av_free(str); return; } - size += (size&1)-res; + size -= res; str[res] = 0; av_dict_set(&s->metadata, key, str, AV_DICT_DONT_STRDUP_VAL); - }else - size+= size&1; + } avio_skip(s->pb, size); }