/* test-mem.c
*
- * Copyright © 2002 Lutz Müller <lutz@users.sourceforge.net>
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
*/
#include <config.h>
#include <stdlib.h>
int
-main (int argc, char **argv)
+main ()
{
ExifData *ed;
- ExifEntry *e;
+ /* ExifEntry *e; */
unsigned char *eb, size[2];
unsigned int ebs;
ExifLoader *loader;
printf ("Creating EXIF data...\n");
ed = exif_data_new ();
+ if (!ed) {
+ fprintf(stderr, "Out of memory\n");
+ exit(13);
+ }
- printf ("Creating EXIF entry...\n");
- e = exif_entry_new ();
- exif_content_add_entry (ed->ifd[EXIF_IFD_0], e);
- exif_entry_initialize (e, EXIF_TAG_EXIF_VERSION);
- exif_entry_unref (e);
+ exif_data_set_data_type (ed, EXIF_DATA_TYPE_UNCOMPRESSED_CHUNKY);
- printf ("Creating another EXIF entry...\n");
- e = exif_entry_new ();
- exif_content_add_entry (ed->ifd[EXIF_IFD_0], e);
- exif_entry_initialize (e, EXIF_TAG_DATE_TIME);
- exif_entry_unref (e);
+ printf ("Fill EXIF data with all necessary entries to follow specs...\n");
+ exif_data_fix (ed);
- printf ("Creating an EXIF entry in the EXIF IFD...\n");
- e = exif_entry_new ();
- exif_content_add_entry (ed->ifd[EXIF_IFD_EXIF], e);
- exif_entry_initialize (e, EXIF_TAG_FLASH_PIX_VERSION);
- exif_entry_unref (e);
+ /* Add a dummy thumbnail */
+ ed->size = 4;
+ ed->data = calloc(1, ed->size);
+ if (!ed->data) {
+ fprintf(stderr, "Out of memory\n");
+ exif_data_unref (ed);
+ exit(13);
+ }
exif_data_dump (ed);
printf ("Writing %i byte(s) EXIF data to loader...\n", ebs);
loader = exif_loader_new ();
- size[0] = ebs;
- size[1] = ebs << 8;
+ if (!loader) {
+ fprintf(stderr, "Out of memory\n");
+ free (eb);
+ exit(13);
+ }
+ size[0] = (unsigned char) ebs;
+ size[1] = (unsigned char) (ebs >> 8);
exif_loader_write (loader, size, 2);
for (i = 0; i < ebs && exif_loader_write (loader, eb + i, 1); i++);
printf ("Wrote %i byte(s).\n", i);
free (eb);
ed = exif_loader_get_data (loader);
+ if (!ed) {
+ fprintf(stderr, "Out of memory\n");
+ exit(13);
+ }
exif_loader_unref (loader);
exif_data_dump (ed);
exif_data_unref (ed);