Skip to content
Snippets Groups Projects
Commit 88405c00 authored by Andreas Traczyk's avatar Andreas Traczyk Committed by gerrit2
Browse files

daemon: replace remaining usleep with sleep_for

Provide better cross platform compiler compliance by using c++11
standard library's std::this_thread::sleep_for.

Change-Id: Ib0ef9bec8336ae620315c05b53706e4605ab00fb
Tuleap: #794
parent 451d6973
No related branches found
No related tags found
No related merge requests found
......@@ -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();
......
......@@ -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;
......
......@@ -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;
......
......@@ -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
......
......@@ -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();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment