]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
DVR: rec - add more logging (running and muxing state)
authorJaroslav Kysela <perex@perex.cz>
Thu, 14 Dec 2017 10:51:45 +0000 (11:51 +0100)
committerJaroslav Kysela <perex@perex.cz>
Tue, 20 Feb 2018 08:34:28 +0000 (09:34 +0100)
src/dvr/dvr_rec.c

index b47de2b75130f85b2021577ad329afd63cffba6c..318f58c61cee15f3b2be7fc663eab5215019afc3 100644 (file)
@@ -1286,12 +1286,13 @@ dvr_thread(void *aux)
   th_pkt_t *pkt, *pkt2, *pkt3;
   streaming_start_t *ss = NULL;
   int run = 1, started = 0, muxing = 0, comm_skip, rs;
-  int epg_running = 0, epg_pause = 0;
+  int epg_running = 0, old_epg_running, epg_pause = 0;
   int commercial = COMMERCIAL_UNKNOWN;
   int running_disabled;
   int64_t packets = 0, dts_offset = PTS_UNSET;
   time_t real_start, start_time = 0, running_start = 0, running_stop = 0;
   char *postproc;
+  char ubuf[UUID_HEX_SIZE];
 
   if (!dvr_thread_global_lock(de, &run))
     return NULL;
@@ -1299,6 +1300,8 @@ dvr_thread(void *aux)
   postproc  = de->de_config->dvr_postproc ? strdup(de->de_config->dvr_postproc) : NULL;
   running_disabled = dvr_entry_get_epg_running(de) <= 0;
   real_start = dvr_entry_get_start_time(de, 0);
+  tvhtrace(LS_DVR, "%s - recoding thread started for \"%s\"",
+           idnode_uuid_as_str(&de->de_id, ubuf), lang_str_get(de->de_title, NULL));
   dvr_thread_global_unlock(de);
 
   TAILQ_INIT(&backlog);
@@ -1312,6 +1315,7 @@ dvr_thread(void *aux)
     }
     streaming_queue_remove(sq, sm);
 
+    old_epg_running = epg_running;
     if (running_disabled) {
       epg_running = real_start <= gclk();
     } else if (sm->sm_type == SMT_PACKET || sm->sm_type == SMT_MPEGTS) {
@@ -1334,6 +1338,9 @@ dvr_thread(void *aux)
         epg_running = 0;
       }
     }
+    if (epg_running != old_epg_running)
+      tvhtrace(LS_DVR, "%s - running flag changed from %d to %d",
+               idnode_uuid_as_str(&de->de_id, ubuf), old_epg_running, epg_running);
 
     pthread_mutex_unlock(&sq->sq_mutex);
 
@@ -1371,9 +1378,11 @@ dvr_thread(void *aux)
       if (ss == NULL)
         break;
 
-      if (muxing == 0 &&
-          !dvr_thread_rec_start(&de, ss, &run, &started, &dts_offset, postproc))
-        break;
+      if (muxing == 0) {
+        if (!dvr_thread_rec_start(&de, ss, &run, &started, &dts_offset, postproc))
+          break;
+        tvhtrace(LS_DVR, "%s - muxing activated", idnode_uuid_as_str(&de->de_id, ubuf));
+      }
 
       muxing = 1;
       while ((sm2 = TAILQ_FIRST(&backlog)) != NULL) {
@@ -1438,9 +1447,11 @@ dvr_thread(void *aux)
         if (muxing) muxer_add_marker(prch->prch_muxer);
       }
 
-      if (muxing == 0 &&
-          !dvr_thread_rec_start(&de, ss, &run, &started, &dts_offset, postproc))
-        break;
+      if (muxing == 0) {
+        if (!dvr_thread_rec_start(&de, ss, &run, &started, &dts_offset, postproc))
+          break;
+        tvhtrace(LS_DVR, "%s - muxing activated", idnode_uuid_as_str(&de->de_id, ubuf));
+      }
 
       muxing = 1;
       while ((sm2 = TAILQ_FIRST(&backlog)) != NULL) {
@@ -1508,13 +1519,7 @@ fin:
        
       } else if (sm->sm_code & TSS_ERRORS) {
 
-       int code = SM_CODE_UNDEFINED_ERROR;
-
-       if(sm->sm_code & TSS_NO_DESCRAMBLER)
-         code = SM_CODE_NO_DESCRAMBLER;
-
-       if(sm->sm_code & TSS_NO_ACCESS)
-         code = SM_CODE_NO_ACCESS;
+       int code = tss2errcode(sm->sm_code);
 
        if(de->de_last_error != code) {
          dvr_rec_set_state(de, DVR_RS_ERROR, code);