25 VideoPlaybackThread::VideoPlaybackThread(RendererBase *rb)
26 : Thread(
"video-playback"), renderer(rb)
27 , render(), reset(false)
32 VideoPlaybackThread::~VideoPlaybackThread()
37 int64_t VideoPlaybackThread::getCurrentFramePosition()
39 std::lock_guard<std::mutex> lock(frame_mutex);
40 return frame ? frame->number : 0;
43 void VideoPlaybackThread::SetFrame(std::shared_ptr<Frame> next_frame)
45 std::lock_guard<std::mutex> lock(frame_mutex);
46 frame = std::move(next_frame);
50 void VideoPlaybackThread::run()
52 while (!threadShouldExit()) {
54 bool need_render = render.wait(500);
55 if (threadShouldExit())
57 std::shared_ptr<Frame> frame_to_render;
59 std::lock_guard<std::mutex> lock(frame_mutex);
60 frame_to_render = frame;
66 Logger::Instance()->AppendDebugMethod(
67 "VideoPlaybackThread::run (before render)",
68 "frame->number", frame_to_render->number,
69 "need_render", need_render);
72 renderer->paint(frame_to_render);
Header file for Frame class.
Header file for RendererBase class.
Source file for VideoPlaybackThread class.
This namespace is the default namespace for all code in the openshot library.