X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fmm_camcorder_exifinfo.c;h=8019984ba8431eea8d6ca0c459bc584804cbf740;hb=088243b326f63ce2fd2fa9e0ea329aafd0b57b18;hp=50e54632893acdb6f63893ac37f2406ba0873e66;hpb=289d2e857371eff457d16e063d2fc2e002c7acfa;p=platform%2Fcore%2Fmultimedia%2Flibmm-camcorder.git diff --git a/src/mm_camcorder_exifinfo.c b/src/mm_camcorder_exifinfo.c index 50e5463..8019984 100644 --- a/src/mm_camcorder_exifinfo.c +++ b/src/mm_camcorder_exifinfo.c @@ -30,7 +30,6 @@ #include #include #include -#include #include #define MM_EXIFINFO_USE_BINARY_EXIFDATA 1 @@ -153,6 +152,11 @@ mm_exif_get_exif_from_info(mm_exif_info_t *info) unsigned char size[2]; unsigned int i; + if (!info) { + _mmcam_dbg_err("NULL exif info"); + return NULL; + } + /*get ExifData from info*/ loader = exif_loader_new(); @@ -406,51 +410,7 @@ exit: int -mm_exif_write_exif_jpeg_to_file(char *filename, mm_exif_info_t *info, void *jpeg, int jpeg_len) -{ - FILE *fp = NULL; - unsigned short head[2] = {0,}; - unsigned short head_len = 0; - unsigned char *eb = NULL; - unsigned int ebs; - - _mmcam_dbg_log(""); - - eb = info->data; - ebs = info->size; - - /*create file*/ - fp = fopen(filename, "wb"); - if (!fp) { - _mmcam_dbg_err("fopen() failed [%s].", filename); - return MM_ERROR_IMAGE_FILEOPEN; - } - - /*set SOI, APP1*/ - _exif_set_uint16(0, &head[0], 0xffd8); - _exif_set_uint16(0, &head[1], 0xffe1); - /*set header length*/ - _exif_set_uint16(0, &head_len, (unsigned short)(ebs + 2)); - - if (head[0] == 0 || head[1] == 0 || head_len == 0) { - _mmcam_dbg_err("setting error"); - fclose(fp); - return -1; - } - - fwrite(&head[0], 1, EXIF_MARKER_SOI_LENGTH, fp); /*SOI marker*/ - fwrite(&head[1], 1, EXIF_MARKER_APP1_LENGTH, fp); /*APP1 marker*/ - fwrite(&head_len, 1, EXIF_APP1_LENGTH, fp); /*length of APP1*/ - fwrite(eb, 1, ebs, fp); /*EXIF*/ - fwrite(jpeg + JPEG_DATA_OFFSET, 1, jpeg_len - JPEG_DATA_OFFSET, fp); /*IMAGE*/ - - fclose(fp); - - return MM_ERROR_NONE; -} - -int -mm_exif_write_exif_jpeg_to_memory(void **mem, unsigned int *length, mm_exif_info_t *info, void *jpeg, unsigned int jpeg_len) +mm_exif_write_exif_jpeg_to_memory(void **mem, unsigned int *length, mm_exif_info_t *info, unsigned char *jpeg, unsigned int jpeg_len) { unsigned short head[2] = {0,}; unsigned short head_len = 0;