emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/image.c


From: YAMAMOTO Mitsuharu
Subject: [Emacs-diffs] Changes to emacs/src/image.c
Date: Sat, 06 May 2006 06:52:24 +0000

Index: emacs/src/image.c
diff -u emacs/src/image.c:1.55 emacs/src/image.c:1.56
--- emacs/src/image.c:1.55      Fri Apr 21 14:07:05 2006
+++ emacs/src/image.c   Sat May  6 06:52:24 2006
@@ -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);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]