pass screen frame rate to gstreamer pipeline.

This commit is contained in:
m1k1o
2021-02-15 14:59:20 +01:00
parent 27740b0af0
commit 321e52ee4f
4 changed files with 30 additions and 7 deletions

View File

@ -130,11 +130,18 @@ func (manager *RemoteManager) Streaming() bool {
}
func (manager *RemoteManager) createPipelines() {
// handle maximum fps
rate := manager.config.ScreenRate
if manager.config.MaxFPS != 0 && manager.config.MaxFPS < manager.config.ScreenRate {
rate = manager.config.MaxFPS
}
var err error
manager.video, err = gst.CreateAppPipeline(
manager.config.VideoCodec,
manager.config.Display,
manager.config.VideoParams,
rate,
manager.config.VideoBitrate,
)
if err != nil {
@ -145,6 +152,7 @@ func (manager *RemoteManager) createPipelines() {
manager.config.AudioCodec,
manager.config.Device,
manager.config.AudioParams,
0, // fps: n/a for audio
manager.config.AudioBitrate,
)
if err != nil {
@ -171,11 +179,17 @@ func (manager *RemoteManager) ChangeResolution(width int, height int, rate int)
return err
}
// handle maximum fps
if manager.config.MaxFPS != 0 && manager.config.MaxFPS < rate {
rate = manager.config.MaxFPS
}
var err error
manager.video, err = gst.CreateAppPipeline(
manager.config.VideoCodec,
manager.config.Display,
manager.config.VideoParams,
rate,
manager.config.VideoBitrate,
)
if err != nil {