From patchwork Thu Apr 13 19:54:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 3399 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.3.129 with SMTP id 123csp840832vsd; Thu, 13 Apr 2017 12:56:05 -0700 (PDT) X-Received: by 10.223.166.146 with SMTP id t18mr4378123wrc.15.1492113365653; Thu, 13 Apr 2017 12:56:05 -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 j15si37686534wra.63.2017.04.13.12.56.04; Thu, 13 Apr 2017 12:56:05 -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 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 1106B6899B7; Thu, 13 Apr 2017 22:55:31 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk0-f193.google.com (mail-qk0-f193.google.com [209.85.220.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0265B6898DC for ; Thu, 13 Apr 2017 22:55:23 +0300 (EEST) Received: by mail-qk0-f193.google.com with SMTP id v75so9715383qkb.3 for ; Thu, 13 Apr 2017 12:55:29 -0700 (PDT) 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=cHbRnflgzOWgr0OWbe8hRO0wtDnpzyLvZgGXa9nNy6I=; b=rWItXM9sRHVvW67sqHMn8awTvsDKtqHwvzncP1zgsiMfPADRiko1troej0B7tpJwyV Ub0k/fKxdGS0cmSb2dGIN3Q4m7n+72B2liK6ZXWedDXIyRJ+/rAvPnNHJs6loPu8hvNf H863k+DWW29vSCf8lmEXWctbiYRGWmo2E1bXkkut1YAigy6XmHs1KKy1QKQfzGXJZwV7 AOvRgFrfuqK/JwlWShdnkCsr2UG6i3rBxvuwy9SJzCjxtth/6wtJDuSFD4g9Rt9fMnm8 A6mEsZvRMSEJTDH7znGXqSUhRqjjOcSXI4nz2WEY6kgdkCDzjyrgyAai+H6RHZc27WVn tBww== 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=cHbRnflgzOWgr0OWbe8hRO0wtDnpzyLvZgGXa9nNy6I=; b=lmUUVmpVIoMZYk4loqemsTAsYcfLISxPhVzbndoNGvRWXwjkJgCIlzYDNJWHS14SHx 7xatdJcBjpUFrLgEe3iPdOcCiN1pZhksEG66TdYAC9buQe8z6v1u+XQyN4nrMWfznb2z roF1cqlKXmEtJT7O7i/UvaFXuiFtjHT5OjmUMU/4++XxMaCBclHZyHUfi4gQVHEdRSok Y/EITfQYEY1+MB59r/6xv/O7XtgANo8I88L9K4VHsrKu7ngGCLrT5bis1PRqjqkn18YU xKGUxkddj+gACxDLX29A7KLtL3qKcVdG8NaTVyBqKv8om4OWU8NObwJGMCkrzoCvqLpQ xBLQ== X-Gm-Message-State: AN3rC/5QydutScD/WBCvJR1XyP8MlQCjpeJ6bJWq+OkM98+gmzmm5koB osC5AHCrVjsuHJJO X-Received: by 10.55.100.134 with SMTP id y128mr3948657qkb.291.1492113328207; Thu, 13 Apr 2017 12:55:28 -0700 (PDT) Received: from localhost.localdomain ([181.231.62.139]) by smtp.gmail.com with ESMTPSA id g185sm16443226qkc.7.2017.04.13.12.55.27 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 13 Apr 2017 12:55:27 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 13 Apr 2017 16:54:15 -0300 Message-Id: <20170413195417.9064-4-jamrial@gmail.com> X-Mailer: git-send-email 2.12.1 In-Reply-To: <20170413195417.9064-1-jamrial@gmail.com> References: <20170413195417.9064-1-jamrial@gmail.com> Subject: [FFmpeg-devel] [PATCH 4/6] avcodec/aac_adtstoasc: propagate new extradata using packet side data 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" This removes the current API violating behavior of overwritting the stream's extradata during packet filtering, something that should not happen after the av_bsf_init() call. The bitstream filter generated extradata is no longer available during write_header(), and as such not usable with non seekable output. The FATE tests are updated to reflect this. Signed-off-by: James Almer --- libavcodec/aac_adtstoasc_bsf.c | 5 ++--- tests/fate/aac.mak | 5 ++--- tests/fate/avformat.mak | 4 ++-- tests/ref/fate/aac-autobsf-adtstoasc | 43 ++++++++++++++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 8 deletions(-) create mode 100644 tests/ref/fate/aac-autobsf-adtstoasc diff --git a/libavcodec/aac_adtstoasc_bsf.c b/libavcodec/aac_adtstoasc_bsf.c index 1067160559..0e4767d424 100644 --- a/libavcodec/aac_adtstoasc_bsf.c +++ b/libavcodec/aac_adtstoasc_bsf.c @@ -97,7 +97,8 @@ static int aac_adtstoasc_filter(AVBSFContext *bsfc, AVPacket *out) in->data += get_bits_count(&gb)/8; } - extradata = av_mallocz(2 + pce_size + AV_INPUT_BUFFER_PADDING_SIZE); + extradata = av_packet_new_side_data(in, AV_PKT_DATA_NEW_EXTRADATA, + 2 + pce_size); if (!extradata) { ret = AVERROR(ENOMEM); goto fail; @@ -115,8 +116,6 @@ static int aac_adtstoasc_filter(AVBSFContext *bsfc, AVPacket *out) memcpy(extradata + 2, pce_data, pce_size); } - bsfc->par_out->extradata = extradata; - bsfc->par_out->extradata_size = 2 + pce_size; ctx->first_frame_done = 1; } diff --git a/tests/fate/aac.mak b/tests/fate/aac.mak index 2af66c2b23..74d3e96efe 100644 --- a/tests/fate/aac.mak +++ b/tests/fate/aac.mak @@ -241,9 +241,8 @@ FATE_AAC_LATM += fate-aac-latm_stereo_to_51 fate-aac-latm_stereo_to_51: CMD = pcm -i $(TARGET_SAMPLES)/aac/latm_stereo_to_51.ts -channel_layout 5.1 fate-aac-latm_stereo_to_51: REF = $(SAMPLES)/aac/latm_stereo_to_51_ref.s16 -fate-aac-autobsf-adtstoasc: CMD = md5 -i $(TARGET_SAMPLES)/audiomatch/tones_afconvert_16000_mono_aac_lc.adts -acodec copy -fflags +bitexact -f matroska -fate-aac-autobsf-adtstoasc: CMP = oneline -fate-aac-autobsf-adtstoasc: REF = 8c76732bd04d9eb3468f9f842439774d +fate-aac-autobsf-adtstoasc: CMD = transcode "aac" $(TARGET_SAMPLES)/audiomatch/tones_afconvert_16000_mono_aac_lc.adts \ + matroska "-c:a copy" "-c:a copy" FATE_AAC-$(call DEMDEC, AAC, AAC) += $(FATE_AAC_CT_RAW) FATE_AAC-$(call DEMDEC, MOV, AAC) += $(FATE_AAC) diff --git a/tests/fate/avformat.mak b/tests/fate/avformat.mak index 10702ec8e2..82a531c7a5 100644 --- a/tests/fate/avformat.mak +++ b/tests/fate/avformat.mak @@ -93,14 +93,14 @@ tests/data/mp4-to-ts.m3u8: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data tests/data/adts-to-mkv.m3u8: TAG = GEN tests/data/adts-to-mkv.m3u8: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data $(M)$(TARGET_EXEC) $(TARGET_PATH)/$< \ - -i $(TARGET_SAMPLES)/audiomatch/tones_afconvert_16000_mono_aac_lc.adts \ + -i $(TARGET_SAMPLES)/audiomatch/tones_afconvert_16000_mono_aac_lc.m4a \ -f segment -segment_time 1 -map 0 -flags +bitexact -codec copy -segment_format_options live=1 \ -segment_list $(TARGET_PATH)/$@ -y $(TARGET_PATH)/tests/data/adts-to-mkv-%03d.mkv 2>/dev/null tests/data/adts-to-mkv-header.mkv: TAG = GEN tests/data/adts-to-mkv-header.mkv: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data $(M)$(TARGET_EXEC) $(TARGET_PATH)/$< \ - -i $(TARGET_SAMPLES)/audiomatch/tones_afconvert_16000_mono_aac_lc.adts \ + -i $(TARGET_SAMPLES)/audiomatch/tones_afconvert_16000_mono_aac_lc.m4a \ -f segment -segment_time 1 -map 0 -flags +bitexact -codec copy -segment_format_options live=1 \ -segment_header_filename $(TARGET_PATH)/tests/data/adts-to-mkv-header.mkv \ -y $(TARGET_PATH)/tests/data/adts-to-mkv-header-%03d.mkv 2>/dev/null diff --git a/tests/ref/fate/aac-autobsf-adtstoasc b/tests/ref/fate/aac-autobsf-adtstoasc new file mode 100644 index 0000000000..9ca8e7ed9e --- /dev/null +++ b/tests/ref/fate/aac-autobsf-adtstoasc @@ -0,0 +1,43 @@ +b0375ba00bcbd55023a176255b8d4ba2 *tests/data/fate/aac-autobsf-adtstoasc.matroska +6728 tests/data/fate/aac-autobsf-adtstoasc.matroska +#extradata 0: 2, 0x0030001c +#tb 0: 1/1000 +#media_type 0: audio +#codec_id 0: aac +#sample_rate 0: 16000 +#channel_layout 0: 4 +#channel_layout_name 0: mono +0, 0, 0, 64, 4, 0x02f70117 +0, 64, 64, 64, 163, 0xd5f85007 +0, 128, 128, 64, 127, 0x66484065 +0, 192, 192, 64, 94, 0x55222bd6 +0, 256, 256, 64, 314, 0x3c7e923a +0, 320, 320, 64, 207, 0x1efc5d1b +0, 384, 384, 64, 119, 0xb2a13601 +0, 448, 448, 64, 184, 0xcafc6091 +0, 512, 512, 64, 132, 0xddd33c0b +0, 576, 576, 64, 152, 0x83935031 +0, 640, 640, 64, 227, 0x32a86bc4 +0, 704, 704, 64, 122, 0xd04e3571 +0, 768, 768, 64, 163, 0x57d44d16 +0, 832, 832, 64, 147, 0x226043d7 +0, 896, 896, 64, 119, 0x8ad931ed +0, 960, 960, 64, 153, 0xbb6e432f +0, 1024, 1024, 64, 185, 0xa01f4ff3 +0, 1088, 1088, 64, 126, 0x85503ce6 +0, 1152, 1152, 64, 246, 0x652c7b59 +0, 1216, 1216, 64, 162, 0xc9f04da0 +0, 1280, 1280, 64, 135, 0x71fa3be0 +0, 1344, 1344, 64, 246, 0x7a6f7788 +0, 1408, 1408, 64, 262, 0xd3097781 +0, 1472, 1472, 64, 60, 0x09a118f5 +0, 1536, 1536, 64, 255, 0xbab5793c +0, 1600, 1600, 64, 153, 0x6b6a44fb +0, 1664, 1664, 64, 160, 0x550e4530 +0, 1728, 1728, 64, 215, 0x7fe66144 +0, 1792, 1792, 64, 144, 0xcd723f7d +0, 1856, 1856, 64, 187, 0x2a0b5c1b +0, 1920, 1920, 64, 177, 0xb8c355d5 +0, 1984, 1984, 64, 156, 0x867d4f3a +0, 2048, 2048, 64, 201, 0x62745ff9 +0, 2112, 2112, 64, 137, 0x90c639e0