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);
return;
wrong_state:
+ tvhlog_hexdump(LS_MPEGTS, tsb, 188);
mt->mt_sect.ps_lock = 0;
}
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);