[Spice-devel] [PATCH spice-streaming-server 2/3] Wait to have some client before initialising capture
Frediano Ziglio
fziglio at redhat.com
Wed Nov 8 15:02:36 UTC 2017
This saves some resources if no client are connected.
Also will allow to get a better capture engine taking into account
client supported codecs.
Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
src/spice-streaming-agent.cpp | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/spice-streaming-agent.cpp b/src/spice-streaming-agent.cpp
index 4122eee..ff43804 100644
--- a/src/spice-streaming-agent.cpp
+++ b/src/spice-streaming-agent.cpp
@@ -345,10 +345,6 @@ static void cursor_changes(Display *display, int event_base)
static void
do_capture(const char *streamport, FILE *f_log)
{
- std::unique_ptr<FrameCapture> capture(agent.GetBestFrameCapture());
- if (!capture)
- throw std::runtime_error("cannot find a suitable capture system");
-
streamfd = open(streamport, O_RDWR);
if (streamfd < 0)
// TODO was syslog(LOG_ERR, "Failed to open %s: %s\n", streamport, strerror(errno));
@@ -368,9 +364,16 @@ do_capture(const char *streamport, FILE *f_log)
}
}
+ if (quit)
+ return;
+
syslog(LOG_INFO, "streaming starts now\n");
uint64_t time_last = 0;
+ std::unique_ptr<FrameCapture> capture(agent.GetBestFrameCapture());
+ if (!capture)
+ throw std::runtime_error("cannot find a suitable capture system");
+
while (!quit && streaming_requested) {
if (++frame_count % 100 == 0) {
syslog(LOG_DEBUG, "SENT %d frames\n", frame_count);
@@ -417,9 +420,6 @@ do_capture(const char *streamport, FILE *f_log)
syslog(LOG_ERR, "FAILED to read command\n");
return;
}
- if (!streaming_requested) {
- capture->Reset();
- }
}
}
}
--
2.13.6
More information about the Spice-devel
mailing list