mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2025-12-28 08:01:26 +00:00
mjpeg_encoder: add mjpeg_encoder_get_stats
This commit is contained in:
parent
1377732805
commit
a9f1a4b75d
@ -169,6 +169,7 @@ struct MJpegEncoder {
|
||||
void *cbs_opaque;
|
||||
|
||||
/* stats */
|
||||
uint64_t starting_bit_rate;
|
||||
uint64_t avg_quality;
|
||||
uint32_t num_frames;
|
||||
};
|
||||
@ -195,6 +196,8 @@ MJpegEncoder *mjpeg_encoder_new(int bit_rate_control, uint64_t starting_bit_rate
|
||||
enc->first_frame = TRUE;
|
||||
enc->rate_control_is_active = bit_rate_control;
|
||||
enc->rate_control.byte_rate = starting_bit_rate / 8;
|
||||
enc->starting_bit_rate = starting_bit_rate;
|
||||
|
||||
if (bit_rate_control) {
|
||||
struct timespec time;
|
||||
|
||||
@ -1259,3 +1262,11 @@ uint64_t mjpeg_encoder_get_bit_rate(MJpegEncoder *encoder)
|
||||
{
|
||||
return encoder->rate_control.byte_rate * 8;
|
||||
}
|
||||
|
||||
void mjpeg_encoder_get_stats(MJpegEncoder *encoder, MJpegEncoderStats *stats)
|
||||
{
|
||||
spice_assert(encoder != NULL && stats != NULL);
|
||||
stats->starting_bit_rate = encoder->starting_bit_rate;
|
||||
stats->cur_bit_rate = mjpeg_encoder_get_bit_rate(encoder);
|
||||
stats->avg_quality = (double)encoder->avg_quality / encoder->num_frames;
|
||||
}
|
||||
|
||||
@ -43,6 +43,12 @@ typedef struct MJpegEncoderRateControlCbs {
|
||||
void (*update_client_playback_delay)(void *opaque, uint32_t delay_ms);
|
||||
} MJpegEncoderRateControlCbs;
|
||||
|
||||
typedef struct MJpegEncoderStats {
|
||||
uint64_t starting_bit_rate;
|
||||
uint64_t cur_bit_rate;
|
||||
double avg_quality;
|
||||
} MJpegEncoderStats;
|
||||
|
||||
MJpegEncoder *mjpeg_encoder_new(int bit_rate_control, uint64_t starting_bit_rate,
|
||||
MJpegEncoderRateControlCbs *cbs, void *opaque);
|
||||
void mjpeg_encoder_destroy(MJpegEncoder *encoder);
|
||||
@ -103,5 +109,6 @@ void mjpeg_encoder_client_stream_report(MJpegEncoder *encoder,
|
||||
void mjpeg_encoder_notify_server_frame_drop(MJpegEncoder *encoder);
|
||||
|
||||
uint64_t mjpeg_encoder_get_bit_rate(MJpegEncoder *encoder);
|
||||
void mjpeg_encoder_get_stats(MJpegEncoder *encoder, MJpegEncoderStats *stats);
|
||||
|
||||
#endif
|
||||
|
||||
Loading…
Reference in New Issue
Block a user