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));
65 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
66 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
69 if(STRING_VALID(_src->media_id))
71 _dst->media_id = strdup(_src->media_id);
72 if(_dst->media_id == NULL)
74 video_meta_destroy((video_meta_h)_dst);
75 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
76 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
80 if(STRING_VALID(_src->title))
82 _dst->title = strdup(_src->title);
83 if(_dst->title == NULL)
85 video_meta_destroy((video_meta_h)_dst);
86 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
87 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
91 if(STRING_VALID(_src->album))
93 _dst->album = strdup(_src->album);
94 if(_dst->album == NULL)
96 video_meta_destroy((video_meta_h)_dst);
97 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
98 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
102 if(STRING_VALID(_src->artist))
104 _dst->artist = strdup(_src->artist);
105 if(_dst->artist == NULL)
107 video_meta_destroy((video_meta_h)_dst);
108 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
109 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
113 if(STRING_VALID(_src->album_artist))
115 _dst->album_artist = strdup(_src->album_artist);
116 if(_dst->album_artist == NULL)
118 video_meta_destroy((video_meta_h)_dst);
119 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
120 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
124 if(STRING_VALID(_src->genre))
126 _dst->genre = strdup(_src->genre);
127 if(_dst->genre == NULL)
129 video_meta_destroy((video_meta_h)_dst);
130 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
131 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
135 if(STRING_VALID(_src->composer))
137 _dst->composer = strdup(_src->composer);
138 if(_dst->composer == NULL)
140 video_meta_destroy((video_meta_h)_dst);
141 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
142 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
146 if(STRING_VALID(_src->year))
148 _dst->year = strdup(_src->year);
149 if(_dst->year == NULL)
151 video_meta_destroy((video_meta_h)_dst);
152 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
153 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
157 if(STRING_VALID(_src->recorded_date))
159 _dst->recorded_date = strdup(_src->recorded_date);
160 if(_dst->recorded_date == NULL)
162 video_meta_destroy((video_meta_h)_dst);
163 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
164 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
168 if(STRING_VALID(_src->copyright))
170 _dst->copyright = strdup(_src->copyright);
171 if(_dst->copyright == NULL)
173 video_meta_destroy((video_meta_h)_dst);
174 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
175 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
179 if(STRING_VALID(_src->track_num))
181 _dst->track_num = strdup(_src->track_num);
182 if(_dst->track_num == NULL)
184 video_meta_destroy((video_meta_h)_dst);
185 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
186 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
190 _dst->bitrate = _src->bitrate;
191 _dst->duration = _src->duration;
192 _dst->width = _src->width;
193 _dst->height = _src->height;
194 _dst->played_count = _src->played_count;
195 _dst->played_time = _src->played_time;
196 _dst->played_position = _src->played_position;
198 *dst = (video_meta_h)_dst;
200 ret = MEDIA_CONTENT_ERROR_NONE;
204 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
205 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
211 int video_meta_get_media_id(video_meta_h video, char **media_id)
213 int ret = MEDIA_CONTENT_ERROR_NONE;
214 video_meta_s *_video = (video_meta_s*)video;
217 if(STRING_VALID(_video->media_id))
219 char *new_string = strdup(_video->media_id);
220 if(NULL == new_string)
222 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
223 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
225 *media_id = new_string;
231 ret = MEDIA_CONTENT_ERROR_NONE;
236 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
237 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
243 int video_meta_get_album(video_meta_h video, char **album)
245 int ret = MEDIA_CONTENT_ERROR_NONE;
246 video_meta_s *_video = (video_meta_s*)video;
249 if(STRING_VALID(_video->album))
251 char *new_string = strdup(_video->album);
252 if(NULL == new_string)
254 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
255 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
263 ret = MEDIA_CONTENT_ERROR_NONE;
268 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
269 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
275 int video_meta_get_artist(video_meta_h video, char **artist)
277 int ret = MEDIA_CONTENT_ERROR_NONE;
278 video_meta_s *_video = (video_meta_s*)video;
281 if(STRING_VALID(_video->artist))
283 char *new_string = strdup(_video->artist);
284 if(NULL == new_string)
286 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
287 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
289 *artist = new_string;
295 ret = MEDIA_CONTENT_ERROR_NONE;
300 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
301 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
308 int video_meta_get_album_artist(video_meta_h video, char **album_artist)
310 int ret = MEDIA_CONTENT_ERROR_NONE;
311 video_meta_s *_video = (video_meta_s*)video;
314 if(STRING_VALID(_video->album_artist))
316 char *new_string = strdup(_video->album_artist);
317 if(NULL == new_string)
319 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
320 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
322 *album_artist = new_string;
326 *album_artist = NULL;
328 ret = MEDIA_CONTENT_ERROR_NONE;
333 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
334 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
341 int video_meta_get_genre(video_meta_h video, char **genre)
343 int ret = MEDIA_CONTENT_ERROR_NONE;
344 video_meta_s *_video = (video_meta_s*)video;
347 if(STRING_VALID(_video->genre))
349 char *new_string = strdup(_video->genre);
350 if(NULL == new_string)
352 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
353 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
362 ret = MEDIA_CONTENT_ERROR_NONE;
366 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
367 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
373 int video_meta_get_composer(video_meta_h video, char **composer)
375 int ret = MEDIA_CONTENT_ERROR_NONE;
376 video_meta_s *_video = (video_meta_s*)video;
379 if(STRING_VALID(_video->composer))
381 char *new_string = strdup(_video->composer);
382 if(NULL == new_string)
384 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
385 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
387 *composer = new_string;
394 ret = MEDIA_CONTENT_ERROR_NONE;
398 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
399 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
405 int video_meta_get_year(video_meta_h video, char **year)
407 int ret = MEDIA_CONTENT_ERROR_NONE;
408 video_meta_s *_video = (video_meta_s*)video;
411 if(STRING_VALID(_video->year))
413 char *new_string = strdup(_video->year);
414 if(NULL == new_string)
416 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
417 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
426 ret = MEDIA_CONTENT_ERROR_NONE;
430 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
431 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
437 int video_meta_get_recorded_date(video_meta_h video, char **recorded_date)
439 int ret = MEDIA_CONTENT_ERROR_NONE;
440 video_meta_s *_video = (video_meta_s*)video;
443 if(STRING_VALID(_video->recorded_date))
445 char *new_string = strdup(_video->recorded_date);
446 if(NULL == new_string)
448 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
449 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
451 *recorded_date = new_string;
455 *recorded_date = NULL;
458 ret = MEDIA_CONTENT_ERROR_NONE;
462 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
463 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
469 int video_meta_get_copyright(video_meta_h video, char **copyright)
471 int ret = MEDIA_CONTENT_ERROR_NONE;
472 video_meta_s *_video = (video_meta_s*)video;
475 if(STRING_VALID(_video->copyright))
477 char *new_string = strdup(_video->copyright);
478 if(NULL == new_string)
480 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
481 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
483 *copyright = new_string;
490 ret = MEDIA_CONTENT_ERROR_NONE;
494 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
495 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
501 int video_meta_get_track_num(video_meta_h video, char **track_num)
503 int ret = MEDIA_CONTENT_ERROR_NONE;
504 video_meta_s *_video = (video_meta_s*)video;
507 if(STRING_VALID(_video->track_num))
509 char *new_string = strdup(_video->track_num);
510 if(NULL == new_string)
512 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
513 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
515 *track_num = new_string;
522 ret = MEDIA_CONTENT_ERROR_NONE;
526 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
527 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
533 int video_meta_get_bit_rate(video_meta_h video, int *bit_rate)
535 int ret = MEDIA_CONTENT_ERROR_NONE;
536 video_meta_s *_video = (video_meta_s*)video;
538 if(_video && bit_rate)
540 *bit_rate = _video->bitrate;
541 ret = MEDIA_CONTENT_ERROR_NONE;
545 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
546 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
552 int video_meta_get_duration(video_meta_h video, int *duration)
554 int ret = MEDIA_CONTENT_ERROR_NONE;
555 video_meta_s *_video = (video_meta_s*)video;
557 if(_video && duration)
559 *duration = _video->duration;
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_width(video_meta_h video, int *width)
573 int ret = MEDIA_CONTENT_ERROR_NONE;
574 video_meta_s *_video = (video_meta_s*)video;
578 *width = _video->width;
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_height(video_meta_h video, int *height)
592 int ret = MEDIA_CONTENT_ERROR_NONE;
593 video_meta_s *_video = (video_meta_s*)video;
596 *height = _video->height;
597 ret = MEDIA_CONTENT_ERROR_NONE;
601 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
602 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
608 int video_meta_get_played_count(video_meta_h video, int *played_count)
610 int ret = MEDIA_CONTENT_ERROR_NONE;
611 video_meta_s *_video = (video_meta_s*)video;
613 if(_video && played_count)
615 *played_count = _video->played_count;
616 ret = MEDIA_CONTENT_ERROR_NONE;
620 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
621 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
627 int video_meta_get_played_time(video_meta_h video, time_t* played_time)
629 int ret = MEDIA_CONTENT_ERROR_NONE;
630 video_meta_s *_video = (video_meta_s*)video;
634 *played_time = _video->played_time;
635 ret = MEDIA_CONTENT_ERROR_NONE;
639 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
640 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
646 int video_meta_get_played_position(video_meta_h video, int *played_position)
648 int ret = MEDIA_CONTENT_ERROR_NONE;
649 video_meta_s *_video = (video_meta_s*)video;
653 *played_position = _video->played_position;
654 ret = MEDIA_CONTENT_ERROR_NONE;
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_count(video_meta_h video, int played_count)
667 int ret = MEDIA_CONTENT_ERROR_NONE;
668 video_meta_s *_video = (video_meta_s*)video;
672 _video->played_count = played_count;
676 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
677 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
683 int video_meta_set_played_time(video_meta_h video, time_t played_time)
685 int ret = MEDIA_CONTENT_ERROR_NONE;
686 video_meta_s *_video = (video_meta_s*)video;
690 _video->played_time = played_time;
694 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
695 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
701 int video_meta_set_played_position(video_meta_h video, int played_position)
703 int ret = MEDIA_CONTENT_ERROR_NONE;
704 video_meta_s *_video = (video_meta_s*)video;
708 _video->played_position = played_position;
712 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
713 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
719 int video_meta_update_to_db(video_meta_h video)
721 int ret = MEDIA_CONTENT_ERROR_NONE;
722 video_meta_s *_video = (video_meta_s*)video;
725 if(_video != NULL && STRING_VALID(_video->media_id))
727 char storage_id[MEDIA_CONTENT_UUID_SIZE+1] = {0,};
728 memset(storage_id, 0x00, sizeof(storage_id));
730 ret = _media_db_get_storage_id_by_media_id(_video->media_id, storage_id);
731 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
733 sql = sqlite3_mprintf(UPDATE_AV_META_FROM_MEDIA, storage_id, _video->played_count, _video->played_time, _video->played_position, _video->media_id);
734 ret = _content_query_sql(sql);
739 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
740 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;