From 8d819221db607fc0c9e6b74196118ee68bd5b247 Mon Sep 17 00:00:00 2001 From: Yann Coupin Date: Wed, 24 Feb 2010 10:56:13 +0000 Subject: [PATCH] Correctly increment continuity_counter in PCR packets. Patch by Yann Coupin, yann.coupin+ffmpeg gmail Originally committed as revision 22020 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/mpegtsenc.c | 8 ++++---- tests/ref/lavf/ts | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index 9b12af7ecb..0d315a0fb0 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -89,8 +89,8 @@ static void mpegts_write_section(MpegTSSection *s, uint8_t *buf, int len) b |= 0x40; *q++ = b; *q++ = s->pid; - *q++ = 0x10 | s->cc; s->cc = (s->cc + 1) & 0xf; + *q++ = 0x10 | s->cc; if (first) *q++ = 0; /* 0 offset */ len1 = TS_PACKET_SIZE - (q - packet); @@ -399,12 +399,12 @@ static int mpegts_write_header(AVFormatContext *s) service->pmt.opaque = s; ts->pat.pid = PAT_PID; - ts->pat.cc = 0; + ts->pat.cc = 15; // Initialize at 15 so that it wraps and be equal to 0 for the first packet we write ts->pat.write_packet = section_write_packet; ts->pat.opaque = s; ts->sdt.pid = SDT_PID; - ts->sdt.cc = 0; + ts->sdt.cc = 15; ts->sdt.write_packet = section_write_packet; ts->sdt.opaque = s; @@ -647,8 +647,8 @@ static void mpegts_write_pes(AVFormatContext *s, AVStream *st, val |= 0x40; *q++ = val; *q++ = ts_st->pid; - *q++ = 0x10 | ts_st->cc | (write_pcr ? 0x20 : 0); ts_st->cc = (ts_st->cc + 1) & 0xf; + *q++ = 0x10 | ts_st->cc | (write_pcr ? 0x20 : 0); if (write_pcr) { // add 11, pcr references the last byte of program clock reference base pcr = ts->cur_pcr + (4+7)*8*90000LL / ts->mux_rate; diff --git a/tests/ref/lavf/ts b/tests/ref/lavf/ts index e892e40d49..6f19705096 100644 --- a/tests/ref/lavf/ts +++ b/tests/ref/lavf/ts @@ -1,3 +1,3 @@ -a1a799fe07b3b9944aad8455a9706c5f *./tests/data/b-lavf.ts -430144 ./tests/data/b-lavf.ts +3ecdc566c525d58bc287ce1baffd9407 *./tests/data/b-lavf.ts + 430144 ./tests/data/b-lavf.ts ./tests/data/b-lavf.ts CRC=0x133216c1