mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-06-15 20:45:57 +08:00
hls/ts播放器改成绝对时间戳:#1389
This commit is contained in:
@@ -241,11 +241,6 @@ void HlsPlayer::playDelay() {
|
||||
|
||||
void HlsDemuxer::start(const EventPoller::Ptr &poller, TrackListener *listener) {
|
||||
_frame_cache.clear();
|
||||
_stamp[TrackAudio].setRelativeStamp(0);
|
||||
_stamp[TrackVideo].setRelativeStamp(0);
|
||||
_stamp[TrackAudio].syncTo(_stamp[TrackVideo]);
|
||||
setPlayPosition(0);
|
||||
|
||||
_delegate.setTrackListener(listener);
|
||||
|
||||
//每50毫秒执行一次
|
||||
@@ -267,11 +262,12 @@ bool HlsDemuxer::inputFrame(const Frame::Ptr &frame) {
|
||||
return true;
|
||||
}
|
||||
|
||||
//计算相对时间戳
|
||||
int64_t dts, pts;
|
||||
_stamp[frame->getTrackType()].revise(frame->dts(), frame->pts(), dts, pts);
|
||||
if (_frame_cache.empty()) {
|
||||
//设置当前播放位置时间戳
|
||||
setPlayPosition(frame->dts());
|
||||
}
|
||||
//根据时间戳缓存frame
|
||||
_frame_cache.emplace(dts, Frame::getCacheAbleFrame(frame));
|
||||
_frame_cache.emplace(frame->dts(), Frame::getCacheAbleFrame(frame));
|
||||
|
||||
if (getBufferMS() > 30 * 1000) {
|
||||
//缓存超过30秒,强制消费至15秒(减少延时或内存占用)
|
||||
|
||||
Reference in New Issue
Block a user