mirror of
https://github.com/m1k1o/neko.git
synced 2024-07-24 14:40:50 +12:00
removed adaptive framerate tag and react to closed channels
This commit is contained in:
committed by
Miroslav Šedivý
parent
ee13e40d4c
commit
c45a315d9b
@ -52,7 +52,11 @@ func (manager *CaptureManagerCtx) Start() {
|
||||
|
||||
go func() {
|
||||
for {
|
||||
<-manager.desktop.GetBeforeScreenSizeChangeChannel()
|
||||
_, ok := <-manager.desktop.GetBeforeScreenSizeChangeChannel()
|
||||
if !ok {
|
||||
manager.logger.Info().Msg("Before screen size change channel was closed")
|
||||
return
|
||||
}
|
||||
|
||||
if manager.video.Started() {
|
||||
manager.video.destroyPipeline()
|
||||
@ -66,7 +70,11 @@ func (manager *CaptureManagerCtx) Start() {
|
||||
|
||||
go func() {
|
||||
for {
|
||||
framerate := <-manager.desktop.GetAfterScreenSizeChangeChannel()
|
||||
framerate, ok := <-manager.desktop.GetAfterScreenSizeChangeChannel()
|
||||
if !ok {
|
||||
manager.logger.Info().Msg("After screen size change channel was closed")
|
||||
return
|
||||
}
|
||||
|
||||
if manager.video.Started() {
|
||||
manager.video.SetChangeFramerate(framerate)
|
||||
|
@ -89,11 +89,6 @@ func (Capture) Init(cmd *cobra.Command) error {
|
||||
return err
|
||||
}
|
||||
|
||||
cmd.PersistentFlags().Bool("adaptive_framerate", false, "use the framerate given from the source display")
|
||||
if err := viper.BindPFlag("adaptive_framerate", cmd.PersistentFlags().Lookup("adaptive_framerate")); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
//
|
||||
// audio
|
||||
//
|
||||
@ -197,12 +192,14 @@ func (s *Capture) Set() {
|
||||
s.VideoHWEnc = videoHWEnc
|
||||
|
||||
s.VideoBitrate = viper.GetUint("video_bitrate")
|
||||
s.VideoAdaptiveFramerate = false
|
||||
s.VideoMaxFPS = int16(viper.GetInt("max_fps"))
|
||||
if s.VideoMaxFPS == 0 {
|
||||
s.VideoMaxFPS = 60
|
||||
// TODO: Get the starting fps from the screen parameter.
|
||||
s.VideoMaxFPS = 30
|
||||
s.VideoAdaptiveFramerate = true
|
||||
}
|
||||
s.VideoPipeline = viper.GetString("video")
|
||||
s.VideoAdaptiveFramerate = viper.GetBool("adaptive_framerate")
|
||||
|
||||
//
|
||||
// audio
|
||||
|
@ -50,7 +50,11 @@ func (manager *DesktopManagerCtx) Start() {
|
||||
|
||||
go func() {
|
||||
for {
|
||||
msg := <-xevent.EventErrorChannel
|
||||
msg, ok := <-xevent.EventErrorChannel
|
||||
if !ok {
|
||||
manager.logger.Info().Msg("Error channel was closed")
|
||||
return
|
||||
}
|
||||
manager.logger.Warn().
|
||||
Uint8("error_code", msg.Error_code).
|
||||
Str("message", msg.Message).
|
||||
|
@ -63,7 +63,11 @@ func (manager *WebRTCManager) Start() {
|
||||
continue
|
||||
}
|
||||
|
||||
newSample := <-manager.capture.Audio().GetSampleChannel()
|
||||
newSample, ok := <-manager.capture.Audio().GetSampleChannel()
|
||||
if !ok {
|
||||
manager.logger.Info().Msg("Audio capture channel was closed")
|
||||
return
|
||||
}
|
||||
err := manager.audioTrack.WriteSample(media.Sample(newSample))
|
||||
if err != nil && errors.Is(err, io.ErrClosedPipe) {
|
||||
manager.logger.Warn().Err(err).Msg("audio pipeline failed to write")
|
||||
@ -89,7 +93,11 @@ func (manager *WebRTCManager) Start() {
|
||||
continue
|
||||
}
|
||||
|
||||
newSample := <-manager.capture.Video().GetSampleChannel()
|
||||
newSample, ok := <-manager.capture.Video().GetSampleChannel()
|
||||
if !ok {
|
||||
manager.logger.Info().Msg("Video capture channel was closed")
|
||||
return
|
||||
}
|
||||
err := manager.videoTrack.WriteSample(media.Sample(newSample))
|
||||
if err != nil && errors.Is(err, io.ErrClosedPipe) {
|
||||
manager.logger.Warn().Err(err).Msg("video pipeline failed to write")
|
||||
|
@ -103,7 +103,12 @@ type WebSocketHandler struct {
|
||||
func (ws *WebSocketHandler) Start() {
|
||||
go func() {
|
||||
for {
|
||||
channelMessage := <-ws.sessions.GetSessionChannel()
|
||||
channelMessage, ok := <-ws.sessions.GetSessionChannel()
|
||||
if !ok {
|
||||
ws.logger.Info().Str("id", channelMessage.Id).Msg("session channel was closed")
|
||||
// channel closed
|
||||
return
|
||||
}
|
||||
|
||||
switch channelMessage.Type {
|
||||
case "created":
|
||||
@ -189,7 +194,11 @@ func (ws *WebSocketHandler) Start() {
|
||||
|
||||
go func() {
|
||||
for {
|
||||
_ = <-ws.desktop.GetClipboardUpdatedChannel()
|
||||
_, ok = <-ws.desktop.GetClipboardUpdatedChannel()
|
||||
if !ok {
|
||||
ws.logger.Info()).Msg("Clipboard update channel closed")
|
||||
return
|
||||
}
|
||||
session, ok := ws.sessions.GetHost()
|
||||
if !ok {
|
||||
return
|
||||
|
Reference in New Issue
Block a user