Mailing List Archive

PVR250 + BT878
I'm currently running mythtv in a box with two tuner cards: one Hauppauge
PVR250 as the first card and one Hauppauge WinTV-go as the second one. The
ivtv driver is the CVS version from last week and mythtv is the CVS
version from yesterday (but the same problem happened for previous
checkouts).

Each card works perfectly when it's alone, however, when both are
configured at the same time in the system and I activate PIP on live TV,
after a few minutes I get mythbackend using 100% of my CPU (the system is
a Pentium IV 2.4GHz with 512 MB of ram). After that point, they only way
of getting the system back to normal conditions is killing mythbackend.

I've been able to reproduce the problem almost every time I enabled PIP
for long enough.

General statistics for the system including vmstat, iostat, etc. don't
show any significant information, other than mythbackend is taking all the
available CPU.

The ouput from a backtrace in gdb follows. Please let me know which other
useful information I could provide.

Thanks and best regards,

Flavio

------------------------------------------------------------------

Thread 18 (Thread 1246076208 (LWP 11617)):
#0 0xffffe002 in ?? ()
No symbol table info available.
#1 0x080d1e5d in NuppelVideoRecorder::VbiThread(void*) (param=0x48341008)
at NuppelVideoRecorder.cpp:1582
nvr = (NuppelVideoRecorder *) 0x48341008
#2 0x40979332 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.

Thread 17 (Thread 1237683504 (LWP 11616)):
#0 0xffffe002 in ?? ()
No symbol table info available.
#1 0x080d1e3b in NuppelVideoRecorder::AudioThread(void*)
(param=0x48341008)
at NuppelVideoRecorder.cpp:1573
nvr = (NuppelVideoRecorder *) 0x48341008
#2 0x40979332 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.

Thread 16 (Thread 1229290800 (LWP 11615)):
#0 0x08117b06 in CommDetect::CheckFrameIsBlank() (this=0x9121b60)
at commercial_skip.cpp:110
y = 0
y_mult = 0
x_mult = 1
divisor = 129
max_brightness = 120
test_brightness = 80
line_checked = {216, 118}
test = true
#1 0x081179af in CommDetect::ProcessNextFrame(unsigned char*, long long)
(
this=0x9121b60, buf=0x8572d40 '\020' <repeats 200 times>...,
frame_number=66) at commercial_skip.cpp:70
No locals.
#2 0x080d5290 in NuppelVideoRecorder::WriteVideo(Frame_*, bool, bool) (
this=0x48341008, frame=0x494578a8, skipsync=false, forcekey=false)
at NuppelVideoRecorder.cpp:2955
tmp = 1770
r = 0
out_len = 1500
frameheader = {frametype = 86 'V', comptype = 50 '2',
keyframe = 6 '\006', filters = 0 '\0', timecode = 2119, packetlength =
1500}
xaa = 390
freecount = 389
compressthis = 1
raw = 0
timeperframe = 40
planes = {0x8572d40 '\020' <repeats 200 times>...,
0x8577d40
"|~~~\202\200\200\200~|\200\200\200\202\200\200\177~\200\200\202|\200\200\200\204\200~\200\202\202\200~~\200\202\202\177\200\200\200\202\177\200\202\200\200\200~|\200\202\200|\200\200\200~\202\202\202\200\200~\200\200\200}\202\202\201\202~\200\201\201\200\202\177\200\200\200\200|\202\202\177\200\200~\200\200|\202~|~\200\200\202\202~}|\200\202\202\200{~\201\202\200|\200~~~\200|~~~~\200~~~~~\177\200}\200\200}~\201~~\200~~~\200\200|\200\200~\200~}\200\201}||~~\200\202~|~\202\202\203\200\177\200~\201\200\200\200~~~\200~\200}~~\201\202\202\200|\200\200~\202}~|\200~\200"...,
0x8579140
"\200\202~}~~~\200}~~~\200}\200\177}}}~\177}\200\202\200~\200\202\200\200~~~\200\200~~~}~\200\200}~~~\200\202~\200~\200~\202\200~}~\200\177~~\200\200\202\202\200\202\202\200\200~~\200}\200\200~~~\200\202\200\202\201~\202\200~\200\203\200\200\200\200\201\202\200\200\203\200\202~\200\202\200\202~\200\202\203\201{\200~~~~}\177~~~\200\200\200\200~\200\202\202~~~~\200\202}~\200\200~\200\200\200\200~\200{~}~~~\201\200\177\200\202\200\200\177\202\200\202\202~}}\177~~\200\200\200\200\200\202\203}\177}~\202\200~}~\177}\202~\200\177~\201\202\200\200\200"...}
len = 30720
fnum = 1582
timecode = 2119
buf = (unsigned char *) 0x8572d40 '\020' <repeats 200 times>...
prev_bframe_save_pos = -1
prev_keyframe_save_pos = -1
wantkeyframe = false
#3 0x080d3b3b in NuppelVideoRecorder::doWriteThread() (this=0x48341008)
at NuppelVideoRecorder.cpp:2308
frame = {codec = CODEC_YUV, height = 128, width = 160, bpp = 0,
frameNumber = 1582, buf = 0x8572d40 '\020' <repeats 200 times>...,
len = 30720, timecode = 2119, is_field = 0}
action = ACTION_VIDEO
firsttimecode = 2119
#4 0x080d1e19 in NuppelVideoRecorder::WriteThread(void*)
(param=0x48341008)
at NuppelVideoRecorder.cpp:1564
nvr = (NuppelVideoRecorder *) 0x48341008
#5 0x40979332 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.

Thread 15 (Thread 1220898096 (LWP 11614)):
#0 0xffffe002 in ?? ()
No symbol table info available.
#1 0x080a7fa2 in SpawnEncode(void*) (param=0x48341008) at tv_rec.cpp:33
nvr = (class RecorderBase *) 0x48341008
#2 0x40979332 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.

Thread 14 (Thread 1211370800 (LWP 11613)):
#0 0xffffe002 in ?? ()
No symbol table info available.
#1 0x080a7fa2 in SpawnEncode(void*) (param=0x48341008) at tv_rec.cpp:33
nvr = (class RecorderBase *) 0x48341008
#2 0x40979332 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.

Thread 14 (Thread 1211370800 (LWP 11613)):
---Type <return> to continue, or q <return> to quit---
#0 0xffffe002 in ?? ()
No symbol table info available.
#1 0x08097eb5 in RingBuffer::Read(void*, int) (this=0x833e9d0,
buf=0x8369948,
count=128000) at RingBuffer.cpp:894
ret = -1
#2 0x080b621b in TVRec::DoReadThread() (this=0x8343570) at
tv_rec.cpp:2008
ret = 0
buffer = 0x8369948 ""
#3 0x080b62cd in TVRec::ReadThread(void*) (param=0x8343570) at
tv_rec.cpp:2023
thetv = (TVRec *) 0x8343570
#4 0x40979332 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
Couldn't get registers: No such process.
#0 0xffffe002 in ?? ()
Re: PVR250 + BT878 [ In reply to ]
BTW, I'm using RedHat 9 which uses NPTL as opposed to the traditional
pthreads from previous versions.

Regards,

Flavio

On Mon, 2 Jun 2003, Flavio Villanustre wrote:

>
> I'm currently running mythtv in a box with two tuner cards: one Hauppauge
> PVR250 as the first card and one Hauppauge WinTV-go as the second one. The
> ivtv driver is the CVS version from last week and mythtv is the CVS
Re: PVR250 + BT878 [ In reply to ]
On Monday 02 June 2003 11:23 pm, Flavio Villanustre wrote:
> I'm currently running mythtv in a box with two tuner cards: one Hauppauge
> PVR250 as the first card and one Hauppauge WinTV-go as the second one. The
> ivtv driver is the CVS version from last week and mythtv is the CVS
> version from yesterday (but the same problem happened for previous
> checkouts).
>
> Each card works perfectly when it's alone, however, when both are
> configured at the same time in the system and I activate PIP on live TV,
> after a few minutes I get mythbackend using 100% of my CPU (the system is
> a Pentium IV 2.4GHz with 512 MB of ram). After that point, they only way
> of getting the system back to normal conditions is killing mythbackend.
>
> I've been able to reproduce the problem almost every time I enabled PIP
> for long enough.

Should be fixed. Thanks for the bug report =)

Isaac
Re: PVR250 + BT878 [ In reply to ]
On Tue, 3 Jun 2003, Isaac Richards wrote:

> > I've been able to reproduce the problem almost every time I enabled PIP
> > for long enough.
>
> Should be fixed. Thanks for the bug report =)
>
I tested it and it's really fixed!

Thanks for the fast response, Isaac.

Best regards,

Flavio