[mythtv-commits] Ticket #10121: assert in Jitterometer::RecordCycleTime due to count=-1

MythTV noreply at mythtv.org
Tue Oct 25 19:34:09 UTC 2011


#10121: assert in Jitterometer::RecordCycleTime due to count=-1
-------------------------------------------------+-------------------------
     Reporter:  Jon Burgess <jburgess777@…>      |      Owner:  markk
         Type:  Patch - Bug Fix                  |     Status:  new
     Priority:  minor                            |  Milestone:  unknown
    Component:  MythTV - Video Playback          |    Version:  Trunk Head
     Severity:  medium                           |   Keywords:
Ticket locked:  0                                |
-------------------------------------------------+-------------------------
 When the video playback data is displayed I see the following assert:
 {{{
 ASSERT failure in QVector<T>::operator[]: "index out of range", file
 /usr/include/QtCore/qvector.h, line 347

 Program received signal SIGABRT, Aborted.
 0x0000003738e352d5 in __GI_raise (sig=6) at
 ../nptl/sysdeps/unix/sysv/linux/raise.c:64
 64        return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
 (gdb) bt
 #0  0x0000003738e352d5 in __GI_raise (sig=6) at
 ../nptl/sysdeps/unix/sysv/linux/raise.c:64
 #1  0x0000003738e36beb in __GI_abort () at abort.c:93
 #2  0x0000003b6006ac04 in qt_message_output (msgType=<optimized out>,
 buf=<optimized out>) at global/qglobal.cpp:2291
 #3  0x0000003b6006adbf in qt_message(QtMsgType, const char *, typedef
 __va_list_tag __va_list_tag *) (msgType=QtFatalMsg, msg=
     0x3b601b83c8 "ASSERT failure in %s: \"%s\", file %s, line %d",
 ap=0x7fffffffa838) at global/qglobal.cpp:2337
 #4  0x0000003b6006af64 in qFatal (msg=<optimized out>) at
 global/qglobal.cpp:2520
 #5  0x00007ffff79b55af in operator[] (i=-1, this=0x9165700) at
 /usr/include/QtCore/qvector.h:347
 #6  Jitterometer::RecordEndTime (this=0x91656e0) at jitterometer.cpp:77
 #7  0x00007ffff79b5aa6 in Jitterometer::RecordCycleTime (this=0x91656e0)
 at jitterometer.cpp:61
 #8  0x00007ffff78feba9 in MythPlayer::AVSync (this=0x597b530,
 buffer=<optimized out>, limit_delay=false) at mythplayer.cpp:1899
 #9  0x00007ffff78fad4e in MythPlayer::DisplayNormalFrame (this=0x597b530,
 check_prebuffer=<optimized out>) at mythplayer.cpp:2158
 }}}

 This occurs because when it tries to access the -1 index. This is because
 count gets set to -1 by this call:
 {{{
 (gdb) bt
 #0  Jitterometer::SetNumCycles (this=0x91656e0, cycles=0) at
 jitterometer.cpp:50
 #1  0x00007ffff79011f9 in MythPlayer::VideoStart (this=0x597b530) at
 mythplayer.cpp:2239
 #2  0x00007ffff790703a in MythPlayer::StartPlaying (this=0x597b530) at
 mythplayer.cpp:2611
 #3  0x00007ffff791fb84 in PlayerContext::StartPlaying (this=0x3333370,
 maxWait=-1) at playercontext.cpp:455
 #4  0x00007ffff79202a8 in PlayerContext::CreatePlayer (this=0x3333370,
 tv=0xac44, widget=0xabd4b0, desiredState=kState_WatchingPreRecorded,
 embed=false,
     embedbounds=..., muted=false) at playercontext.cpp:442
 #5  0x00007ffff7897c85 in TV::StartPlayer (this=0x17783b0, mctx=0x3333370,
 ctx=0x3333370, desiredState=kState_WatchingPreRecorded) at tv_play.cp
 }}}
 The attached fix fixes this for me by making sure count is set to 0 for
 this case instead of -1.

-- 
Ticket URL: <http://code.mythtv.org/trac/ticket/10121>
MythTV <http://code.mythtv.org/trac>
MythTV Media Center


More information about the mythtv-commits mailing list