From patchwork Wed Jul 4 18:35:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baptiste Coudurier X-Patchwork-Id: 9612 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:104:0:0:0:0:0 with SMTP id c4-v6csp1078965jad; Wed, 4 Jul 2018 11:36:09 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfFxSg+T75i4G6zOoLquHWfcFqze5JAn2VzlKMcd7GrKmsWc70ba4nJgaAnUIVCn+OVj4ZZ X-Received: by 2002:adf:a31b:: with SMTP id c27-v6mr2214803wrb.189.1530729369486; Wed, 04 Jul 2018 11:36:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530729369; cv=none; d=google.com; s=arc-20160816; b=YqNUEJ57XCgpMO5/DlGD8xLXw2stUj74OPEeyFsOAR5cNi/zOUt1eAXiK8bQULfHcJ jBbSEDnXo++UZmTlrshPO+MBR4Mv1IqGDWvD2LeYUzdAWz900PiO0jddDS6Gn2yXFXQW pKUPHgyYgaQp/QEBs1gMTnPl5Tf1Y0oz99dyZKeOtXbrRBnu7bCN3iEXhGG6UNmnxDKw gP/su93TmsH3bkq8GHfEOSa4ssFUeoA0devJs0wCW32SoZSi6aNxCqIilFYdvEhNDLA7 3YpvBFg4PBjtO8xDWLho4xs4ZvWt4RfhcnKW2LVr5hIOy/XUjupgH/WKrZPQUTUOERh3 xsHg== 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=NYmZhDEiS9gPTX3DdDOm60UUmfabE1OswxOoihzNUsk=; b=NANvPO+lSBeJsukEhSXBugcHF4FfT0H4v03OzQgASGnBxZtXeF6ZwUsurrCpdsTWts b7FFKlkTVqWw8bYaXrhlyGtXfeqC8/Tm/0T1hf+AMzcJ5436MTjpV9op0Hcq+eyxabiS IhaA55NN4AVwKXFzuW5Xy69xnpo+VhT+J/TDSXdKJNsFg36p+9Cklc84YG5e1fHqjY67 H98nz4ReHDshtYeNYMy4KrIp5mgG58nNF3W8GyywX8a7Pk84aZm8z0MIlKMFBI01fEp9 +Hbdwik57Fv1Z9U984uKgnVL/xRz6TONkUknNPf+ulHt+rgnvwbf4DFt31gnSXJfN0b+ 7p8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b="E/Z5Ppk6"; 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 72-v6si3218203wmm.218.2018.07.04.11.36.09; Wed, 04 Jul 2018 11:36:09 -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=20161025 header.b="E/Z5Ppk6"; 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 CDF4C68AB35; Wed, 4 Jul 2018 21:35:20 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf0-f169.google.com (mail-pf0-f169.google.com [209.85.192.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5046868AAD7 for ; Wed, 4 Jul 2018 21:35:18 +0300 (EEST) Received: by mail-pf0-f169.google.com with SMTP id y24-v6so3245980pfe.12 for ; Wed, 04 Jul 2018 11:35:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=S2L/E85WK82cJNtDU3fck/v+6+/ifSSoE8SBBJj/P1Y=; b=E/Z5Ppk6AaR+WDbM5pOy1Q4NM0Kl+E8XgNSp5r4xusdOq8etRaEmzXtD2sSIjJsohe YpbCQrwKh0TN5p8I2PHtffPvlmi+uLtVgmRxEmllRKNP7KZEs83qSFbaqsEwFAQmrDxo I3B5YVs64Fkt+W+Fy3hMz01HjFQeGpJaqf5zfFGAaRnuc3Q+rcWOaX0K7nt/jShW7n5H p/1BMoTHyux2ArAxbIUr56oITMzZ4KUc6Oh5+JttSQWdFeJvhDbKU8qB6TWMnIQhftpm N70OxKjThwDZufT5J4KcvZCH6o5k/X6ur/w3OdW4J5Sa7255Pf5YrXjMYI3myT8yYQHG lWig== 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=S2L/E85WK82cJNtDU3fck/v+6+/ifSSoE8SBBJj/P1Y=; b=etjzS3zEzG+pPsuvpAgmL6tAkNPby3CoL+c2YbtOeMoFi8fPmRzxOSyYlJ55I/gU2m YJGBLUqXArWlrUAgFvxMG3qhs5PRU0dMdjQCurh9X+G20kazR+6RRC7zOXIvSjhaWfkD wJlmFtOynxvo11bpVCT3RvRrgJFsy3/Y9pxldEaz3Filqj8132WDqBTIl5eW5d7rqqQE 4v1g/Wt4DG8So0YaARpqeyySAbwGosWXzUrrY6hJO3ER+863uRUVdUEizLSiaF/eVaDG wIoimHWsU8UvSdZNNrFZCZarTfQbBQdbKnTCS+9ea3+GX/GrvFcaa6LRFs35Z6Ajc0vH AwIA== X-Gm-Message-State: APt69E3XxBZ6n95e/Nd8NtEcYbUawuEqQ7CkclRvmb9/pe+58j8seliL 3oU3Qkt+Q+hVKluxVDqTu/UdgQ== X-Received: by 2002:a63:ac57:: with SMTP id z23-v6mr2773999pgn.74.1530729321087; Wed, 04 Jul 2018 11:35:21 -0700 (PDT) Received: from localhost.localdomain (cpe-104-173-251-254.socal.res.rr.com. [104.173.251.254]) by smtp.gmail.com with ESMTPSA id v126-v6sm8591239pgv.39.2018.07.04.11.35.20 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 04 Jul 2018 11:35:20 -0700 (PDT) From: Baptiste Coudurier To: ffmpeg-devel@ffmpeg.org Date: Wed, 4 Jul 2018 11:35:08 -0700 Message-Id: <20180704183514.71654-6-baptiste.coudurier@gmail.com> X-Mailer: git-send-email 2.17.0 (Apple Git-106) Subject: [FFmpeg-devel] [PATCH 06/12] avformat/audiointerleave: pad last audio frame 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" --- libavformat/audiointerleave.c | 10 +++++++--- tests/ref/lavf/mxf | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/libavformat/audiointerleave.c b/libavformat/audiointerleave.c index 6d4954befe..dea5d99821 100644 --- a/libavformat/audiointerleave.c +++ b/libavformat/audiointerleave.c @@ -81,15 +81,19 @@ static int interleave_new_audio_packet(AVFormatContext *s, AVPacket *pkt, AVStream *st = s->streams[stream_index]; AudioInterleaveContext *aic = st->priv_data; int ret; - int size = FFMIN(av_fifo_size(aic->fifo), *aic->samples * aic->sample_size); + int frame_size = *aic->samples * aic->sample_size; + int size = FFMIN(av_fifo_size(aic->fifo), frame_size); if (!size || (!flush && size == av_fifo_size(aic->fifo))) return 0; - ret = av_new_packet(pkt, size); + ret = av_new_packet(pkt, frame_size); if (ret < 0) return ret; av_fifo_generic_read(aic->fifo, pkt->data, size, NULL); + if (size < pkt->size) + memset(pkt->data + size, 0, pkt->size - size); + pkt->dts = pkt->pts = aic->dts; pkt->duration = av_rescale_q(*aic->samples, st->time_base, aic->time_base); pkt->stream_index = stream_index; @@ -99,7 +103,7 @@ static int interleave_new_audio_packet(AVFormatContext *s, AVPacket *pkt, if (!*aic->samples) aic->samples = aic->samples_per_frame; - return size; + return pkt->size; } int ff_audio_rechunk_interleave(AVFormatContext *s, AVPacket *out, AVPacket *pkt, int flush, diff --git a/tests/ref/lavf/mxf b/tests/ref/lavf/mxf index 81d21704d9..4466685a2d 100644 --- a/tests/ref/lavf/mxf +++ b/tests/ref/lavf/mxf @@ -1,9 +1,9 @@ 649009e3d3d62eb3b6c56334d057cc4d *./tests/data/lavf/lavf.mxf 526393 ./tests/data/lavf/lavf.mxf ./tests/data/lavf/lavf.mxf CRC=0x8dddfaab -5756c5f9bdb9718b91bfbf588afec189 *./tests/data/lavf/lavf.mxf +9076b7015cffe8aa72883e900a2041a5 *./tests/data/lavf/lavf.mxf 561721 ./tests/data/lavf/lavf.mxf -./tests/data/lavf/lavf.mxf CRC=0xf21b1b48 +./tests/data/lavf/lavf.mxf CRC=0x96ff1b48 02bf8f0cd8951a49e277306691cb1538 *./tests/data/lavf/lavf.mxf 526393 ./tests/data/lavf/lavf.mxf ./tests/data/lavf/lavf.mxf CRC=0x8dddfaab