From 0aed9830d0c2e7f3c9d4cdaa77bb89b0d519ff34 Mon Sep 17 00:00:00 2001 From: Paul Kocialkowski Date: Mon, 24 Mar 2014 12:15:33 +0100 Subject: smdk4412-common: camera: Proper recording memory release Change-Id: I4cb029f64564a6e5e41b36af6bdb3f35ac1fc464 --- camera/exynos_camera.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'camera/exynos_camera.c') diff --git a/camera/exynos_camera.c b/camera/exynos_camera.c index a15d904..7e551dc 100644 --- a/camera/exynos_camera.c +++ b/camera/exynos_camera.c @@ -3812,6 +3812,7 @@ complete: void exynos_camera_recording_thread_stop(struct exynos_camera *exynos_camera) { + camera_memory_t *memory; int i; if (exynos_camera == NULL) @@ -3824,6 +3825,8 @@ void exynos_camera_recording_thread_stop(struct exynos_camera *exynos_camera) return; } + memory = exynos_camera->recording_memory; + if (exynos_camera->recording_listener != NULL) { exynos_camera_capture_listener_unregister(exynos_camera, exynos_camera->recording_listener); exynos_camera->recording_listener = NULL; @@ -3851,6 +3854,11 @@ void exynos_camera_recording_thread_stop(struct exynos_camera *exynos_camera) pthread_mutex_destroy(&exynos_camera->recording_mutex); pthread_mutex_destroy(&exynos_camera->recording_lock_mutex); + + if (memory != NULL && memory->release != NULL) { + memory->release(memory); + exynos_camera->recording_memory = NULL; + } } // Auto-focus -- cgit v1.2.3