summaryrefslogtreecommitdiff
path: root/libavformat/mpegts.c
diff options
context:
space:
mode:
authorAlex Converse <alex.converse@gmail.com>2012-03-26 15:51:59 -0700
committerAlex Converse <alex.converse@gmail.com>2012-03-26 17:53:51 -0700
commitc9024a9fd7ea7980f876a65816da8da78dd9d88d (patch)
tree3dbc32a6d5e30d9f633848418556be7ca3ce8c45 /libavformat/mpegts.c
parent95b192de5d05f3e1542e7b2378cdefbc195f5185 (diff)
mpegts: Fix dead error checks
Diffstat (limited to 'libavformat/mpegts.c')
-rw-r--r--libavformat/mpegts.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index dd51b85765..c6af892889 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -1389,16 +1389,18 @@ static void pmt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
return;
clear_program(ts, h->id);
- pcr_pid = get16(&p, p_end) & 0x1fff;
+ pcr_pid = get16(&p, p_end);
if (pcr_pid < 0)
return;
+ pcr_pid &= 0x1fff;
add_pid_to_pmt(ts, h->id, pcr_pid);
av_dlog(ts->stream, "pcr_pid=0x%x\n", pcr_pid);
- program_info_length = get16(&p, p_end) & 0xfff;
+ program_info_length = get16(&p, p_end);
if (program_info_length < 0)
return;
+ program_info_length &= 0xfff;
while(program_info_length >= 2) {
uint8_t tag, len;
tag = get8(&p, p_end);
@@ -1436,9 +1438,10 @@ static void pmt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
stream_type = get8(&p, p_end);
if (stream_type < 0)
break;
- pid = get16(&p, p_end) & 0x1fff;
+ pid = get16(&p, p_end);
if (pid < 0)
break;
+ pid &= 0x1fff;
/* now create stream */
if (ts->pids[pid] && ts->pids[pid]->type == MPEGTS_PES) {
@@ -1476,9 +1479,10 @@ static void pmt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
ff_program_add_stream_index(ts->stream, h->id, st->index);
- desc_list_len = get16(&p, p_end) & 0xfff;
+ desc_list_len = get16(&p, p_end);
if (desc_list_len < 0)
break;
+ desc_list_len &= 0xfff;
desc_list_end = p + desc_list_len;
if (desc_list_end > p_end)
break;
@@ -1522,9 +1526,10 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
sid = get16(&p, p_end);
if (sid < 0)
break;
- pmt_pid = get16(&p, p_end) & 0x1fff;
+ pmt_pid = get16(&p, p_end);
if (pmt_pid < 0)
break;
+ pmt_pid &= 0x1fff;
av_dlog(ts->stream, "sid=0x%x pid=0x%x\n", sid, pmt_pid);
@@ -1572,9 +1577,10 @@ static void sdt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
val = get8(&p, p_end);
if (val < 0)
break;
- desc_list_len = get16(&p, p_end) & 0xfff;
+ desc_list_len = get16(&p, p_end);
if (desc_list_len < 0)
break;
+ desc_list_len &= 0xfff;
desc_list_end = p + desc_list_len;
if (desc_list_end > p_end)
break;