From patchwork Wed Aug 12 18:25:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 21611 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 0C1A8448F08 for ; Wed, 12 Aug 2020 21:26:30 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D98B268B529; Wed, 12 Aug 2020 21:26:29 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f195.google.com (mail-qt1-f195.google.com [209.85.160.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9BE8668AD55 for ; Wed, 12 Aug 2020 21:26:23 +0300 (EEST) Received: by mail-qt1-f195.google.com with SMTP id d27so2264368qtg.4 for ; Wed, 12 Aug 2020 11:26:23 -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=DIqaUc5Gb8Yg8r66TrEYjY/tFhfr09FTUWkLNSQKhw8=; b=AYMSCQfxJl64ld79HVyWKapA2f6wQ4QRwxH5IOgd+hmFbrTauttWzZCbFFUqFP4uhG QAjg/2Iq+JtGUSt015VsMRa7CXYN0EIpbM3PFLrfp4BP34OU8CTP5m/ar3vzXsZ51hc5 +z0zra+fU1zIhDyi0WCo/hjVx9xT9bxTXjiGh9+UnChVaEHnmRL1La81UFE9sNBdFW7f i2V2SUXZKP2VgM/OQvA4soSaMujGagEKvsNijaT4Dodk8r86KnfJ2wcR7V6qmeCeHv35 zZbzYvSn6qh4qdPFMz5xEwtfowE7er6I7gTCTqnlOrt6rHjWtTlkDAN7z4bpDBk4ev+2 8XDw== 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=DIqaUc5Gb8Yg8r66TrEYjY/tFhfr09FTUWkLNSQKhw8=; b=q0i1LXMQgP0blcFD4RZ6j/meme03bfUzRSyRGO6i6vaDOiedcY/cTiBD3rmgkE9bn5 R7aWE2nAKF412VslLO2KNket1hCR5b8UFXPD1T0XODLLuEqsOTarwbAILuClt5FGrdxd hlUH5vJ6XtkyWbPV2PXY3XmAtxYLkRRfzT3rFQEx3RJScAR+JExWeoy7xOcaGTBDy5Ke 3q+dxf6SPwZpNlSN/pJqkp4raSMqzBtyoS80J9S7DNGVFfqonBbU5pq9oigsF0J5C8fY o55IhuLV9GhOi8IwRM9HprUObjAq8+F5AaD8Mw+vOLBEUpNRatUqMpUFN+22QRAseCS1 5ICw== X-Gm-Message-State: AOAM531PdMgItnzFuQvNsEtn4Zqy4TCqIMQDxFJJcotTOKOoWnueGMWn 1rAdx7+LR9RW0W7BibMhArYURjtX X-Google-Smtp-Source: ABdhPJzomoRyzMsbwfZolCoCtShlbep1ITMxThBNNgiOToxSwQHkG4HuMYdZoghiiJjNc6DgH3GQSw== X-Received: by 2002:ac8:7b51:: with SMTP id m17mr1044874qtu.80.1597256781535; Wed, 12 Aug 2020 11:26:21 -0700 (PDT) Received: from localhost.localdomain ([181.23.66.204]) by smtp.gmail.com with ESMTPSA id x29sm3266889qtv.80.2020.08.12.11.26.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Aug 2020 11:26:20 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Aug 2020 15:25:57 -0300 Message-Id: <20200812182558.14199-2-jamrial@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200812182558.14199-1-jamrial@gmail.com> References: <20200812182558.14199-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] avcodec/h2645_parse: skip empty NAL units earlier 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" No point in trying to parse nonexistent header bits. Signed-off-by: James Almer --- Will fix indentation before pushing. But the diff was smaller like this. libavcodec/h2645_parse.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libavcodec/h2645_parse.c b/libavcodec/h2645_parse.c index a7cdf76e87..5708fe56f9 100644 --- a/libavcodec/h2645_parse.c +++ b/libavcodec/h2645_parse.c @@ -485,8 +485,6 @@ int ff_h2645_packet_split(H2645Packet *pkt, const uint8_t *buf, int length, "NALFF: Consumed only %d bytes instead of %d\n", consumed, extract_length); - pkt->nb_nals++; - bytestream2_skip(&bc, consumed); /* see commit 3566042a0 */ @@ -496,6 +494,9 @@ int ff_h2645_packet_split(H2645Packet *pkt, const uint8_t *buf, int length, nal->size_bits = get_bit_length(nal, skip_trailing_zeros); + if (nal->size <= 0 || nal->size_bits <= 0) + continue; + ret = init_get_bits(&nal->gb, nal->data, nal->size_bits); if (ret < 0) return ret; @@ -504,13 +505,13 @@ int ff_h2645_packet_split(H2645Packet *pkt, const uint8_t *buf, int length, ret = hevc_parse_nal_header(nal, logctx); else ret = h264_parse_nal_header(nal, logctx); - if (ret < 0 || nal->size <= 0 || nal->size_bits <= 0) { if (ret < 0) { av_log(logctx, AV_LOG_WARNING, "Invalid NAL unit %d, skipping.\n", nal->type); - } - pkt->nb_nals--; + continue; } + + pkt->nb_nals++; } return 0;