|
|
|
@ -110,20 +110,20 @@ static void mpegts_write_section(MpegTSSection *s, uint8_t *buf, int len) |
|
|
|
|
buf[len - 4] = (crc >> 24) & 0xff; |
|
|
|
|
buf[len - 3] = (crc >> 16) & 0xff; |
|
|
|
|
buf[len - 2] = (crc >> 8) & 0xff; |
|
|
|
|
buf[len - 1] = (crc) & 0xff; |
|
|
|
|
buf[len - 1] = crc & 0xff; |
|
|
|
|
|
|
|
|
|
/* send each packet */ |
|
|
|
|
buf_ptr = buf; |
|
|
|
|
while (len > 0) { |
|
|
|
|
first = (buf == buf_ptr); |
|
|
|
|
first = buf == buf_ptr; |
|
|
|
|
q = packet; |
|
|
|
|
*q++ = 0x47; |
|
|
|
|
b = (s->pid >> 8); |
|
|
|
|
b = s->pid >> 8; |
|
|
|
|
if (first) |
|
|
|
|
b |= 0x40; |
|
|
|
|
*q++ = b; |
|
|
|
|
*q++ = s->pid; |
|
|
|
|
s->cc = (s->cc + 1) & 0xf; |
|
|
|
|
s->cc = s->cc + 1 & 0xf; |
|
|
|
|
*q++ = 0x10 | s->cc; |
|
|
|
|
if (first) |
|
|
|
|
*q++ = 0; /* 0 offset */ |
|
|
|
@ -821,12 +821,12 @@ static void mpegts_write_pes(AVFormatContext *s, AVStream *st, |
|
|
|
|
/* prepare packet header */ |
|
|
|
|
q = buf; |
|
|
|
|
*q++ = 0x47; |
|
|
|
|
val = (ts_st->pid >> 8); |
|
|
|
|
val = ts_st->pid >> 8; |
|
|
|
|
if (is_start) |
|
|
|
|
val |= 0x40; |
|
|
|
|
*q++ = val; |
|
|
|
|
*q++ = ts_st->pid; |
|
|
|
|
ts_st->cc = (ts_st->cc + 1) & 0xf; |
|
|
|
|
ts_st->cc = ts_st->cc + 1 & 0xf; |
|
|
|
|
*q++ = 0x10 | ts_st->cc; // payload indicator + CC
|
|
|
|
|
if (key && is_start && pts != AV_NOPTS_VALUE) { |
|
|
|
|
// set Random Access for key frames
|
|
|
|
|