From patchwork Tue May 8 19:54:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aman Karmani X-Patchwork-Id: 8883 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:155:0:0:0:0:0 with SMTP id c82-v6csp4404733jad; Tue, 8 May 2018 12:54:44 -0700 (PDT) X-Google-Smtp-Source: AB8JxZoC4jKYxbRVIrKvA0F+41ur5YNA3xPMbXrbW0NyQxgfwzlYd0bAkh9xPlphhDgqdI+Qlqj3 X-Received: by 2002:a1c:4249:: with SMTP id p70-v6mr4095740wma.17.1525809284731; Tue, 08 May 2018 12:54:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525809284; cv=none; d=google.com; s=arc-20160816; b=HdGg/LCGAqQWXIHSYDcFqF/wiuPniRXBkmJZa54MxZE+2nUMUppFfpjASI5ZZmSDAt zhk6JeoU7UrpoIKjAbbmOl7t5jChKP0Bd/+Ru/j3KEqk2UTjgZAKZERBU9dCJsahpJ1Z cpTZc26HamLsx1Fm7AbY6S1B26zhqJQJ3CLvazzWTlNHdLWITbDZNK+2R2iSSKN07XXs BMzs5ztAmDsg1FtC9L39ZlsLKoH74geVI9JygeDrhiWxk6bi5ev+r1zwX6mRIsnulFy6 /Uy5O/hzq5uvprSgnvlfnyFKR5rIaZr2OlRI5bRxHUdjI9ihMPqv8nKBqoW7z/j4uvDk foZA== 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=j8XmUNqqdnvAvoh7mdqf8Lk2TaLqZZ/oOyecn2wSZWU=; b=Ghek6esX+HCWipnwP6TOah7cb8r14ZWPQ7f00E12ZiGYrRgCQgFtsCsZ6YAug+g2Bl pxIssu9iylFddp3sNEnRtN7R1tTOcYALxnnE7aVob75gF7HYrsCSRL5RvM5FXfqFtIoB n1eZbhfdxL7TuniR16PEkxujKzj14ZElUe7wiAkI5hRNhhIa+c4AhKyIVTZE8aDO+brU 7hHx1sUYGaWMBImvHMG8ijcshyZNPtbWURpkhvuMB6WYkdyJj8GTLZwhvxw36nr7zrvQ DutOAMmcw4mAdEepKKopAB8UQE92eea4dpola0tp36L1oe6QNpWa1jH5vFmavMBBr/Uk k4oQ== 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=R23zkW06; 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 v8si6569726wmf.159.2018.05.08.12.54.39; Tue, 08 May 2018 12:54:44 -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=R23zkW06; 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 8ADD068A770; Tue, 8 May 2018 22:54:02 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf0-f178.google.com (mail-pf0-f178.google.com [209.85.192.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 32AFE68A765 for ; Tue, 8 May 2018 22:53:56 +0300 (EEST) Received: by mail-pf0-f178.google.com with SMTP id e9so20456398pfi.4 for ; Tue, 08 May 2018 12:54:31 -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=jCVxkHJaRPrOhC4c7wq11FLJOX0/uewWvqCFYNgNv04=; b=R23zkW06vAPTIB7Y43cM9XqyppVwubZwM2z2kLz9bg4dyW+w5nDdF8C8NEKWwFOfIm 7wuDLPFL+xRHCWnMcbQotqiiRg4i4qAvGlR0wnSXw6tf3+DeQWPefzP9uYQy9WoDbL5D Q0nM+z9hBrl4QFYlH32KD2O9ofFYhxxiYRknqzGavc2SFeHGn2zgdlT5wAkH3YbsrFpW eXCB92sNfjRjkcIg/sgMkTwBmuL3w/OeU4eRaRP5yiXcTvuA80nE9gT/Inb7VvDv0dhi nyMpIxDMFIPuyCY2HPLQioDcn2ZDHhTCflvTbFrictPUVaDR+BGIP0JnyBxTQD3wUETM aXfg== 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=jCVxkHJaRPrOhC4c7wq11FLJOX0/uewWvqCFYNgNv04=; b=GMpU1qLvo0G0lAs+zR9kOCtofPAlPj1D//Hx1vs/dYlwGdLLzaU+WmM5sJY7W5mIDa Sx6C2HCe3O+qGptjjdrQOIkj83LGwrlHI1l0/kQREU2HpRBshxgDIPgzoZYq52b83Frf vVaHuSx8uyrtXZqsRYhg7Xmbz0csHfXGVwEQJmo+0BPKL8EHpWkxnhwPaaZMLqmocIPT S9fyBX6Ki53Qa9SZ1c9JG7BlUOQtZ915eC38nDSLmY6aI3S1q7JDUOL85NYOxhGwvlco RMk5rlTuJ7P3eE5+E5MCavgreoTI6puxeh8mVFs3FcqmxdB1RSfwhtsW1/y7nF+GFEKN 33dA== X-Gm-Message-State: ALQs6tBjdPXCnyeLa4k3Q5sH2AIx43bvo/DTNU3X3qhh52vFoye/62+o 5sUH3z3zgcjDdQl0YpQntTWQfWXi X-Received: by 2002:a63:66c2:: with SMTP id a185-v6mr23293538pgc.347.1525809269744; Tue, 08 May 2018 12:54:29 -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 h65sm58530608pfj.54.2018.05.08.12.54.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 08 May 2018 12:54:29 -0700 (PDT) From: Aman Gupta To: ffmpeg-devel@ffmpeg.org Date: Tue, 8 May 2018 12:54:17 -0700 Message-Id: <20180508195417.82850-1-ffmpeg@tmm1.net> X-Mailer: git-send-email 2.14.2 Subject: [FFmpeg-devel] [PATCH] avformat/mpegts: add skip_unknown_pids option 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 Allows the user to skip streams that are not advertised in the PMT. --- libavformat/mpegts.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index 629631f60a..5464f48a8d 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -143,6 +143,7 @@ struct MpegTSContext { int skip_changes; int skip_clear; + int skip_unknown_pids; int scan_all_pmts; @@ -176,6 +177,8 @@ static const AVOption options[] = { {.i64 = 0}, 0, 1, 0 }, {"skip_clear", "skip clearing programs", offsetof(MpegTSContext, skip_clear), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, 0 }, + {"skip_unknown_pids", "skip streams not advertised in PMT", offsetof(MpegTSContext, skip_unknown_pids), AV_OPT_TYPE_BOOL, + {.i64 = 0}, 0, 1, 0 }, { NULL }, }; @@ -1058,7 +1061,7 @@ static int mpegts_push_data(MpegTSFilter *filter, /* stream not present in PMT */ if (!pes->st) { - if (ts->skip_changes) + if (ts->skip_changes || ts->skip_unknown_pids) goto skip; pes->st = avformat_new_stream(ts->stream, NULL); @@ -2011,6 +2014,8 @@ static void pmt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len if (!ts->scan_all_pmts && ts->skip_changes) return; + if (ts->skip_unknown_pids && !get_program(ts, h->id)) + return; if (!ts->skip_clear) clear_program(ts, h->id);