#include <media_info_private.h>
+#define media_content_retv_free_video_if(expr, val, p_str) do { \
+ if (expr) { \
+ LOGE(FONT_COLOR_RED"Memory allocation failure"FONT_COLOR_RESET); \
+ video_meta_destroy(p_str); \
+ return (val); \
+ } \
+ } while (0)
+
int video_meta_destroy(video_meta_h video)
{
- int ret = MEDIA_CONTENT_ERROR_NONE;
video_meta_s *_video = (video_meta_s*)video;
-
- if (_video) {
- SAFE_FREE(_video->media_id);
- SAFE_FREE(_video->title);
- SAFE_FREE(_video->album);
- SAFE_FREE(_video->artist);
- SAFE_FREE(_video->album_artist);
- SAFE_FREE(_video->genre);
- SAFE_FREE(_video->composer);
- SAFE_FREE(_video->year);
- SAFE_FREE(_video->recorded_date);
- SAFE_FREE(_video->copyright);
- SAFE_FREE(_video->track_num);
- SAFE_FREE(_video);
-
- ret = MEDIA_CONTENT_ERROR_NONE;
- } else {
- media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
- ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
-
- return ret;
+ media_content_retvm_if(_video == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Video handle is null");
+
+ SAFE_FREE(_video->media_id);
+ SAFE_FREE(_video->title);
+ SAFE_FREE(_video->album);
+ SAFE_FREE(_video->artist);
+ SAFE_FREE(_video->album_artist);
+ SAFE_FREE(_video->genre);
+ SAFE_FREE(_video->composer);
+ SAFE_FREE(_video->year);
+ SAFE_FREE(_video->recorded_date);
+ SAFE_FREE(_video->copyright);
+ SAFE_FREE(_video->track_num);
+ SAFE_FREE(_video);
+
+ return MEDIA_CONTENT_ERROR_NONE;
}
int video_meta_clone(video_meta_h *dst, video_meta_h src)
{
- int ret = MEDIA_CONTENT_ERROR_NONE;
video_meta_s *_src = (video_meta_s*)src;
+ media_content_retvm_if(_src == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Source handle is null");
- if (_src != NULL) {
- video_meta_s *_dst = (video_meta_s*)calloc(1, sizeof(video_meta_s));
- media_content_retvm_if(_dst == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
-
- if (_src->media_id != NULL) {
- _dst->media_id = g_strdup(_src->media_id);
- if (_dst->media_id == NULL) {
- video_meta_destroy((video_meta_h)_dst);
- media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
- return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
- }
- }
+ video_meta_s *_dst = (video_meta_s*)calloc(1, sizeof(video_meta_s));
+ media_content_retvm_if(_dst == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
- if (_src->title != NULL) {
- _dst->title = g_strdup(_src->title);
- if (_dst->title == NULL) {
- video_meta_destroy((video_meta_h)_dst);
- media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
- return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
- }
- }
+ if (_src->media_id != NULL) {
+ _dst->media_id = g_strdup(_src->media_id);
+ media_content_retv_free_video_if(_dst->media_id == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, (video_meta_h)_dst);
+ }
- if (_src->album != NULL) {
- _dst->album = g_strdup(_src->album);
- if (_dst->album == NULL) {
- video_meta_destroy((video_meta_h)_dst);
- media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
- return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
- }
- }
+ if (_src->title != NULL) {
+ _dst->title = g_strdup(_src->title);
+ media_content_retv_free_video_if(_dst->title == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, (video_meta_h)_dst);
+ }
- if (_src->artist != NULL) {
- _dst->artist = g_strdup(_src->artist);
- if (_dst->artist == NULL) {
- video_meta_destroy((video_meta_h)_dst);
- media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
- return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
- }
- }
+ if (_src->album != NULL) {
+ _dst->album = g_strdup(_src->album);
+ media_content_retv_free_video_if(_dst->album == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, (video_meta_h)_dst);
+ }
- if (_src->album_artist != NULL) {
- _dst->album_artist = g_strdup(_src->album_artist);
- if (_dst->album_artist == NULL) {
- video_meta_destroy((video_meta_h)_dst);
- media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
- return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
- }
- }
+ if (_src->artist != NULL) {
+ _dst->artist = g_strdup(_src->artist);
+ media_content_retv_free_video_if(_dst->artist == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, (video_meta_h)_dst);
+ }
- if (_src->genre != NULL) {
- _dst->genre = g_strdup(_src->genre);
- if (_dst->genre == NULL) {
- video_meta_destroy((video_meta_h)_dst);
- media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
- return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
- }
- }
+ if (_src->album_artist != NULL) {
+ _dst->album_artist = g_strdup(_src->album_artist);
+ media_content_retv_free_video_if(_dst->album_artist == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, (video_meta_h)_dst);
+ }
- if (_src->composer != NULL) {
- _dst->composer = g_strdup(_src->composer);
- if (_dst->composer == NULL) {
- video_meta_destroy((video_meta_h)_dst);
- media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
- return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
- }
- }
+ if (_src->genre != NULL) {
+ _dst->genre = g_strdup(_src->genre);
+ media_content_retv_free_video_if(_dst->genre == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, (video_meta_h)_dst);
+ }
- if (_src->year != NULL) {
- _dst->year = g_strdup(_src->year);
- if (_dst->year == NULL) {
- video_meta_destroy((video_meta_h)_dst);
- media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
- return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
- }
- }
+ if (_src->composer != NULL) {
+ _dst->composer = g_strdup(_src->composer);
+ media_content_retv_free_video_if(_dst->composer == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, (video_meta_h)_dst);
+ }
- if (_src->recorded_date != NULL) {
- _dst->recorded_date = g_strdup(_src->recorded_date);
- if (_dst->recorded_date == NULL) {
- video_meta_destroy((video_meta_h)_dst);
- media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
- return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
- }
- }
+ if (_src->year != NULL) {
+ _dst->year = g_strdup(_src->year);
+ media_content_retv_free_video_if(_dst->year == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, (video_meta_h)_dst);
+ }
- if (_src->copyright != NULL) {
- _dst->copyright = g_strdup(_src->copyright);
- if (_dst->copyright == NULL) {
- video_meta_destroy((video_meta_h)_dst);
- media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
- return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
- }
- }
+ if (_src->recorded_date != NULL) {
+ _dst->recorded_date = g_strdup(_src->recorded_date);
+ media_content_retv_free_video_if(_dst->recorded_date == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, (video_meta_h)_dst);
+ }
- if (_src->track_num != NULL) {
- _dst->track_num = g_strdup(_src->track_num);
- if (_dst->track_num == NULL) {
- video_meta_destroy((video_meta_h)_dst);
- media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
- return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
- }
- }
+ if (_src->copyright != NULL) {
+ _dst->copyright = g_strdup(_src->copyright);
+ media_content_retv_free_video_if(_dst->copyright == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, (video_meta_h)_dst);
+ }
- _dst->bitrate = _src->bitrate;
- _dst->duration = _src->duration;
- _dst->width = _src->width;
- _dst->height = _src->height;
- _dst->played_count = _src->played_count;
- _dst->played_time = _src->played_time;
- _dst->played_position = _src->played_position;
- _dst->rotation = _src->rotation;
+ if (_src->track_num != NULL) {
+ _dst->track_num = g_strdup(_src->track_num);
+ media_content_retv_free_video_if(_dst->track_num == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, (video_meta_h)_dst);
+ }
- *dst = (video_meta_h)_dst;
+ _dst->bitrate = _src->bitrate;
+ _dst->duration = _src->duration;
+ _dst->width = _src->width;
+ _dst->height = _src->height;
+ _dst->rotation = _src->rotation;
- ret = MEDIA_CONTENT_ERROR_NONE;
- } else {
- media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
- ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
+ *dst = (video_meta_h)_dst;
- return ret;
+ return MEDIA_CONTENT_ERROR_NONE;
}
int video_meta_get_media_id(video_meta_h video, char **media_id)
return ret;
}
-
-
-int video_meta_get_played_count(video_meta_h video, int *played_count)
-{
- int ret = MEDIA_CONTENT_ERROR_NONE;
- video_meta_s *_video = (video_meta_s*)video;
-
- if (_video && played_count) {
- *played_count = _video->played_count;
- ret = MEDIA_CONTENT_ERROR_NONE;
- } else {
- media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
- ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
-
- return ret;
-}
-
-int video_meta_get_played_time(video_meta_h video, time_t* played_time)
-{
- int ret = MEDIA_CONTENT_ERROR_NONE;
- video_meta_s *_video = (video_meta_s*)video;
-
- if (_video) {
- *played_time = _video->played_time;
- ret = MEDIA_CONTENT_ERROR_NONE;
- } else {
- media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
- ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
-
- return ret;
-}
-
-int video_meta_get_played_position(video_meta_h video, int *played_position)
-{
- int ret = MEDIA_CONTENT_ERROR_NONE;
- video_meta_s *_video = (video_meta_s*)video;
-
- if (_video) {
- *played_position = _video->played_position;
- ret = MEDIA_CONTENT_ERROR_NONE;
- } else {
- media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
- ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
-
- return ret;
-}
-
-int video_meta_set_played_count(video_meta_h video, int played_count)
-{
- int ret = MEDIA_CONTENT_ERROR_NONE;
- video_meta_s *_video = (video_meta_s*)video;
-
- if ((_video != NULL) && (played_count >= 0)) {
- _video->played_count = played_count;
- } else {
- media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
- ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
-
- return ret;
-}
-
-int video_meta_set_played_time(video_meta_h video, time_t played_time)
-{
- int ret = MEDIA_CONTENT_ERROR_NONE;
- video_meta_s *_video = (video_meta_s*)video;
-
- if ((_video != NULL) && (played_time >= 0)) {
- _video->played_time = played_time;
- } else {
- media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
- ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
-
- return ret;
-}
-
-int video_meta_set_played_position(video_meta_h video, int played_position)
-{
- int ret = MEDIA_CONTENT_ERROR_NONE;
- video_meta_s *_video = (video_meta_s*)video;
-
- if ((_video != NULL) && (played_position >= 0)) {
- _video->played_position = played_position;
- } else {
- media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
- ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
-
- return ret;
-}
-
-int video_meta_update_to_db(video_meta_h video)
-{
- int ret = MEDIA_CONTENT_ERROR_NONE;
- video_meta_s *_video = (video_meta_s*)video;
- char *sql = NULL;
-
- if (_video != NULL && STRING_VALID(_video->media_id)) {
- char storage_id[MEDIA_CONTENT_UUID_SIZE+1] = {0, };
- memset(storage_id, 0x00, sizeof(storage_id));
-
- ret = _media_db_get_storage_id_by_media_id(_video->media_id, storage_id);
- media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
-
- sql = sqlite3_mprintf(UPDATE_AV_META_FROM_MEDIA, storage_id, _video->played_count, _video->played_time, _video->played_position, _video->media_id);
- ret = _content_query_sql(sql);
- SQLITE3_SAFE_FREE(sql);
- } else {
- media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
- ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
-
- return ret;
-}