[mythtv] Problems with v4l LiveTV in current svn

Wendy Seltzer wseltzer at gmail.com
Thu Sep 29 04:29:45 UTC 2005


If I switch to "watch live tv" with a WinTV v4l card configured first,
current svn gives the pop-up "You should have gotten a channel lock by
now..." even while the channel is playing fine. It then fails to change to a
different channel on the same card, giving first a blank screen, then "Error
was encountered while displaying video," then a segfault.

If I hit "R" to start recording on the WinTV, it starts that recording, but
instead of sending me back to watch the recording, it shows a channel from
the atsc card.

The HD-3000 is working well, though.

Here's a bit of backend log -v siparser,channel,record

2005-09-29 00:15:09.070 MainServer::HandleAnnounce Playback
2005-09-29 00:15:09.070 adding: chinch as a client (events: 0)
2005-09-29 00:15:09.093 Getting next free recorder after : -1
2005-09-29 00:15:09.095 Card 1 is local.
2005-09-29 00:15:09.124 MainServer::HandleAnnounce Playback
2005-09-29 00:15:09.124 adding: chinch as a client (events: 1)
2005-09-29 00:15:09.152 MainServer::HandleAnnounce Playback
2005-09-29 00:15:09.152 adding: chinch as a client (events: 0)
2005-09-29 00:15:09.400 MainServer::HandleAnnounce Playback
2005-09-29 00:15:09.400 adding: chinch as a client (events: 0)
2005-09-29 00:15:09.407 adding: chinch as a remote ringbuffer
2005-09-29 00:15:09.419 TVRec(1): Changing from None to WatchingLiveTV
2005-09-29 00:15:09.419 TVRec(1):
ClearFlags(FrontendReady,CancelNextRecording,) -> RunMainLoop,
2005-09-29 00:15:09.419 TVRec(1): SetFlags(AskAllowRecording,) ->
RunMainLoop,AskAllowRecording,
2005-09-29 00:15:09.419 TVRec(1): Request: Program(no) channel() input()
flags(LiveTV,)
2005-09-29 00:15:09.419 TVRec(1):
ClearFlags(WaitingForSIParser,SIParserRunning,) ->
RunMainLoop,AskAllowRecording,
2005-09-29 00:15:09.420 TVRec(1):
ClearFlags(WaitingForSignal,SignalMonitorRunning,) ->
RunMainLoop,AskAllowRecording,
2005-09-29 00:15:09.469 Channel(/dev/video0)::SwitchToInput(in 0)
2005-09-29 00:15:09.505 Channel(/dev/video0)::SwitchToInput() setting video
mode to NTSC
2005-09-29 00:15:09.577 Channel(/dev/video0)::SetChannelByString(54)
2005-09-29 00:15:09.578 ChannelBase(/dev/video0)::SetCachedATSCInfo(): RESET
2005-09-29 00:15:09.595 External channel change: /usr/local/bin/myth-
change-chan.sh 54
2005-09-29 00:15:09.612 Waiting for External Tuning program to exit
2005-09-29 00:15:10.614 ret_pid(0) child(22539) status(0x0)
2005-09-29 00:15:11.617 ret_pid(22539) child(22539) status(0x0)
2005-09-29 00:15:11.617 External Tuning program no longer running
2005-09-29 00:15:11.617 External Tuning program exited with no error
2005-09-29 00:15:11.618 ChannelBase(/dev/video0)::SetCachedATSCInfo(54): 5_4
2005-09-29 00:15:11.622 TVRec(1): SetFlags(NeedToStartRecorder,) ->
RunMainLoop,AskAllowRecording,NeedToStartRecorder,
2005-09-29 00:15:11.622 TVRec(1): Starting Recorder
2005-09-29 00:15:11.640 TVRec(1): Using profile 'Live TV' to record
2005-09-29 00:15:11.650 Unknown video codec
2005-09-29 00:15:11.650 Please go into the TV Settings, Recording Profiles
and
2005-09-29 00:15:11.651 setup the four 'Software Encoders' profiles.
2005-09-29 00:15:11.651 Assuming RTjpeg for now.
2005-09-29 00:15:11.651 NVR: Error, unknown audio codec
2005-09-29 00:15:11.656 SetRecording(0x0)
2005-09-29 00:15:11.794 TVRec(1): SetFlags(RecorderRunning,) ->
RunMainLoop,AskAllowRecording,NeedToStartRecorder,RecorderRunning,
2005-09-29 00:15:11.794 TVRec(1): ClearFlags(NeedToStartRecorder,) ->
RunMainLoop,AskAllowRecording,RecorderRunning,
2005-09-29 00:15:12.539 TVRec(1): SetFlags(FrontendReady,) ->
FrontendReady,RunMainLoop,AskAllowRecording,RecorderRunning,
2005-09-29 00:15:24.326 TVRec(1): ClearFlags(0x40000000) ->
FrontendReady,RunMainLoop,AskAllowRecording,RecorderRunning,
2005-09-29 00:15:24.327 TVRec(1): Request: Program(no) channel(55) input()
flags(LiveTV,)
2005-09-29 00:15:24.327 TVRec(1):
ClearFlags(WaitingForSIParser,SIParserRunning,) ->
FrontendReady,RunMainLoop,AskAllowRecording,RecorderRunning,
2005-09-29 00:15:24.327 TVRec(1):
ClearFlags(WaitingForSignal,SignalMonitorRunning,) ->
FrontendReady,RunMainLoop,AskAllowRecording,RecorderRunning,
2005-09-29 00:15:24.327 TVRec(1): SetFlags(WaitingForRecPause,) ->
FrontendReady,RunMainLoop,AskAllowRecording,WaitingForRecPause,RecorderRunning,
free(): invalid pointer 0x80ada80!
2005-09-29 00:15:59.346 RingBuffer: Couldn't read data from the capture card
in 15 seconds. Stopping.
Segmentation fault



in gdb:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1393939536 (LWP 23975)]
0xb67d7546 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3

(gdb) thread apply all bt full

Thread 18 (Thread -1410716752 (LWP 23977)):
#0 0xb6483440 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib/tls/libpthread.so.0
No symbol table info available.
#1 0xb6a73190 in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#2 0xb7c11ba3 in NuppelVideoRecorder::doVbiThread (this=0xaebca008)
at NuppelVideoRecorder.cpp:3146
tv = {tv_sec = 4, tv_usec = 967000}
rdset = {fds_bits = {4194304, 0 <repeats 31 times>}}
vbi = (vbi *) 0x0
cc = (cc *) 0x8355c60
vbifd = 22
vbicallbackdata = {nvr = 0xaebca008, teletextpage = {pgno = 0,
subno = 0, lang = 0, flags = 0, errors = 0, lines = 0, data = {
'\0' <repeats 39 times> <repeats 25 times>}, flof = 0, link = {{
pgno = 0, subno = 0}, {pgno = 0, subno = 0}, {pgno = 0, subno = 0}, {
pgno = 0, subno = 0}, {pgno = 0, subno = 0}, {pgno = 0, subno = 0}}},
foundteletextpage = false}
#3 0xb7c0c603 in NuppelVideoRecorder::VbiThread (param=0xaebca008)
at NuppelVideoRecorder.cpp:2082
nvr = (NuppelVideoRecorder *) 0xaebca008
---Type <return> to continue, or q <return> to quit---
#4 0xb6480b63 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#5 0xb633718a in clone () from /lib/tls/libc.so.6
No symbol table info available.

Thread 17 (Thread -1402328144 (LWP 23976)):
#0 0xb6483440 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib/tls/libpthread.so.0
No symbol table info available.
#1 0xb6a73190 in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#2 0xb7c0d6d5 in NuppelVideoRecorder::doAudioThread (this=0xaebca008)
at NuppelVideoRecorder.cpp:2176
afmt = 16
trigger = 1
afd = 20
act = 431
lastread = 4096
frag = 524298
blocksize = 4096
buffer = (
unsigned char *) 0x8354c58
"\uffff\001\002\002'\0020\002S\002d\002}\002\215\002\022\003
\003H\003Y\003g\003}\003i\003~\003T\003d\0033\003?\003\003\003\020\003\uffff---Type
<return> to continue, or q <return> to quit---
\002\uffff\002\217\002\236\002^\002o\002K\002X\002D\002S\002r\002\206\002\215\002\233\002\221\002\uffff\002\204\002\226\002n\002}\002@\002L\002\uffff\001\t\002\uffff\001\uffff\001\211\001\226\001c\001o\001W\001`\001\uffff\001\uffff\001\uffff\001\uffff\001\036\002(\002P\002Z\002u\002\200\002\216\002\232\002\234\002\uffff\002\uffff\002\uffff\002\227\002\uffff\002\201\002\224\002m\002o\002\213\001\220\001\024\001&\001\uffff"
ispace = {fragments = 0, fragstotal = 8, fragsize = 1024, bytes = 954}
anow = {tv_sec = 1127967720, tv_usec = 868936}
#3 0xb7c0c5d5 in NuppelVideoRecorder::AudioThread (param=0xaebca008)
at NuppelVideoRecorder.cpp:2073
nvr = (NuppelVideoRecorder *) 0xaebca008
#4 0xb6480b63 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#5 0xb633718a in clone () from /lib/tls/libc.so.6
No symbol table info available.

Thread 16 (Thread -1393939536 (LWP 23975)):
#0 0xb67d7546 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#1 0xb67d7354 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#2 0xb7d0face in RecorderBase::RecorderPaused (this=0xaebca008)
at moc_recorderbase.cpp:86
No locals.
---Type <return> to continue, or q <return> to quit---
#3 0xb7c11dc2 in NuppelVideoRecorder::doWriteThread (this=0xaebca008)
at NuppelVideoRecorder.cpp:3213
action = ACTION_NONE
firsttimecode = -1
#4 0xb7c0c5a7 in NuppelVideoRecorder::WriteThread (param=0xaebca008)
at NuppelVideoRecorder.cpp:2064
nvr = (NuppelVideoRecorder *) 0xaebca008
#5 0xb6480b63 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#6 0xb633718a in clone () from /lib/tls/libc.so.6
No symbol table info available.

Thread 15 (Thread -1383240784 (LWP 23974)):
#0 0xb6483440 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib/tls/libpthread.so.0
No symbol table info available.
#1 0xb6a73190 in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#2 0xb7c078c0 in NuppelVideoRecorder::StartRecording (this=0xaebca008)
at NuppelVideoRecorder.cpp:1112
vc = {name = "BT878 video (Hauppauge (bt878))", type = 171,
channels = 4, audios = 1, maxwidth = 768, maxheight = 480, minwidth = 48,
minheight = 32}
---Type <return> to continue, or q <return> to quit---
mm = {frame = 1, height = 480, width = 480, format = 15}
vm = {size = 17039360, frames = 8, offsets = {0, 2129920, 4259840,
6389760, 8519680, 10649600, 12779520, 14909440, 0 <repeats 24 times>}}
vchan = {channel = 0, name = "Television", '\0' <repeats 21 times>,
tuners = 1, flags = 3, type = 1, norm = 1}
va = {audio = 0, volume = 58981, bass = 32768, treble = 32768,
flags = 30, name = "Television\000\000\000\000\000", mode = 1,
balance = 32768, step = 0}
vt = {tuner = 0, name = '\0' <repeats 31 times>, rangelow = 0,
rangehigh = 0, flags = 0, mode = 0, signal = 0}
channelinput = 0
frame = 1
buf = (
unsigned char *) 0xaa663000
"\030\024\021\020\021\026\024\024\020\026\022\025\030\022\020\026\026\033\037\037\020\020\026\021\021\025\020\023\037%15!\020\020\020\020\021
\036\025\026\033\032\031\032\033\037\026\020\024\027\027\021\020\027\035\035\020\020\034\033\030\025\027\032\032\032\030\032\026\022\031\026\027\026\022\031\027\032\037\032\027\020\027\033\030\025\020\022\036),\034\025\036#\035\020\021\020\020\023\021\030\034\033\020\020\024\037
\034\037/&!\032\020\020\020\020\0363/\034\022\020\020\032%'!\020\020\020\020\020\030#\035\034\027\026\025\020\026*!\027\031
\034\022\023\020\021\022\020\020\025\036\035\034\"\033\021\030\032\027\021\020\034\033\036\026\024\021\021\023\031\030\035%$\032\032$\026\027\"\025\020\020\020\025\025\026\023\020"...
---Type <return> to continue, or q <return> to quit---
syncerrors = 0
#3 0xb7ba8220 in TVRec::RecorderThread (param=0xaebca008) at tv_rec.cpp:1094
recorder = (class RecorderBase *) 0xaebca008
#4 0xb6480b63 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#5 0xb633718a in clone () from /lib/tls/libc.so.6
No symbol table info available.

Thread 14 (Thread -1353847888 (LWP 23964)):
#0 0xb6483440 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib/tls/libpthread.so.0
No symbol table info available.
#1 0xb6a73190 in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#2 0xb7942cc6 in ThreadedFileWriter::SyncLoop (this=0x8161908)
at ThreadedFileWriter.cpp:231
No locals.
#3 0xb7941b55 in ThreadedFileWriter::boot_syncer (wotsit=0x8161908)
at ThreadedFileWriter.cpp:65
fw = (ThreadedFileWriter *) 0x8161908
#4 0xb6480b63 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#5 0xb633718a in clone () from /lib/tls/libc.so.6
---Type <return> to continue, or q <return> to quit---
No symbol table info available.

Thread 13 (Thread -1345459280 (LWP 23963)):
#0 0xb6483440 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib/tls/libpthread.so.0
No symbol table info available.
#1 0xb6a73190 in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#2 0xb7942d79 in ThreadedFileWriter::DiskLoop (this=0x8161908)
at ThreadedFileWriter.cpp:252
size = 0
written = 72
#3 0xb7941b27 in ThreadedFileWriter::boot_writer (wotsit=0x8161908)
at ThreadedFileWriter.cpp:58
fw = (ThreadedFileWriter *) 0x8161908
#4 0xb6480b63 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#5 0xb633718a in clone () from /lib/tls/libc.so.6
No symbol table info available.

Thread 12 (Thread -1334875216 (LWP 23961)):
#0 0xb6485436 in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#1 0xb6487394 in _L_mutex_cond_lock_26 () from /lib/tls/libpthread.so.0
No symbol table info available.
#2 0xb06f639c in ?? ()
No symbol table info available.
#3 0x07f6468f in ?? ()
No symbol table info available.
#4 0xb7f32ba0 in ?? ()
No symbol table info available.
#5 0x00005d99 in ?? ()
No symbol table info available.
#6 0x0810d878 in ?? ()
No symbol table info available.
#7 0x00000000 in ?? ()
No symbol table info available.
#8 0xb06f6328 in ?? ()
No symbol table info available.
#9 0xb64832e8 in pthread_cond_wait@@GLIBC_2.3.2 ()
from /lib/tls/libpthread.so.0
No symbol table info available.
#10 0xb6a731e9 in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3
No symbol table info available.
Previous frame inner to this frame (corrupt stack?)
#0 0xb67d7546 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
(gdb)


Hope this is helpful. System was working very well with svn from a few days
ago (so of course, I had to mess with it :)
Let me know if you need other logs / tests.

--Wendy
--
Wendy Seltzer
http://wendy.seltzer.org/blog/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mythtv.org/pipermail/mythtv-dev/attachments/20050929/ccd04209/attachment.htm


More information about the mythtv-dev mailing list