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;
293 int video_meta_get_album_artist(video_meta_h video, char **album_artist)
295 int ret = MEDIA_CONTENT_ERROR_NONE;
296 video_meta_s *_video = (video_meta_s*)video;
299 if(STRING_VALID(_video->album_artist))
301 char *new_string = strdup(_video->album_artist);
302 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
304 *album_artist = new_string;
308 *album_artist = NULL;
310 ret = MEDIA_CONTENT_ERROR_NONE;
315 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
316 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
323 int video_meta_get_genre(video_meta_h video, char **genre)
325 int ret = MEDIA_CONTENT_ERROR_NONE;
326 video_meta_s *_video = (video_meta_s*)video;
329 if(STRING_VALID(_video->genre))
331 char *new_string = strdup(_video->genre);
332 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
341 ret = MEDIA_CONTENT_ERROR_NONE;
345 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
346 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
352 int video_meta_get_composer(video_meta_h video, char **composer)
354 int ret = MEDIA_CONTENT_ERROR_NONE;
355 video_meta_s *_video = (video_meta_s*)video;
358 if(STRING_VALID(_video->composer))
360 char *new_string = strdup(_video->composer);
361 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
363 *composer = new_string;
370 ret = MEDIA_CONTENT_ERROR_NONE;
374 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
375 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
381 int video_meta_get_year(video_meta_h video, char **year)
383 int ret = MEDIA_CONTENT_ERROR_NONE;
384 video_meta_s *_video = (video_meta_s*)video;
387 if(STRING_VALID(_video->year))
389 char *new_string = strdup(_video->year);
390 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
399 ret = MEDIA_CONTENT_ERROR_NONE;
403 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
404 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
410 int video_meta_get_recorded_date(video_meta_h video, char **recorded_date)
412 int ret = MEDIA_CONTENT_ERROR_NONE;
413 video_meta_s *_video = (video_meta_s*)video;
416 if(STRING_VALID(_video->recorded_date))
418 char *new_string = strdup(_video->recorded_date);
419 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
421 *recorded_date = new_string;
425 *recorded_date = NULL;
428 ret = MEDIA_CONTENT_ERROR_NONE;
432 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
433 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
439 int video_meta_get_copyright(video_meta_h video, char **copyright)
441 int ret = MEDIA_CONTENT_ERROR_NONE;
442 video_meta_s *_video = (video_meta_s*)video;
445 if(STRING_VALID(_video->copyright))
447 char *new_string = strdup(_video->copyright);
448 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
450 *copyright = new_string;
457 ret = MEDIA_CONTENT_ERROR_NONE;
461 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
462 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
468 int video_meta_get_track_num(video_meta_h video, char **track_num)
470 int ret = MEDIA_CONTENT_ERROR_NONE;
471 video_meta_s *_video = (video_meta_s*)video;
474 if(STRING_VALID(_video->track_num))
476 char *new_string = strdup(_video->track_num);
477 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
479 *track_num = new_string;
486 ret = MEDIA_CONTENT_ERROR_NONE;
490 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
491 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
497 int video_meta_get_bit_rate(video_meta_h video, int *bit_rate)
499 int ret = MEDIA_CONTENT_ERROR_NONE;
500 video_meta_s *_video = (video_meta_s*)video;
502 if(_video && bit_rate)
504 *bit_rate = _video->bitrate;
505 ret = MEDIA_CONTENT_ERROR_NONE;
509 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
510 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
516 int video_meta_get_duration(video_meta_h video, int *duration)
518 int ret = MEDIA_CONTENT_ERROR_NONE;
519 video_meta_s *_video = (video_meta_s*)video;
521 if(_video && duration)
523 *duration = _video->duration;
524 ret = MEDIA_CONTENT_ERROR_NONE;
528 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
529 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
535 int video_meta_get_width(video_meta_h video, int *width)
537 int ret = MEDIA_CONTENT_ERROR_NONE;
538 video_meta_s *_video = (video_meta_s*)video;
542 *width = _video->width;
543 ret = MEDIA_CONTENT_ERROR_NONE;
547 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
548 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
554 int video_meta_get_height(video_meta_h video, int *height)
556 int ret = MEDIA_CONTENT_ERROR_NONE;
557 video_meta_s *_video = (video_meta_s*)video;
560 *height = _video->height;
561 ret = MEDIA_CONTENT_ERROR_NONE;
565 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
566 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
572 int video_meta_get_played_count(video_meta_h video, int *played_count)
574 int ret = MEDIA_CONTENT_ERROR_NONE;
575 video_meta_s *_video = (video_meta_s*)video;
577 if(_video && played_count)
579 *played_count = _video->played_count;
580 ret = MEDIA_CONTENT_ERROR_NONE;
584 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
585 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
591 int video_meta_get_played_time(video_meta_h video, time_t* played_time)
593 int ret = MEDIA_CONTENT_ERROR_NONE;
594 video_meta_s *_video = (video_meta_s*)video;
598 *played_time = _video->played_time;
599 ret = MEDIA_CONTENT_ERROR_NONE;
603 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
604 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
610 int video_meta_get_played_position(video_meta_h video, int *played_position)
612 int ret = MEDIA_CONTENT_ERROR_NONE;
613 video_meta_s *_video = (video_meta_s*)video;
617 *played_position = _video->played_position;
618 ret = MEDIA_CONTENT_ERROR_NONE;
622 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
623 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
629 int video_meta_set_played_count(video_meta_h video, int played_count)
631 int ret = MEDIA_CONTENT_ERROR_NONE;
632 video_meta_s *_video = (video_meta_s*)video;
636 _video->played_count = played_count;
640 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
641 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
647 int video_meta_set_played_time(video_meta_h video, time_t played_time)
649 int ret = MEDIA_CONTENT_ERROR_NONE;
650 video_meta_s *_video = (video_meta_s*)video;
654 _video->played_time = played_time;
658 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
659 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
665 int video_meta_set_played_position(video_meta_h video, int played_position)
667 int ret = MEDIA_CONTENT_ERROR_NONE;
668 video_meta_s *_video = (video_meta_s*)video;
672 _video->played_position = played_position;
676 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
677 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
683 int video_meta_update_to_db(video_meta_h video)
685 int ret = MEDIA_CONTENT_ERROR_NONE;
686 video_meta_s *_video = (video_meta_s*)video;
689 if(_video != NULL && STRING_VALID(_video->media_id))
691 char storage_id[MEDIA_CONTENT_UUID_SIZE+1] = {0,};
692 memset(storage_id, 0x00, sizeof(storage_id));
694 ret = _media_db_get_storage_id_by_media_id(_video->media_id, storage_id);
695 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
697 sql = sqlite3_mprintf(UPDATE_AV_META_FROM_MEDIA, storage_id, _video->played_count, _video->played_time, _video->played_position, _video->media_id);
698 ret = _content_query_sql(sql);
699 SQLITE3_SAFE_FREE(sql);
703 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
704 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;