winlin

fix bug of time jitter correcter

@@ -136,6 +136,11 @@ int SrsConsumer::jitter_correct(SrsSharedPtrMessage* msg, int audio_sample_rate) @@ -136,6 +136,11 @@ int SrsConsumer::jitter_correct(SrsSharedPtrMessage* msg, int audio_sample_rate)
136 } else { 136 } else {
137 delta = DEFAULT_FRAME_TIME_MS; 137 delta = DEFAULT_FRAME_TIME_MS;
138 } 138 }
  139 +
  140 + // sometimes, the time is absolute time, so correct it again.
  141 + if (delta > CONST_MAX_JITTER_MS) {
  142 + delta = DEFAULT_FRAME_TIME_MS;
  143 + }
139 144
140 srs_info("jitter detected, last_pts=%d, pts=%d, diff=%d, last_time=%d, time=%d, diff=%d", 145 srs_info("jitter detected, last_pts=%d, pts=%d, diff=%d, last_time=%d, time=%d, diff=%d",
141 last_pkt_time, time, time - last_pkt_time, last_pkt_correct_time, last_pkt_correct_time + delta, delta); 146 last_pkt_time, time, time - last_pkt_time, last_pkt_correct_time, last_pkt_correct_time + delta, delta);