[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