[mythtv-users] mythcommflag core dumping

Gavin Hurlbut gjhurlbu at gmail.com
Tue Oct 11 22:23:41 UTC 2011


On Tue, Oct 11, 2011 at 2:30 PM, Don Lewis <dl-mythtv at catspoiler.org> wrote:

> On 11 Oct, To: Discussion about MythTV wrote:
> > I've been seeing quite a few mythcommflag failures recently.  This
> > coredump seems to be typical:
> >
> > (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
> >
> > It's wierd that gdb can't print variable p because it's a just a local
> > variable ... maybe some sort of interaction with optimization ...
> >
> > (gdb) print buf[15510]
> > Cannot access memory at address 0x3c96
> > (gdb) print buf
> > $6 = (unsigned char *) 0x0
> > (gdb) print frame
> > $7 = <value optimized out>
>
> Tracked it a bit further ... buf really is a NULL pointer.
>
> (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}



Please put a ticket in trac, we'll get that fixed.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.mythtv.org/pipermail/mythtv-users/attachments/20111011/5090def8/attachment-0001.html 


More information about the mythtv-users mailing list