feb58f7b25021d0736fa485f56321feac8632827
[packages/trusty/cirros-testvm.git] / cirros-testvm / src-cirros / buildroot-2015.05 / package / ffmpeg / 0005-Don-t-accept-mpegts-PMT-that-isn-t-current.patch
1 From 1f48ee2290e9041b0371eb9a9cb742e9568930a1 Mon Sep 17 00:00:00 2001
2 From: Joakim Plate <elupus@ecce.se>
3 Date: Sun, 18 Sep 2011 19:16:34 +0200
4 Subject: [PATCH 05/13] Don't accept mpegts PMT that isn't current
5
6 Patch part of the XBMC patch set for ffmpeg, downloaded from
7 https://github.com/xbmc/FFmpeg/.
8
9 Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
10 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11 ---
12  libavformat/mpegts.c | 4 ++++
13  1 file changed, 4 insertions(+)
14
15 diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
16 index 5dd28f1..9f85aed 100644
17 --- a/libavformat/mpegts.c
18 +++ b/libavformat/mpegts.c
19 @@ -572,6 +572,7 @@ typedef struct SectionHeader {
20      uint8_t tid;
21      uint16_t id;
22      uint8_t version;
23 +    uint8_t current;
24      uint8_t sec_num;
25      uint8_t last_sec_num;
26  } SectionHeader;
27 @@ -643,6 +644,7 @@ static int parse_section_header(SectionHeader *h,
28      val = get8(pp, p_end);
29      if (val < 0)
30          return val;
31 +    h->current = val & 0x1;
32      h->version = (val >> 1) & 0x1f;
33      val = get8(pp, p_end);
34      if (val < 0)
35 @@ -1968,6 +1970,8 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
36          return;
37      if (ts->skip_changes)
38          return;
39 +    if (!h->current)
40 +        return;
41  
42      ts->stream->ts_id = h->id;
43  
44 -- 
45 2.1.0
46