From d31b70303f539460ee4c719958b88faea362c7f0 Mon Sep 17 00:00:00 2001 From: Patric Karlstrom Date: Fri, 11 Jul 2014 10:54:16 +0200 Subject: [PATCH] hdhomerun: fix hf_input_mux_lock bug --- .../mpegts/tvhdhomerun/tvhdhomerun_frontend.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c b/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c index d2fb423d..08a45753 100644 --- a/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c +++ b/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c @@ -323,15 +323,7 @@ tvhdhomerun_frontend_start_mux tvhdhomerun_frontend_t *hfe = (tvhdhomerun_frontend_t*)mi; char buf1[256], buf2[256]; - PTHREAD_MUTEX_LOCK(&hfe->hf_input_mux_lock); - mpegts_mux_instance_t *cur = LIST_FIRST(&hfe->mi_mux_active); - - hfe->hf_mmi = mmi; - mi->mi_display_name(mi, buf1, sizeof(buf1)); - mmi->mmi_mux->mm_display_name(mmi->mmi_mux, buf2, sizeof(buf2)); - tvhdebug("tvhdhomerun", "%s - stopping %s", buf1, buf2); - if (cur != NULL) { // Already tuned to this MUX if (mmi == cur) @@ -341,6 +333,14 @@ tvhdhomerun_frontend_start_mux } assert(LIST_FIRST(&hfe->mi_mux_active) == NULL); + PTHREAD_MUTEX_LOCK(&hfe->hf_input_mux_lock); + + hfe->hf_mmi = mmi; + mi->mi_display_name(mi, buf1, sizeof(buf1)); + mmi->mmi_mux->mm_display_name(mmi->mmi_mux, buf2, sizeof(buf2)); + tvhdebug("tvhdhomerun", "%s - stopping %s", buf1, buf2); + + tvhdhomerun_frontend_stop_inputthread(hfe); if ( hfe->hf_input_thread_running == 0 ) {