av_file_write(handle, NULL, NULL);
}
- if (context->file_read_thread_running && context->file_read_thread) {
+ if (context->file_read_thread_running) {
context->file_read_thread_running = 0;
+ }
+
+ if (context->file_read_thread) {
switch_thread_join(&status, context->file_read_thread);
+ context->file_read_thread = NULL;
}
if (context->eh.video_queue) {
if (!context->file_read_thread_running) {
switch_threadattr_t *thd_attr = NULL;
+ if (context->file_read_thread) {
+ switch_status_t status;
+ switch_thread_join(&status, context->file_read_thread);
+ context->file_read_thread = NULL;
+ }
+
switch_threadattr_create(&thd_attr, handle->memory_pool);
switch_threadattr_stacksize_set(thd_attr, SWITCH_THREAD_STACKSIZE);
switch_thread_create(&context->file_read_thread, thd_attr, file_read_thread_run, context, handle->memory_pool);