Name: libmedia-thumbnail
Summary: Media thumbnail service library for multimedia applications
-Version: 0.2.11
+Version: 0.2.12
Release: 0
Group: Multimedia/Libraries
License: Apache-2.0 and PD
unsigned char *data = NULL;
int thumb_w = 0;
int thumb_h = 0;
- int max_length = 0;
char *thumb_path = NULL;
int alpha = 0;
bool is_saved = FALSE;
thumb_retvm_if(req_msg == NULL || res_msg == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid msg");
const char *origin_path = req_msg->org_path;
+ memset(res_msg->dst_path, 0, MAX_FILEPATH_LEN);
thumb_path = res_msg->dst_path;
- thumb_path[0] = '\0';
- max_length = sizeof(res_msg->dst_path) -1;
res_msg->status = MS_MEDIA_ERR_NONE;
if (!g_file_test(origin_path, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
return MS_MEDIA_ERR_FILE_NOT_EXIST;
}
- err = _media_thumb_get_thumb_from_db(origin_path, thumb_path, max_length, req_msg->uid);
+ err = _media_thumb_get_thumb_from_db(origin_path, thumb_path, MAX_FILEPATH_LEN, req_msg->uid);
if (err == MS_MEDIA_ERR_NONE) {
thumb_dbg_slog("Thumb path : %s", thumb_path);
return MS_MEDIA_ERR_NONE;
} else {
if (strlen(thumb_path) == 0) {
- err = _media_thumb_get_hash_name(origin_path, thumb_path, max_length, req_msg->uid);
+ err = _media_thumb_get_hash_name(origin_path, thumb_path, MAX_FILEPATH_LEN, req_msg->uid);
if (err != MS_MEDIA_ERR_NONE) {
thumb_err("_media_thumb_get_hash_name failed - %d", err);
- strncpy(thumb_path, THUMB_EMPTY_STR, max_length);
+ SAFE_STRLCPY(thumb_path, THUMB_EMPTY_STR, MAX_FILEPATH_LEN);
res_msg->status = err;
return err;
}
-
- thumb_path[strlen(thumb_path)] = '\0';
}
}
if (err != MS_MEDIA_ERR_NONE) {
thumb_err("_thumbnail_get_data failed - %d", err);
SAFE_FREE(data);
- strncpy(thumb_path, THUMB_EMPTY_STR, max_length);
+ SAFE_STRLCPY(thumb_path, THUMB_EMPTY_STR, MAX_FILEPATH_LEN);
res_msg->status = err;
goto DB_UPDATE;
thumb_err("save_to_file_with_evas failed - %d", err);
SAFE_FREE(data);
- strncpy(thumb_path, THUMB_EMPTY_STR, max_length);
+ SAFE_STRLCPY(thumb_path, THUMB_EMPTY_STR, MAX_FILEPATH_LEN);
res_msg->status = err;
return err;
} else {
thumb_retvm_if(req_msg == NULL || res_msg == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid msg");
const char *origin_path = req_msg->org_path;
- thumb_w = req_msg->thumb_width;
- thumb_h = req_msg->thumb_height;
+ if (req_msg->thumb_width > 0)
+ thumb_w = req_msg->thumb_width;
+ else
+ thumb_w = THUMB_DEFAULT_WIDTH;
+
+ if (req_msg->thumb_height > 0)
+ thumb_h = req_msg->thumb_height;
+ else
+ thumb_h = THUMB_DEFAULT_HEIGHT;
+
res_msg->status = MS_MEDIA_ERR_NONE;
res_msg->msg_type = THUMB_RESPONSE_RAW_DATA;
req_msg.msg_type = msg_type;
req_msg.uid = uid;
SAFE_STRLCPY(req_msg.org_path, origin_path, sizeof(req_msg.org_path));
- req_msg.org_path[strlen(req_msg.org_path)] = '\0';
-
req_msg.origin_path_size = strlen(req_msg.org_path) + 1;
req_msg.dest_path_size = strlen(req_msg.dst_path) + 1;
req_msg.thumb_size = 0;
return recv_msg.status;
}
- strncpy(thumb_path, recv_msg.dst_path, max_length);
+ SAFE_STRLCPY(thumb_path, recv_msg.dst_path, max_length);
return MS_MEDIA_ERR_NONE;
}
req_msg.request_id = 0;
req_msg.uid = req_manager->uid;
SAFE_STRLCPY(req_msg.org_path, req_manager->path, sizeof(req_msg.org_path));
- req_msg.org_path[strlen(req_msg.org_path)] = '\0';
req_msg.dst_path[0] = '\0';
req_msg.origin_path_size = strlen(req_msg.org_path) + 1;
req_msg.dest_path_size = 1;
req_msg.uid = req_manager->uid;
SAFE_STRLCPY(req_msg.org_path, req_manager->path, sizeof(req_msg.org_path));
- req_msg.org_path[strlen(req_msg.org_path)] = '\0';
req_msg.dst_path[0] = '\0';
req_msg.origin_path_size = strlen(req_msg.org_path) + 1;
return MS_MEDIA_ERR_NONE;
}
-int _media_thumb_get_exif_info(ExifData *ed, char *buf, int max_size, int *value, int ifdtype, long tagtype)
+int _media_thumb_get_exif_info(ExifData *ed, int *value, int ifdtype, long tagtype)
{
ExifEntry *entry;
ExifIfd ifd;
ExifByteOrder mByteOrder = exif_data_get_byte_order(ed);
short exif_value = exif_get_short(entry->data, mByteOrder);
*value = (int)exif_value;
- } else {
- /* Get the contents of the tag in human-readable form */
- if (buf == NULL) {
- thumb_err("buf is NULL");
- return MS_MEDIA_ERR_INVALID_PARAMETER;
- }
- exif_entry_get_value(entry, buf, max_size);
- buf[strlen(buf)] = '\0';
}
}
if (ed) {
/* First, Get orientation from exif */
- err = _media_thumb_get_exif_info(ed, NULL, 0, &orientation, EXIF_IFD_0, EXIF_TAG_ORIENTATION);
+ err = _media_thumb_get_exif_info(ed, &orientation, EXIF_IFD_0, EXIF_TAG_ORIENTATION);
if (err != MS_MEDIA_ERR_NONE) {
thumb_warn("_media_thumb_get_exif_info failed");
}
} else {
ed = exif_data_new_from_file(origin_path);
if (ed) {
- err = _media_thumb_get_exif_info(ed, NULL, 0, &orientation, EXIF_IFD_0, EXIF_TAG_ORIENTATION);
+ err = _media_thumb_get_exif_info(ed, &orientation, EXIF_IFD_0, EXIF_TAG_ORIENTATION);
if (err != MS_MEDIA_ERR_NONE) {
thumb_warn("_media_thumb_get_exif_info failed");
}
}
if (sqlite3_step(stmt) == SQLITE_ROW) {
- strncpy(thumb_path, (const char *)sqlite3_column_text(stmt, 0), max_length);
+ SAFE_STRLCPY(thumb_path, (const char *)sqlite3_column_text(stmt, 0), max_length);
} else {
thumb_err("end of row [%s]", sqlite3_errmsg(db_handle));
SQLITE3_FINALIZE(stmt);