<div class="gmail_quote">On Tue, Oct 11, 2011 at 2:30 PM, Don Lewis <span dir="ltr"><<a href="mailto:dl-mythtv@catspoiler.org">dl-mythtv@catspoiler.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div></div><div class="h5">On 11 Oct, To: Discussion about MythTV wrote:<br>
> I've been seeing quite a few mythcommflag failures recently. This<br>
> coredump seems to be typical:<br>
><br>
> (gdb) bt<br>
> #0 0x000000000040b517 in ClassicLogoDetector::DetectEdges (this=0xd02040,<br>
> frame=<value optimized out>, edges=0x7f92904c8010, edgeDiff=10)<br>
> at ClassicLogoDetector.cpp:537<br>
> #1 0x000000000040c06e in ClassicLogoDetector::searchForLogo (<br>
> this=<value optimized out>, player=0xb8db50) at ClassicLogoDetector.cpp:132<br>
> #2 0x000000000041e85c in ClassicCommDetector::go (this=0xb8d570)<br>
> at ClassicCommDetector.cpp:357<br>
> #3 0x000000000045d418 in DoFlagCommercials (program_info=0x7fff25314a60,<br>
> outputfilename=..., useDB=true) at main.cpp:612<br>
> #4 FlagCommercials (program_info=0x7fff25314a60, outputfilename=..., useDB=<br>
> true) at main.cpp:840<br>
> #5 0x000000000045ef6f in FlagCommercials (chanid=4049, starttime=...,<br>
> outputfilename=..., useDB=true) at main.cpp:873<br>
> #6 0x00000000004650bb in main (argc=5, argv=<value optimized out>)<br>
> at main.cpp:1351<br>
><br>
> (gdb) list<br>
> 532 continue;<br>
> 533<br>
> 534 pos = y * width + x;<br>
> 535 p = buf[pos];<br>
> 536<br>
> 537 if (( abs(buf[y * width + (x - r)] - p) >= edgeDiff) ||<br>
> 538 ( abs(buf[y * width + (x + r)] - p) >= edgeDiff))<br>
> 539 {<br>
> 540 edges[pos].horiz++;<br>
> 541 edgeCount++;<br>
><br>
> (gdb) print x<br>
> $1 = 22<br>
> (gdb) print y<br>
> $2 = 22<br>
> (gdb) print width<br>
> $3 = 704<br>
> (gdb) print r<br>
> $4 = 2<br>
> (gdb) print p<br>
> Cannot access memory at address 0x3c96<br>
> (gdb) print pos<br>
> $5 = 15510<br>
><br>
> It's wierd that gdb can't print variable p because it's a just a local<br>
> variable ... maybe some sort of interaction with optimization ...<br>
><br>
> (gdb) print buf[15510]<br>
> Cannot access memory at address 0x3c96<br>
> (gdb) print buf<br>
> $6 = (unsigned char *) 0x0<br>
> (gdb) print frame<br>
> $7 = <value optimized out><br>
<br>
</div></div>Tracked it a bit further ... buf really is a NULL pointer.<br>
<br>
(gdb) up<br>
<div class="im">#1 0x000000000040c06e in ClassicLogoDetector::searchForLogo (<br>
this=<value optimized out>, player=0xb8db50) at ClassicLogoDetector.cpp:132<br>
</div>132 DetectEdges(vf, edgeCounts, edgeDiffs[i]);<br>
<br>
(gdb) list<br>
127 }<br>
128<br>
129 if (!commDetector->fullSpeed)<br>
130 usleep(10000);<br>
131<br>
132 DetectEdges(vf, edgeCounts, edgeDiffs[i]);<br>
133<br>
134 seekFrame += seekIncrement;<br>
135 loops++;<br>
136<br>
<br>
(gdb) print *vf<br>
$9 = {codec = FMT_YV12, buf = 0x0, width = 528, height = 480, bpp = 12, size =<br>
380162, frameNumber = 2692, timecode = 62178107, disp_timecode = 96288,<br>
priv = {0x0, 0x0, 0x0, 0x0}, qscale_table = 0x0, qstride = 0,<br>
interlaced_frame = 1, top_field_first = 1, repeat_pict = 0, forcekey = 0,<br>
pitches = {528, 264, 264}, offsets = {0, 253440, 316800}, pix_fmt = 0}</blockquote><div><br></div><div><br></div><div>Please put a ticket in trac, we'll get that fixed. </div></div>