On Wed, 2006-04-12 at 15:07 +1200, Hamish wrote:
> I took a quick look at this and I cannot duplicate the error.
I am using Debian with TclTk 8.4, which is a new thing. See:
http://article.gmane.org/gmane.comp.gis.grass.devel/11177
http://grass.itc.it/pipermail/grass-commit/2006-March/021104.html
Maybe a similar issue?
(I haven't recompiled with tcltk 8.3 yet to check if this is the case,
obviously it would be a good idea to do so. It works fine with a CVS
version from February (compiled with tcltk 8.3), so I would guess this
is a pretty strong lead)
> I do get the compiler warning for all of the Tcl_SplitList in src.
> According to TCL recent documentation arg 4 in Tcl_SplitList should
> actually be "const char **". If I change
> char **listels;
> in anim_support.c (line ~933)
> to const char **listels;
> I do not get the compiler warning.
If I add "const", the warning goes away for me too. But it still
segfaults on Load anim file.
I also notice these warnings:
<command line>:5:1: warning: "__STDC__" redefined
In file included from anim_support.c:11:
interface.h:363: warning: `struct Map_info' declared inside parameter list
interface.h:363: warning: its scope is only this definition or declaration, which is probably not what you want
and eight "warning: passing arg 1 of `...' as `float' rather than `double' due to prototype"
I also get these warnings?
> Also, according to the Tcl_SplitList documentation, the **listels
> argument should be freed. They recommend using
> Tcl_Free((char *) argv);
>
> I am not sure why the free call would be creating a problem.
see above links ??
Taking a look at some of the other Tcl_SplitList calls (for example in
draw.c) the char is freed with G_free ((char *) ...). I would expect
these to also segfault if it was a problem with G-free. Try simply
changing
G_free (listels);
to
G_free ((char *) listels);
I've made a number of small cleanups to the kanim code in the last week
to make things a little easier on the user (also d.nviz, nviz2.2_script).
Hopefully it will just be smoother and the changes won't be noticed.
The Keyframe Animator help page is extended including an example and
should be easier to follow.
These all sound great. The extended help is a good idea as the Keyframe
Animator can be quite difficult to learn.
Also I added an #ifdef to the MPEG code to make it easy to switch to
using the XVID codec. (compile with gcc -D"USE_XVID") This should really
be an enviro var or GIS var setting, but for now it's a quick proof of
concept hack.
Instead of a compile flag could we try something like ...
codec = avcodec_find_encoder(CODEC_ID_XVID);
if (!codec)
{
codec = avcodec_find_encoder(CODEC_ID_MPEG1VIDEO);
if (!codec) {
fprintf(stderr, "codec not found\n");
return(-1);
}
}
This way it tries to load the better quality codec, and if it fails it
will load the old standard mpeg1. I have not tested it to see if it
works.
Result of this is that making movies is somewhat easier now. Great
synergy with r.in.wms(x2) or r.in.onearth scripts to fetch SRTM and
LANDSAT. Process LANDSAT image with Markus's i.landsat.rgb & even
better.
Q: If I make a track with d.nviz the camera looks straight down, not
forwards along the track. Is this normal/expected?
If the camera is looking down then you need to increase the dist
parameter. The combination of the ht and dist parameters are what
determine the camera look angle.
cheers,
Hamish
Hope this helps.
--
Bob