Mercurial > emacs
changeset 70431:7c25b386a4c3
(Qduration) [MAC_OS]: New variable.
(syms_of_image) [MAC_OS]: Intern and staticpro it.
[MAC_OS] (gif_load): Save image extension data in img->data.lisp_val.
[MAC_OSX] (image_load_quartz2d): Use cfstring_create_with_utf8_cstring
instead of cfstring_create_with_string.
author | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
---|---|
date | Sat, 06 May 2006 06:52:24 +0000 |
parents | a4ddaa03010e |
children | 12baf8c4ffbb |
files | src/image.c |
diffstat | 1 files changed, 18 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/image.c Sat May 06 06:51:00 2006 +0000 +++ b/src/image.c Sat May 06 06:52:24 2006 +0000 @@ -2628,7 +2628,7 @@ UNGCPRO; return 0; } - path = cfstring_create_with_string (file); + path = cfstring_create_with_utf8_cstring (SDATA (file)); url = CFURLCreateWithFileSystemPath (NULL, path, kCFURLPOSIXPathStyle, 0); CFRelease (path); @@ -7899,6 +7899,8 @@ #else /* !HAVE_GIF */ #ifdef MAC_OS +static Lisp_Object Qduration; + static int gif_load (f, img) struct frame *f; @@ -7920,7 +7922,8 @@ RGBColor bg_color; int width, height; XImagePtr ximg; - TimeValue time; + TimeScale time_scale; + TimeValue time, duration; int ino; CGrafPtr old_port; GDHandle old_gdh; @@ -8028,6 +8031,7 @@ image, img->spec); goto error; } + time_scale = GetMediaTimeScale (media); specified_bg = image_spec_value (img->spec, QCbackground, NULL); if (!STRINGP (specified_bg) || @@ -8053,7 +8057,7 @@ SetGWorld (old_port, old_gdh); SetMovieActive (movie, 1); SetMovieGWorld (movie, ximg, NULL); - SampleNumToMediaTime (media, ino + 1, &time, NULL); + SampleNumToMediaTime (media, ino + 1, &time, &duration); SetMovieTimeValue (movie, time); MoviesTask (movie, 0L); DisposeTrackMedia (media); @@ -8061,6 +8065,12 @@ DisposeMovie (movie); if (dh) DisposeHandle (dh); + + /* Save GIF image extension data for `image-extension-data'. + Format is (count IMAGES duration DURATION). */ + img->data.lisp_val = list4 (Qcount, make_number (nsamples), Qduration, + make_float ((double)duration / time_scale)); + /* Maybe fill in the background field while we have ximg handy. */ if (NILP (image_spec_value (img->spec, QCbackground, NULL))) IMAGE_BACKGROUND (img, f, ximg); @@ -8616,6 +8626,11 @@ ADD_IMAGE_TYPE(Qgif); #endif +#ifdef MAC_OS + Qduration = intern ("duration"); + staticpro (&Qduration); +#endif + #if defined (HAVE_PNG) || defined (MAC_OS) Qpng = intern ("png"); staticpro (&Qpng);