[mythtv] Kerneldeint crash with new deinterlacing code

Jesper Sörensen jesper at datapartner.se
Sat Aug 14 05:03:20 EDT 2004


I'm having problems with a crash in the kerneldeint algorithm, which 
worked fine before the new BOB deinterlacer and all. (I'm using DVB).

The following crash occurs everytime I switch live TV to CNN (possibly 
other channels too). I don't understand the deinterlacing/filter code 
and this seems to be assembly code which I'm not that familiar with so 
I'd appreciate some help with this. Anyone have any ideas? Thanks!


Video has changed: 528 576 from: 704 576
2004-08-14 10:38:30 detectInterlace(Detect Scan, Interlaced Scan, 25, 
576) ->Interlaced Scan
2004-08-14 10:38:30 Interlaced: Interlaced Scan  video_height: 576  fps: 25
2004-08-14 10:38:30 Image size. dispxoff 159, dispyoff: 0, dispwoff: 
961, disphoff: 720
2004-08-14 10:38:30 Image size. imgx 0, imgy: 0, imgw: 528, imgh: 576
2004-08-14 10:38:30 prebuffer wait timed out..
2004-08-14 10:38:30 waiting for prebuffer...
Unknown conversion
2004-08-14 10:38:30 prebuffer wait timed out..
2004-08-14 10:38:30 waiting for prebuffer...
Audio has changed: 48000hz mono
[Thread 1303108528 (LWP 2877) exited]
2004-08-14 10:38:31 prebuffer wait timed out..
2004-08-14 10:38:31 waiting for prebuffer...
2004-08-14 10:38:31 Opening OSS audio device '/dev/adsp'.
2004-08-14 10:38:31 Audio fragment size: 2048
[New Thread 1303108528 (LWP 2879)]
2004-08-14 10:38:31 prebuffer wait timed out..
2004-08-14 10:38:31 waiting for prebuffer...

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1335872432 (LWP 2878)]
0x4bd4f3b6 in KDP_MMX (
    Plane=0x4d29e000 
"\200\200\200\200\200\200\200\200\203\203\204\205\205\203\202\202\203\203\202\2
04\205\206\205\204\202\201\201\201\202\204\204\205\212\217\223\226\227\227\226\224\223\222\222\223\2
23\223\224\225\225\225\225\226\226\226\226\226\225\224\224\224\225\225\224\224\225\226\226\225\224\2
25\225\225\224\224\223\223\224\223\222\221\220\221\222\221\222\221\214\211\204\201\200\200\200\202\2
05\204\210\206\206\206\206\206\206\206\207\207\207\207\206\206\205\205\206\203\203\202\202", 
'\201'
<repeats 11 times>, 
"\202\202\201\201\201\201\201\201\201\201\177~\200\203\210\212\216\216\216\215\2
14\211\210\206\207\204\204\205\207\211\213\216\216\210\210\207\207\210\206\204\205\203\202\202\203\2
04\204\205\205\207\205\206\210\211\214\215\215\220\221\222\222\221\220\220\217\220\221\221\223\223\2
24\225"..., Line=0x8289fd0 "", W=352, H=288, Threshold=12)
    at filter_kerneldeint.c:309
309                 movq_m2r (LineCur2D[X], mm2);
Current language:  auto; currently c
(gdb) thread apply all bt full

Thread 17 (Thread 1303108528 (LWP 2879)):
#0  0x4156651c in nanosleep () from /lib/tls/libc.so.6
No symbol table info available.
#1  0x4158fc3b in usleep () from /lib/tls/libc.so.6
No symbol table info available.
#2  0x4098785a in AudioOutputOSS::OutputAudioLoop (this=0x886fa58)
    at audiooutputoss.cpp:594
        space_on_soundcard = 1320
        zeros = "\000"
#3  0x40987ce0 in AudioOutputOSS::kickoffOutputAudioLoop (player=0x886fa58)
    at audiooutputoss.cpp:634
No locals.
#4  0x413c99b4 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#5  0x00000000 in ?? ()
No symbol table info available.

Thread 16 (Thread 1335872432 (LWP 2878)):
#0  0x4bd4f3b6 in KDP_MMX (
    Plane=0x4d29e000 
"\200\200\200\200\200\200\200\200\203\203\204\205\205\203\202\202\203\203\202\2
04\205\206\205\204\202\201\201\201\202\204\204\205\212\217\223\226\227\227\226\224\223\222\222\223\2
23\223\224\225\225\225\225\226\226\226\2---Type <return> to continue, or 
q <return> to quit---
26\226\225\224\224\224\225\225\224\224\225\226\226\225\224\225\225\225\224\224\223\223\224\223\222\2
21\220\221\222\221\222\221\214\211\204\201\200\200\200\202\205\204\210\206\206\206\206\206\206\206\2
07\207\207\207\206\206\205\205\206\203\203\202\202", '\201' <repeats 11 
times>, "\202\202\201\201\20
1\201\201\201\201\201\177~\200\203\210\212\216\216\216\215\214\211\210\206\207\204\204\205\207\211\2
13\216\216\210\210\207\207\210\206\204\205\203\202\202\203\204\204\205\205\207\205\206\210\211\214\2
15\215\220\221\222\222\221\220\220\217\220\221\221\223\223\224\225"..., 
Line=0x8289fd0 "", W=352, H=
288, Threshold=12)
    at filter_kerneldeint.c:309
        X = 96
        Y = 73
        LineCur = (uint8_t *) 0x4d2aace0 ""
        LineCur1U = (uint8_t *) 0x4d2aab80 ""
        LineCur1D = (uint8_t *) 0x4d2aae40 ""
        LineCur2D = (uint8_t *) 0x4d2aafa0 ""
        tmp = 0 '\0'
        mm_lthr = {q = -3096271989178380, uq = 18443647801720373236, d = {
    -720908, -720908}, ud = {4294246388, 4294246388}, w = {-12, -12, -12,
    -12}, uw = {65524, 65524, 65524, 65524}, b = 
"<F4><FF><F4><FF><F4><FF><F4><FF>", ub = "<F4><FF>
<F4><FF><F4><FF><F4><FF>",
  s = {-nan(0x74fff4), -nan(0x74fff4)}}
        mm_hthr = {q = 3096271989178379, uq = 3096271989178379, d = {720907,
    720907}, ud = {720907, 720907}, w = {11, 11, 11, 11}, uw = {11, 11, 11,
    11}, b = "\v\000\v\000\v\000\v", ub = "\v\000\v\000\v\000\v", s = {
---Type <return> to continue, or q <return> to quit---
    1.01020587e-39, 1.01020587e-39}}
#1  0x4bd4f76b in KernelDeint (f=0x8a86e50, frame=0x89001c8)
    at filter_kerneldeint.c:373
        filter = (ThisFilter *) 0x8a86e50
#2  0x402f4b7a in FilterChain::ProcessFrame (this=0x826e7a8, 
Frame=0x89001c8)
    at filtermanager.cpp:48
        VF = (VideoFilter *) 0x8a86e50
#3  0x4039daeb in VideoOutputXv::ProcessFrame (this=0x86bd1f0,

    frame=0x89001c8, osd=0x86cc308, filterList=0x8267a80, pipPlayer=0x0)
    at videoout_xv.cpp:1030
        pauseframe = false
#4  0x401e6431 in NuppelVideoPlayer::OutputVideoLoop (this=0x86dcf48)
    at NuppelVideoPlayer.cpp:1455
        frame = (VideoFrame *) 0x89001c8
        fr_int = 40000
#5  0x401e64ef in NuppelVideoPlayer::kickoffOutputVideoLoop 
(player=0x86dcf48)
    at NuppelVideoPlayer.cpp:1527
        nvp = (NuppelVideoPlayer *) 0x86dcf48
#6  0x413c99b4 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#7  0x00000000 in ?? ()
No symbol table info available.

---Type <return> to continue, or q <return> to quit---
Thread 14 (Thread 1289071536 (LWP 2876)):
#0  0x4158f3c7 in select () from /lib/tls/libc.so.6
No symbol table info available.

#1  0x4108cc62 in QSocketDevice::waitForMore () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#2  0x408d0f51 in RemoteFile::Read (this=0x825ee00, data=0x4cdd8008,
    size=256000) at remotefile.cpp:240
        recv = 0
        sent = 256000
        zerocnt = 1
        error = false
        response = false
        strlist = {<QValueList<QString>> = {sh = 0x82799e0}, <No data 
fields>}
#3  0x40261cb1 in RingBuffer::safe_read (this=0x82656a8, rf=0x825ee00,
    data=0x4cdd8008, sz=256000) at RingBuffer.cpp:560
        ret = 0
#4  0x40262742 in RingBuffer::ReadAheadThread (this=0x82656a8)
    at RingBuffer.cpp:779
        totfree = 256000
        ret = 256000
        used = 282625
#5  0x40262477 in RingBuffer::startReader (type=0x82656a8)
    at RingBuffer.cpp:718
---Type <return> to continue, or q <return> to quit---
        rbuffer = (RingBuffer *) 0x82656a8
#6  0x413c99b4 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#7  0x00000000 in ?? ()
No symbol table info available.

Thread 13 (Thread 1280682928 (LWP 2875)):
#0  0x413cc2c0 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
   from /lib/tls/libpthread.so.0
No symbol table info available.
#1  0x411251b7 in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#2  0x40263069 in RingBuffer::ReadFromBuf (this=0x82656a8, buf=0x86e80a0,
    count=32768) at RingBuffer.cpp:898
        readone = false
        avail = 20480
        readErr = 0
#3  0x4026360f in RingBuffer::Read (this=0x82656a8, buf=0x86e80a0, 
count=32768)
    at RingBuffer.cpp:993
        ret = -1
#4  0x402eda38 in read_avf (h=0x8901028,
    buf=0x86e80a0 
"\005O<B2>8\217<D6><ED><E7>\005L\233\213{|\233\216<\233eY\017<B0><E6><B1><C0>\201
<F9><C0>\n9<E7><E7><AE>\210<A2><B9>\177<D2>]<F9><CC>|<B4>VE[<A5>\225\"US\230", 
buf_size=32768)
---Type <return> to continue, or q <return> to quit---
    at avformatdecoder.cpp:166
        dec = (AvFormatDecoder *) 0x8900fd0
#5  0x4054c8cb in url_read (h=0x8901028,
    buf=0x86e80a0 
"\005O<B2>8\217<D6><ED><E7>\005L\233\213{|\233\216<\233eY\017<B0><E6><B1><C0>\201
<F9><C0>\n9<E7><E7><AE>\210<A2><B9>\177<D2>]<F9><CC>|<B4>VE[<A5>\225\"US\230", 
size=32768) at avio.c
:99
        ret = -589824
#6  0x402edb13 in avf_read_packet (opaque=0x8901028,
    buf=0x86e80a0 
"\005O<B2>8\217<D6><ED><E7>\005L\233\213{|\233\216<\233eY\017<B0><E6><B1><C0>\201
<F9><C0>\n9<E7><E7><AE>\210<A2><B9>\177<D2>]<F9><CC>|<B4>VE[<A5>\225\"US\230", 
buf_size=32768)
    at avformatdecoder.cpp:209
        h = (URLContext *) 0x8901028
#7  0x4054d459 in fill_buffer (s=0x8284b80) at aviobuf.c:257
        len = 1079725517
#8  0x4054d64e in get_buffer (s=0x8284b80,
    buf=0x8785f8f 
";\221\030\211Q\232\237\nT<AC><C4>\027:g\\v\024r<C5>c<EE>j\021<B8><D1><EB>\2205kX]
\213<CB> 
<BA><A5>\217=fQBX0<C7>\0270J\204<DE>\"I;<D4>\"<AF>0<F3>m[#c\016\020<FE>\032\226<CB><C1>/
<A2>/#\237r<C2>\021<E6>v\\<CB><D1><D0><FB>\230\033;<C0>\003<E8>t:\036\035s\201<CD>\037r<C1>\203<A1>
<E1><D2><DB>P\037", size=1656)
    at aviobuf.c:323
        len = 0
        size1 = 2039
#9  0x4056042a in mpegps_read_packet (s=0x8284b70, pkt=0x8285a88)
    at mpeg.c:1389
        st = (AVStream *) 0x86d8270
---Type <return> to continue, or q <return> to quit---
        len = 2039
        startcode = 480
        i = 0
        type = 0
        codec_id = 0
        pts = -9223372036854775808
        dts = -9223372036854775808
        ppos = 491128
#10 0x40571b87 in av_read_packet (s=0x8284b70, pkt=0x8285a88) at utils.c:499
No locals.
#11 0x405722de in av_read_frame_internal (s=0x8284b70, pkt=0x8219a28)
    at utils.c:754
        st = (AVStream *) 0x0
        len = 2039
        ret = 0
        i = 1
        startpos = 491128
#12 0x40572622 in av_read_frame (s=0x8284b70, pkt=0x8219a28) at utils.c:847
        pktl = (AVPacketList *) 0x0
#13 0x402f0108 in AvFormatDecoder::GetFrame (this=0x8900fd0, onlyvideo=0)
    at avformatdecoder.cpp:1081
        curstream = (AVStream *) 0x4c55a978
        pkt = (AVPacket *) 0x8219a28
---Type <return> to continue, or q <return> to quit---
        len = 0
        ret = 0
        ptr = (unsigned char *) 0x86bd1f0 "<A8>=M@\020\002"
        data_size = 0
        pts = 4635171174621106844
        firstloop = false
        allowedquit = false
        storevideoframes = false
#14 0x401e2b00 in NuppelVideoPlayer::GetFrame (this=0x86dcf48, onlyvideo=0,
    unsafe=false) at NuppelVideoPlayer.cpp:747
No locals.
#15 0x401e75bd in NuppelVideoPlayer::StartPlaying (this=0x86dcf48)
    at NuppelVideoPlayer.cpp:1797
        output_video = 1335872432
        pausecheck = 0
#16 0x40283427 in SpawnDecode (param=0x86dcf48) at tv_play.cpp:172
        nvp = (NuppelVideoPlayer *) 0x86dcf48
#17 0x413c99b4 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#18 0x00000000 in ?? ()
No symbol table info available.

Thread 12 (Thread 1272171440 (LWP 2872)):
---Type <return> to continue, or q <return> to quit---
#0  0x4156651c in nanosleep () from /lib/tls/libc.so.6
No symbol table info available.
#1  0x4158fc3b in usleep () from /lib/tls/libc.so.6
No symbol table info available.
#2  0x408fc8fe in ReadStringList (socket=0x8228e28, list=@0x4bd3c8a0,
    quickTimeout=true) at util.cpp:163
        timer = {ds = 38311584}
        elapsed = 8
        sizestr = <incomplete type>
        size = 27322288
        utf8 = <incomplete type>
        read = 1335885840
        zerocnt = 1335926392
        str = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x81d6070, static shared_null = 0x81d6070}, d = 0x4bd3c820,
  static shared_null = 0x81d6070}
#3  0x4025920d in RemoteEncoder::SendReceiveStringList (this=0x826abf8,
    strlist=@0x4bd3c8a0) at remoteencoder.cpp:57
No locals.
#4  0x40259a9c in RemoteEncoder::GetFramesWritten (this=0x826abf8)
    at remoteencoder.cpp:132
        strlist = {<QValueList<QString>> = {sh = 0x4fa06768}, <No data 
fields>}
---Type <return> to continue, or q <return> to quit---
        retval = 491520
#5  0x401ed6d1 in NuppelVideoPlayer::calcSliderPos (this=0x86dcf48,
    desc=@0x4bd3ca50) at NuppelVideoPlayer.cpp:3248
        written = 1272170984
        secsbehind = 1096748732
        hours = 1335885840
        secs = 136199464
        played = 4696728210470076432
        mins = 1076426663
        ret = 999.973877
        text1 = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x81d6070, static shared_null = 0x81d6070}, d = 0x81d6070,
  static shared_null = 0x81d6070}
        text2 = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x81d6070, static shared_null = 0x81d6070}, d = 0x81d6070,
  static shared_null = 0x81d6070}
        playbackLen = 136199464
        secsplayed = 1.4736252e-37
        phours = 1076426663
        pmins = 1335885840
        psecs = 1096748732
---Type <return> to continue, or q <return> to quit---
        shours = 14
        smins = 8
        ssecs = 2004
#6  0x4028b03c in TV::RunTV (this=0x82647b8) at tv_play.cpp:1128
        dummy = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x81d6070, static shared_null = 0x81d6070}, d = 0x81d6070,
  static shared_null = 0x81d6070}
        pos = 0
        progress = 0
        keypressed = (QKeyEvent *) 0x88f1f88
        updatecheck = 6
#7  0x4028a62d in TV::EventThread (param=0x82647b8) at tv_play.cpp:988
        thetv = (class TV *) 0x82647b8
#8  0x413c99b4 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#9  0x00000000 in ?? ()
No symbol table info available.

Thread 1 (Thread 1098775808 (LWP 2848)):
#0  0x4156651c in nanosleep () from /lib/tls/libc.so.6
No symbol table info available.
#1  0x4158fc3b in usleep () from /lib/tls/libc.so.6
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#2  0x080658a2 in startTV () at main.cpp:270
        tv = (class TV *) 0x82647b8
        timer = {ds = 38202054}
        tryTV = false
        tryRecorder = false
        quitAll = false
        showDialogs = true
#3  0x08066c23 in TVMenuCallback (data=0x820c9b0, selection=@0x826425c)
    at main.cpp:389
        sel = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x81d6070, static shared_null = 0x81d6070}, d = 0x8260f78,
  static shared_null = 0x81d6070}
#4  0x408f31bd in ThemedMenuPrivate::handleAction (this=0x8264160,
    action=@0x86a1f28) at themedmenu.cpp:2140
No locals.
#5  0x408f1660 in ThemedMenuPrivate::keyPressHandler (this=0x8264160,
    e=0xbffff3e0) at themedmenu.cpp:1950
        it = {node = 0x86a1f20}
        action = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x81d6070, static shared_null = 0x81d6070}, d = 0x82389e0,
---Type <return> to continue, or q <return> to quit---
  static shared_null = 0x81d6070}
        i = 0
        lastbutton = (ThemedButton *) 0x8258e78
        oldrow = 0
        handled = true
        actions = {<QValueList<QString>> = {sh = 0x8260110}, <No data 
fields>}
#6  0x408f47e4 in ThemedMenu::keyPressEvent (this=0x8266568, e=0xbffff3e0)
    at themedmenu.cpp:2333
No locals.
#7  0x40ecb685 in QWidget::event () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#8  0x40e39aff in QApplication::internalNotify () from 
/usr/lib/libqt-mt.so.3
No symbol table info available.
#9  0x40e395f4 in QApplication::notify () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#10 0x40dd22a0 in QETWidget::translateKeyEvent () from 
/usr/lib/libqt-mt.so.3
No symbol table info available.
#11 0x40dce1f4 in QApplication::x11ProcessEvent () from 
/usr/lib/libqt-mt.so.3
No symbol table info available.
#12 0x40de47d4 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#13 0x40e4d498 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#14 0x40e39db1 in QApplication::enter_loop () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#15 0x409545ad in MythDialog::exec (this=0x8266568) at mythdialogs.cpp:822
        res = 1083524406
#16 0x080681c8 in RunMenu (themedir=
      {static null = {static null = <same as static member of an already 
seen type>, d = 0x81d6070,
static shared_null = 0x81d6070}, d = 0x827d2d8, static shared_null = 
0x81d6070}) at main.cpp:542
        exitstatus = 0
#17 0x0806c695 in main (argc=3, argv=0xbffffb74) at main.cpp:993
        lcd_host = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x81d6070, static shared_null = 0x81d6070}, d = 0x822ad30,
  static shared_null = 0x81d6070}
        lcd_port = 13666
        a = <incomplete type>
        logfile = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x81d6070, static shared_null = 0x81d6070}, d = 0x820c6b0,
  static shared_null = 0x81d6070}
        verboseString = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x81d6070, static shared_null = 0x81d6070}, d = 0x820c6c8,
---Type <return> to continue, or q <return> to quit---
  static shared_null = 0x81d6070}
        pluginname = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x81d6070, static shared_null = 0x81d6070}, d = 0x820c6e0,
  static shared_null = 0x81d6070}
        finfo = {fn = {static null = {
      static null = <same as static member of an already seen type>,
      d = 0x81d6070, static shared_null = 0x81d6070}, d = 0x820c728,
    static shared_null = 0x81d6070}, fic = 0x0, cache = true, symLink = 
false}
        binname = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x81d6070, static shared_null = 0x81d6070}, d = 0x820c740,
  static shared_null = 0x81d6070}
        logfd = -1
        fileprefix = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x81d6070, static shared_null = 0x81d6070}, d = 0x820c798,
  static shared_null = 0x81d6070}
        dir = <incomplete type>
        db = (struct QSqlDatabase *) 0x821e780
        themename = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x81d6070, static shared_null = 0x81d6070}, d = 0x827d0c8,
---Type <return> to continue, or q <return> to quit---
  static shared_null = 0x81d6070}
        randomtheme = false
        themedir = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x81d6070, static shared_null = 0x81d6070}, d = 0x827d2d8,
  static shared_null = 0x81d6070}
        mainWindow = (class MythMainWindow *) 0x8227128
        pmanager = (MythPluginManager *) 0x8228d28
        mon = (class MediaMonitor *) 0x0
        exitstatus = 1095946525
#18 0x414ce7f8 in __libc_start_main () from /lib/tls/libc.so.6
No symbol table info available.
#19 0x415f0ebc in ?? () from /lib/tls/libc.so.6
No symbol table info available.
0x4bd4f3b6      309                 movq_m2r (LineCur2D[X], mm2);
(gdb)



More information about the mythtv-dev mailing list