[FFmpeg-devel] [PATCH] avformat/mpegts: parse large PMTs with multiple tables
Michael Niedermayer
michael at niedermayer.cc
Wed Jun 13 01:17:43 EEST 2018
On Mon, Jun 11, 2018 at 12:43:31AM -0700, Aman Gupta wrote:
> From: Aman Gupta <aman at tmm1.net>
>
> In 9152c1e4955, the mpegts parser was taught how to parse
> PMT sections which contained multiple tables. That commit
> fixed parsing of PMT packets from some cable providers,
> which included a special SCTE table (0xc0) before the
> standard program map table (0x2).
>
> Sometimes, however, the combined 0xc0 and 0x2 tables are
> larger than a single TS packet (188 bytes). The mpegts parser
> already attempts to parse sections which span multiple packets,
> but still assumed that the split section only contained one
> table.
>
> This patch fixes parsing of such a sample[1].
>
> Before:
>
> Input #0, mpegts, from 'combined-pmt-tids-split.ts':
> Duration: 00:00:01.26, start: 39188.931756, bitrate: 597 kb/s
> Program 1
> No Program
> Stream #0:0[0xeff]: Audio: ac3, 48000 Hz, mono, fltp, 64 kb/s
> Stream #0:1[0xefd]: Audio: mp3, 0 channels, fltp
> Stream #0:2[0xefe]: Unknown: none
>
> After:
>
> Input #0, mpegts, from 'combined-pmt-tids-split.ts':
> Duration: 00:00:01.27, start: 39188.931756, bitrate: 589 kb/s
> Program 1
> Stream #0:0[0xefd]: Video: h264 ([27][0][0][0] / 0x001B), none, 59.94 fps, 59.94 tbr, 90k tbn, 180k tbc
> Stream #0:1[0xefe](eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 384 kb/s
> Stream #0:2[0xeff](spa): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, mono, fltp, 64 kb/s
> Stream #0:3[0xf00]: Data: scte_35
> Stream #0:4[0xf01]: Unknown: none (ETV1 / 0x31565445)
> Stream #0:5[0xf02]: Unknown: none (ETV1 / 0x31565445)
> Stream #0:6[0xf03]: Unknown: none ([192][0][0][0] / 0x00C0)
>
> With the patch, the PMT is parsed correctly so the streams are
> created in the correct order, are associated with "Program 1",
> and their codecs are set correctly.
>
> [1] https://s3.amazonaws.com/tmm1/combined-pmt-tids-split.ts
>
> Signed-off-by: Aman Gupta <aman at tmm1.net>
> ---
> libavformat/mpegts.c | 1 +
> 1 file changed, 1 insertion(+)
with this change section_h_size becomes almost a local variable
is that intended ?
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
The worst form of inequality is to try to make unequal things equal.
-- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20180613/8e218dc7/attachment.sig>
More information about the ffmpeg-devel
mailing list