diff --git a/src/media/audio/jack/jacklayer.cpp b/src/media/audio/jack/jacklayer.cpp index 5692b35b3f5cd25bca8ac45e05cfeece6528619d..f56e8cccd6810e4b933d17a382753577c6df15bb 100644 --- a/src/media/audio/jack/jacklayer.cpp +++ b/src/media/audio/jack/jacklayer.cpp @@ -251,7 +251,7 @@ JackLayer::ringbuffer_worker() return; // FIXME this is all kinds of evil - usleep(20000); + std::this_thread::sleep_for(std::chrono::milliseconds(20)); capture(); playback(); diff --git a/src/media/media_decoder.cpp b/src/media/media_decoder.cpp index cd9f5b4a62c673760bae500afda992e47bb1592a..d1a3d71720ff875aa3e817f4792705b53fad2ced 100644 --- a/src/media/media_decoder.cpp +++ b/src/media/media_decoder.cpp @@ -324,14 +324,10 @@ MediaDecoder::decode(VideoFrame& result) frame->format = (AVPixelFormat) correctPixFmt(frame->format); if (emulateRate_ and frame->pkt_pts != AV_NOPTS_VALUE) { auto frame_time = getTimeBase()*(frame->pkt_pts - avStream_->start_time); - auto target = startTime_ + frame_time.real() * 1000000; + auto target = startTime_ + static_cast<std::int64_t>(frame_time.real() * 1e6); auto now = av_gettime(); if (target > now) { -#if LIBAVUTIL_VERSION_CHECK(51, 34, 0, 61, 100) - av_usleep(target - now); -#else - usleep(target - now); -#endif + std::this_thread::sleep_for(std::chrono::milliseconds(target - now)); } } return Status::FrameFinished; @@ -379,14 +375,10 @@ MediaDecoder::decode(const AudioFrame& decodedFrame) if (frameFinished) { if (emulateRate_ and frame->pkt_pts != AV_NOPTS_VALUE) { auto frame_time = getTimeBase()*(frame->pkt_pts - avStream_->start_time); - auto target = startTime_ + frame_time.real() * 1000000; + auto target = startTime_ + static_cast<std::int64_t>(frame_time.real() * 1e6); auto now = av_gettime(); if (target > now) { -#if LIBAVUTIL_VERSION_CHECK(51, 34, 0, 61, 100) - av_usleep(target - now); -#else - usleep(target - now); -#endif + std::this_thread::sleep_for(std::chrono::milliseconds(target - now)); } } return Status::FrameFinished; diff --git a/src/media/video/test/test_shm.cpp b/src/media/video/test/test_shm.cpp index 1c3ad804267c29b16dc6bc57537dd000a9263e4d..6512436766293ac985b55b958eccaf099aa6881a 100644 --- a/src/media/video/test/test_shm.cpp +++ b/src/media/video/test/test_shm.cpp @@ -49,7 +49,7 @@ sink_thread() while (!done) { sink.render(test_vec); - usleep(1000); + std::this_thread::sleep_for(std::chrono::milliseconds(1)); } sink.stop(); std::cerr << std::endl; @@ -77,7 +77,7 @@ run_client() assert(dest.size() == test_data_str.size()); while (not done and dest != test_data_str) { src.render(dest.data(), dest.size()); - usleep(1000); + std::this_thread::sleep_for(std::chrono::milliseconds(1)); } src.stop(); std::cerr << "Got characters, exitting client process" << std::endl; diff --git a/src/media/video/test/test_video_input.cpp b/src/media/video/test/test_video_input.cpp index 5f7a57c4cc7afaff618aa1e2a07d146fbf755c94..732a0621d6088aa3ea20c8db183fbe28966339f0 100644 --- a/src/media/video/test/test_video_input.cpp +++ b/src/media/video/test/test_video_input.cpp @@ -18,7 +18,6 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#include <unistd.h> // for sleep #include "test_video_input.h" #include "video_input.h" #include "media_const.h" @@ -33,7 +32,7 @@ void VideoInputTest::testInput() std::string resource = DRing::Media::VideoProtocolPrefix::DISPLAY + sep + std::string(getenv("DISPLAY") ? : ":0.0"); VideoInput video; video.switchInput(resource); - usleep(10000); + std::this_thread::sleep_for(std::chrono::milliseconds(10)); } }}} // namespace ring::video::test diff --git a/src/media/video/video_mixer.cpp b/src/media/video/video_mixer.cpp index 78a56d5f4b49b09e5346b9117b3c4b6d1efc947c..48c914df325fdfe1ce43e2855513feff52cb575d 100644 --- a/src/media/video/video_mixer.cpp +++ b/src/media/video/video_mixer.cpp @@ -44,7 +44,7 @@ private: std::mutex mutex_; }; -static constexpr const double FRAME_DURATION = 1/30.; +static constexpr const auto FRAME_DURATION = std::chrono::duration<double>(1/30.); VideoMixer::VideoMixer(const std::string& id) : VideoGenerator::VideoGenerator() @@ -122,10 +122,10 @@ void VideoMixer::process() { const auto now = std::chrono::system_clock::now(); - const std::chrono::duration<double> diff = now - lastProcess_; - const double delay = FRAME_DURATION - diff.count(); - if (delay > 0) - usleep(delay * 1e6); + const auto diff = now - lastProcess_; + const auto delay = FRAME_DURATION - diff; + if (delay.count() > 0) + std::this_thread::sleep_for(delay); lastProcess_ = now; VideoFrame& output = getNewFrame();