diff --git a/README.md b/README.md index c518c41ee..c9fc999df 100755 --- a/README.md +++ b/README.md @@ -403,6 +403,7 @@ Remark: ======= ## History +* v2.0, 2016-08-30, comment the pcr. * v2.0, 2016-08-18, fix [srs-librtmp#4](https://github.com/ossrs/srs-librtmp/issues/4) filter frame. * v2.0, 2016-08-10, fix socket timeout for librtmp. * v2.0, 2016-08-08, fix the crash by srs_info log. diff --git a/trunk/src/kernel/srs_kernel_ts.cpp b/trunk/src/kernel/srs_kernel_ts.cpp index 1c14fe459..0aeed8acd 100644 --- a/trunk/src/kernel/srs_kernel_ts.cpp +++ b/trunk/src/kernel/srs_kernel_ts.cpp @@ -480,6 +480,14 @@ int SrsTsContext::encode_pes(SrsFileWriter* writer, SrsTsMessage* msg, int16_t p // it's ok to set pcr equals to dts, // @see https://github.com/ossrs/srs/issues/311 + // Fig. 3.18. Program Clock Reference of Digital-Video-and-Audio-Broadcasting-Technology, page 65 + // In MPEG-2, these are the "Program Clock Refer- ence" (PCR) values which are + // nothing else than an up-to-date copy of the STC counter fed into the transport + // stream at a certain time. The data stream thus carries an accurate internal + // "clock time". All coding and de- coding processes are controlled by this clock + // time. To do this, the receiver, i.e. the MPEG decoder, must read out the + // "clock time", namely the PCR values, and compare them with its own internal + // system clock, that is to say its own 42 bit counter. int64_t pcr = write_pcr? msg->dts : -1; // TODO: FIXME: finger it why use discontinuity of msg.