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 #include <media_info_private.h>
21 int video_meta_destroy(video_meta_h video)
23 int ret = MEDIA_CONTENT_ERROR_NONE;
24 video_meta_s *_video = (video_meta_s*)video;
28 SAFE_FREE(_video->media_id);
29 SAFE_FREE(_video->title);
30 SAFE_FREE(_video->album);
31 SAFE_FREE(_video->artist);
32 SAFE_FREE(_video->album_artist);
33 SAFE_FREE(_video->genre);
34 SAFE_FREE(_video->composer);
35 SAFE_FREE(_video->year);
36 SAFE_FREE(_video->recorded_date);
37 SAFE_FREE(_video->copyright);
38 SAFE_FREE(_video->track_num);
42 ret = MEDIA_CONTENT_ERROR_NONE;
46 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
47 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
53 int video_meta_clone(video_meta_h *dst, video_meta_h src)
55 int ret = MEDIA_CONTENT_ERROR_NONE;
56 video_meta_s *_src = (video_meta_s*)src;
60 video_meta_s *_dst = (video_meta_s*)calloc(1, sizeof(video_meta_s));
61 media_content_retvm_if(_dst == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
63 if(STRING_VALID(_src->media_id))
65 _dst->media_id = strdup(_src->media_id);
66 if(_dst->media_id == NULL)
68 video_meta_destroy((video_meta_h)_dst);
69 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
70 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
74 if(STRING_VALID(_src->title))
76 _dst->title = strdup(_src->title);
77 if(_dst->title == NULL)
79 video_meta_destroy((video_meta_h)_dst);
80 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
81 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
85 if(STRING_VALID(_src->album))
87 _dst->album = strdup(_src->album);
88 if(_dst->album == NULL)
90 video_meta_destroy((video_meta_h)_dst);
91 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
92 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
96 if(STRING_VALID(_src->artist))
98 _dst->artist = strdup(_src->artist);
99 if(_dst->artist == NULL)
101 video_meta_destroy((video_meta_h)_dst);
102 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
103 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
107 if(STRING_VALID(_src->album_artist))
109 _dst->album_artist = strdup(_src->album_artist);
110 if(_dst->album_artist == NULL)
112 video_meta_destroy((video_meta_h)_dst);
113 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
114 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
118 if(STRING_VALID(_src->genre))
120 _dst->genre = strdup(_src->genre);
121 if(_dst->genre == NULL)
123 video_meta_destroy((video_meta_h)_dst);
124 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
125 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
129 if(STRING_VALID(_src->composer))
131 _dst->composer = strdup(_src->composer);
132 if(_dst->composer == NULL)
134 video_meta_destroy((video_meta_h)_dst);
135 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
136 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
140 if(STRING_VALID(_src->year))
142 _dst->year = strdup(_src->year);
143 if(_dst->year == NULL)
145 video_meta_destroy((video_meta_h)_dst);
146 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
147 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
151 if(STRING_VALID(_src->recorded_date))
153 _dst->recorded_date = strdup(_src->recorded_date);
154 if(_dst->recorded_date == NULL)
156 video_meta_destroy((video_meta_h)_dst);
157 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
158 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
162 if(STRING_VALID(_src->copyright))
164 _dst->copyright = strdup(_src->copyright);
165 if(_dst->copyright == NULL)
167 video_meta_destroy((video_meta_h)_dst);
168 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
169 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
173 if(STRING_VALID(_src->track_num))
175 _dst->track_num = strdup(_src->track_num);
176 if(_dst->track_num == NULL)
178 video_meta_destroy((video_meta_h)_dst);
179 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
180 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
184 _dst->bitrate = _src->bitrate;
185 _dst->duration = _src->duration;
186 _dst->width = _src->width;
187 _dst->height = _src->height;
188 _dst->played_count = _src->played_count;
189 _dst->played_time = _src->played_time;
190 _dst->played_position = _src->played_position;
192 *dst = (video_meta_h)_dst;
194 ret = MEDIA_CONTENT_ERROR_NONE;
198 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
199 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
205 int video_meta_get_media_id(video_meta_h video, char **media_id)
207 int ret = MEDIA_CONTENT_ERROR_NONE;
208 video_meta_s *_video = (video_meta_s*)video;
211 if(STRING_VALID(_video->media_id))
213 char *new_string = strdup(_video->media_id);
214 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
216 *media_id = new_string;
222 ret = MEDIA_CONTENT_ERROR_NONE;
227 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
228 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
234 int video_meta_get_album(video_meta_h video, char **album)
236 int ret = MEDIA_CONTENT_ERROR_NONE;
237 video_meta_s *_video = (video_meta_s*)video;
240 if(STRING_VALID(_video->album))
242 char *new_string = strdup(_video->album);
243 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
251 ret = MEDIA_CONTENT_ERROR_NONE;
256 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
257 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
263 int video_meta_get_artist(video_meta_h video, char **artist)
265 int ret = MEDIA_CONTENT_ERROR_NONE;
266 video_meta_s *_video = (video_meta_s*)video;
269 if(STRING_VALID(_video->artist))
271 char *new_string = strdup(_video->artist);
272 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
274 *artist = new_string;
280 ret = MEDIA_CONTENT_ERROR_NONE;
285 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
286 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
292 int video_meta_get_album_artist(video_meta_h video, char **album_artist)
294 int ret = MEDIA_CONTENT_ERROR_NONE;
295 video_meta_s *_video = (video_meta_s*)video;
298 if(STRING_VALID(_video->album_artist))
300 char *new_string = strdup(_video->album_artist);
301 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
303 *album_artist = new_string;
307 *album_artist = NULL;
309 ret = MEDIA_CONTENT_ERROR_NONE;
314 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
315 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
322 int video_meta_get_genre(video_meta_h video, char **genre)
324 int ret = MEDIA_CONTENT_ERROR_NONE;
325 video_meta_s *_video = (video_meta_s*)video;
328 if(STRING_VALID(_video->genre))
330 char *new_string = strdup(_video->genre);
331 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
340 ret = MEDIA_CONTENT_ERROR_NONE;
344 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
345 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
351 int video_meta_get_composer(video_meta_h video, char **composer)
353 int ret = MEDIA_CONTENT_ERROR_NONE;
354 video_meta_s *_video = (video_meta_s*)video;
357 if(STRING_VALID(_video->composer))
359 char *new_string = strdup(_video->composer);
360 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
362 *composer = new_string;
369 ret = MEDIA_CONTENT_ERROR_NONE;
373 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
374 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
380 int video_meta_get_year(video_meta_h video, char **year)
382 int ret = MEDIA_CONTENT_ERROR_NONE;
383 video_meta_s *_video = (video_meta_s*)video;
386 if(STRING_VALID(_video->year))
388 char *new_string = strdup(_video->year);
389 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
398 ret = MEDIA_CONTENT_ERROR_NONE;
402 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
403 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
409 int video_meta_get_recorded_date(video_meta_h video, char **recorded_date)
411 int ret = MEDIA_CONTENT_ERROR_NONE;
412 video_meta_s *_video = (video_meta_s*)video;
415 if(STRING_VALID(_video->recorded_date))
417 char *new_string = strdup(_video->recorded_date);
418 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
420 *recorded_date = new_string;
424 *recorded_date = NULL;
427 ret = MEDIA_CONTENT_ERROR_NONE;
431 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
432 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
438 int video_meta_get_copyright(video_meta_h video, char **copyright)
440 int ret = MEDIA_CONTENT_ERROR_NONE;
441 video_meta_s *_video = (video_meta_s*)video;
444 if(STRING_VALID(_video->copyright))
446 char *new_string = strdup(_video->copyright);
447 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
449 *copyright = new_string;
456 ret = MEDIA_CONTENT_ERROR_NONE;
460 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
461 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
467 int video_meta_get_track_num(video_meta_h video, char **track_num)
469 int ret = MEDIA_CONTENT_ERROR_NONE;
470 video_meta_s *_video = (video_meta_s*)video;
473 if(STRING_VALID(_video->track_num))
475 char *new_string = strdup(_video->track_num);
476 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
478 *track_num = new_string;
485 ret = MEDIA_CONTENT_ERROR_NONE;
489 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
490 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
496 int video_meta_get_bit_rate(video_meta_h video, int *bit_rate)
498 int ret = MEDIA_CONTENT_ERROR_NONE;
499 video_meta_s *_video = (video_meta_s*)video;
501 if(_video && bit_rate)
503 *bit_rate = _video->bitrate;
504 ret = MEDIA_CONTENT_ERROR_NONE;
508 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
509 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
515 int video_meta_get_duration(video_meta_h video, int *duration)
517 int ret = MEDIA_CONTENT_ERROR_NONE;
518 video_meta_s *_video = (video_meta_s*)video;
520 if(_video && duration)
522 *duration = _video->duration;
523 ret = MEDIA_CONTENT_ERROR_NONE;
527 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
528 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
534 int video_meta_get_width(video_meta_h video, int *width)
536 int ret = MEDIA_CONTENT_ERROR_NONE;
537 video_meta_s *_video = (video_meta_s*)video;
541 *width = _video->width;
542 ret = MEDIA_CONTENT_ERROR_NONE;
546 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
547 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
553 int video_meta_get_height(video_meta_h video, int *height)
555 int ret = MEDIA_CONTENT_ERROR_NONE;
556 video_meta_s *_video = (video_meta_s*)video;
559 *height = _video->height;
560 ret = MEDIA_CONTENT_ERROR_NONE;
564 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
565 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
571 int video_meta_get_played_count(video_meta_h video, int *played_count)
573 int ret = MEDIA_CONTENT_ERROR_NONE;
574 video_meta_s *_video = (video_meta_s*)video;
576 if(_video && played_count)
578 *played_count = _video->played_count;
579 ret = MEDIA_CONTENT_ERROR_NONE;
583 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
584 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
590 int video_meta_get_played_time(video_meta_h video, time_t* played_time)
592 int ret = MEDIA_CONTENT_ERROR_NONE;
593 video_meta_s *_video = (video_meta_s*)video;
597 *played_time = _video->played_time;
598 ret = MEDIA_CONTENT_ERROR_NONE;
602 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
603 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
609 int video_meta_get_played_position(video_meta_h video, int *played_position)
611 int ret = MEDIA_CONTENT_ERROR_NONE;
612 video_meta_s *_video = (video_meta_s*)video;
616 *played_position = _video->played_position;
617 ret = MEDIA_CONTENT_ERROR_NONE;
621 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
622 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
628 int video_meta_set_played_count(video_meta_h video, int played_count)
630 int ret = MEDIA_CONTENT_ERROR_NONE;
631 video_meta_s *_video = (video_meta_s*)video;
635 _video->played_count = played_count;
639 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
640 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
646 int video_meta_set_played_time(video_meta_h video, time_t played_time)
648 int ret = MEDIA_CONTENT_ERROR_NONE;
649 video_meta_s *_video = (video_meta_s*)video;
653 _video->played_time = played_time;
657 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
658 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
664 int video_meta_set_played_position(video_meta_h video, int played_position)
666 int ret = MEDIA_CONTENT_ERROR_NONE;
667 video_meta_s *_video = (video_meta_s*)video;
671 _video->played_position = played_position;
675 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
676 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
682 int video_meta_update_to_db(video_meta_h video)
684 int ret = MEDIA_CONTENT_ERROR_NONE;
685 video_meta_s *_video = (video_meta_s*)video;
688 if(_video != NULL && STRING_VALID(_video->media_id))
690 char storage_id[MEDIA_CONTENT_UUID_SIZE+1] = {0,};
691 memset(storage_id, 0x00, sizeof(storage_id));
693 ret = _media_db_get_storage_id_by_media_id(_video->media_id, storage_id);
694 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
696 sql = sqlite3_mprintf(UPDATE_AV_META_FROM_MEDIA, storage_id, _video->played_count, _video->played_time, _video->played_position, _video->media_id);
697 ret = _content_query_sql(sql);
698 SQLITE3_SAFE_FREE(sql);
702 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
703 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;