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.
18 #ifndef __TIZEN_MEDIA_CONTENT_DOC_H__
19 #define __TIZEN_MEDIA_CONTENT_DOC_H__
22 * @defgroup CAPI_MEDIA_CONTENT_MODULE Media Content
23 * @brief The Media Content API provides functions, enumerations used in the entire Content Service.
25 * @ingroup CAPI_CONTENT_FRAMEWORK
27 * @section CAPI_MEDIA_CONTENT_MODULE_HEADER Required Header
28 * \#include <media_content.h>
30 * @section CAPI_MEDIA_CONTENT_MODULE_OVERVIEW Overview
31 * The Media Content API provides functions and enumerations used in the entire Content Service.\n
32 * The information about media items i.e. image, audio and video, are managed in the content database and
33 * operations that involve database requires an active connection with the media content service.\n
34 * During media scanning, Media Service extract media information automatically. media information include basic file info like
35 * path, size, modified time etc and some metadata like ID3tag, EXIF, thumbnail, etc. (thumbnail extracted only in Internal and SD card storage.) \n
36 * Since 3.0, a thumbnail is not automatically extracted during media scanning. A thumbnail will be created only when media_info_create_thumbnail() is called by any application. \n
37 * Media content services do not manage hidden files. \n
38 * The API provides functions for connecting (#media_content_connect()) and disconnecting (#media_content_disconnect()) from the media content service.
40 * The API consists of @ref CAPI_CONTENT_MEDIA_FOLDER_MODULE,@ref CAPI_CONTENT_MEDIA_TAG_MODULE,@ref CAPI_CONTENT_MEDIA_FILTER_MODULE, @ref CAPI_CONTENT_MEDIA_INFO_MODULE API and others.
45 * <th>Description</th>
48 * <td>@ref CAPI_CONTENT_MEDIA_FOLDER_MODULE </td>
49 * <td> Provide information about folders (e.g. path, name, modification date) stored on the device.\n
50 * Provide information about the media items present in the folders.</td>
53 * <td>@ref CAPI_CONTENT_MEDIA_TAG_MODULE </td>
54 * <td> Provide information about media tags.\n
55 * Provide functions to insert or delete tag from database.\n
56 * Provide functions to add and remove media item from tags in the database. </td>
59 * <td>@ref CAPI_CONTENT_MEDIA_FILTER_MODULE </td>
60 * <td> Provide functions for creating and destroying media filters.\n
61 * Provide functions to get filter properties</td>
64 * <td>@ref CAPI_CONTENT_MEDIA_INFO_MODULE </td>
65 * <td> Provide generic information about media content items (i.e. image, audio, video and others).\n
66 * Provide details about audio files (e.g. name, author, genre etc) present in the device.\n
67 * Provide details about image files (e.g. width, height, orientation etc) present in the device.\n
68 * Provide details about video files (e.g. width, height, duration etc) present in the device .</td>
71 * <td>@ref CAPI_CONTENT_MEDIA_PLAYLIST_MODULE </td>
72 * <td> Provide information about the media playlist. </td>
75 * <td>@ref CAPI_CONTENT_MEDIA_ALBUM_MODULE </td>
76 * <td> Provide information about the media album. </td>
79 * <td>@ref CAPI_CONTENT_MEDIA_GROUP_MODULE </td>
80 * <td> Provide information about the media group(e.g. media artist, composer, genre, year). </td>
83 * <td>@ref CAPI_CONTENT_MEDIA_BOOKMARK_MODULE </td>
84 * <td> Provide information about the media bookmark. </td>
92 * @defgroup CAPI_CONTENT_MEDIA_FOLDER_MODULE Media Folder
93 * @brief The Media folder API provides functions to get information about folders.
95 * @ingroup CAPI_MEDIA_CONTENT_MODULE
97 * @section CAPI_CONTENT_MEDIA_FOLDER_MODULE_HEADER Required Header
98 * \#include <media_content.h>
100 * @section CAPI_CONTENT_MEDIA_FOLDER_MODULE_OVERVIEW Overview
101 * A Folder is used to organize media content files i.e. image, audio, video files, in the physical storage of the device.
102 * The Media Folder API provides functions to get basic information about existing folders e.g. folder name, path and storage type.
103 * It also provides functions to get information related to media items present in the folder.
105 * For getting information about folder call the respective get functions e.g. to get path and name of a given folder call #media_folder_get_path() and #media_folder_get_name() function respectively and so on.\n
106 * Similarly call media_folder_get_media_count_from_db() to get count of media items present in a given folder.
107 * @subsection CAPI_CONTENT_MEDIA_FOLDER_FOREACH_OPERATIONS Foreach Operations
108 * <div><table class="doxtable">
110 * <th><b>FOREACH</b></th>
111 * <th><b>CALLBACK</b></th>
112 * <th><b>DESCRIPTION</b></th>
115 * <td>media_folder_foreach_folder_from_db()</td>
116 * <td>media_folder_cb()</td>
117 * <td>Iterates over a folder information list</td>
120 * <td>media_folder_foreach_media_from_db()</td>
121 * <td>media_info_cb()</td>
122 * <td>Iterates media information trough the folder</td>
131 * @defgroup CAPI_CONTENT_MEDIA_TAG_MODULE Media Tag
132 * @brief The Media Tag API provides functions to manage media content tags.
134 * @ingroup CAPI_MEDIA_CONTENT_MODULE
136 * @section CAPI_CONTENT_MEDIA_TAG_MODULE_HEADER Required Header
137 * \#include <media_content.h>
139 * @section CAPI_CONTENT_MEDIA_TAG_MODULE_OVERVIEW Overview
140 * A Tag is a special piece of information that may be associated with media content items.
141 * Tagging allows a user to organize large number of items into logical groups providing a simplified
142 * and faster way of accessing media content items.\n\n
143 * Media Tag API provides functions to get basic information about existing tags and manage tags
144 * associated with Media Information (#media_info_h).
145 * For inserting a new tag to the database call #media_tag_insert_to_db() function and for deleting existing tag from database
146 * call media_tag_delete_from_db() function.\n
147 * A Media item can be associated and dissociated from tags by calling #media_tag_add_media() and #media_tag_remove_media() function respectively.
148 * Finally, #media_tag_update_to_db function should be called so as to update the given item in the media database.
150 * @subsection CAPI_CONTENT_MEDIA_TAG_FOREACH_OPERATIONS Foreach Operations
151 * <div><table class="doxtable">
153 * <th><b>FOREACH</b></th>
154 * <th><b>CALLBACK</b></th>
155 * <th><b>DESCRIPTION</b></th>
158 * <td>media_tag_foreach_tag_from_db()</td>
159 * <td> media_tag_cb()</td>
160 * <td>Iterates through tags</td>
163 * <td>media_tag_foreach_media_from_db()</td>
164 * <td>media_info_cb()</td>
165 * <td> Iterates through the media items for a given tag
176 * @defgroup CAPI_CONTENT_MEDIA_FILTER_MODULE Media Filter
177 * @brief The Media Filter API provides functions to manage media filters.
179 * @ingroup CAPI_MEDIA_CONTENT_MODULE
181 * @section CAPI_CONTENT_MEDIA_FILTER_MODULE_HEADER Required Header
182 * \#include <media_content.h>
184 * @section CAPI_CONTENT_MEDIA_FILTER_MODULE_OVERVIEW Overview
185 * A Media filter is required for filtering information associated with media Folder, Tag, Audio, Bookmark and Media Information on basis of details like offset, count, order and condition for searching.\n
186 * @ref CAPI_CONTENT_MEDIA_FILTER_MODULE API provides functions for creating and destroying media filters. \n
187 * It provide functions to set properties and also provide functions for getting filter properties associated with a given media filter.
190 * Setting media filter properties helps to limit the number of filtered items as following:
191 * - Offset - Used to set starting position of the filter's search
192 * - Count - Used to set number of items to be searched from offset
193 * - Condition - Used to set keyword which user want to search
194 * - Order - Used to set type of media to be ordered by the filter
197 * The Media Filter API provides functions for creating and destroying media filters.\n
198 * It provide functions to set and get properties of the filter associated with a given media filter. \n
199 * For creating a media filter (@ref filter_h), call #media_filter_create() function and call #media_filter_destroy() function for destroying an existing filter. \n
200 * For setting filter properties call the respective set functions e.g. to set offset position, call #media_filter_set_offset() function and
201 * call #media_filter_set_condition() function to set the condition like an sql "where" clause. \n
202 * Searchable expression can use one of the following forms:
211 * - * - value > column
215 * - column IN (value)
216 * - column IN (value-list)
217 * - column NOT IN (value)
218 * - column NOT IN (value-list)
219 * - column LIKE value
220 * - expression1 AND expression2 OR expression3
224 * Note that if you want to set qoutation(" ' " or " " ") as value of LIKE operator, you should use two times.(" '' " or " "" ") \n
225 * And the optional ESCAPE clause is supported. Both percent symbol("%") and underscore symbol("_") are used in the LIKE pattern.\n
226 * If these characters are used as value of LIKE operation, then the expression following the ESCAPE caluse of sqlite will be ignored. \n
229 * - column LIKE ('#%') ESCAPE('#') - "#" is escape character, it will be ignored.
233 * Similarly, call respective get function to get filter properties e.g. call #media_filter_get_condition() function
234 * to get condition of the media filter and call #media_filter_get_order() function to get order (#media_content_order_e) of the filtered items and so on.
236 * @section CAPI_CONTENT_MEDIA_FILTER_MODULE_EXAMPLE Example
237 * You can set the filter as follows.
241 * #include <string.h>
242 * #include <media_content.h>
244 * #define MAX_QUERY_LEN 512
245 * #define DLOG_TAG "media-content-test"
247 * filter_h g_filter = NULL;
249 * int create_filter()
251 * int ret = MEDIA_CONTENT_ERROR_NONE;
252 * char condition[MAX_QUERY_LEN] = {0,};
254 * snprintf(condition,sizeof(condition),"%s = 0",MEDIA_TYPE);
256 * ret = media_filter_create(&g_filter);
257 * ret = media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
258 * ret = media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_DESC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_DEFAULT);
264 * And you can use the created filter as follows.
267 * int get_media_count()
269 * int ret = MEDIA_CONTENT_ERROR_NONE;
272 * ret = media_info_get_media_count_from_db(g_filter, &media_cnt);
273 * dlog_print(DLOG_DEBUG, DLOG_TAG, "media count [%d]\n", media_cnt);
283 * @defgroup CAPI_CONTENT_MEDIA_AUDIO_META_MODULE Audio Metadata
284 * @brief The Audio Metadata API provides functions to get information about audio items.
286 * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
288 * @section CAPI_CONTENT_MEDIA_AUDIO_META_MODULE_HEADER Required Header
289 * \#include <media_content.h>
291 * @section CAPI_CONTENT_MEDIA_AUDIO_META_MODULE_OVERVIEW Overview
292 * The Audio Metadata API provides functions to get information about stored audio files.
293 * Its purpose is twofold:
294 * - to provide information about audio content
295 * - to organize audio content logically (grouping)
297 * API provides functions that allow to check attributes of audio files. Following information about audio content is provided:
302 * <td>Filter Keyword</td>
307 * <td>MEDIA_TITLE</td>
308 * <td>Get from metadata if exist. if not, base name except file extension.</td>
312 * <td>MEDIA_ALBUM</td>
313 * <td>Get from metadata if exist.</td>
317 * <td>MEDIA_ARTIST</td>
318 * <td>Get from metadata if exist.</td>
321 * <td>album_artist</td>
322 * <td>MEDIA_ALBUM_ARTIST</td>
323 * <td>Get from metadata if exist.</td>
327 * <td>MEDIA_GENRE</td>
328 * <td>Get from metadata if exist.</td>
332 * <td>MEDIA_COMPOSER</td>
333 * <td>Get from metadata if exist.</td>
337 * <td>MEDIA_YEAR</td>
338 * <td>Get from metadata if exist.</td>
341 * <td>recorded_date</td>
342 * <td>MEDIA_RECORDED_DATE</td>
343 * <td>Get from metadata if exist. if not, same as modified time.</td>
347 * <td>MEDIA_COPYRIGHT</td>
348 * <td>Get from metadata if exist.</td>
352 * <td>MEDIA_TRACK_NUM</td>
353 * <td>Get from metadata if exist.</td>
357 * <td>MEDIA_BITRATE</td>
361 * <td>bitpersample</td>
362 * <td>MEDIA_BITPERSAMPLE</td>
363 * <td>Bit per sample</td>
366 * <td>sample_rate</td>
367 * <td>MEDIA_SAMPLERATE</td>
368 * <td>Samplerate</td>
372 * <td>MEDIA_CHANNEL</td>
377 * <td>MEDIA_DURATION</td>
382 * <td>MEDIA_RATING</td>
383 * <td>Get from metadata if exist.</td>
387 * <td>MEDIA_AUTHOR</td>
388 * <td>Get from metadata if exist.</td>
394 * For getting the audio handle (#audio_meta_h) from the media information (#media_info_h), call #media_info_get_audio() function.\n
395 * For getting the information related to audio files stored in the device, call the respective get functions e.g. to get the artist of a audio, call #audio_meta_get_artist() function and
396 * to get bitrate of a audio, call #audio_meta_get_bit_rate() function and so on.\n
397 * When the audio handle is no longer needed, it should be destroyed by calling #audio_meta_destroy() function.\n
405 * @defgroup CAPI_CONTENT_MEDIA_PLAYLIST_MODULE Media Playlist
406 * @brief The Media Playlist API provides functions to manage media playlists.
408 * @ingroup CAPI_MEDIA_CONTENT_MODULE
410 * @section CAPI_CONTENT_MEDIA_PLAYLIST_MODULE_HEADER Required Header
411 * \#include <media_content.h>
413 * @section CAPI_CONTENT_MEDIA_PLAYLIST_MODULE_OVERVIEW Overview
414 * A Playlist is a list of songs which can be played in some sequence i.e. sequential or shuffled order.
415 * The Media Playlist API provides functions to insert, delete or updates a media playlist in the database.
417 * For inserting new playlist (#media_playlist_h) in the database, call #media_playlist_insert_to_db() function and call #media_playlist_delete_from_db() function
418 * to delete a playlist from the database.\n
419 * For adding a media item to the playlist, call #media_playlist_add_media() function, for removing a media item from the playlist, call
420 * #media_playlist_remove_media() function.\n
421 * Finally, #media_playlist_update_to_db() function should be called so as to update the given item in the media database.
423 * @subsection CAPI_CONTENT_MEDIA_PLAYLIST_FOREACH_OPERATIONS Foreach Operations
424 * <div><table class="doxtable">
426 * <th><b>FOREACH</b></th>
427 * <th><b>CALLBACK</b></th>
428 * <th><b>DESCRIPTION</b></th>
431 * <td>media_playlist_foreach_playlist_from_db()</td>
432 * <td>media_playlist_cb()</td>
433 * <td>Iterates through playlist</td>
436 * <td>media_playlist_foreach_media_from_db()</td>
437 * <td>media_info_cb()</td>
438 * <td>Iterates through playlist's items</td>
447 * @defgroup CAPI_CONTENT_MEDIA_ALBUM_MODULE Media Album
448 * @brief The Media Album API provides information related to album of media items.
450 * @ingroup CAPI_MEDIA_CONTENT_MODULE
452 * @section CAPI_CONTENT_MEDIA_ALBUM_MODULE_HEADER Required Header
453 * \#include <media_content.h>
455 * @section CAPI_CONTENT_MEDIA_ALBUM_MODULE_OVERVIEW Overview
456 * An album is a logical collection or grouping of related audio files. It is also used for filtering media items.\n
457 * The Media Album API allows to manage media albums which contains all video and audio items from
460 * The API provides functions to get and search media items in album group.
461 * For getting the count of media items associated with a given album, call #media_album_get_media_count_from_db() function.
463 * @subsection CAPI_CONTENT_MEDIA_ALBUM_FOREACH_OPERATIONS Foreach Operations
464 * <div><table class="doxtable">
466 * <th><b>FOREACH</b></th>
467 * <th><b>CALLBACK</b></th>
468 * <th><b>DESCRIPTION</b></th>
471 * <td>media_album_foreach_album_from_db()</td>
472 * <td>media_album_cb()</td>
473 * <td>Iterates through albums</td>
476 * <td>media_album_foreach_media_from_db()</td>
477 * <td>media_info_cb()</td>
478 * <td>Iterates through album's items</td>
487 * @defgroup CAPI_CONTENT_MEDIA_GROUP_MODULE Media Group
488 * @brief The Media Group API provides information related to artist of media group.
490 * @ingroup CAPI_MEDIA_CONTENT_MODULE
492 * @section CAPI_CONTENT_MEDIA_GROUP_MODULE_HEADER Required Header
493 * \#include <media_content.h>
495 * @section CAPI_CONTENT_MEDIA_GROUP_MODULE_OVERVIEW Overview
496 * A Media Group represents logical grouping of media files with respect to their group name. It is also used for filtering media items.\n
498 * The API provides functions to get and search image, video and audio items in media group.
499 * For getting the count of media items associated with a given group, call #media_group_get_media_count_from_db() function.
502 * @subsection CAPI_CONTENT_MEDIA_GROUP_FOREACH_OPERATIONS Foreach Operations
503 * <div><table class="doxtable">
505 * <th><b>FOREACH</b></th>
506 * <th><b>CALLBACK</b></th>
507 * <th><b>DESCRIPTION</b></th>
510 * <td>media_group_foreach_group_from_db()</td>
511 * <td> media_group_cb()</td>
512 * <td>Iterates through group</td>
515 * <td>media_group_foreach_media_from_db()</td>
516 * <td>media_info_cb()</td>
517 * <td>Iterates through group's items</td>
526 * @defgroup CAPI_CONTENT_MEDIA_IMAGE_MODULE Image Metadata
527 * @brief The Image Metadata API provides functions that allow to get information about
528 * stored image files.
530 * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
532 * @section CAPI_CONTENT_MEDIA_IMAGE_MODULE_HEADER Required Header
533 * \#include <media_content.h>
535 * @section CAPI_CONTENT_MEDIA_IMAGE_MODULE_OVERVIEW Overview
536 * The Image Metadata API provides functions to get basic information associated with image files:
540 * <td>Filter Keyword</td>
545 * <td>MEDIA_WIDTH</td>
550 * <td>MEDIA_HEIGHT</td>
555 * <td>MEDIA_LONGITUDE</td>
556 * <td>Get from metadata if exist.</td>
560 * <td>MEDIA_LATITUDE</td>
561 * <td>Get from metadata if exist.</td>
565 * <td>MEDIA_ALTITUDE</td>
566 * <td>Get from metadata if exist.</td>
569 * <td>exposure_time</td>
570 * <td>MEDIA_EXPOSURE_TIME</td>
571 * <td>Get from EXIF if exist.</td>
575 * <td>MEDIA_FNUMBER</td>
576 * <td>Get from EXIF if exist.</td>
581 * <td>Get from EXIF if exist.</td>
585 * <td>MEDIA_MODEL</td>
586 * <td>Get from EXIF if exist.</td>
589 * <td>date_taken</td>
590 * <td>MEDIA_DATETAKEN</td>
591 * <td>Get from EXIF if exist.</td>
594 * <td>orientation</td>
595 * <td>MEDIA_ORIENTATION</td>
596 * <td>Get from EXIF if exist.</td>
600 * <td>MEDIA_BURST_ID</td>
601 * <td>ID for the burst images.</td>
604 * <td>is_burst_shot</td>
606 * <td>Whether burst shot or not.</td>
609 * <td>is_360_content</td>
611 * <td>Whether 360 content or not.</td>
618 * For getting the image handle (#image_meta_h) from the media information (#media_info_h), call #media_info_get_image() function.\n
619 * For getting the information related to image files stored in the device call the respective get functions e.g. to get the width of a image, call #image_meta_get_width() function and
620 * to get orientation (#media_content_orientation_e) of a image, call #image_meta_get_orientation() function and so on.\n
621 * When the image handle is no longer needed, it should be destroyed by calling #image_meta_destroy() function.\n
629 * @defgroup CAPI_CONTENT_MEDIA_VIDEO_META_MODULE Video Metadata
630 * @brief The Video Metadata API provides functions to get information about video files present in the device.
632 * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
634 * @section CAPI_CONTENT_MEDIA_VIDEO_META_MODULE_HEADER Required Header
635 * \#include <media_content.h>
637 * @section CAPI_CONTENT_MEDIA_VIDEO_META_MODULE_OVERVIEW Overview
638 * The Video Metadata API provides functions to get information about video files present in the device.
639 * Following information about video content (#video_meta_h )is provided:
643 * <td>Filter Keyword</td>
648 * <td>MEDIA_TITLE</td>
649 * <td>Get from metadata if exist. if not, base name except file extension.</td>
653 * <td>MEDIA_ALBUM</td>
654 * <td>Get from metadata if exist.</td>
658 * <td>MEDIA_ARTIST</td>
659 * <td>Get from metadata if exist.</td>
662 * <td>album_artist</td>
663 * <td>MEDIA_ALBUM_ARTIST</td>
664 * <td>Get from metadata if exist.</td>
668 * <td>MEDIA_GENRE</td>
669 * <td>Get from metadata if exist.</td>
673 * <td>MEDIA_COMPOSER</td>
674 * <td>Get from metadata if exist.</td>
678 * <td>MEDIA_YEAR</td>
679 * <td>Get from metadata if exist.</td>
682 * <td>recorded_date</td>
683 * <td>MEDIA_RECORDED_DATE</td>
684 * <td>Get from metadata if exist. if not, same as modified time.</td>
688 * <td>MEDIA_COPYRIGHT</td>
689 * <td>Get from metadata if exist.</td>
693 * <td>MEDIA_TRACK_NUM</td>
694 * <td>Get from metadata if exist.</td>
698 * <td>MEDIA_BITRATE</td>
702 * <td>bitpersample</td>
703 * <td>MEDIA_BITPERSAMPLE</td>
704 * <td>Bit per sample</td>
707 * <td>sample_rate</td>
708 * <td>MEDIA_SAMPLERATE</td>
709 * <td>Samplerate</td>
713 * <td>MEDIA_CHANNEL</td>
718 * <td>MEDIA_DURATION</td>
723 * <td>MEDIA_RATING</td>
724 * <td>Get from metadata if exist.</td>
728 * <td>MEDIA_AUTHOR</td>
729 * <td>Get from metadata if exist.</td>
733 * <td>MEDIA_ORIENTATION</td>
734 * <td>Video rotation</td>
738 * <td>MEDIA_WIDTH</td>
743 * <td>MEDIA_HEIGHT</td>
748 * <td>MEDIA_LONGITUDE</td>
749 * <td>Get from metadata if exist.</td>
753 * <td>MEDIA_LATITUDE</td>
754 * <td>Get from metadata if exist.</td>
758 * <td>MEDIA_ALTITUDE</td>
759 * <td>Get from metadata if exist.</td>
762 * <td>is_360_content</td>
764 * <td>Whether 360 content or not.</td>
769 * For getting the video handle (#video_meta_h) from the media information (#media_info_h), call the media_info_get_video() function.\n
770 * For getting the information related to video files stored in the device call the respective get functions e.g. to get duration of the video file
771 * call #video_meta_get_duration() function and so on.\n
772 * When the video handle is no longer needed, it should be destroyed by calling #video_meta_destroy() function.
779 * @defgroup CAPI_CONTENT_MEDIA_FACE_DETECTION_MODULE Face Detection
780 * @brief The Face Detection API provides functions to detect face information about stored image files.
782 * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
784 * @section CAPI_CONTENT_MEDIA_FACE_DETECTION_MODULE_HEADER Required Header
785 * \#include <media_content.h>
787 * @section CAPI_CONTENT_MEDIA_FACE_DETECTION_MODULE_FEATURE Related Features
788 * This API is related with the following feature: \n
789 * - %http://tizen.org/feature/vision.face_recognition
790 * It is recommended to create applications with regard to features, to increase reliability. \n
792 * You can check if a device supports the related features for this API by using @ref CAPI_SYSTEM_SYSTEM_INFO_MODULE, thereby controlling the procedure of your application. \n
794 * To ensure your application is only running on a device with specific features, please define the features in your manifest file using the manifest editor in the SDK. \n
796 * More details on featuring your application can be found from <a href="https://developer.tizen.org/development/tizen-studio/native-tools/configuring-your-app/manifest-text-editor#feature"><b>Feature Element</b>.</a>
798 * @section CAPI_CONTENT_MEDIA_FACE_DETECTION_MODULE_OVERVIEW Overview
799 * The Face Detection API provides functions to detect face information associated with image files. \n
800 * Face information detected by mediavision API. To detect faces, you should use media_info_start_face_detection() API. \n
803 * - start and cancel face detection with image files
806 * To obtain the media handle (#media_info_h), call the #media_info_create() function.\n
807 * To start face detection, call the #media_info_start_face_detection() function.\n
808 * To cancel face detection after it's been started, call the #media_info_cancel_face_detection() function.\n
813 * @defgroup CAPI_CONTENT_MEDIA_BOOKMARK_MODULE Media Bookmark
814 * @brief The Media Bookmark Information API provides functions to manage bookmark information on the media items.
816 * @ingroup CAPI_MEDIA_CONTENT_MODULE
818 * @section CAPI_CONTENT_MEDIA_BOOKMARKINFO_MODULE_HEADER Required Header
819 * \#include <media_content.h>
821 * @section CAPI_CONTENT_MEDIA_BOOKMARKINFO_MODULE_OVERVIEW Overview
822 * A Bookmark allows you to mark interesting moment in a media(video and audio) to enable fast searching.
823 * The Bookmark Information API provides functions to get information about bookmarks associated with video and audio items.
826 * - get and filter existing bookmarks
827 * - insert new bookmarks
830 * For inserting a bookmark to media item, call media_bookmark_insert_to_db() function and for deleting already set bookmark from a media, call
831 * #media_bookmark_delete_from_db() function.
832 * For retrieving time where the bookmark is placed on the media, call #media_bookmark_get_marked_time() function.
834 * @subsection CAPI_CONTENT_MEDIA_BOOKMARKINFO_FOREACH_OPERATIONS Foreach Operations
835 * <div><table class="doxtable" >
837 * <th><b>FOREACH</b></th>
838 * <th><b>CALLBACK</b></th>
839 * <th><b>DESCRIPTION</b></th>
842 * <td>media_info_foreach_bookmark_from_db()</td>
843 * <td>media_bookmark_cb()</td>
844 * <td>Iterates through bookmarks</td>
852 * @defgroup CAPI_CONTENT_MEDIA_INFO_MODULE Media Information
853 * @brief The Media Information API provides functions to get information about media items
854 * stored on an internal and external storage.
856 * @ingroup CAPI_MEDIA_CONTENT_MODULE
858 * @section CAPI_CONTENT_MEDIA_INFO_MODULE_HEADER Required Header
859 * \#include <media_content.h>
861 * @section CAPI_CONTENT_MEDIA_INFO_MODULE_OVERVIEW Overview
863 * The Media Information API provides functions to get basic information e.g. path, date, type etc about media items (#media_info_h) present in the device.
864 * Media Information (#media_info_h) is a generalization of media content of any type (audio, image, video and others).
866 * Received information about media items can be the processed using dedicated APIs:
870 * <th>Description</th>
873 * <td>@ref CAPI_CONTENT_MEDIA_INFO_MODULE </td>
874 * <td> Provides details about all items present in the device.\n
875 * Provide functions to get information (e.g. title, size, mime type etc) about the files.</td>
878 * <td>@ref CAPI_CONTENT_MEDIA_AUDIO_META_MODULE </td>
879 * <td> Provides details about audio items present in the device.\n
880 * Provide functions to get information (e.g. genre, album, year, bitrate etc) about the audio files.</td>
883 * <td>@ref CAPI_CONTENT_MEDIA_IMAGE_MODULE </td>
884 * <td> Provides details about image items present in the device.\n
885 * Provide functions to get information (e.g. longitude, description, date etc) about the image files.</td>
888 * <td>@ref CAPI_CONTENT_MEDIA_VIDEO_META_MODULE </td>
889 * <td> Provides details about video items present in the device.\n
890 * Provide functions to get information (e.g. title, duration, date etc) about the video files.</td>
894 * The media information API provides the following information. Regarding the information of each media type (audio, video, or image), please refer to the type-specific metadata page.
899 * <td>Filter Keyword</td>
909 * <td>MEDIA_PATH</td>
910 * <td>Full path of the file</td>
913 * <td>display_name</td>
914 * <td>MEDIA_DISPLAY_NAME</td>
915 * <td>Base name of the file</td>
918 * <td>media_type</td>
919 * <td>MEDIA_TYPE</td>
920 * <td>Type (media_content_type_e)</td>
924 * <td>MEDIA_MIME_TYPE</td>
929 * <td>MEDIA_SIZE</td>
933 * <td>added_time</td>
934 * <td>MEDIA_ADDED_TIME</td>
935 * <td>Added time to Media DB</td>
938 * <td>modified_time</td>
939 * <td>MEDIA_MODIFIED_TIME</td>
940 * <td>Time of last modification</td>
944 * <td>MEDIA_TIMELINE</td>
945 * <td>Same as date taken time(for image) or recorded time(for Audio/Video) if exit. if not, same as modified time.</td>
949 * <td>MEDIA_IS_DRM</td>
950 * <td>Whether DRM content or not</td>
953 * <td>storage_id</td>
954 * <td>STORAGE_ID</td>
955 * <td>Storage UUID.</td>
958 * <td>storage_type</td>
959 * <td>MEDIA_STORAGE_TYPE</td>
960 * <td>Storage type (media_content_storage_e)</td>
964 * <td>MEDIA_FAVOURITE</td>
965 * <td>User data. Not guarantee independence between applications.</td>
969 * <td>MEDIA_PROVIDER</td>
970 * <td>User data. Not guarantee independence between applications.</td>
974 * <td>MEDIA_CATEGORY</td>
975 * <td>User data. Not guarantee independence between applications.</td>
978 * <td>location_tag</td>
979 * <td>MEDIA_LOCATION_TAG</td>
980 * <td>User data. Not guarantee independence between applications.</td>
983 * <td>age_rating</td>
984 * <td>MEDIA_AGE_RATING</td>
985 * <td>User data. Not guarantee independence between applications.</td>
989 * <td>MEDIA_WEATHER</td>
990 * <td>User data. Not guarantee independence between applications.</td>
993 * <td>played_count</td>
994 * <td>MEDIA_PLAYED_COUNT</td>
995 * <td>User data. Not guarantee independence between applications. (deprecated since 4.0)</td>
998 * <td>played_time</td>
999 * <td>MEDIA_LAST_PLAYED_TIME</td>
1000 * <td>User data. Not guarantee independence between applications. (deprecated since 4.0)</td>
1003 * <td>played_position</td>
1004 * <td>MEDIA_LAST_PLAYED_POSITION</td>
1005 * <td>User data. Not guarantee independence between applications. (deprecated since 4.0)</td>
1008 * <td>content_name</td>
1009 * <td>MEDIA_CONTENT_NAME</td>
1010 * <td>User data. Not guarantee independence between applications. (deprecated since 4.0)</td>
1014 * <td>MEDIA_KEYWORD</td>
1015 * <td>User data. Not guarantee independence between applications. (deprecated since 4.0)</td>
1018 * <td>thumbnail_path</td>
1019 * <td>MEDIA_THUMBNAIL_PATH</td>
1020 * <td>Thumbnail path(album art for Audio) if exist.</td>
1023 * <td>description</td>
1024 * <td>MEDIA_DESCRIPTION</td>
1025 * <td>Get from metadata if exist.</td>
1030 * Video and Audio information can be further processed with respect to its properties i.e. playlist, album, using their respective APIs.
1031 * - @ref CAPI_CONTENT_MEDIA_PLAYLIST_MODULE
1032 * - @ref CAPI_CONTENT_MEDIA_ALBUM_MODULE
1033 * - @ref CAPI_CONTENT_MEDIA_BOOKMARK_MODULE
1036 * @subsection CAPI_CONTENT_MEDIA_INFO_FOREACH_OPERATIONS Foreach Operations
1037 * <div><table class="doxtable">
1039 * <th><b>FOREACH</b></th>
1040 * <th><b>CALLBACK</b></th>
1041 * <th><b>DESCRIPTION</b></th>
1044 * <td>media_info_foreach_media_from_db()</td>
1045 * <td>media_info_cb()</td>
1046 * <td>Iterates through items</td>
1049 * <td>media_info_foreach_tag_from_db()</td>
1050 * <td>media_tag_cb()</td>
1051 * <td>Iterate through tags</td>
1054 * <td>media_info_foreach_bookmark_from_db()</td>
1055 * <td>media_bookmark_cb()</td>
1056 * <td>Iterate through bookmark</td>
1065 * @defgroup CAPI_CONTENT_MEDIA_STORAGE_MODULE Media Storage
1066 * @brief The Media Storage Information API provides functions to manage storage information on the media items.
1068 * @ingroup CAPI_MEDIA_CONTENT_MODULE
1070 * @section CAPI_CONTENT_MEDIA_STORAGE_MODULE_HEADER Required Header
1071 * \#include <media_content.h>
1073 * @section CAPI_CONTENT_MEDIA_STORAGE_MODULE_OVERVIEW Overview
1074 * A Storage allows you to manage external storage. \n
1075 * The system generates the storage id when the external storage is added. And the system manages the media information in each of the storage by using storage id. \n
1076 * So you can get the information from the storage that you want to view.
1081 * @defgroup CAPI_CONTENT_MEDIA_FACE_MODULE Media Face
1082 * @brief The Media Face Information API provides functions to manage the face information in the image files.
1084 * @ingroup CAPI_MEDIA_CONTENT_MODULE
1086 * @section CAPI_CONTENT_MEDIA_FACE_MODULE_HEADER Required Header
1087 * \#include <media_content.h>
1089 * @section CAPI_CONTENT_MEDIA_FACE_MODULE_OVERVIEW Overview
1090 * The Face Information API provides functions to manage the face information such as face id, face coordinates in the image files.\n
1096 #endif /* __TIZEN_MEDIA_CONTENT_DOC_H__ */