diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
index f621646c526fca273206d3f26c362de08ba0932b..147faaed0d0394960dc99b8ea55ec70c301037b7 100644
--- a/libavformat/mpegtsenc.c
+++ b/libavformat/mpegtsenc.c
@@ -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;
diff --git a/tests/ref/lavf/ts b/tests/ref/lavf/ts
index 5b046fb23d5664e5cb99c23b047d30e85c3725fb..e0541416645e38ed2ad99fa2269f554a6b7d5808 100644
--- a/tests/ref/lavf/ts
+++ b/tests/ref/lavf/ts
@@ -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