From 91dc5da243c9a7ff38d6ac55a66f4ce5288ed896 Mon Sep 17 00:00:00 2001 From: Andri Yngvason Date: Sun, 30 Oct 2022 12:32:13 +0000 Subject: [PATCH] raw: Keep reference to encoder while encoding --- src/raw-encoding.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/raw-encoding.c b/src/raw-encoding.c index 5c6291d..2dc3fe2 100644 --- a/src/raw-encoding.c +++ b/src/raw-encoding.c @@ -176,6 +176,7 @@ static void raw_encoder_on_done(void* obj) encoder_finish_frame(&self->encoder, result, pts); rcbuf_unref(result); + encoder_unref(&self->encoder); } struct encoder* raw_encoder_new(void) @@ -223,8 +224,11 @@ static int raw_encoder_encode(struct encoder* encoder, struct nvnc_fb* fb, nvnc_fb_ref(self->current_fb); pixman_region_copy(&self->current_damage, damage); + encoder_ref(&self->encoder); + int rc = aml_start(aml_get_default(), self->work); if (rc < 0) { + encoder_unref(&self->encoder); aml_unref(self->work); self->work = NULL; pixman_region_clear(&self->current_damage);