From patchwork Thu Aug 5 15:24:50 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 29300 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:6c0f:0:0:0:0:0 with SMTP id a15csp503826ioh; Thu, 5 Aug 2021 08:25:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzsKKq/minURN/aC0nrCX50KcVpoQuoCsrdnOJuXImH0IOh/YQWoYzwN4gPZX5EoAkvZsMm X-Received: by 2002:aa7:c043:: with SMTP id k3mr7147980edo.160.1628177155212; Thu, 05 Aug 2021 08:25:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628177155; cv=none; d=google.com; s=arc-20160816; b=qVki6n+zG86QWUIS0Ql8o7aNH9wMBNKV43DH8aaILxTLgvrT1sBdbi4n820KCxIqCJ CqhaJNeOO9QlBlg4Gkeipy2ABr9kiAFdexYv8wZVw833ftrwFAzExvwSyjuEgoCBBr6y IFGBN1d54qVvdeutGTofnpxS7Pq3VDjKtHlZJLGOwibmWb5npzgNc7TE5Ij3ZRqMgadK U1Z6Ibuq6aHa6/iDW3u3KkcIuK5Ll+aDms0MHroLi3KMNlRZ+ag4Z68XfQeCHKVpwS6d ixAwEraOJy2s3yQzGnJ84hX+B4TJHR+boamxORQBCQkl84dimt9HV2eftDrZE//JDOCQ 1r8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=q8UkZjNr+xX7enp9ML9Q7GSvnTbN7359Yg/UmDu/09U=; b=az873euLZ6EJ1Be3L7FvApoHwXUjlmgWqsyGNVulP/ZXpwDe2La5+U3aA7zNER2UNd YFrn+4pke7ocCcuron6BxFntuY+wn7I5Nfa9w1crk1o0P0UuZAUyUpboS5CaO91qZbI1 jKU59jHcjJwUFvxsp2ZbR3+/1LoLqCi08bEtEdDVLpq1opLT6WBnLlilUfpTFrWxK+j8 DmCttzM7EL+ggA/DBM7TLJb6MyPCs7F+flqJdsvgUR8bXCWPXYmtYzDWVIYWaT8Dgga5 pzTKJ920dcFLVjp+/KjsgxVXxKHLNcyIeoqE1ueUEm0vpZ95LdOpHGHlvdTIbTeRcY2g 36ig== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=FPHk+Pl9; 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 ja19si5743141ejc.481.2021.08.05.08.25.54; Thu, 05 Aug 2021 08:25:55 -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=FPHk+Pl9; 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 C5FDE68A13C; Thu, 5 Aug 2021 18:25:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f53.google.com (mail-pj1-f53.google.com [209.85.216.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CF579687F8C for ; Thu, 5 Aug 2021 18:25:45 +0300 (EEST) Received: by mail-pj1-f53.google.com with SMTP id j18-20020a17090aeb12b029017737e6c349so9278656pjz.0 for ; Thu, 05 Aug 2021 08:25:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=cNMrUljgusV2bxwyRnCdBdEfcNPQVweCqu/u7XMzh1o=; b=FPHk+Pl9Rrsr+qogCL8kJfWonX+1Naeoc5I+l/D5VDUlyAk34N5VENU3xuP5Y+jzHb zzND7J1MCWMg4j/SSZjvVttse0XvbMAnFW4RfS3lZ4e2aWJP2yzESvi3eKn0k3lI1IM+ qRCcKb1vuNyuZzJeXRx20U12bUCaEpQUIjWXYcJgSYfNpQJWZzpk/IJ4KODIF7JAC+Qi 0WsTm5Prz96rFKCarkmcGokPrU39KDyhuYEGrfl3I9+GnJsCNhvK4yUVGOFfvl9ZaPmf sqCJYI8RyVW2brsXNlft8TV3DRFgUUh3juL75XmEDkgK3FPwrZ2+4/CpBi9SNHr1/l7s RzhQ== 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:mime-version :content-transfer-encoding; bh=cNMrUljgusV2bxwyRnCdBdEfcNPQVweCqu/u7XMzh1o=; b=NYKzO/dqqfNMtjjOEDWurFj0FHjdb0G3/8FO4PUZh4xzD6DSvMUvXu+OrYA9JcIGCu wkIst10q5LGsH8bdI4nqcJslXxx0uQ0g4QJmJ3/1/c5OkElt0PyH9PHisJhy/4+823oX XP7z/45X1BslkQ4DkGh9O2gFgIL8cDyQ/tuepf+VBsAXAJW44RoN042L1ZS7mNGnmKZ+ 2zFco7qsh1Vr69hj9nyrb36TLemKxQgGJljJCML3Dd6jFvoMS/E49MI9hB67nC+Q6IWY Up97HkblDYHaGanFqM+s+5nH7syAvDmosn44+2di3MbljIOnjc8mSG1Tey3mk0gYAbMV a7DA== X-Gm-Message-State: AOAM531PW9jT0bJIQCYhOFkC1f8BSR/1w/dGwdawuzGG3IwCQjBsvR5R dDkEJWRuv6mEFJesQ/6wwJXBwEEH4OPWAQ== X-Received: by 2002:a63:da0a:: with SMTP id c10mr370511pgh.255.1628177143918; Thu, 05 Aug 2021 08:25:43 -0700 (PDT) Received: from localhost.localdomain ([191.84.242.104]) by smtp.gmail.com with ESMTPSA id l14sm9846647pjz.19.2021.08.05.08.25.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Aug 2021 08:25:43 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 5 Aug 2021 12:24:50 -0300 Message-Id: <20210805152452.1646-1-jamrial@gmail.com> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] avcodec/cbs: add a helper to read extradata within packet side data X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: b2vcJrh0r3J6 Using ff_cbs_read() on the raw buffer will not parse it as extradata, resulting in parsing errors for example when handling ISOBMFF avcC. This helper works around that. Signed-off-by: James Almer --- libavcodec/cbs.c | 13 +++++++++++++ libavcodec/cbs.h | 4 ++++ 2 files changed, 17 insertions(+) diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c index 8d50ea1432..f6e371ddef 100644 --- a/libavcodec/cbs.c +++ b/libavcodec/cbs.c @@ -294,6 +294,19 @@ int ff_cbs_read_packet(CodedBitstreamContext *ctx, pkt->data, pkt->size, 0); } +int ff_cbs_read_packet_side_data(CodedBitstreamContext *ctx, + CodedBitstreamFragment *frag, + const AVPacket *pkt) +{ + size_t side_data_size; + const uint8_t *side_data = + av_packet_get_side_data(pkt, AV_PKT_DATA_NEW_EXTRADATA, + &side_data_size); + + return cbs_read_data(ctx, frag, NULL, + side_data, side_data_size, 1); +} + int ff_cbs_read(CodedBitstreamContext *ctx, CodedBitstreamFragment *frag, const uint8_t *data, size_t size) diff --git a/libavcodec/cbs.h b/libavcodec/cbs.h index b7acf98347..bd97d163b1 100644 --- a/libavcodec/cbs.h +++ b/libavcodec/cbs.h @@ -276,6 +276,10 @@ int ff_cbs_read_extradata_from_codec(CodedBitstreamContext *ctx, CodedBitstreamFragment *frag, const struct AVCodecContext *avctx); +int ff_cbs_read_packet_side_data(CodedBitstreamContext *ctx, + CodedBitstreamFragment *frag, + const AVPacket *pkt); + /** * Read the data bitstream from a packet into a fragment, then * split into units and decompose. From patchwork Thu Aug 5 15:24:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 29298 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:6c0f:0:0:0:0:0 with SMTP id a15csp503946ioh; Thu, 5 Aug 2021 08:26:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwvGX0Lcj5bx3BKGUgV9aokfg12i8edhQr9x9czj+4/FpEF9cBMcign/q23kUF6ms0oTU9J X-Received: by 2002:a17:906:24c3:: with SMTP id f3mr5427656ejb.145.1628177162936; Thu, 05 Aug 2021 08:26:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628177162; cv=none; d=google.com; s=arc-20160816; b=Ep/BTf2kzj/+m7iN+6ZX77gRcslQPRfqMKXJ+UrbB4ErRGOyJ38FXg0iQiTFcoFE5v Mqrbs136ym8oL1N8PcU3JOCQnENiaLHDA0G9jRl4lJ7gxcFIo2EvOLZ2kH2ETQcaIX/I ore+YK/9MoRzdz7kSDIy4pJimgcjXel45FrUDUAkC8vZzxFBMaJc/ueCrkeUBLa20Ppq m+kslBrpGK/jqY4hoKHnCTAWvJR09+UFq6L1SyQQgxuGa6pLvtHW6HZjGgAS2NaVRt+s W/jmFfzh++8OQIJBp8keCIxmEJzyo87AEX8vEZ6p3KnfZFR079Yry4lYdw+0Q9LhFd2D FzFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=cU8J0hIyK3NLA6p8GWA7lfhuRXBzb3MOhtCCBb+/CVA=; b=lLZSGAjr4faVkKTN7cJcUwsoiNaEuKM1dFLnPDTlHJheXpYmedvfYyKAs8PVHWpr1M 5HudML7jFJYEtuiZIQ7HWp8xDDXhmzKZ7oS6M9X4wvbYYCZflLmz1Y/8nbdykta3vNRG MCE/eO0ri1LtkvJ6zx/t3grgi7YvOXoep/M32PTjv1/Z6pxXUCWEMTvjbW5tSBuTfnAS FV74E0Puy7F2yO+7RvjrbjBkwb/NHz519vh4JudtDxSv1OLGFs4/Uz5rGyRr+4bU7ozt IQXwM5F8ZBthsZ/1jRj7NSgPFPWtlLdCqB06KDavvaCBuBPMSLy3WSUOLNVbqSlyDek+ BXxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=Wt63gaGI; 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 d21si5856922eds.131.2021.08.05.08.26.02; Thu, 05 Aug 2021 08:26:02 -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=Wt63gaGI; 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 B6F1468A1EF; Thu, 5 Aug 2021 18:25:52 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E27ED687F8C for ; Thu, 5 Aug 2021 18:25:46 +0300 (EEST) Received: by mail-pj1-f42.google.com with SMTP id pj14-20020a17090b4f4eb029017786cf98f9so10360194pjb.2 for ; Thu, 05 Aug 2021 08:25:46 -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:mime-version :content-transfer-encoding; bh=a6Zr/I1ihtvIxZuFpVSpJHUwwzZFB+2Yj4SQ9fZwOPA=; b=Wt63gaGIJ2OThnIhAuVItIpVkeh4F772JSHu3y/3ybMOsPHWX18VouLy4sZPa4DYLC MzS9nXETrFdA0+LIoyTDvtyFAmg2m8/GPaRGJY5k95+sw27Uqa4Yk47cbjiIniCrXl3E wLetUHT6op619kcvIFSOpAmYEHnYJN6gmZCLIC5irg3gKAIpQghi4crVtA5HRIjXyEBl PKN3cgEw+wei2MRAPtWErgX6mOs3rFaEZPJcu3DAvGGgBCZ4kthsLjDopg6Wn5B92wpA jp+H6ev7e4O85E8z/Qc3IP9YMZwNFdOl1sR2Pe01/8VKeNy+fIDb7AeDhHRT32ZblX9e txhA== 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:mime-version:content-transfer-encoding; bh=a6Zr/I1ihtvIxZuFpVSpJHUwwzZFB+2Yj4SQ9fZwOPA=; b=OWgRX0VhLU8F3Dg82C2Nx3OnZUCGafvJjqQg9LldqKPDO0UezgFfPX9LtSoQvEhIk2 NxyHZaKvESX+uL0WSfxUjLA7ul9Ve0Db+ZknxHsO4ST8iDdNHkJFzHPe4aIvm5Xn00+Z ZhpnGeAh3VvLm/JsjqIUw+c5ncU1rHP3p0uGS0dd5UUIZpn5LOUY85ozrRI7eWi7RJXm yFcT5QX/IpYlcpl6KggAWy49nhdx5rKp/BBRJ2AV9QHaWYwKrzF9of0CU4LP3xYmaITu STu+mAE6yOK21agvNFjGvGzVMOtEH/FILBwpT4uipIYWFNRp0q/7PlTCVF/FR56HLD3f ceOg== X-Gm-Message-State: AOAM531f6bhKeq4Lj59ALj17rhYXIeh7GTWmfWNV/sJmoV1KG8k+dq0W 2Bi9eqjt+/t4tvujr7LAjLbo/84yfTC52g== X-Received: by 2002:a63:1926:: with SMTP id z38mr643167pgl.451.1628177145140; Thu, 05 Aug 2021 08:25:45 -0700 (PDT) Received: from localhost.localdomain ([191.84.242.104]) by smtp.gmail.com with ESMTPSA id l14sm9846647pjz.19.2021.08.05.08.25.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Aug 2021 08:25:44 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 5 Aug 2021 12:24:51 -0300 Message-Id: <20210805152452.1646-2-jamrial@gmail.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210805152452.1646-1-jamrial@gmail.com> References: <20210805152452.1646-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] avcodec/cbs_bsf: use ff_cbs_read_packet_side_data() to parse extradata in packet side data X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: VnIbmeUbUTqH Signed-off-by: James Almer --- libavcodec/cbs_bsf.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/libavcodec/cbs_bsf.c b/libavcodec/cbs_bsf.c index 86ec3f2a4d..069f6e9918 100644 --- a/libavcodec/cbs_bsf.c +++ b/libavcodec/cbs_bsf.c @@ -25,15 +25,12 @@ static int cbs_bsf_update_side_data(AVBSFContext *bsf, AVPacket *pkt) CBSBSFContext *ctx = bsf->priv_data; CodedBitstreamFragment *frag = &ctx->fragment; uint8_t *side_data; - size_t side_data_size; int err; - side_data = av_packet_get_side_data(pkt, AV_PKT_DATA_NEW_EXTRADATA, - &side_data_size); - if (!side_data_size) + if (!av_packet_get_side_data(pkt, AV_PKT_DATA_NEW_EXTRADATA, NULL)) return 0; - err = ff_cbs_read(ctx->input, frag, side_data, side_data_size); + err = ff_cbs_read_packet_side_data(ctx->input, frag, pkt); if (err < 0) { av_log(bsf, AV_LOG_ERROR, "Failed to read extradata from packet side data.\n"); From patchwork Thu Aug 5 15:24:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 29299 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:6c0f:0:0:0:0:0 with SMTP id a15csp504083ioh; Thu, 5 Aug 2021 08:26:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwoBw6ca27OFewMHiNpT073b2+8IQUHpGZGXwiZBUSnr24NapVEeS+oP/98d9E0k01OUMqE X-Received: by 2002:aa7:c74b:: with SMTP id c11mr7394838eds.353.1628177172343; Thu, 05 Aug 2021 08:26:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628177172; cv=none; d=google.com; s=arc-20160816; b=Z9GrEsRSwr4Jk3I3oXnw3HbT+Als9mle0EiMGmkWl9hRIro8K5Ld5KEN6FrPgB5tg0 7YelvGnvw/JhLkHavyAPkwu7dN0J8HfuaXN+N7LQAK0juu9Frnv3JjNn48lEJt/Fd438 GgqIQ7KstChkT0GP8/vaXBByjhy8RSkXndltZr2JOcMRmHnm3hLMzV7rGQv8wY22pcq2 GMkZKg6PuxiTbF4yxxgdRisCh7vFfMd3ReHwvcw1RIyZxaV4fEbtMJpWysCoMO+6K9Ys HXv7VD9nQY61c7V6fAAsi4oB3QuPBgjZbQ6P4FxTb0ZIdMuIN63O8TtyebRRvaigJqNv bpfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=/EPSDqdc5UmjGY/mSh+XFlt4WTk1lXsfLuCVRcUYqGo=; b=Bk7jz/C1McT1PNmfPrfyPr2vawSdAajoksW6vw0AeBoQgHqz16baYn/pdsP0XVdfNf h33KoVS9NKV5kD6gBs6jAZjuMosDJtZHquv4xI4qkqZuFej5ybYw4PWWIbNnN+E64LlR QYvep5zcSxpPObooH/BPWq/Kv67jqTXh1Uv+rSxkhkyOtEtAhw98fBDqzPGEFtF2mOBB 2BFpzS9A+Q92MddO3s1jsh9OSbn0Q0uCA1UOJLSrvof/khuBDIkxGIHfz9F4R0Hv6a+8 focXSSCw6lTR2JC65BF/VHpDOrZeDgmk8GcpFUwDJaNADUxbJGjZLDm8Dqi9Y77Y7lac 5aFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=nH0wE4Ke; 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 s18si6432818eji.591.2021.08.05.08.26.11; Thu, 05 Aug 2021 08:26:12 -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=nH0wE4Ke; 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 974FB68A2D2; Thu, 5 Aug 2021 18:25:54 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2E3B768A16C for ; Thu, 5 Aug 2021 18:25:48 +0300 (EEST) Received: by mail-pj1-f49.google.com with SMTP id mt6so9690285pjb.1 for ; Thu, 05 Aug 2021 08:25:48 -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:mime-version :content-transfer-encoding; bh=hMWXIVo0Z9rP44mTfUym1+9Hz2NqV3Ym1oxMuCq3rLU=; b=nH0wE4KeB8aWLA3BNDUWErkoOCDxsMAIA0kwvXHTQKs8KXKWTUXAapKcf4QIkIijtb 1gw5cPpShlGyQeVUejNMh5vXGpJqxqL7li8sdgCOqk/aBe9t68faZDZy4pOnV8E6i4ea bVauRlNpQ+Ktd0r2oGoAj6fBRgkHbRE6rN95YJrGc8EGrDXbJggZjb/lTJB8HtMSbNjr F7V/lyJNskYORGcruY0y68PN2tEPRhQNY2+JcmJYWVx50FFiAb8i7boHoVXj58TLbPsb gpYgCwKvxvA7BXlUEGdFt/XGRdQ1kTeMWxGJHuXKYVFVoMW3vQfmPsf3GblWvYnpmtJ2 Dw8w== 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:mime-version:content-transfer-encoding; bh=hMWXIVo0Z9rP44mTfUym1+9Hz2NqV3Ym1oxMuCq3rLU=; b=IsBKuFuF4Pthiurkwp94mmqgTM5Qx19nlcdjNRvP8yIVnBLs+IW3WDqzm1o/IKEGSM J93oqIHEO+BGpZCj8Ebb5mlsY2a6nrT3gGATqVO6GwvGrcRs9Nnd3XZsX3+4sRCRv54K Zv3jlOhHn5w0csmEAcRosXC+9VJ+YIUPvClpttbOEYXqiTeVi2IIkvULKl4SkbcD3VfS mKiHkwXTqVCtmhbMVMT4JuSJbzX1aAGNt9CgdLAex0pxvWuYqGQWr1ddEkawlhYG3h/Z kR99kUOLg83ERyinYTMaBo7yn4iNzuAl9c2yQBi2M5Re5EI5TVPNPHt62humGh3JnrN9 dP8Q== X-Gm-Message-State: AOAM533knKVqTksE7ghY25fkwEOlHWQzSITlSvTw9o3s3MijrcArnEDh cqF+AJB822VHNc4hNT+ba5cp/OEvATleCg== X-Received: by 2002:a63:4f50:: with SMTP id p16mr361604pgl.378.1628177146407; Thu, 05 Aug 2021 08:25:46 -0700 (PDT) Received: from localhost.localdomain ([191.84.242.104]) by smtp.gmail.com with ESMTPSA id l14sm9846647pjz.19.2021.08.05.08.25.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Aug 2021 08:25:46 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 5 Aug 2021 12:24:52 -0300 Message-Id: <20210805152452.1646-3-jamrial@gmail.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210805152452.1646-1-jamrial@gmail.com> References: <20210805152452.1646-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] avcodec/trace_headers_bsf: also parse extradata in packet side data X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: HNJscboz41Ff Certain mov/mp4 files have parameter sets out of band, and when required for a sample it may be propagated within the relevant packet's side data. This fixes parsing said files if the SPS and/or PPS in the side data is different than the one in extradata. Signed-off-by: James Almer --- libavcodec/trace_headers_bsf.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libavcodec/trace_headers_bsf.c b/libavcodec/trace_headers_bsf.c index b891730bac..a9b0247412 100644 --- a/libavcodec/trace_headers_bsf.c +++ b/libavcodec/trace_headers_bsf.c @@ -95,6 +95,19 @@ static int trace_headers(AVBSFContext *bsf, AVPacket *pkt) av_log(bsf, AV_LOG_INFO, "Packet: %d bytes%s.\n", pkt->size, tmp); + if (av_packet_get_side_data(pkt, AV_PKT_DATA_NEW_EXTRADATA, NULL)) { + av_log(bsf, AV_LOG_INFO, "Side data:\n"); + + err = ff_cbs_read_packet_side_data(ctx->cbc, frag, pkt); + ff_cbs_fragment_reset(frag); + + if (err < 0) { + av_packet_unref(pkt); + return err; + } + av_log(bsf, AV_LOG_INFO, "Payload:\n"); + } + err = ff_cbs_read_packet(ctx->cbc, frag, pkt); ff_cbs_fragment_reset(frag);