mpegtsenc: set reserved bits to 1 in PCR field
authorGeorgi Chorbadzhiyski <gf@unixsol.org>
Tue, 25 Jan 2011 11:20:03 +0000 (11:20 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 28 Jan 2011 02:15:32 +0000 (03:15 +0100)
The reserved bits between PCR base and extension fields must be
set to 1.

Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 535638b55f83ad47e4680883e87b97e69d0847e5)

libavformat/mpegtsenc.c
tests/ref/lavf/ts

index f621646..147faae 100644 (file)
@@ -573,7 +573,7 @@ static uint8_t* write_pcr_bits(uint8_t *buf, int64_t pcr)
     *buf++ = pcr_high >> 17;
     *buf++ = pcr_high >> 9;
     *buf++ = pcr_high >> 1;
-    *buf++ = ((pcr_high & 1) << 7) | (pcr_low >> 8);
+    *buf++ = pcr_high << 7 | pcr_low >> 8 | 0x7e;
     *buf++ = pcr_low;
 
     return buf;
index 5b046fb..e054141 100644 (file)
@@ -1,3 +1,3 @@
-e0c183639709d6e75bc553a3ed1333dd *./tests/data/lavf/lavf.ts
+90e770ba5ec0506bd66cd44511e173a3 *./tests/data/lavf/lavf.ts
 406644 ./tests/data/lavf/lavf.ts
 ./tests/data/lavf/lavf.ts CRC=0x133216c1