winlin

for #304, do not add deviation for absolute overflow.

@@ -487,11 +487,7 @@ bool SrsHlsMuxer::is_segment_absolutely_overflow() @@ -487,11 +487,7 @@ bool SrsHlsMuxer::is_segment_absolutely_overflow()
487 { 487 {
488 // @see https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-83553950 488 // @see https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-83553950
489 srs_assert(current); 489 srs_assert(current);
490 -  
491 - // use N% deviation, to smoother.  
492 - double deviation = hls_ts_floor? SRS_HLS_FLOOR_REAP_PERCENT * hls_fragment_deviation : 0.0;  
493 -  
494 - return current->duration >= hls_aof_ratio * (hls_fragment + deviation); 490 + return current->duration >= hls_aof_ratio * hls_fragment;
495 } 491 }
496 492
497 int SrsHlsMuxer::update_acodec(SrsCodecAudio ac) 493 int SrsHlsMuxer::update_acodec(SrsCodecAudio ac)
@@ -922,7 +918,7 @@ int SrsHlsCache::write_video(SrsAvcAacCodec* codec, SrsHlsMuxer* muxer, int64_t @@ -922,7 +918,7 @@ int SrsHlsCache::write_video(SrsAvcAacCodec* codec, SrsHlsMuxer* muxer, int64_t
922 // 2. some gops duration overflow. 918 // 2. some gops duration overflow.
923 if (sample->frame_type == SrsCodecVideoAVCFrameKeyFrame && muxer->is_segment_overflow()) { 919 if (sample->frame_type == SrsCodecVideoAVCFrameKeyFrame && muxer->is_segment_overflow()) {
924 if (!sample->has_idr) { 920 if (!sample->has_idr) {
925 - srs_warn("hls: ts starts without IDR, first nalu=%d", sample->first_nalu_type); 921 + srs_warn("hls: ts starts without IDR, first nalu=%d, idr=%d", sample->first_nalu_type, sample->has_idr);
926 } 922 }
927 if ((ret = reap_segment("video", muxer, cache->video->dts)) != ERROR_SUCCESS) { 923 if ((ret = reap_segment("video", muxer, cache->video->dts)) != ERROR_SUCCESS) {
928 return ret; 924 return ret;