vaapi-recorder: Don't leak drm fd
Make vaapi_recorder take onwership of the fd and close it at destroy time.
This commit is contained in:
committed by
Kristian Høgsberg
parent
b85ded0cb8
commit
a62ef3e0b6
@@ -2523,7 +2523,6 @@ recorder_binding(struct weston_seat *seat, uint32_t time, uint32_t key,
|
|||||||
weston_log("[libva recorder] initialized\n");
|
weston_log("[libva recorder] initialized\n");
|
||||||
} else {
|
} else {
|
||||||
vaapi_recorder_destroy(output->recorder);
|
vaapi_recorder_destroy(output->recorder);
|
||||||
/* FIXME: close drm fd passed to recorder */
|
|
||||||
output->recorder = NULL;
|
output->recorder = NULL;
|
||||||
|
|
||||||
output->base.disable_planes--;
|
output->base.disable_planes--;
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
#define PROFILE_IDC_HIGH 100
|
#define PROFILE_IDC_HIGH 100
|
||||||
|
|
||||||
struct vaapi_recorder {
|
struct vaapi_recorder {
|
||||||
int output_fd;
|
int drm_fd, output_fd;
|
||||||
int width, height;
|
int width, height;
|
||||||
int frame_count;
|
int frame_count;
|
||||||
|
|
||||||
@@ -942,6 +942,7 @@ vaapi_recorder_create(int drm_fd, int width, int height, const char *filename)
|
|||||||
|
|
||||||
r->width = width;
|
r->width = width;
|
||||||
r->height = height;
|
r->height = height;
|
||||||
|
r->drm_fd = drm_fd;
|
||||||
|
|
||||||
flags = O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC;
|
flags = O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC;
|
||||||
r->output_fd = open(filename, flags, 0644);
|
r->output_fd = open(filename, flags, 0644);
|
||||||
@@ -1000,6 +1001,7 @@ vaapi_recorder_destroy(struct vaapi_recorder *r)
|
|||||||
vaTerminate(r->va_dpy);
|
vaTerminate(r->va_dpy);
|
||||||
|
|
||||||
close(r->output_fd);
|
close(r->output_fd);
|
||||||
|
close(r->drm_fd);
|
||||||
|
|
||||||
free(r);
|
free(r);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user