[mythtv] XvMC crashing - gdb backtrace
Chris Wieringa
cwieri39 at calvin.edu
Tue Nov 11 18:24:29 EST 2003
Hey all,
Alright, I'm having some problems getting XvMC working on MythTV .12 with my GF4MX. Basically, I can get it compiled correctly and it starts running fine. I can watch one program using XvMC, but after the first program any additional program playing seg faults the program. After restarting X I can watch another show.
I've already posted my steps in trying to get XvMC working on the mythtv-users list, and I'm reposting that here. Below the repost, I've posted the gdb backtrace for the crash. Hopefully I can get this working soon, the entire system just rocks.
-----------------------
Repost of XvMC steps to get it working:
Originally, when I would try to playback XvMC content mythfrontend would seg
fault. I also could not use mplayer's XvMC output plugin, so I figured there
was something wrong with my X setup. After downgrading my NVIDIA drivers from
1.0-4496 to 1.0-4363 (as was suggested from this list), it still didn't work.
This morning I started digging through my XF86config file, and noticed that I
had TwinView set up even though I'm only using the TV for video output. Also,
re-reading NVIDIA's readme on TwinView I noticed that there was a warning about
overlay support / etc when TwinView was enabled. So, I disabled TwinView and
setup the TV to be my only monitor in the XF86config file. After reloading X,
I found the mplayer's XvMC support now worked. So I recompiled MythTV with
XvMC support and loaded it up.
Eureka! Mythfrontend played back a recording just fine, and CPU usage was at
35% compared to the typical 85%. Just to make sure things were working, I
tried to play another show and disaster struck. As soon as I tried to play the
second show, mythfrontend seg faults and I get this following error on my
command line:
Using XvMC version: 1.0
Using XV port 105
Unable to create XvMC Context
Changing from None to WatchingPreRecorded
Segmentation fault
Does anyone have any idea what this means? And secondly, what I need to do to
resolve this?
Some stats about my system:
- K6-3 450Mhz CPU, NVidia GF4 MX 440 Graphics, PVR-250 for tuner
- Running MythTV 0.12
-----------------------
This is the GDB backtrace:
Starting program: /usr/local/bin/mythfrontend
[New Thread 16384 (LWP 9248)]
2003-11-11 18:04:21 Enabled verbose msgs : important general
connecting to backend server: 127.0.0.1:6543
Could not connect to backend server
connecting to backend server: 127.0.0.1:6543
[New Thread 32769 (LWP 9274)]
[New Thread 16386 (LWP 9275)]
[New Thread 32771 (LWP 9276)]
[New Thread 49156 (LWP 9277)]
Input #0, mpeg, from '/storage/av/tv/1036_20031110230000_20031110233000.nuv':
Stream #0.0: Video: mpegvideo_xvmc, 480x480, 29.97 fps, 6000 kb/s
Stream #0.1: Audio: mp2, 48000 Hz, stereo, 384 kb/s
Opening OSS audio device '/dev/dsp'.
audio device cannot report buffer state accurately,
audio/video sync will be bad, continuing anyway
[New Thread 65541 (LWP 9278)]
Over/underscanning. V: 0.000000, H: 0.000000, XOff: 0, YOff: 20
Using XvMC version: 1.0
Using XV port 105
[New Thread 81926 (LWP 9279)]
Changing from None to WatchingPreRecorded
2003-11-11 18:05:19 prebuffering pause
Changing from WatchingPreRecorded to None
Changing from None to None
[New Thread 98311 (LWP 9280)]
[New Thread 114696 (LWP 9281)]
[New Thread 131081 (LWP 9282)]
Input #0, mpeg, from '/storage/av/tv/1005_20031102230500_20031103000500.nuv':
Stream #0.0: Video: mpegvideo_xvmc, 480x480, 29.97 fps, 6000 kb/s
Stream #0.1: Audio: mp2, 48000 Hz, stereo, 384 kb/s
Opening OSS audio device '/dev/dsp'.
audio device cannot report buffer state accurately,
audio/video sync will be bad, continuing anyway
[New Thread 147466 (LWP 9283)]
Over/underscanning. V: 0.000000, H: 0.000000, XOff: 0, YOff: 20
Using XvMC version: 1.0
Using XV port 105
NV: could not map register space on /dev/nvidia0 at 0xec000002 for 0x1000 bytes (Invalid argument)
Unable to create XvMC Context
[New Thread 163851 (LWP 9284)]
Changing from None to WatchingPreRecorded
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 114696 (LWP 9281)]
0x0819fa2c in get_avf_buffer_xvmc(AVCodecContext*, AVFrame*) (c=0x871a0f8,
pic=0x876aedc) at avformatdecoder.cpp:579
579 avformatdecoder.cpp: No such file or directory.
in avformatdecoder.cpp
(gdb) thread apply all bt full
Thread 12 (Thread 163851 (LWP 9284)):
#0 0x40beb6d6 in nanosleep () from /lib/libc.so.6
No symbol table info available.
#1 0x00000000 in ?? ()
No symbol table info available.
Thread 11 (Thread 147466 (LWP 9283)):
#0 0x40beb6d6 in nanosleep () from /lib/libc.so.6
No symbol table info available.
#1 0x00000000 in ?? ()
No symbol table info available.
Thread 10 (Thread 131081 (LWP 9282)):
#0 0x40beb6d6 in nanosleep () from /lib/libc.so.6
No symbol table info available.
#1 0x00000000 in ?? ()
No symbol table info available.
Thread 9 (Thread 114696 (LWP 9281)):
#0 0x0819fa2c in get_avf_buffer_xvmc(AVCodecContext*, AVFrame*) (c=0x871a0f8,
pic=0x876aedc) at avformatdecoder.cpp:579
nd = (AvFormatDecoder *) 0x852e1c8
frame = (VideoFrame *) 0x875d218
render = (xvmc_render_state_t *) 0x0
#1 0x081fae08 in alloc_picture (s=0x876ae20, pic=0x876aedc, shared=0)
at mpegvideo.c:251
r = 1001
big_mb_num = 962
mb_array_size = 930
i = 0
#2 0x081fd9fb in MPV_frame_start (s=0x876ae20, avctx=0x871a0f8)
at mpegvideo.c:1019
i = 0
pic = (AVFrame *) 0x876aedc
#3 0x082a0d2f in mpeg_decode_slice (avctx=0x871a0f8, pict=0xbebdf90c,
start_code=0, buf=0xbebdf81c, buf_size=46549) at mpeg12.c:1942
s1 = (Mpeg1Context *) 0x876ae20
s = (MpegEncContext *) 0x876ae20
ret = 141995552
field_pic = 0
#4 0x082a267b in mpeg_decode_frame (avctx=0x871a0f8, data=0xbebdf90c,
data_size=0xbebdf9b0, buf=0x8adb550 "", buf_size=46728) at mpeg12.c:2533
s = (Mpeg1Context *) 0x876ae20
buf_end = (uint8_t *) 0x8ae6bd8 ""
buf_ptr = (
uint8_t *) 0x8adb603 "\032¥ñbÉ>¶©$\237[et×9\bÂqi\bªl%\232\222¢ò\024¤E\204&¤åqOJJ-#JDï#-'\027hB2\235¥#IEÌ!\031Å\204i\031EÅ)H\235å)IιKI\b\002l\036G³Z\211¤\214\002 \021å\025Ï4%óN/)\nJ\233ÊR\223\213ÊR\221+ÈR1\027\020\215\"v\021¥\"W\224\205\"W\220\215'+ÊR\021;\230R1\026\024¥\"V\224¤\"+\221 EuIS\224"
ret = 139676816
start_code = 257
input_size = 46549
picture = (AVFrame *) 0xbebdf90c
s2 = (MpegEncContext *) 0x876ae20
#5 0x081f95b3 in avcodec_decode_video (avctx=0x871a0f8, picture=0xbebdf90c,
got_picture_ptr=0xbebdf9b0, buf=0x87cdde0 "", buf_size=2020) at utils.c:367
ret = 212
#6 0x081a065a in AvFormatDecoder::GetFrame(int) (this=0x852e1c8, onlyvideo=0)
at avformatdecoder.cpp:943
context = (AVCodecContext *) 0x871a0f8
mpa_pic = {data = {0x2ad02b9 <Address 0x2ad02b9 out of bounds>,
0x2df02fa <Address 0x2df02fa out of bounds>,
0x24f024a <Address 0x24f024a out of bounds>,
0x11c0100 <Address 0x11c0100 out of bounds>}, linesize = {-5898355,
-37749320, -65668071, -54985550}, base = {
0xfff5ffde <Address 0xfff5ffde out of bounds>,
0x30a02fc <Address 0x30a02fc out of bounds>,
0x3e803fd <Address 0x3e803fd out of bounds>,
0x349036a <Address 0x349036a out of bounds>}, key_frame = 31982055,
pict_type = -9175207, pts = -192250192279962329,
coded_picture_number = -6881366, display_picture_number = 18809108,
quality = 2.70003589e-38, age = 15007973, reference = 16580886,
qscale_table = 0x7b0096 <Address 0x7b0096 out of bounds>,
qstride = -7733369,
mbskip_table = 0xff3cff2c <Address 0xff3cff2c out of bounds>,
opaque = 0xffedfff7, error = {185494883005235530, 322012282568704970,
177332035713106951, 18444773688758698236}, type = -9765015,
repeat_pict = -9437305, qscale_type = -2621462}
gotpicture = 0
picframe = (VideoFrame *) 0x1e0
curstream = (AVStream *) 0x871a0f0
pkt = (AVPacket *) 0x87620f0
len = 2020
ret = 212
ptr = (unsigned char *) 0x87cdde0 ""
samples = {-775, -743, -1504, -1482, -1657, -1670, -995, -993, 72, 81,
649, 617, 312, 286, -514, -492, -1117, -1118, -1050, -1088, -364, -351, 398,
441, 620, 614, 163, 162, -509, -462, -716, -703, -187, -217, 630, 646, 1020,
1051, 639, 611, -314, -337, -1182, -1156, -1239, -1248, -500, -540, 137,
169, -41, 26, -823, -832, -1534, -1575, -1647, -1634, -1063, -1032, -218,
-200, 347, 375, 517, 519, 364, 311, -190, -221, -1041, -1001, -1707, -1663,
-1669, -1668, -766, -786, 428, 397, 835, 818, 205, 249, -388, -315, -144,
-132, 402, 354, 516, 486, 179, 202, -363, -307, -802, -746, -745, -727,
-357, -378, -378, -394, -1050, -1028, -1727, -1684, -1687, -1653, -808,
-807, 359, 328, 1044, 1022, 1004, 1017, 584, 597, 51, 36, -478, -475, -687,
-643, -505, -484, -458, -489, -871, -872, -1333, -1254, -1403, -1323, -1152,
-1146, -835, -874, -664, -685, -745, -726, -863, -823, -726, -709, -493,
-520, -462, -498, -500, -514, -478, -482, -723, -712, -1296, -1252, -1544,
-1509, -1072, -1090, -413, -445, -290, -283, -792, -753, -1398, -1360,
-1423, -1415, -653, -678, 355, 342, 914, 933, 884, 900, 431, 436, -250,
-230, -728, -713, -638, -642, -279, -263, -248, -215, -597, -576, -835,
-825, -632, -645...}
data_size = 0
temppts = 276412580441621665
gotvideo = false
allowedquit = false
storevideoframes = false
#7 0x080ff48f in NuppelVideoPlayer::GetFrame(int, bool) (this=0x8534b00,
onlyvideo=0, unsafe=false) at NuppelVideoPlayer.cpp:592
No locals.
#8 0x08101bdd in NuppelVideoPlayer::StartPlaying() (this=0x8534b00)
at NuppelVideoPlayer.cpp:1428
seeks = 64
lockit = {mtx = 0x8898f58}
output_video = 163851
pausecheck = 0
#9 0x0817afd3 in SpawnDecode(void*) (param=0x8534b00) at tv_play.cpp:67
nvp = (NuppelVideoPlayer *) 0x8534b00
#10 0x40a01c3e in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#11 0x40a01cbb in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.
Thread 8 (Thread 98311 (LWP 9280)):
#0 0x40beb6d6 in nanosleep () from /lib/libc.so.6
No symbol table info available.
#1 0x00000000 in ?? ()
No symbol table info available.
Thread 2 (Thread 32769 (LWP 9274)):
#0 0x40c0f04c in poll () from /lib/libc.so.6
No symbol table info available.
#1 0x40a01988 in __pthread_manager () from /lib/libpthread.so.0
No symbol table info available.
#2 0x40a01b53 in __pthread_manager_event () from /lib/libpthread.so.0
No symbol table info available.
Thread 1 (Thread 16384 (LWP 9248)):
#0 0x40beb6d6 in nanosleep () from /lib/libc.so.6
No symbol table info available.
#1 0x00000000 in ?? ()
No symbol table info available.
0x0819fa2c 579 in avformatdecoder.cpp
---------------------------------------------------
Thanks for all the help and the great program!
Chris Wieringa
cwieri39 at calvin.edu
More information about the mythtv-dev
mailing list