spice/server
Francois Gouget 97fcad82eb streaming: Always delegate bit rate control to the video encoder
The video encoders already have sophisticated bit rate control code that
can react to both stream reports sent by the client, and server frame
drop notifications. Furthermore they can adjust both the frame rate and
the image quality to best match the network conditions.

But if the client cannot send stream reports all this is bypassed and
instead the streaming code performs its own primitive bit rate control
that can only adjust the frame rate.

So this patch removes the code duplication and lets the video encoders
do their job.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2016-11-21 16:47:51 +00:00
..
tests Do not crash on NULL codecs 2016-11-17 11:13:04 +00:00
.gitignore Update the .gitignore files for the new manual, 2015-10-16 15:48:23 -05:00
agent-msg-filter.c agent-msg-filter: Remove extra headers 2016-10-11 13:41:37 +01:00
agent-msg-filter.h agent-filter: Use enum as return value 2016-09-16 11:54:56 +01:00
cache-item.h Move RedCacheItem size field inside cache_data union 2016-05-25 09:53:57 +01:00
cache-item.tmpl.c Use SPICE_VERIFY macro for RHEL6 compatibility 2016-11-14 17:22:02 +00:00
char-device.c char-device: add 'self' param to vfuncs 2016-11-14 14:30:47 +00:00
char-device.h char-device: add 'self' param to vfuncs 2016-11-14 14:30:47 +00:00
common-graphics-channel.c Move RedClient to a separate file 2016-11-02 19:30:58 +00:00
common-graphics-channel.h Remove red_pipe_add_verb family function 2016-11-01 02:15:28 +00:00
cursor-channel-client.c Declare same enumerator in a single header 2016-10-20 08:27:50 +01:00
cursor-channel-client.h Declare same enumerator in a single header 2016-10-20 08:27:50 +01:00
cursor-channel.c Remove red_pipe_add_verb family function 2016-11-01 02:15:28 +00:00
cursor-channel.h syntax-check: Remove trailing whitespace from EOL and EOF 2016-11-01 12:46:16 +00:00
dcc-private.h streaming: Always delegate bit rate control to the video encoder 2016-11-21 16:47:51 +00:00
dcc-send.c streaming: Always delegate bit rate control to the video encoder 2016-11-21 16:47:51 +00:00
dcc.c streaming: Always delegate bit rate control to the video encoder 2016-11-21 16:47:51 +00:00
dcc.h streaming: Always delegate bit rate control to the video encoder 2016-11-21 16:47:51 +00:00
demarshallers.h Make sure all headers are independent 2016-05-18 00:24:37 +01:00
dispatcher.c Fix compiling with defined DEBUG_DISPATCHER 2016-07-01 13:59:36 +02:00
dispatcher.h unify header include order 2016-05-12 11:02:54 +01:00
display-channel-private.h Convert RedChannel hierarchy to GObject 2016-10-25 11:32:13 -05:00
display-channel.c Avoid use after free 2016-11-18 10:05:16 +00:00
display-channel.h Convert RedChannel hierarchy to GObject 2016-10-25 11:32:13 -05:00
display-limits.h worker: start a DisplayChannelClient unit 2015-11-19 12:43:02 +00:00
dummy-channel-client.c Move RedClient to a separate file 2016-11-02 19:30:58 +00:00
dummy-channel-client.h Convert RedChannelClient hierarchy to GObject 2016-10-07 14:46:37 -05:00
dummy-channel.c Remove core_public and core_interface_adapter globals usage 2016-11-15 16:49:09 +00:00
dummy-channel.h Convert RedChannel hierarchy to GObject 2016-10-25 11:32:13 -05:00
event-loop.c Remove core_public and core_interface_adapter globals usage 2016-11-15 16:49:09 +00:00
glib-compat.h syntax-check: Change tabs to spaces 2016-11-01 12:43:05 +00:00
glz-encode-match.tmpl.c server: rename _tmpl files 2015-11-26 13:33:36 +00:00
glz-encode.tmpl.c Fix -Werror=format with DEBUG_ENCODE 2016-07-01 14:00:37 +02:00
glz-encoder-dict.c remove glz_encoder_config.h 2015-12-04 11:57:18 +00:00
glz-encoder-dict.h remove glz_encoder_config.h 2015-12-04 11:57:18 +00:00
glz-encoder-priv.h Make sure all headers are independent 2016-05-18 00:24:37 +01:00
glz-encoder.c server: rename files 2015-12-03 23:54:32 +00:00
glz-encoder.h unify header include order 2016-05-12 11:02:54 +01:00
gstreamer-encoder.c streaming: Always delegate bit rate control to the video encoder 2016-11-21 16:47:51 +00:00
image-cache.c Use SPICE_VERIFY macro for RHEL6 compatibility 2016-11-14 17:22:02 +00:00
image-cache.h Limit direct access to DisplayChannelClient 2016-08-09 10:22:46 -05:00
image-encoders.c worker: Remove dependencies from red-worker.h 2016-10-31 10:26:39 +00:00
image-encoders.h Do not declare image_encoders_compress_lz4 if LZ4 is not available 2016-11-01 10:30:27 +00:00
inputs-channel-client.c Use macros for casting Channel types 2016-10-14 11:49:25 +01:00
inputs-channel-client.h Convert RedChannelClient hierarchy to GObject 2016-10-07 14:46:37 -05:00
inputs-channel.c Move RedClient to a separate file 2016-11-02 19:30:58 +00:00
inputs-channel.h Convert RedChannel hierarchy to GObject 2016-10-25 11:32:13 -05:00
jpeg-encoder.c server: rename files 2015-12-03 23:54:32 +00:00
jpeg-encoder.h server: rename files 2015-12-03 23:54:32 +00:00
lz4-encoder.c Move lz4-encoder.[ch] to conditional block in Makefile.am 2016-06-16 11:16:01 -03:00
lz4-encoder.h server: rename files 2015-12-03 23:54:32 +00:00
main-channel-client.c Avoid leaking ping_timer in MainChannelClient 2016-11-18 12:04:43 +00:00
main-channel-client.h Avoid to typedef twice MainChannel 2016-10-20 17:01:19 +01:00
main-channel.c Fix typo in comment 2016-11-09 14:19:30 +00:00
main-channel.h Convert RedChannel hierarchy to GObject 2016-10-25 11:32:13 -05:00
main-dispatcher.c Convert RedClient to GObject 2016-11-02 19:30:58 +00:00
main-dispatcher.h unify header include order 2016-05-12 11:02:54 +01:00
Makefile.am Fix build when builddir != srcdir 2016-11-16 10:47:26 -06:00
memslot.c Make QXLMessage handling safe 2016-11-09 16:43:40 +00:00
memslot.h Make QXLMessage handling safe 2016-11-09 16:43:40 +00:00
migration-protocol.h Fix 'freezed' typo 2016-09-09 14:56:31 +01:00
mjpeg-encoder.c streaming: Always delegate bit rate control to the video encoder 2016-11-21 16:47:51 +00:00
pixmap-cache.c Use SPICE_VERIFY macro for RHEL6 compatibility 2016-11-14 17:22:02 +00:00
pixmap-cache.h Fix 'freezed' typo 2016-09-09 14:56:31 +01:00
red-channel-client-private.h red-channel-client: Remove only written field 2016-11-01 14:24:39 +00:00
red-channel-client.c Remove core_public and core_interface_adapter globals usage 2016-11-15 16:49:09 +00:00
red-channel-client.h Fix typo in comment 2016-11-12 09:59:17 +00:00
red-channel.c syntax-check: Remove empty line at end of file 2016-11-09 16:20:18 +00:00
red-channel.h Move RedClient to a separate file 2016-11-02 19:30:58 +00:00
red-client.c syntax-check: Include config.h file #include <> 2016-11-09 16:20:20 +00:00
red-client.h Convert RedClient to GObject 2016-11-02 19:30:58 +00:00
red-common.h Remove core_public and core_interface_adapter globals usage 2016-11-15 16:49:09 +00:00
red-parse-qxl.c Make QXLMessage handling safe 2016-11-09 16:43:40 +00:00
red-parse-qxl.h Make QXLMessage handling safe 2016-11-09 16:43:40 +00:00
red-pipe-item.c RedChannelClient: store pipe items in a GQueue 2016-09-19 07:47:05 -05:00
red-pipe-item.h RedChannelClient: store pipe items in a GQueue 2016-09-19 07:47:05 -05:00
red-qxl.c Convert RedChannel hierarchy to GObject 2016-10-25 11:32:13 -05:00
red-qxl.h red-qxl: Remove traling semicolon 2016-11-18 11:54:21 +00:00
red-record-qxl.c replay: Remove time argument from recording functions 2016-11-10 21:51:25 +00:00
red-record-qxl.h replay: Remove time argument from recording functions 2016-11-10 21:51:25 +00:00
red-replay-qxl.c Revert "replay: Replicate wakeups properly" 2016-11-17 11:03:51 +00:00
red-worker.c replay: Remove time argument from recording functions 2016-11-10 21:51:25 +00:00
red-worker.h Convert RedChannel hierarchy to GObject 2016-10-25 11:32:13 -05:00
reds-private.h Make RedStatFile private inside stat-file.c 2016-11-16 16:38:32 +00:00
reds-stream.c use #include<> style for spice-common header inclusions. 2016-05-09 12:45:27 +01:00
reds-stream.h unify header include order 2016-05-12 11:02:54 +01:00
reds.c reds: Replace strncpy with g_strlcpy 2016-11-21 16:47:51 +00:00
reds.h Remove g_smartcard_channel global 2016-10-27 10:28:59 +01:00
smartcard-channel-client.c smartcard: Remove duplicate accessor 2016-11-21 14:40:47 +01:00
smartcard-channel-client.h smartcard: Remove duplicate accessor 2016-11-21 14:40:47 +01:00
smartcard.c smartcard: Remove duplicate accessor 2016-11-21 14:40:47 +01:00
smartcard.h Split RedCharDeviceSmartcard and SmartCardChannelClient 2016-09-30 13:14:03 +01:00
sound.c sound: Remove sin field from SpicePlaybackState and SpiceRecordState 2016-11-14 21:56:57 +00:00
sound.h Make sure all headers are independent 2016-05-18 00:24:37 +01:00
spice-audio.h Split spice.h 2014-11-27 14:27:18 +01:00
spice-bitmap-utils.c Handle top down bitmaps dumping 2016-11-15 14:12:25 +00:00
spice-bitmap-utils.h server: misc header cleanups 2015-12-09 22:17:51 +00:00
spice-bitmap-utils.tmpl.c server: rename _tmpl files 2015-11-26 13:33:36 +00:00
spice-char.h Constify spice_server_char_device_recognized_subtypes 2016-06-29 08:09:03 +01:00
spice-core.h Split spice.h 2014-11-27 14:27:18 +01:00
spice-experimental.h Add missing license headers 2015-10-19 14:25:36 +02:00
spice-input.h Split spice.h 2014-11-27 14:27:18 +01:00
spice-migration.h server: Use SPICE_GNUC_DEPRECATED to avoid a dependency on glib.h 2016-08-12 09:47:40 +01:00
spice-qxl.h Revert accidentally merged experimental patches 2016-11-09 13:54:58 +00:00
spice-replay.h Make red-replay-qxl.h a public header 2016-11-10 06:37:15 +00:00
spice-server-enums.tmpl.c syntax-check: Use templates for glib-mkenums 2016-11-14 17:45:32 +00:00
spice-server-enums.tmpl.h syntax-check: Use templates for glib-mkenums 2016-11-14 17:45:32 +00:00
spice-server.h Convert RedChannelClient hierarchy to GObject 2016-10-07 14:46:37 -05:00
spice-server.syms streaming: Let the administrator pick the video encoder and codec 2016-06-14 17:04:40 +02:00
spice-version.h.in build-sys: generate spice-version.h 2014-11-27 14:27:33 +01:00
spice.h Make red-replay-qxl.h a public header 2016-11-10 06:37:15 +00:00
spicevmc.c spicevmc: Remove some duplicate typedefs 2016-11-15 11:50:27 +00:00
stat-file.c Make RedStatFile private inside stat-file.c 2016-11-16 16:38:32 +00:00
stat-file.h Make RedStatFile private inside stat-file.c 2016-11-16 16:38:32 +00:00
stat.h Separate code to manage statistic file 2016-11-16 16:38:13 +00:00
stream.c streaming: Always delegate bit rate control to the video encoder 2016-11-21 16:47:51 +00:00
stream.h streaming: Always delegate bit rate control to the video encoder 2016-11-21 16:47:51 +00:00
sw-canvas.c remove sw-canvas.h 2016-05-09 12:45:37 +01:00
tree.c Use SPICE_VERIFY macro for RHEL6 compatibility 2016-11-14 17:22:02 +00:00
tree.h Introduce SPICE_UPCAST macro 2016-05-24 18:00:51 +01:00
utils.c worker: move dcc_add_surface_area_image 2015-11-23 13:50:44 +00:00
utils.h Avoid recursive inclusion of headers 2016-10-20 16:33:20 +01:00
video-encoder.h Make video-encoder.h self independent 2016-06-16 14:14:04 +01:00
zlib-encoder.c server: rename files 2015-12-03 23:54:32 +00:00
zlib-encoder.h Make sure all headers are independent 2016-05-18 00:24:37 +01:00