to be continued

This commit is contained in:
TonyChyi
2022-10-10 19:12:26 +08:00
parent 4844944c37
commit 07d3ae3717
6 changed files with 28 additions and 8 deletions

View File

@@ -39,7 +39,7 @@ func NewServer(o *Options) (*Server, error) {
options: o,
audioHeader: make(chan *audio.WavHeader, 1),
pcm: make(chan []byte),
ppm: make(chan io.ReadCloser, 60), // to be configured
ppm: make(chan io.ReadCloser, int(o.Video.FPS)), // to be configured
}
u, err := url.Parse(o.QmpAddress)
@@ -115,13 +115,22 @@ func (s *Server) Run() error {
go func() {
logrus.Debug("screen capture start")
defer close(s.ppm)
for range time.Tick(time.Second / time.Duration(s.options.Video.FPS)) { // to be configured
ticker := time.NewTicker(time.Second / time.Duration(s.options.Video.FPS))
defer ticker.Stop()
for { // to be configured
ppm, err := s.qemu.ScreenDump()
if err != nil {
logrus.Error(err)
continue
}
s.ppm <- ppm
select {
case s.ppm <- ppm:
case <-ticker.C:
continue
}
//<-ticker.C
}
}()
@@ -144,6 +153,8 @@ func (s *Server) Run() error {
logrus.Debug("start reading PCM")
defer close(s.pcm)
ticker := time.NewTicker(waveHeader.GetLatnecy(s.options.Audio.BufferSize))
defer ticker.Stop()
for {
b := make([]byte, s.options.Audio.BufferSize) // to be configured
if _, err := f.Read(b[:]); err != nil {
@@ -151,7 +162,7 @@ func (s *Server) Run() error {
}
select {
case s.pcm <- b:
case <-time.After(waveHeader.GetLatnecy(s.options.Audio.BufferSize)):
case <-ticker.C:
}
}
}()