From patchwork Tue May 8 22:20:32 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aman Karmani X-Patchwork-Id: 8887 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:155:0:0:0:0:0 with SMTP id c82-v6csp4521610jad; Tue, 8 May 2018 15:20:46 -0700 (PDT) X-Google-Smtp-Source: AB8JxZoT6989JG+5DHDKaeWQcYjE+7kelAgqk1wFPkrWrkYwC1gqpe7dmUhxvhWOSHYeYXoAa4mR X-Received: by 2002:adf:a108:: with SMTP id o8-v6mr34661243wro.106.1525818046386; Tue, 08 May 2018 15:20:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525818046; cv=none; d=google.com; s=arc-20160816; b=Vw6S1aZJfSSHWoh3XDclgh6rYl1NOXElCa2u7PS6PFP81vkglWzmM4HLg5dl6yPEpr uKsCWoB4OE7+P2VpNVWBPDv3MPzocO3O9s6QALHg9e7fQ3wsRB5RHYCqVWYgvIsfSIGZ /k1h/WYc/D1czVo1Pl3Q3FgAdnrcX360f/e8MtLCudt6LdQL2iADTc8VBcR12g64YRxG I9H4G1f28MLd8DAsq+H8OQtkVglNYL68lvngAPrIiB0oIixbAv/bGLS+H9YDtcr+UwGl Rlte8pi5VM0fwO1xEC8qVbpRevET8j94BxfclONcDS8VFAg8ICGcPVqs81TF2EvueUJk GO+A== 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:cc: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=KRYPBfviCJBectendfTDkpDUPV2SQyVovhR7qIwCKBo=; b=HyKgw2T8oWttVBYNoVcEctTV3IMigzRWRcoSk8p2/NCqwEVBsFWeuQKz3R6z5ZE6qG NG70rP5hA3ILkweioPuXYLXpPiWBsj2FtLcaK5R/+HpwnLOG5t6fmTHmCvGqeeib1ndM tx8U1RprGoMoUVCEXTEzfrhMRC8bvolWWgM/DIFcK+UsmECxA1BKsqteLd2jWK6qfTdI 3zH+yjE7y6byrWaTgdec2QIyGVMIY/bjJvDePguLnxRNtgr+eXyDVIa1hTkdn2X6MOu0 wOU9p7XUyaMP02u29ZvXbzQrDE0sKUeaB2GQe1k1mBQG965emv6v22VZMD7SfJn3MQEu NKmQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@tmm1-net.20150623.gappssmtp.com header.s=20150623 header.b=kzrhDzOA; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id p62-v6si6745643wmp.80.2018.05.08.15.20.46; Tue, 08 May 2018 15:20:46 -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=@tmm1-net.20150623.gappssmtp.com header.s=20150623 header.b=kzrhDzOA; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3255A68A7F0; Wed, 9 May 2018 01:20:09 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg0-f43.google.com (mail-pg0-f43.google.com [74.125.83.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9D99B68A7C8 for ; Wed, 9 May 2018 01:20:02 +0300 (EEST) Received: by mail-pg0-f43.google.com with SMTP id z70-v6so1552603pgz.3 for ; Tue, 08 May 2018 15:20:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tmm1-net.20150623.gappssmtp.com; s=20150623; h=sender:from:to:cc:subject:date:message-id; bh=bDJ3cZY++nCgkA+uVIjxzDVRZL9XUJVGOaSZOUjbFxo=; b=kzrhDzOAWDs1qBFXSIRIc5NIjTt7iNnyin242i32e+EScwaOwnSxDV+Gq1v/GiBr2N peFyKcBpFUxWV7+uuwhPq6j0aEWqdMP7oYuOyhDutjxq8DMOMFDfKpRrhUHqVv6egJE9 ZMboS4KMuD1UjhdW0STI05LdeYpuCSlC9JaS1gsXwNQej0tpMNR4STeyIDEFW8SVcEnv TziKY88kEZln3lJJ2+ZzL9g64HB1XdlQqQt/TzNMpkOtqZO9KTxMrGiH/CNb7BJe0v0o /COdDOP6wiMPJ2m0uGIoFthCnt29tXQ2UW6UDrR02m5Cvh/cTLdL4Sqe2n9OnPMvhGbA owuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=bDJ3cZY++nCgkA+uVIjxzDVRZL9XUJVGOaSZOUjbFxo=; b=MTofFgjS2bjuv0nh6VQL2BLg04Oi4qC15BfVE8usTVzfEccTKjBzQtTqY0GPLFIWA+ 8h++3IjBPcb2ZN1N34if5/lqUNVs4lwCwkkKdWhi5HGSruYmu/1rXfclqRxZrOb3XChq OK/xA0ajWownPtmR/ESvFZZVKKkGCB1jWIT/BSuugHKLWfMI0hkOq4gVQUuPb1FwXho7 lKHr78BNTSuN9b+F5N6xjUsQ1DR6VPWexB//rgWzvZxkJjBufr2Y3/lkGLsAeLZtEfau VThbvIStu0bN6IPN9/YFmDuJpHjS/h/AE/JyMLD4KL08Kj9oONlxqY1sbwZPGSXkYTDI DpQQ== X-Gm-Message-State: ALQs6tBR/9FJb71h8UNqQAr2sKNzoUlCwd++q53UjzsacMvDlYJoVVUA 2+HKttjdEV/d0x6Tp4y3P2F8pbqy X-Received: by 10.167.132.146 with SMTP id u18mr14709248pfn.225.1525818036241; Tue, 08 May 2018 15:20:36 -0700 (PDT) Received: from localhost.localdomain (c-69-181-54-242.hsd1.ca.comcast.net. [69.181.54.242]) by smtp.gmail.com with ESMTPSA id 76sm69317622pfm.178.2018.05.08.15.20.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 08 May 2018 15:20:35 -0700 (PDT) From: Aman Gupta To: ffmpeg-devel@ffmpeg.org Date: Tue, 8 May 2018 15:20:32 -0700 Message-Id: <20180508222032.94453-1-ffmpeg@tmm1.net> X-Mailer: git-send-email 2.14.2 Subject: [FFmpeg-devel] [PATCH] avformat/mpegts: skip non-PMT tids 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 Cc: michael@niedermayer.cc, Aman Gupta , jeebjp@gmail.com MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Aman Gupta This mimics the logic flow in all the other callbacks (pat_cb, sdt_cb, m4sl_cb), and avoids calling skip_identical() for non PMT_TID packets. Since skip_identical modifies internal state like MpegTSSectionFilter.last_ver, this change prevents unnecessary reprocessing on some streams which contain multiple tables in the PMT pid. This can be observed with streams from certain US cable providers, which include both tid=0x2 and another unspecified tid=0xc0. --- libavformat/mpegts.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index 629631f60a..5c9ff73133 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -2000,14 +2000,14 @@ static void pmt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len p = section; if (parse_section_header(h, &p, p_end) < 0) return; + if (h->tid != PMT_TID) + return; if (skip_identical(h, tssf)) return; av_log(ts->stream, AV_LOG_TRACE, "sid=0x%x sec_num=%d/%d version=%d tid=%d\n", h->id, h->sec_num, h->last_sec_num, h->version, h->tid); - if (h->tid != PMT_TID) - return; if (!ts->scan_all_pmts && ts->skip_changes) return;