diff options
author | Jonathon Jongsma <jjongsma@redhat.com> | 2014-05-30 13:45:02 -0500 |
---|---|---|
committer | Jonathon Jongsma <jjongsma@redhat.com> | 2014-05-30 13:45:02 -0500 |
commit | 284cca2a5ebc98257275585083321a7100fb89b3 (patch) | |
tree | 96a6401ad2ccc277b9ed3af8796dba77c33f96dd | |
parent | e7db94d833e848b63fdd9956ba51ce2c5917cb25 (diff) |
Fix assert in mjpeg_encoder_adjust_params_to_bit_rate()
If mjpeg_encoder_reset_quality() is called with the same quality as currently
set, it will not reset last_enc_size but not reset num_recent_enc_frames,
violating some assumptions in _adjust_params_to_bit_rate(). To avoid aborting
the server, simply return early from this function.
Resolves: rhbz#1086820
-rw-r--r-- | server/mjpeg_encoder.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/server/mjpeg_encoder.c b/server/mjpeg_encoder.c index f465d881..12447dac 100644 --- a/server/mjpeg_encoder.c +++ b/server/mjpeg_encoder.c @@ -625,7 +625,10 @@ static void mjpeg_encoder_adjust_params_to_bit_rate(MJpegEncoder *encoder) return; } - spice_assert(rate_control->num_recent_enc_frames); + if (!rate_control->num_recent_enc_frames) { + spice_debug("No recent encoded frames"); + return; + } if (rate_control->num_recent_enc_frames < MJPEG_AVERAGE_SIZE_WINDOW && rate_control->num_recent_enc_frames < rate_control->fps) { |