[mythtv] Seg Fault in backend with dvb-alpha-0.4pre and use_ts=1
Steve Brown
sbrown at cortland.com
Mon Sep 1 20:07:14 EDT 2003
I'm using a recent (2 da or so) CVS of mythtv and the above dvb patches.
All works fine using use_ts=0 w/ my Nova budget card and recent cvs dvb
driver.
I had to make the following patch to dvbrecorder because calls to set
DMX_DONT_FILTER after the first fail with "Failed to set filter for last
pid"
@@ -208,14 +210,17 @@
{
CloseFilters();
- printf("Setting filters: ");
- OpenFilters(pids.audio, DMX_PES_AUDIO);
- OpenFilters(pids.video, DMX_PES_VIDEO);
- OpenFilters(pids.teletext, DMX_PES_TELETEXT);
- OpenFilters(pids.subtitle, DMX_PES_SUBTITLE);
- OpenFilters(pids.pcr, DMX_PES_PCR);
- OpenFilters(pids.other, DMX_PES_OTHER);
- printf("\n");
+ if (!use_transport_stream) {
+ printf("Setting filters: ");
+ OpenFilters(pids.audio, DMX_PES_AUDIO);
+ OpenFilters(pids.video, DMX_PES_VIDEO);
+ OpenFilters(pids.teletext, DMX_PES_TELETEXT);
+ OpenFilters(pids.subtitle, DMX_PES_SUBTITLE);
+ OpenFilters(pids.pcr, DMX_PES_PCR);
+ OpenFilters(pids.other, DMX_PES_OTHER);
+ printf("\n");
+ } else // only one call needed
+ OpenFilters(pids.audio, DMX_PES_AUDIO);
}
void DVBRecorder::StartRecording()
With use_ts=1, the backend reads lots of packets, but doesn't seem to
match any.
If I kill mythtv, the backend seg faults. The backtrace is attached.
I'll continue to see if I can figure out what's going wrong.
Also, I think dvbchannel.cpp has the sense of the inversion backward.
@@ -201,15 +201,16 @@
void DVBChannel::CheckOptions(dvb_tuning_t& t)
{
if ((t.params.inversion == INVERSION_AUTO)
- && (info.caps & FE_CAN_INVERSION_AUTO))
+ && !(info.caps & FE_CAN_INVERSION_AUTO))
{
printf("Channel option inversion is set to 'auto', but your"\
Kenneth, thanks for your dvb work.
Steve
++++++++++++++++++++++++++++++++++++++++++
-------------- next part --------------
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 196621 (LWP 27046)]
0x08290f2b in ~cCiHandler (this=0x84189b0) at dvbci.cpp:1397
1397 delete sessions[i];
(gdb) thread apply all bt full
Thread 15 (Thread 213006 (LWP 27047)):
#0 0x40c7a3f7 in poll () from /lib/libc.so.6
No locals.
#1 0x080e2a61 in DVBSections::ThreadLoop() (this=0x8414858) at dvbsections.cpp:192
ret = 0
buffer = "\000°=\000\001Ó\000\000\000\000à\020\000\ná\000\000\024â\000\000\036ã\000\000(ä\000\0002å\000\000<æ\000\000Fç\000\000Pè\000\000Zé\000\000dê\000\000në\000\000xì\000Ø\eh·", '\0' <repeats 3036 times>, "\220\220§@", '\0' <repeats 20 times>, "\034úÿ½\004úÿ½¨\204¼@ ", '\0' <repeats 11 times>, "+\000\000\000+\000\000\000\000\000\000\000xð§@\004úÿ½èùÿ½\034úÿ½ÿÿÿ½\b\000\000\000üÿÿÿ\001\000\000\000\000\000\000\000X\206¼@#\000\000\000F\002 \000èùÿ½+\000\000\000h÷ÿ½ïþûÿ\000\000\000\000\177\003ÿÿ \000ÿÿÿ"...
head = {table_id = 0 '\0', section_length = 61, table_id_ext = 1, current_next = true, version = 9 '\t', section_number = 0 '\0', section_last = 0 '\0'}
#2 0x080e2a23 in DVBSections::ThreadHelper(void*) (cls=0x8414858) at dvbsections.cpp:178
No locals.
#3 0x40a76c70 in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.
Thread 14 (Thread 196621 (LWP 27046)):
#0 0x08290f2b in ~cCiHandler (this=0x84189b0) at dvbci.cpp:1397
No locals.
#1 0x080e4690 in ~DVBCam (this=0x8414510) at dvbcam.cpp:71
No locals.
#2 0x080d5905 in DVBRecorder::Close() (this=0x8418918) at dvbrecorder.cpp:128
No locals.
#3 0x080d6157 in DVBRecorder::StartRecording() (this=0x8418918) at dvbrecorder.cpp:329
readsz = 188
pktbuf = "G\037ÿ\020", 'ÿ' <repeats 184 times>
polls = {fd = 22, events = 1, revents = 1}
#4 0x080c199a in SpawnEncode(void*) (param=0x8418918) at tv_rec.cpp:37
nvr = (class RecorderBase *) 0x8418918
#5 0x40a76c70 in pthread_start_thread_event () from /lib/libpthread.so.0
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
Thread 13 (Thread 180236 (LWP 27045)):
#0 0x40c4e286 in __libc_nanosleep () from /lib/libc.so.6
No locals.
#1 0x00000000 in ?? ()
No symbol table info available.
Thread 12 (Thread 163851 (LWP 27044)):
#0 0x40c4e286 in __libc_nanosleep () from /lib/libc.so.6
No locals.
#1 0x00000000 in ?? ()
No symbol table info available.
Thread 11 (Thread 147466 (LWP 27038)):
#0 0x40c4e286 in __libc_nanosleep () from /lib/libc.so.6
No locals.
#1 0x00000000 in ?? ()
No symbol table info available.
Thread 10 (Thread 131081 (LWP 27037)):
#0 0x40bc8658 in sigsuspend () from /lib/libc.so.6
No locals.
#1 0x40a78c58 in __pthread_wait_for_restart_signal () from /lib/libpthread.so.0
No symbol table info available.
#2 0x40a74fcb in pthread_cond_wait at GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3 0x408ac762 in QWaitCondition::wait(unsigned long) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#4 0x08087d12 in ProcessRequestThread::run() (this=0x8411d58) at mainserver.cpp:55
No locals.
#5 0x405f5c78 in QProc::~QProc() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#6 0x40a76c70 in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.
Thread 9 (Thread 114696 (LWP 27036)):
#0 0x40bc8658 in sigsuspend () from /lib/libc.so.6
No locals.
#1 0x40a78c58 in __pthread_wait_for_restart_signal () from /lib/libpthread.so.0
No symbol table info available.
#2 0x40a74fcb in pthread_cond_wait at GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3 0x408ac762 in QWaitCondition::wait(unsigned long) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#4 0x08087d12 in ProcessRequestThread::run() (this=0x8412208) at mainserver.cpp:55
No locals.
#5 0x405f5c78 in QProc::~QProc() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#6 0x40a76c70 in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.
Thread 8 (Thread 98311 (LWP 27035)):
#0 0x40bc8658 in sigsuspend () from /lib/libc.so.6
No locals.
#1 0x40a78c58 in __pthread_wait_for_restart_signal () from /lib/libpthread.so.0
No symbol table info available.
#2 0x40a74fcb in pthread_cond_wait at GLIBC_2.0 () from /lib/libpthread.so.0
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#3 0x408ac762 in QWaitCondition::wait(unsigned long) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#4 0x08087d12 in ProcessRequestThread::run() (this=0x8408630) at mainserver.cpp:55
No locals.
#5 0x405f5c78 in QProc::~QProc() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#6 0x40a76c70 in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.
Thread 7 (Thread 81926 (LWP 27034)):
#0 0x40bc8658 in sigsuspend () from /lib/libc.so.6
No locals.
#1 0x40a78c58 in __pthread_wait_for_restart_signal () from /lib/libpthread.so.0
No symbol table info available.
#2 0x40a74fcb in pthread_cond_wait at GLIBC_2.0 () from /lib/libpthread.so.0
No symbol table info available.
#3 0x408ac762 in QWaitCondition::wait(unsigned long) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#4 0x08087d12 in ProcessRequestThread::run() (this=0x840d310) at mainserver.cpp:55
No locals.
#5 0x405f5c78 in QProc::~QProc() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#6 0x40a76c70 in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.
Thread 6 (Thread 65541 (LWP 27033)):
#0 0x40c4e286 in __libc_nanosleep () from /lib/libc.so.6
No locals.
---Type <return> to continue, or q <return> to quit---
#1 0x00000000 in ?? ()
No symbol table info available.
Thread 5 (Thread 49156 (LWP 27032)):
#0 0x40c4e286 in __libc_nanosleep () from /lib/libc.so.6
No locals.
#1 0x00000000 in ?? ()
No symbol table info available.
Thread 4 (Thread 32771 (LWP 27031)):
#0 0x40c4e286 in __libc_nanosleep () from /lib/libc.so.6
No locals.
#1 0x00000000 in ?? ()
No symbol table info available.
Thread 3 (Thread 16386 (LWP 27030)):
#0 0x40bc8658 in sigsuspend () from /lib/libc.so.6
No locals.
#1 0x40a78c58 in __pthread_wait_for_restart_signal () from /lib/libpthread.so.0
No symbol table info available.
#2 0x40a75902 in pthread_join () from /lib/libpthread.so.0
No symbol table info available.
#3 0x080c676e in TVRec::TeardownRecorder(bool) (this=0x8408858, killFile=true) at tv_rec.cpp:646
message = {static null = {static null = <same as static member of an already seen type>, d = 0x83e86d0, static shared_null = 0x83e86d0}, d = 0x8409798, static shared_null = 0x83e86d0}
me = {<QCustomEvent> = {<> = {<No data fields>}, d = 0x0}, message = {static null = {static null = <same as static member of an already seen type>, d = 0x83e86d0, static shared_null = 0x83e86d0},
d = 0x8409798, static shared_null = 0x83e86d0}, extradata = {static null = {static null = <same as static member of an already seen type>, d = 0x83e86d0, static shared_null = 0x83e86d0}, d = 0x8409158,
static shared_null = 0x83e86d0}}
blank_frame_map = {sh = 0x84090e0}
filelen = 0
---Type <return> to continue, or q <return> to quit---
#4 0x080c4574 in TVRec::HandleStateChange() (this=0x8408858) at tv_rec.cpp:481
tmpInternalState = kState_None
changed = true
startRecorder = false
closeRecorder = true
killRecordingFile = true
statename = {static null = {static null = <same as static member of an already seen type>, d = 0x83e86d0, static shared_null = 0x83e86d0}, d = 0x84135f0, static shared_null = 0x83e86d0}
origname = {static null = {static null = <same as static member of an already seen type>, d = 0x83e86d0, static shared_null = 0x83e86d0}, d = 0x8409740, static shared_null = 0x83e86d0}
#5 0x080c760a in TVRec::RunTV() (this=0x8408858) at tv_rec.cpp:806
No locals.
#6 0x080c75b7 in TVRec::EventThread(void*) (param=0x8408858) at tv_rec.cpp:790
thetv = (TVRec *) 0x8408858
#7 0x40a76c70 in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.
Thread 2 (Thread 32769 (LWP 27029)):
#0 0x40c7a3f7 in poll () from /lib/libc.so.6
No locals.
#1 0x40a75e1e in __pthread_manager () from /lib/libpthread.so.0
No symbol table info available.
#2 0x40a76017 in __pthread_manager_event () from /lib/libpthread.so.0
No symbol table info available.
Thread 1 (Thread 16384 (LWP 27014)):
#0 0x40c4e286 in __libc_nanosleep () from /lib/libc.so.6
No locals.
#1 0xffffffd8 in ?? ()
No symbol table info available.
#2 0x080cd6f8 in TVRec::StopLiveTV() (this=0x8408858) at tv_rec.cpp:1597
---Type <return> to continue, or q <return> to quit---
No locals.
#3 0x0806dc37 in EncoderLink::StopLiveTV() (this=0x83f65d0) at encoderlink.cpp:408
No locals.
#4 0x0808325b in MainServer::endConnection(QSocket*) (this=0x84119c0, socket=0x8409828) at mainserver.cpp:1921
enc = (EncoderLink *) 0x83f65d0
i = {node = 0x840d3b8}
sock = (struct QSocket *) 0x8409828
it = {<iterator<std::random_access_iterator_tag,PlaybackSock*,int,PlaybackSock**,PlaybackSock*&>> = {<No data fields>}, _M_current = 0x83ec7cc}
ft = {<iterator<std::random_access_iterator_tag,FileTransfer*,int,FileTransfer**,FileTransfer*&>> = {<No data fields>}, _M_current = 0x0}
rt = {<iterator<std::random_access_iterator_tag,QSocket*,int,QSocket**,QSocket*&>> = {<No data fields>}, _M_current = 0x83f96c0}
#5 0x080999fb in MainServer::qt_invoke(int, QUObject*) (this=0x84119c0, _id=5, _o=0xbfffe1c0) at moc_mainserver.cpp:96
No locals.
#6 0x4065f0c9 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#7 0x08099f0c in MythServer::endConnect(QSocket*) (this=0x8411b50, t0=0x8409828) at moc_server.cpp:114
clist = (struct QConnectionList *) 0x8412480
o = {{type = 0x835c4a0, payload = {b = 124, c = 124 '|', s = 636, i = 1084621436, l = 1084621436, uc = 124 '|', us = 636, ui = 1084621436, ul = 1084621436, f = 5.18780327, d = -1.9927141690569945,
byte = "|\002¦@(âÿ¿áE\a\bL\032A\b", bytearray = {data = 0x40a6027c "\f|e", size = 3221217832}, ptr = 0x40a6027c, voidstar = {ptr = 0x40a6027c, owner = 40}, charstar = {ptr = 0x40a6027c "\f|e", owner = 40},
utf8 = {ptr = 0x40a6027c "\f|e", owner = 40}, local8bit = {ptr = 0x40a6027c "\f|e", owner = 40}, iface = 0x40a6027c, idisp = 0x40a6027c}}, {type = 0x835b054, payload = {b = 40, c = 40 '(', s = -26584,
i = 138450984, l = 138450984, uc = 40 '(', us = 38952, ui = 138450984, ul = 138450984, f = 5.79567571e-34, d = 3085.9219379602182, byte = "(\230@\bØ\e¨@@kÍ@P\eA\b", bytearray = {data = 0x8409828 "ÈÁ¥@ÀkÍ@",
size = 1084759000}, ptr = 0x8409828, voidstar = {ptr = 0x8409828, owner = 216}, charstar = {ptr = 0x8409828 "ÈÁ¥@ÀkÍ@", owner = 216}, utf8 = {ptr = 0x8409828 "ÈÁ¥@ÀkÍ@", owner = 216}, local8bit = {
ptr = 0x8409828 "ÈÁ¥@ÀkÍ@", owner = 216}, iface = 0x8409828, idisp = 0x8409828}}}
#8 0x080956d9 in MythServer::discardClient() (this=0x8411b50) at server.cpp:32
socket = (struct QSocket *) 0x8409828
#9 0x08099fc1 in MythServer::qt_invoke(int, QUObject*) (this=0x8411b50, _id=3, _o=0xbfffe2c0) at moc_server.cpp:120
No locals.
#10 0x4065f0c9 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#11 0x4065ef6d in QObject::activate_signal(int) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#12 0x4096bcee in QSocket::connectionClosed() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#13 0x4082e7c2 in QSocket::sn_read(bool) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#14 0x4096be53 in QSocket::qt_invoke(int, QUObject*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#15 0x4065f0c9 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#16 0x4065f1a5 in QObject::activate_signal(int, int) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#17 0x4093f282 in QSocketNotifier::activated(int) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#18 0x4067b4b0 in QSocketNotifier::event(QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#19 0x40600f24 in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#20 0x40600b19 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#21 0x405dbefa in QEventLoop::activateSocketNotifiers() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#22 0x405b98d7 in QEventLoop::processEvents(unsigned) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#23 0x40614cf6 in QEventLoop::enterLoop() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#24 0x40614b98 in QEventLoop::exec() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#25 0x40601151 in QApplication::exec() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#26 0x080722a9 in main (argc=1, argv=0xbffffaa4) at main.cpp:395
a = <incomplete type>
logfile = {static null = {static null = <same as static member of an already seen type>, d = 0x83e86d0, static shared_null = 0x83e86d0}, d = 0x83edc40, static shared_null = 0x83e86d0}
verboseString = {static null = {static null = <same as static member of an already seen type>, d = 0x83e86d0, static shared_null = 0x83e86d0}, d = 0x83edc80, static shared_null = 0x83e86d0}
daemonize = false
printsched = false
printexpire = false
logfd = -1
pidfs = <incomplete type>
db = (struct QSqlDatabase *) 0x83f0c80
subthread = (struct QSqlDatabase *) 0x83f0980
expthread = (struct QSqlDatabase *) 0x83f5488
transthread = (struct QSqlDatabase *) 0x83f5718
msdb = (struct QSqlDatabase *) 0x83f6148
port = 6543
statusport = 6544
myip = {static null = {static null = <same as static member of an already seen type>, d = 0x83e86d0, static shared_null = 0x83e86d0}, d = 0x83f7308, static shared_null = 0x83e86d0}
masterip = {static null = {static null = <same as static member of an already seen type>, d = 0x83e86d0, static shared_null = 0x83e86d0}, d = 0x8408a90, static shared_null = 0x83e86d0}
ismaster = true
runsched = true
expdb = (struct QSqlDatabase *) 0x83f5488
trandb = (struct QSqlDatabase *) 0x83f5718
nfsfd = 12
#27 0x40bb58c7 in __libc_start_main () from /lib/libc.so.6
No symbol table info available.
0x08290f2b 1397 delete sessions[i];
(gdb)
More information about the mythtv-dev
mailing list