Roger, Thank you ... I remember you starting on this line of analysis earlier in the year ... it certainly looks like it is worth pursuing ... it is consistent with the fact that the problem only arises when I include images with an Alpha Channel Mask and there is something (I am not sure what) about the complexity of the mask ... if I make a few masks whose outlines consist of a few straight lines ... it will usually work - especially if I keep to a less-than-maximal output file. The crashes tend to happen as the number of mask and/or the complexity of their shape increases, especially if I request a full-size output file.
all the best George On 10 Oct, 23:50, Rogier Wolff <[email protected]> wrote: > On Sat, Oct 10, 2009 at 09:46:37AM -0700, grow wrote: > > I set the stitch going at Hugin's recommended maximum size which was > > roughly 12,080x604. The extra RAM made a huge difference in > > Ok, guys. I'm a bit further and it's bedtime for me. If anyone wants > to continue where I left off, feel free, keep me posted. > > In enblend-3.2/src/mask.h we have: > > (the cout's are my instrumentation: gdb is worthless for this > problem. If anyone disagrees, feel free to teach me what I'm doing > wrong...) > > cout << "R11c";fflush (stdout); > if (snake->front().first) { > cout << "R16";fflush (stdout); > // First vertex is moveable. Rotate list so that first vertex is > nonmoveable. > Segment::iterator firstNonmoveableVertex = snake->begin(); > while (firstNonmoveableVertex->first) ++firstNonmoveableVertex; > > cout << "R17";fflush (stdout); > // Copy initial run on moveable vertices and first nonmoveable > vertex to end of list. > Segment::iterator firstNonmoveablePlusOne = > firstNonmoveableVertex; > ++firstNonmoveablePlusOne; > cout << "R18";fflush (stdout); > snake->insert(snake->end(), snake->begin(), > firstNonmoveablePlusOne); > > cout << "R19";fflush (stdout); > // Erase initial run of moveable vertices. > snake->erase(snake->begin(), firstNonmoveableVertex); > cout << "R20";fflush (stdout); > } > > Things go pearshaped between the R18 and the R19. in other words: It's > the snake->insert (and/or its arguments)... > > Up to that point in time enblend is using about 1036Mb of > memory. inside that single line of code, it allocates another 2Gb of > memory and runs out when the OS refuses more memory. > > Snake is "Segment". Segment is derived from "slist". I haven't gotten > around to figuring out where that "insert" code lives, and wether > execution gets there.... (if not, it's the snake->end() or one of the > others) > > Roger. > > -- > ** [email protected] **http://www.BitWizard.nl/** +31-15-2600998 ** > ** Delftechpark 26 2628 XH Delft, The Netherlands. KVK: 27239233 ** > *-- BitWizard writes Linux device drivers for any device you may have! --* > Q: It doesn't work. A: Look buddy, doesn't work is an ambiguous statement. > Does it sit on the couch all day? Is it unemployed? Please be specific! > Define 'it' and what it isn't doing. --------- Adapted from lxrbot FAQ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "hugin and other free panoramic software" group. A list of frequently asked questions is available at: http://wiki.panotools.org/Hugin_FAQ To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/hugin-ptx -~----------~----~----~----~------~----~------~--~---
