| From 1f48ee2290e9041b0371eb9a9cb742e9568930a1 Mon Sep 17 00:00:00 2001 |
| From: Joakim Plate <elupus@ecce.se> |
| Date: Sun, 18 Sep 2011 19:16:34 +0200 |
| Subject: [PATCH 05/13] Don't accept mpegts PMT that isn't current |
| |
| Patch part of the XBMC patch set for ffmpeg, downloaded from |
| https://github.com/xbmc/FFmpeg/. |
| |
| Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> |
| Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
| --- |
| libavformat/mpegts.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c |
| index 5dd28f1..9f85aed 100644 |
| --- a/libavformat/mpegts.c |
| +++ b/libavformat/mpegts.c |
| @@ -572,6 +572,7 @@ typedef struct SectionHeader { |
| uint8_t tid; |
| uint16_t id; |
| uint8_t version; |
| + uint8_t current; |
| uint8_t sec_num; |
| uint8_t last_sec_num; |
| } SectionHeader; |
| @@ -643,6 +644,7 @@ static int parse_section_header(SectionHeader *h, |
| val = get8(pp, p_end); |
| if (val < 0) |
| return val; |
| + h->current = val & 0x1; |
| h->version = (val >> 1) & 0x1f; |
| val = get8(pp, p_end); |
| if (val < 0) |
| @@ -1968,6 +1970,8 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len |
| return; |
| if (ts->skip_changes) |
| return; |
| + if (!h->current) |
| + return; |
| |
| ts->stream->ts_id = h->id; |
| |
| -- |
| 2.1.0 |
| |