DDNet documentation
Loading...
Searching...
No Matches
video.h
Go to the documentation of this file.
1#ifndef ENGINE_SHARED_VIDEO_H
2#define ENGINE_SHARED_VIDEO_H
3
4#include <base/time.h>
5
6#include <cstdint>
7#include <functional>
8
9typedef std::function<void(short *pFinalOut, unsigned Frames)> ISoundMixFunc;
10
11class IVideo
12{
13public:
14 virtual ~IVideo() = default;
15
16 virtual bool Start() = 0;
17 virtual void Stop() = 0;
18 virtual void Pause(bool Pause) = 0;
19 virtual bool IsRecording() = 0;
20
21 virtual void NextVideoFrame() = 0;
22 virtual void NextVideoFrameThread() = 0;
23
24 virtual void NextAudioFrame(ISoundMixFunc Mix) = 0;
26
27 static IVideo *Current() { return ms_pCurrentVideo; }
28
29 static int64_t Time() { return ms_Time; }
30 static float LocalTime() { return ms_LocalTime; }
31 static void SetLocalStartTime(int64_t LocalStartTime) { ms_LocalStartTime = LocalStartTime; }
32 static void SetFPS(int FPS) { ms_TickTime = time_freq() / FPS; }
33
34protected:
36 static int64_t ms_Time;
37 static int64_t ms_LocalStartTime;
38 static float ms_LocalTime;
39 static int64_t ms_TickTime;
40};
41
42#endif
Definition video.h:12
virtual void NextVideoFrame()=0
static float ms_LocalTime
Definition video.h:38
virtual void Pause(bool Pause)=0
static float LocalTime()
Definition video.h:30
virtual bool IsRecording()=0
virtual void NextAudioFrame(ISoundMixFunc Mix)=0
static void SetLocalStartTime(int64_t LocalStartTime)
Definition video.h:31
virtual void NextVideoFrameThread()=0
static void SetFPS(int FPS)
Definition video.h:32
static int64_t ms_LocalStartTime
Definition video.h:37
static IVideo * ms_pCurrentVideo
Definition video.h:35
virtual void Stop()=0
virtual bool Start()=0
static int64_t Time()
Definition video.h:29
virtual ~IVideo()=default
static int64_t ms_Time
Definition video.h:36
static int64_t ms_TickTime
Definition video.h:39
static IVideo * Current()
Definition video.h:27
virtual void NextAudioFrameTimeline(ISoundMixFunc Mix)=0
int64_t time_freq()
Definition time.cpp:47
std::function< void(short *pFinalOut, unsigned Frames)> ISoundMixFunc
Definition video.h:9