FS-10019: [mod_conference] Crash when playing mp4 in personal-canvas mode #resolve
This commit is contained in:
parent
94f29b774d
commit
8496878346
|
@ -2408,6 +2408,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
|
||||||
|
|
||||||
video_count = 0;
|
video_count = 0;
|
||||||
|
|
||||||
|
switch_mutex_lock(conference->mutex);
|
||||||
if (conference->async_fnode && switch_core_file_has_video(&conference->async_fnode->fh, SWITCH_TRUE)) {
|
if (conference->async_fnode && switch_core_file_has_video(&conference->async_fnode->fh, SWITCH_TRUE)) {
|
||||||
check_async_file = 1;
|
check_async_file = 1;
|
||||||
file_count++;
|
file_count++;
|
||||||
|
@ -2421,7 +2422,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
|
||||||
video_count++;
|
video_count++;
|
||||||
files_playing = 1;
|
files_playing = 1;
|
||||||
}
|
}
|
||||||
|
switch_mutex_unlock(conference->mutex);
|
||||||
|
|
||||||
switch_mutex_lock(conference->member_mutex);
|
switch_mutex_lock(conference->member_mutex);
|
||||||
for (imember = conference->members; imember; imember = imember->next) {
|
for (imember = conference->members; imember; imember = imember->next) {
|
||||||
|
@ -2854,7 +2855,9 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
|
||||||
layout_applied = 0;
|
layout_applied = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (check_async_file) {
|
switch_mutex_lock(conference->mutex);
|
||||||
|
|
||||||
|
if (check_async_file && conference->async_fnode) {
|
||||||
switch_status_t st = switch_core_file_read_video(&conference->async_fnode->fh, &file_frame, SVR_FLUSH);
|
switch_status_t st = switch_core_file_read_video(&conference->async_fnode->fh, &file_frame, SVR_FLUSH);
|
||||||
|
|
||||||
if (st == SWITCH_STATUS_SUCCESS) {
|
if (st == SWITCH_STATUS_SUCCESS) {
|
||||||
|
@ -2867,7 +2870,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (check_file) {
|
if (check_file && conference->fnode) {
|
||||||
switch_status_t st = switch_core_file_read_video(&conference->fnode->fh, &file_frame, SVR_FLUSH);
|
switch_status_t st = switch_core_file_read_video(&conference->fnode->fh, &file_frame, SVR_FLUSH);
|
||||||
|
|
||||||
if (st == SWITCH_STATUS_SUCCESS) {
|
if (st == SWITCH_STATUS_SUCCESS) {
|
||||||
|
@ -2879,6 +2882,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
switch_mutex_unlock(conference->mutex);
|
||||||
|
|
||||||
for (imember = conference->members; imember; imember = imember->next) {
|
for (imember = conference->members; imember; imember = imember->next) {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
Loading…
Reference in New Issue