Hi,

I've been seeing this same problem for a while now.  The backtrace from GDB
looks identical to Neale's.  I sprinkled a lot of printf statements into the
code and the problem appears to be occurring with the m_displaypos.y being
wrong (as above), the value of m_displaypos.y only goes incorrect (that I've
observed), under the following conditions:

* Editing a clip that has both 16:9 and 4:3 content
* Already have edit markers visible on the screen
* Navigate from a 16:9 to 4:3 section of the video clip or from a 16:9 to a
4:3 section

Navigating between 16:9 and 4:3 sections without any edit markers in place
is fine and doesn't cause a crash.

The other thing I've noticed is that edit bar (the blue/red bar) appears to
be offset to the right if the aspect ratio is changed at all after the clip
starts. The edit position markers don't appear to be offset, they appear to
be in the correct location. Even upon switching back to the original aspect
ratio the edit bar is still offset.

Having looked through my recording all the ones that are mixed 16:9 and 4:3
are from the same channel (UK, Channel 4).  I will record a few other
programs on different channels and see if my observations still hold.


I'm up for trying to find out what's going on with this if nobody else is
looking.  Some pointers as to where to look would be useful if anybody has
the time (I only started looking at the mythtv code a few days ago).

Mark 

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of Neale Swinnerton
> Sent: 28 April 2005 00:57
> To: Development of mythtv
> Subject: Re: [mythtv] Backtrace for SEGV while editing recording
> 
> Isaac Richards wrote:
> > Actually, please get this back into GDB and do a:
> >
> > print m_displaypos
> > print m_imagesize
> >
> 
> Bit more data, I'd set a cut from the beginning of the 
> program to about
> 3 minutes in (ie. the junk before the show starts). I then set a cut
> point at the start of the first commercial break, it crashes 
> when I step
> forward 1 minute from there.
> 
> Here's the gdb info you wanted (i'm guessing that 
> m_displaypos.yp is the
> problem :-) )
> 
> 
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 1260071856 (LWP 11865)]
> 0x402a4db7 in OSDTypeImage::Draw (this=0x89981b0, surface=0x8c0c218,
> fade=-1,
>     maxfade=-1, xoff=0, yoff=0) at osdtypes.cpp:982
> 982     osdtypes.cpp: No such file or directory.
>         in osdtypes.cpp
> (gdb) bt full
> #0  0x402a4db7 in OSDTypeImage::Draw (this=0x89981b0, 
> surface=0x8c0c218,
> fade=-1,
>     maxfade=-1, xoff=0, yoff=0) at osdtypes.cpp:982
>         x = 0
>         y = -2147483067
>         dest = (unsigned char *) 0x41822b14 "Ì4\v"
>         destalpha = (unsigned char *) 0x4a947218 <Address 
> 0x4a947218 out
> of bounds>
>         src = (unsigned char *) 0x829daec "ü\005!\bü\005!\b)\001"
>         srcalpha = (
>     unsigned char *) 0x4b1b21f0
> "ü\005!\bø\005!\b\b\"\033\001([EMAIL PROTECTED]"\033K2\213)
> @[EMAIL PROTECTED]"
>         udest = (
>     unsigned char *) 0x402a98ff
> "\211Â\213\006;\002\017\225À\017¶À\203Ä\020[^]ÃU\211åVS\203ì\0
> 20èñaùÿ\201Ã\t-<"
>         vdest = (
>     unsigned char *) 0x4b1b21c8
> "\b\"[EMAIL PROTECTED]"
>         usrc = (unsigned char *) 0x4066c628 "\220gd"
>         vsrc = (
>     unsigned char *) 0x4b1b21f0
> "ü\005!\bø\005!\b\b\"\033\001([EMAIL PROTECTED]"\033K2\213)
> @[EMAIL PROTECTED]"
>         alpha = 0
>         iwidth = 18
>         drawwidth = 18
>         drawheight = 28
>         ystart = 0
>         xstart = 0
>         startline = -2147483648
>         startcol = 0
>         destRect = {x1 = 0, y1 = 0, x2 = 17, y2 = 27}
>         needblend = false
>         ysrcwidth = 10458
>         ydestwidth = 418320
>         uvsrcwidth = 144492508
>         uvdestwidth = 1096151784
>         alphamod = 255
>         startingx = 0
> #1  0x402a17f8 in OSDSet::Draw (this=0x87b4078, surface=0x8c0c218,
> actuallydraw=true)
>     at osdtypes.cpp:370
>         type = (class OSDType *) 0x89981b0
>         i = {<std::iterator<std::random_access_iterator_tag, OSDType*,
> int, OSDType**, OSDType*&>> = {<No data fields>}, _M_current 
> = 0x82105f8}
> #2  0x40298b32 in OSD::Display (this=0x8262fd0) at osd.cpp:2013
>         timedisp = (class OSDTypeText *) 0x0
>         container = (class OSDSet *) 0x87b4078
>         anytodisplay = true
>         actuallydraw = true
>         removeList = {<std::_Vector_base<OSDSet*,
> std::allocator<OSDSet*> >> = {<std::_Vector_alloc_base<OSDSet*,
> std::allocator<OSDSet*>, true>> = {_M_start = 0x0,
>       _M_finish = 0x0, _M_end_of_storage = 0x0}, <No data 
> fields>}, <No
> data fields>}
>         i = {<std::iterator<std::random_access_iterator_tag, OSDSet*,
> int, OSDSet**, OSDSet*&>> = {<No data fields>}, _M_current = 
> 0x8203d0c}
> #3  0x403c5316 in VideoOutput::DisplayOSD (this=0x8b794e8, 
> frame=0x8a2f088,
>     osd=0x8262fd0, stride=-1, revision=-1) at videooutbase.cpp:967
>         surface = (OSDSurface *) 0x8071065
>         retval = -1
> #4  0x404c17d2 in VideoOutputXv::ProcessFrameMem (this=0x8b794e8,
> frame=0x8a2f088,
>     osd=0x8262fd0, filterList=0x0, pipPlayer=0x0) at 
> videoout_xv.cpp:2280
>         deint_proc = true
>         pauseframe = true
> #5  0x404c19e9 in VideoOutputXv::ProcessFrame 
> (this=0x8b794e8, frame=0x0,
>     osd=0x8262fd0, filterList=0x0, pipPlayer=0x0) at 
> videoout_xv.cpp:2302
> No locals.
> #6  0x4027820f in NuppelVideoPlayer::DisplayPauseFrame 
> (this=0x896e0b8)
> ---Type <return> to continue, or q <return> to quit---
>     at NuppelVideoPlayer.cpp:1573
> No locals.
> #7  0x40278db9 in NuppelVideoPlayer::OutputVideoLoop (this=0x896e0b8)
>     at NuppelVideoPlayer.cpp:1713
>         temp_speed = 1
>         fr_int = 40000
> #8  0x4027907a in NuppelVideoPlayer::kickoffOutputVideoLoop
> (player=0x896e0b8)
>     at NuppelVideoPlayer.cpp:1780
>         nvp = (NuppelVideoPlayer *) 0x896e0b8
> #9  0x41a02bef in start_thread () from /lib/tls/libpthread.so.0
> No symbol table info available.
> #10 0x41c6be7a in clone () from /lib/tls/libc.so.6
> No symbol table info available.
> (gdb) print m_displaypos
> $1 = {xp = 0, yp = -2147483648}
> (gdb) print m_imagesize
> $2 = {x1 = 0, y1 = 0, x2 = 17, y2 = 27}
> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev@mythtv.org
> http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
> 


_______________________________________________
mythtv-dev mailing list
mythtv-dev@mythtv.org
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev

Reply via email to