[mythtv-commits] Ticket #10089: mythcommflag occasionally dumps core due to NULL pointer dereference in ClassicLogoDetector::DetectEdges()
MythTV
noreply at mythtv.org
Tue Oct 11 22:36:20 UTC 2011
#10089: mythcommflag occasionally dumps core due to NULL pointer dereference in
ClassicLogoDetector::DetectEdges()
-------------------------------------------------+-------------------------
Reporter: Don Lewis <dl-mythtv@…> | Owner: cpinkham
Type: Bug Report - Crash | Status: new
Priority: minor | Milestone: unknown
Component: MythTV - Mythcommflag | Version: 0.24.1
Severity: medium | Keywords:
Ticket locked: 0 |
-------------------------------------------------+-------------------------
I'm seeing sporadic mythcommflag failures caused by it attempting to
dereference a NULL pointer and dump core.
{{{
mythtv-0.24.1-275.fc14.x86_64 package from ATRPMS.
Please attach all output as a file in bug reports.
MythTV Version : v0.24.1-55-g8bc2a66
MythTV Branch : fixes/0.24
Network Protocol : 63
Library API : 0.24.20110505-1
QT Version : 4.7.3
Options compiled in:
linux release using_alsa using_jack using_oss using_pulse
using_pulseoutput using_backend using_bindings_perl using_bindings_python
using_crystalhd using_dvb using_firewire using_frontend using_hdhomerun
using_hdpvr using_iptv using_ivtv using_joystick_menu using_libfftw3
using_lirc using_mheg using_opengl_video using_opengl_vsync using_qtdbus
using_qtwebkit using_v4l using_x11 using_xrandr using_xv using_xvmc
using_xvmc_vld using_xvmcw using_bindings_perl using_bindings_python
using_mythtranscode using_opengl using_vdpau using_ffmpeg_threads
using_live using_mheg
(gdb) bt
#0 0x000000000040b517 in ClassicLogoDetector::DetectEdges (this=0xd02040,
frame=<value optimized out>, edges=0x7f92904c8010, edgeDiff=10)
at ClassicLogoDetector.cpp:537
#1 0x000000000040c06e in ClassicLogoDetector::searchForLogo (
this=<value optimized out>, player=0xb8db50) at
ClassicLogoDetector.cpp:132
#2 0x000000000041e85c in ClassicCommDetector::go (this=0xb8d570)
at ClassicCommDetector.cpp:357
#3 0x000000000045d418 in DoFlagCommercials (program_info=0x7fff25314a60,
outputfilename=..., useDB=true) at main.cpp:612
#4 FlagCommercials (program_info=0x7fff25314a60, outputfilename=...,
useDB=
true) at main.cpp:840
#5 0x000000000045ef6f in FlagCommercials (chanid=4049, starttime=...,
outputfilename=..., useDB=true) at main.cpp:873
#6 0x00000000004650bb in main (argc=5, argv=<value optimized out>)
at main.cpp:1351
(gdb) list
532 continue;
533
534 pos = y * width + x;
535 p = buf[pos];
536
537 if (( abs(buf[y * width + (x - r)] - p) >= edgeDiff)
||
538 ( abs(buf[y * width + (x + r)] - p) >= edgeDiff))
539 {
540 edges[pos].horiz++;
541 edgeCount++;
(gdb) print x
$1 = 22
(gdb) print y
$2 = 22
(gdb) print width
$3 = 704
(gdb) print r
$4 = 2
(gdb) print p
Cannot access memory at address 0x3c96
(gdb) print pos
$5 = 15510
(gdb) print buf[15510]
Cannot access memory at address 0x3c96
(gdb) print buf
$6 = (unsigned char *) 0x0
(gdb) print frame
$7 = <value optimized out>
(gdb) up
#1 0x000000000040c06e in ClassicLogoDetector::searchForLogo (
this=<value optimized out>, player=0xb8db50) at
ClassicLogoDetector.cpp:132
132 DetectEdges(vf, edgeCounts, edgeDiffs[i]);
(gdb) list
127 }
128
129 if (!commDetector->fullSpeed)
130 usleep(10000);
131
132 DetectEdges(vf, edgeCounts, edgeDiffs[i]);
133
134 seekFrame += seekIncrement;
135 loops++;
136
(gdb) print *vf
$9 = {codec = FMT_YV12, buf = 0x0, width = 528, height = 480, bpp = 12,
size =
380162, frameNumber = 2692, timecode = 62178107, disp_timecode =
96288,
priv = {0x0, 0x0, 0x0, 0x0}, qscale_table = 0x0, qstride = 0,
interlaced_frame = 1, top_field_first = 1, repeat_pict = 0, forcekey =
0,
pitches = {528, 264, 264}, offsets = {0, 253440, 316800}, pix_fmt = 0}
}}}
--
Ticket URL: <http://code.mythtv.org/trac/ticket/10089>
MythTV <http://code.mythtv.org/trac>
MythTV Media Center
More information about the mythtv-commits
mailing list