2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #ifndef __TIZEN_IMAGE_META_H__
20 #define __TIZEN_IMAGE_META_H__
22 #include <media_content_type.h>
26 #endif /* __cplusplus */
29 * @brief This file contains the image metadata API and related functions to proceed with them.
30 * Functions include cloning and destroying the image metadata, getting image metadata such as width, height, \n
31 * orientation, date taken, title, burst shot id and updating image to DB.
35 * @addtogroup CAPI_CONTENT_MEDIA_IMAGE_MODULE
41 * @brief Clones the image metadata.
42 * @details The function copies the image metadata handle from a source to destination.
44 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
46 * @remarks The destination handle must be released with image_meta_destroy().
48 * @param[out] dst The destination handle to the image metadata
49 * @param[in] src The source handle to the image metadata
51 * @return @c 0 on success,
52 * otherwise a negative error value
54 * @retval #MEDIA_CONTENT_ERROR_NONE Successful
55 * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
56 * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
58 * @see image_meta_destroy()
60 int image_meta_clone(image_meta_h *dst, image_meta_h src);
63 * @brief Destroys the image metadata.
64 * @details The function frees all resources related to the image metadata handle. This handle
65 * no longer can be used to perform any operation. A new handle has to
66 * be created before next usage.
68 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
70 * @param[in] image The image metadata handle
72 * @return @c 0 on success,
73 * otherwise a negative error value
75 * @retval #MEDIA_CONTENT_ERROR_NONE Successful
76 * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
78 * @pre Get a copy of image_meta handle by calling image_meta_clone().
80 * @see image_meta_clone()
82 int image_meta_destroy(image_meta_h image);
85 * @brief Gets the ID of an image.
86 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
88 * @param[in] image The image metadata handle
89 * @param[out] media_id The ID of an image
91 * @return @c 0 on success,
92 * otherwise a negative error value
94 * @retval #MEDIA_CONTENT_ERROR_NONE Successful
95 * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
96 * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
98 int image_meta_get_media_id(image_meta_h image, char **media_id);
101 * @brief Gets the image width in pixels.
102 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
104 * @param[in] image The image metadata handle
105 * @param[out] width The image width in pixels
107 * @return @c 0 on success,
108 * otherwise a negative error value
110 * @retval #MEDIA_CONTENT_ERROR_NONE Successful
111 * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
113 int image_meta_get_width(image_meta_h image, int *width);
116 * @brief Gets the image height in pixels.
117 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
119 * @param[in] image The image metadata handle
120 * @param[out] height The image height in pixels
122 * @return @c 0 on success,
123 * otherwise a negative error value
125 * @retval #MEDIA_CONTENT_ERROR_NONE Successful
126 * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
128 int image_meta_get_height(image_meta_h image, int *height);
131 * @brief Gets the image orientation.
132 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
134 * @param[in] image The image metadata handle
135 * @param[out] orientation The image orientation
137 * @return @c 0 on success,
138 * otherwise a negative error value
140 * @retval #MEDIA_CONTENT_ERROR_NONE Successful
141 * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
143 int image_meta_get_orientation(image_meta_h image, media_content_orientation_e *orientation);
146 * @brief Gets the image creation time.
147 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
149 * @param[in] image The image metadata handle
150 * @param[out] date_taken The time, when image was taken (in seconds, since the Epoch)
152 * @return @c 0 on success,
153 * otherwise a negative error value
155 * @retval #MEDIA_CONTENT_ERROR_NONE Successful
156 * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
157 * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
159 int image_meta_get_date_taken(image_meta_h image, char **date_taken);
162 * @brief Gets the burst shot ID.
163 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
165 * @remarks You must release @a burst_id using free().
167 * @param[in] image The image metadata handle
168 * @param[out] burst_id The ID of burst shot\ n
169 * If @a burst_id is @c NULL, this is not burst shot
171 * @return @c 0 on success,
172 * otherwise a negative error value
174 * @retval #MEDIA_CONTENT_ERROR_NONE Successful
175 * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
176 * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
178 int image_meta_get_burst_id(image_meta_h image, char **burst_id);
181 * @brief Gets the exposure time from exif.
182 * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
184 * @remarks @a exposure time must be released with free() by you.
186 * @param[in] image The image metadata handle
187 * @param[out] exposure_time The value of exposure_time, getting from exif
189 * @return 0 on success,
190 * otherwise a negative error value
192 * @retval #MEDIA_CONTENT_ERROR_NONE Successful
193 * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
194 * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
197 int image_meta_get_exposure_time(image_meta_h image, char **exposure_time);
200 * @brief Gets the fnumber from exif.
201 * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
203 * @param[in] image The image metadata handle
204 * @param[out] fnumber The value of fnumber, getting from exif
206 * @return 0 on success,
207 * otherwise a negative error value
209 * @retval #MEDIA_CONTENT_ERROR_NONE Successful
210 * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
213 int image_meta_get_fnumber(image_meta_h image, double *fnumber);
216 * @brief Gets the iso from exif.
217 * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
219 * @param[in] image The image metadata handle
220 * @param[out] iso The value of iso, getting from exif
222 * @return 0 on success,
223 * otherwise a negative error value
225 * @retval #MEDIA_CONTENT_ERROR_NONE Successful
226 * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
229 int image_meta_get_iso(image_meta_h image, int *iso);
232 * @brief Gets the model from exif.
233 * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
235 * @remarks @a model must be released with free() by you.
237 * @param[in] image The image metadata handle
238 * @param[out] model The value of model, getting from exif
240 * @return 0 on success,
241 * otherwise a negative error value
243 * @retval #MEDIA_CONTENT_ERROR_NONE Successful
244 * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
245 * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
248 int image_meta_get_model(image_meta_h image, char **model);
251 * @brief Checks whether the media is a burst shot image.
252 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
254 * @param[in] image The image metadata handle
255 * @param[out] is_burst_shot @c true if the media is a burst shot image,
256 * otherwise @c false if the media is not a burst shot image
258 * @return @c 0 on success,
259 * otherwise a negative error value
261 * @retval #MEDIA_CONTENT_ERROR_NONE Successful
262 * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
264 int image_meta_is_burst_shot(image_meta_h image, bool *is_burst_shot);
267 * @deprecated Deprecated since 4.0. This data cannot be saved to the file.
268 * @brief Sets an orientation of the image.
269 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
271 * @param[in] image The image metadata handle
272 * @param[in] orientation The image orientation
274 * @return @c 0 on success,
275 * otherwise a negative error value
277 * @retval #MEDIA_CONTENT_ERROR_NONE Successful
278 * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
280 int image_meta_set_orientation(image_meta_h image, media_content_orientation_e orientation) TIZEN_DEPRECATED_API;
283 * @deprecated Deprecated since 4.0. Related setter functions are deprecated, therefore this function is not needed anymore.
284 * @brief Updates the image to the media database.
286 * @details The function updates the given image meta in the media database. \n
287 * The function should be called after any change in image attributes, to be updated to the media database.
289 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
292 * @privilege %http://tizen.org/privilege/content.write
294 * @remarks Do not call this function in callback function of foreach function like media_info_foreach_media_from_db().
296 * @param[in] image The handle to the image
298 * @return @c 0 on success,
299 * otherwise a negative error value
301 * @retval #MEDIA_CONTENT_ERROR_NONE Successful
302 * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
303 * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
304 * @retval #MEDIA_CONTENT_ERROR_INVALID_OPERATION Invalid operation
305 * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB Operation failed
306 * @retval #MEDIA_CONTENT_ERROR_DB_BUSY DB Operation busy
307 * @retval #MEDIA_CONTENT_ERROR_NETWORK Network fail
308 * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
310 * @pre This function requires opened connection to content service by media_content_connect().
312 * @see media_content_connect()
314 int image_meta_update_to_db(image_meta_h image) TIZEN_DEPRECATED_API;
323 #endif /* __cplusplus */
325 #endif /*__TIZEN_IMAGE_META_H__*/