]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Log if errors happens during recording
authorAndreas Öman <andreas@lonelycoder.com>
Tue, 7 Sep 2010 18:52:12 +0000 (18:52 +0000)
committerAndreas Öman <andreas@lonelycoder.com>
Tue, 7 Sep 2010 18:52:12 +0000 (18:52 +0000)
src/dvr/mkmux.c

index 542f0016637cf3d4e58e59db93f20b7636854ce8..3b2b5ca1d92ffb077447c089d03233f4e538166f 100644 (file)
@@ -64,6 +64,7 @@ struct mk_cue {
  */
 struct mk_mux {
   int fd;
+  char *filename;
   int error;
   off_t fdpos; // Current position in file
 
@@ -313,6 +314,8 @@ mk_write_to_fd(mk_mux_t *mkm, htsbuf_queue_t *hq)
   
   if(writev(mkm->fd, iov, i) != hq->hq_size) {
     mkm->error = errno;
+    tvhlog(LOG_ERR, "MKV", "%s: Unable to write -- %s",
+          mkm->filename, strerror(errno));
   } else {
     mkm->fdpos += hq->hq_size;
   }
@@ -561,6 +564,7 @@ mk_mux_create(const char *filename,
 
   mkm = calloc(1, sizeof(struct mk_mux));
   getuuid(mkm->uuid);
+  mkm->filename = strdup(filename);
   mkm->fd = fd;
   mkm->title = strdup(de->de_title);
   TAILQ_INIT(&mkm->cues);
@@ -778,8 +782,12 @@ mk_mux_close(mk_mux_t *mkm)
   // Rewrite segment info to update duration
   if(lseek(mkm->fd, mkm->segmentinfo_pos, SEEK_SET) == mkm->segmentinfo_pos)
     mk_write_master(mkm, 0x1549a966, mk_build_segment_info(mkm));
+  else
+    tvhlog(LOG_ERR, "MKV", "%s: Unable to write duration, seek failed -- %s",
+          mkm->filename, strerror(errno));
 
   close(mkm->fd);
+  free(mkm->filename);
   free(mkm->tracks);
   free(mkm->title);
   free(mkm);