]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
tvh thread: fix print other mutexes for abort
authorJaroslav Kysela <perex@perex.cz>
Tue, 11 Dec 2018 14:51:25 +0000 (15:51 +0100)
committerJaroslav Kysela <perex@perex.cz>
Tue, 11 Dec 2018 14:51:25 +0000 (15:51 +0100)
src/input/mpegts/dvb_psi_lib.c
src/input/mpegts/iptv/iptv_libav.c
src/tvh_thread.c

index c97d5105921d489aff788acbdd46b0325691363a..9ae9609580b94698144d16aeeeda1d64cefc4cee 100644 (file)
@@ -121,7 +121,11 @@ mpegts_psi_section_reassemble0
     cb = NULL;
   }
 
-  if(crc && tvh_crc32(p, tsize, 0xffffffff)) {
+  uint32_t r;
+  if(crc && (r = tvh_crc32(p, tsize, 0xffffffff)) != 0) {
+    tvhtrace(LS_MPEGTS, "crc %08x %08x\n", r, tvh_crc32(p, tsize + 4, 0xffffffff));
+    tvhlog_hexdump(LS_MPEGTS, data, len);
+    tvhlog_hexdump(LS_MPEGTS, p, tsize);
     if (cb && tvhlog_limit(&mt->mt_err_log, 10)) {
       tvhwarn(mt->mt_subsys, "%s: %s: invalid checksum (len %i, errors %zi)",
               mt->mt_name, logpref, tsize, mt->mt_err_log.count);
@@ -191,6 +195,7 @@ mpegts_psi_section_reassemble
   return;
 
 wrong_state:
+  tvhlog_hexdump(LS_MPEGTS, tsb, 188);
   mt->mt_sect.ps_lock = 0;
 }
 
index 99c76379151ffc744bfd242a2cf9e06c2bf15977..82feb582514fc638b0aee456cafad369ac27e8fe 100644 (file)
@@ -47,6 +47,7 @@ iptv_libav_write_packet(void *opaque, uint8_t *buf, int buf_size)
 {
   iptv_libav_priv_t *la = opaque;
 
+  printf("av write: %d\n", buf_size);
   if (buf_size > 0) {
     tvh_mutex_lock(&la->lock);
     if (la->sbuf.sb_ptr < 5*1024*1024) {
index 8d8a9fbc20d540fa9700739a53ab467a40442a37..7840400f7600718136e749579ab632a1671f6fb6 100644 (file)
@@ -480,9 +480,9 @@ tvh_thread_mutex_failed
     htsbuf_qprintf(&q, "mutex %p   waiting in: %s:%i (thread %ld)\n", mutex, w->filename, w->lineno, w->tid);
   TAILQ_FOREACH(m, &thrwatch_mutexes, link) {
     if (m == mutex) continue;
-    htsbuf_qprintf(&q, "mutex %p other in: %s:%i (thread %ld)\n", mutex, mutex->filename, mutex->lineno, mutex->tid);
+    htsbuf_qprintf(&q, "mutex %p other in: %s:%i (thread %ld)\n", m, m->filename, m->lineno, m->tid);
     LIST_FOREACH(w, &m->waiters, link)
-      htsbuf_qprintf(&q, "mutex %p   waiting in: %s:%i (thread %ld)\n", mutex, w->filename, w->lineno, w->tid);
+      htsbuf_qprintf(&q, "mutex %p   waiting in: %s:%i (thread %ld)\n", m, w->filename, w->lineno, w->tid);
   }
   tvh_thread_deadlock_write(&q);
   tvh_safe_usleep(2000000);