void MediaPlayerPrivateAVFoundation::seekWithTolerance(const MediaTime& mediaTime, const MediaTime& negativeTolerance, const MediaTime& positiveTolerance) { MediaTime time = mediaTime; if (m_seeking) { LOG(Media, "MediaPlayerPrivateAVFoundation::seekWithTolerance(%p) - save pending seek", this); m_pendingSeek = [this, time, negativeTolerance, positiveTolerance]() { seekWithTolerance(time, negativeTolerance, positiveTolerance); }; return; } m_seeking = true; if (!metaDataAvailable()) return; if (time > durationMediaTime()) time = durationMediaTime(); if (currentMediaTime() == time) return; if (currentTextTrack()) currentTextTrack()->beginSeeking(); LOG(Media, "MediaPlayerPrivateAVFoundation::seek(%p) - seeking to %s", this, toString(time).utf8().data()); seekToTime(time, negativeTolerance, positiveTolerance); }
void MediaPlayerPrivateAVFoundation::seekWithTolerance(double time, double negativeTolerance, double positiveTolerance) { if (m_seeking) { LOG(Media, "MediaPlayerPrivateAVFoundation::seekWithTolerance(%p) - save pending seek", this); m_pendingSeek = [this, time, negativeTolerance, positiveTolerance]() { seekWithTolerance(time, negativeTolerance, positiveTolerance); }; return; } m_seeking = true; if (!metaDataAvailable()) return; if (time > duration()) time = duration(); if (currentTime() == time) return; if (currentTrack()) currentTrack()->beginSeeking(); LOG(Media, "MediaPlayerPrivateAVFoundation::seek(%p) - seeking to %f", this, time); seekToTime(time, negativeTolerance, positiveTolerance); }
void MediaPlayerPrivateAVFoundation::seek(const MediaTime& time) { seekWithTolerance(time, MediaTime::zeroTime(), MediaTime::zeroTime()); }
void MediaPlayerPrivateAVFoundation::seek(float time) { seekWithTolerance(time, 0, 0); }