summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/mpegts.c70
1 files changed, 35 insertions, 35 deletions
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index 3c9f9421cb..9c09819531 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -412,44 +412,44 @@ static void write_section_data(MpegTSContext *ts, MpegTSFilter *tss1,
offset = 0;
cur_section_buf = tss->section_buf;
while (cur_section_buf - tss->section_buf < MAX_SECTION_SIZE && cur_section_buf[0] != 0xff) {
- /* compute section length if possible */
- if (tss->section_h_size == -1 && tss->section_index - offset >= 3) {
- len = (AV_RB16(cur_section_buf + 1) & 0xfff) + 3;
- if (len > MAX_SECTION_SIZE)
- return;
- tss->section_h_size = len;
- }
-
- if (tss->section_h_size != -1 &&
- tss->section_index >= offset + tss->section_h_size) {
- int crc_valid = 1;
- tss->end_of_section_reached = 1;
-
- if (tss->check_crc) {
- crc_valid = !av_crc(av_crc_get_table(AV_CRC_32_IEEE), -1, cur_section_buf, tss->section_h_size);
- if (tss->section_h_size >= 4)
- tss->crc = AV_RB32(cur_section_buf + tss->section_h_size - 4);
+ /* compute section length if possible */
+ if (tss->section_h_size == -1 && tss->section_index - offset >= 3) {
+ len = (AV_RB16(cur_section_buf + 1) & 0xfff) + 3;
+ if (len > MAX_SECTION_SIZE)
+ return;
+ tss->section_h_size = len;
+ }
+ if (tss->section_h_size != -1 &&
+ tss->section_index >= offset + tss->section_h_size) {
+ int crc_valid = 1;
+ tss->end_of_section_reached = 1;
+
+ if (tss->check_crc) {
+ crc_valid = !av_crc(av_crc_get_table(AV_CRC_32_IEEE), -1, cur_section_buf, tss->section_h_size);
+ if (tss->section_h_size >= 4)
+ tss->crc = AV_RB32(cur_section_buf + tss->section_h_size - 4);
+
+ if (crc_valid) {
+ ts->crc_validity[ tss1->pid ] = 100;
+ }else if (ts->crc_validity[ tss1->pid ] > -10) {
+ ts->crc_validity[ tss1->pid ]--;
+ }else
+ crc_valid = 2;
+ }
if (crc_valid) {
- ts->crc_validity[ tss1->pid ] = 100;
- }else if (ts->crc_validity[ tss1->pid ] > -10) {
- ts->crc_validity[ tss1->pid ]--;
- }else
- crc_valid = 2;
- }
- if (crc_valid) {
- tss->section_cb(tss1, cur_section_buf, tss->section_h_size);
- if (crc_valid != 1)
- tss->last_ver = -1;
- }
+ tss->section_cb(tss1, cur_section_buf, tss->section_h_size);
+ if (crc_valid != 1)
+ tss->last_ver = -1;
+ }
- cur_section_buf += tss->section_h_size;
- offset += tss->section_h_size;
- tss->section_h_size = -1;
- } else {
- tss->end_of_section_reached = 0;
- break;
- }
+ cur_section_buf += tss->section_h_size;
+ offset += tss->section_h_size;
+ tss->section_h_size = -1;
+ } else {
+ tss->end_of_section_reached = 0;
+ break;
+ }
}
}