diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2015-11-10 11:57:38 +0000 |
---|---|---|
committer | Frediano Ziglio <fziglio@redhat.com> | 2015-11-10 16:09:28 +0000 |
commit | 885557f117b77b4fb2e8cd92d90a90b961081af8 (patch) | |
tree | 75e5e3b1dced4d888175244c67d12c3af89c5675 /server/stream.c | |
parent | 1e4abdc15d83c605b020682979abc03dc4848f31 (diff) | |
download | spice-885557f117b77b4fb2e8cd92d90a90b961081af8.tar.gz spice-885557f117b77b4fb2e8cd92d90a90b961081af8.tar.xz spice-885557f117b77b4fb2e8cd92d90a90b961081af8.zip |
worker: move stream functions to a new stream.c file
Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
Diffstat (limited to 'server/stream.c')
-rw-r--r-- | server/stream.c | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/server/stream.c b/server/stream.c new file mode 100644 index 00000000..45459635 --- /dev/null +++ b/server/stream.c @@ -0,0 +1,70 @@ +/* + Copyright (C) 2009-2015 Red Hat, Inc. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, see <http://www.gnu.org/licenses/>. +*/ +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "stream.h" +#include "display-channel.h" + +void stream_agent_stats_print(StreamAgent *agent) +{ +#ifdef STREAM_STATS + StreamStats *stats = &agent->stats; + double passed_mm_time = (stats->end - stats->start) / 1000.0; + MJpegEncoderStats encoder_stats = {0}; + + if (agent->mjpeg_encoder) { + mjpeg_encoder_get_stats(agent->mjpeg_encoder, &encoder_stats); + } + + spice_debug("stream=%p dim=(%dx%d) #in-frames=%"PRIu64" #in-avg-fps=%.2f #out-frames=%"PRIu64" " + "out/in=%.2f #drops=%"PRIu64" (#pipe=%"PRIu64" #fps=%"PRIu64") out-avg-fps=%.2f " + "passed-mm-time(sec)=%.2f size-total(MB)=%.2f size-per-sec(Mbps)=%.2f " + "size-per-frame(KBpf)=%.2f avg-quality=%.2f " + "start-bit-rate(Mbps)=%.2f end-bit-rate(Mbps)=%.2f", + agent, agent->stream->width, agent->stream->height, + stats->num_input_frames, + stats->num_input_frames / passed_mm_time, + stats->num_frames_sent, + (stats->num_frames_sent + 0.0) / stats->num_input_frames, + stats->num_drops_pipe + + stats->num_drops_fps, + stats->num_drops_pipe, + stats->num_drops_fps, + stats->num_frames_sent / passed_mm_time, + passed_mm_time, + stats->size_sent / 1024.0 / 1024.0, + ((stats->size_sent * 8.0) / (1024.0 * 1024)) / passed_mm_time, + stats->size_sent / 1000.0 / stats->num_frames_sent, + encoder_stats.avg_quality, + encoder_stats.starting_bit_rate / (1024.0 * 1024), + encoder_stats.cur_bit_rate / (1024.0 * 1024)); +#endif +} + +StreamClipItem *stream_clip_item_new(DisplayChannelClient* dcc, StreamAgent *agent) +{ + StreamClipItem *item = spice_new(StreamClipItem, 1); + red_channel_pipe_item_init(RED_CHANNEL_CLIENT(dcc)->channel, + (PipeItem *)item, PIPE_ITEM_TYPE_STREAM_CLIP); + + item->stream_agent = agent; + agent->stream->refs++; + item->refs = 1; + return item; +} |