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_content.h>
19 #include <media_info_private.h>
20 #include <media-svc.h>
23 int video_meta_destroy(video_meta_h video)
25 int ret = MEDIA_CONTENT_ERROR_NONE;
26 video_meta_s *_video = (video_meta_s*)video;
30 SAFE_FREE(_video->media_id);
31 SAFE_FREE(_video->title);
32 SAFE_FREE(_video->album);
33 SAFE_FREE(_video->artist);
34 SAFE_FREE(_video->genre);
35 SAFE_FREE(_video->composer);
36 SAFE_FREE(_video->year);
37 SAFE_FREE(_video->recorded_date);
38 SAFE_FREE(_video->copyright);
39 SAFE_FREE(_video->track_num);
43 ret = MEDIA_CONTENT_ERROR_NONE;
47 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
48 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
54 int video_meta_clone(video_meta_h *dst, video_meta_h src)
56 int ret = MEDIA_CONTENT_ERROR_NONE;
57 video_meta_s *_src = (video_meta_s*)src;
61 video_meta_s *_dst = (video_meta_s*)calloc(1, sizeof(video_meta_s));
66 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
67 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
70 if(STRING_VALID(_src->media_id))
72 _dst->media_id = strdup(_src->media_id);
73 if(_dst->media_id == NULL)
75 video_meta_destroy((video_meta_h)_dst);
76 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
77 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
81 if(STRING_VALID(_src->title))
83 _dst->title = strdup(_src->title);
84 if(_dst->title == NULL)
86 video_meta_destroy((video_meta_h)_dst);
87 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
88 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
92 if(STRING_VALID(_src->album))
94 _dst->album = strdup(_src->album);
95 if(_dst->album == NULL)
97 video_meta_destroy((video_meta_h)_dst);
98 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
99 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
103 if(STRING_VALID(_src->artist))
105 _dst->artist = strdup(_src->artist);
106 if(_dst->artist == NULL)
108 video_meta_destroy((video_meta_h)_dst);
109 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
110 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
114 if(STRING_VALID(_src->genre))
116 _dst->genre = strdup(_src->genre);
117 if(_dst->genre == NULL)
119 video_meta_destroy((video_meta_h)_dst);
120 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
121 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
125 if(STRING_VALID(_src->composer))
127 _dst->composer = strdup(_src->composer);
128 if(_dst->composer == NULL)
130 video_meta_destroy((video_meta_h)_dst);
131 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
132 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
136 if(STRING_VALID(_src->year))
138 _dst->year = strdup(_src->year);
139 if(_dst->year == NULL)
141 video_meta_destroy((video_meta_h)_dst);
142 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
143 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
147 if(STRING_VALID(_src->recorded_date))
149 _dst->recorded_date = strdup(_src->recorded_date);
150 if(_dst->recorded_date == NULL)
152 video_meta_destroy((video_meta_h)_dst);
153 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
154 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
158 if(STRING_VALID(_src->copyright))
160 _dst->copyright = strdup(_src->copyright);
161 if(_dst->copyright == NULL)
163 video_meta_destroy((video_meta_h)_dst);
164 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
165 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
169 if(STRING_VALID(_src->track_num))
171 _dst->track_num = strdup(_src->track_num);
172 if(_dst->track_num == NULL)
174 video_meta_destroy((video_meta_h)_dst);
175 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
176 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
180 _dst->bitrate = _src->bitrate;
181 _dst->duration = _src->duration;
182 _dst->width = _src->width;
183 _dst->height = _src->height;
184 _dst->played_count = _src->played_count;
185 _dst->played_time = _src->played_time;
186 _dst->played_position = _src->played_position;
188 *dst = (video_meta_h)_dst;
190 ret = MEDIA_CONTENT_ERROR_NONE;
194 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
195 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
201 int video_meta_get_media_id(video_meta_h video, char **media_id)
203 int ret = MEDIA_CONTENT_ERROR_NONE;
204 video_meta_s *_video = (video_meta_s*)video;
207 if(STRING_VALID(_video->media_id))
209 char *new_string = strdup(_video->media_id);
210 if(NULL == new_string)
212 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
213 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
215 *media_id = new_string;
221 ret = MEDIA_CONTENT_ERROR_NONE;
226 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
227 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
233 int video_meta_get_album(video_meta_h video, char **album)
235 int ret = MEDIA_CONTENT_ERROR_NONE;
236 video_meta_s *_video = (video_meta_s*)video;
239 if(STRING_VALID(_video->album))
241 char *new_string = strdup(_video->album);
242 if(NULL == new_string)
244 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
245 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
253 ret = MEDIA_CONTENT_ERROR_NONE;
258 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
259 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
265 int video_meta_get_artist(video_meta_h video, char **artist)
267 int ret = MEDIA_CONTENT_ERROR_NONE;
268 video_meta_s *_video = (video_meta_s*)video;
271 if(STRING_VALID(_video->artist))
273 char *new_string = strdup(_video->artist);
274 if(NULL == new_string)
276 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
277 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
279 *artist = new_string;
285 ret = MEDIA_CONTENT_ERROR_NONE;
290 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
291 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
298 int video_meta_get_genre(video_meta_h video, char **genre)
300 int ret = MEDIA_CONTENT_ERROR_NONE;
301 video_meta_s *_video = (video_meta_s*)video;
304 if(STRING_VALID(_video->genre))
306 char *new_string = strdup(_video->genre);
307 if(NULL == new_string)
309 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
310 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
319 ret = MEDIA_CONTENT_ERROR_NONE;
323 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
324 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
330 int video_meta_get_composer(video_meta_h video, char **composer)
332 int ret = MEDIA_CONTENT_ERROR_NONE;
333 video_meta_s *_video = (video_meta_s*)video;
336 if(STRING_VALID(_video->composer))
338 char *new_string = strdup(_video->composer);
339 if(NULL == new_string)
341 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
342 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
344 *composer = new_string;
351 ret = MEDIA_CONTENT_ERROR_NONE;
355 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
356 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
362 int video_meta_get_year(video_meta_h video, char **year)
364 int ret = MEDIA_CONTENT_ERROR_NONE;
365 video_meta_s *_video = (video_meta_s*)video;
368 if(STRING_VALID(_video->year))
370 char *new_string = strdup(_video->year);
371 if(NULL == new_string)
373 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
374 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
383 ret = MEDIA_CONTENT_ERROR_NONE;
387 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
388 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
394 int video_meta_get_recorded_date(video_meta_h video, char **recorded_date)
396 int ret = MEDIA_CONTENT_ERROR_NONE;
397 video_meta_s *_video = (video_meta_s*)video;
400 if(STRING_VALID(_video->recorded_date))
402 char *new_string = strdup(_video->recorded_date);
403 if(NULL == new_string)
405 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
406 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
408 *recorded_date = new_string;
412 *recorded_date = NULL;
415 ret = MEDIA_CONTENT_ERROR_NONE;
419 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
420 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
426 int video_meta_get_copyright(video_meta_h video, char **copyright)
428 int ret = MEDIA_CONTENT_ERROR_NONE;
429 video_meta_s *_video = (video_meta_s*)video;
432 if(STRING_VALID(_video->copyright))
434 char *new_string = strdup(_video->copyright);
435 if(NULL == new_string)
437 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
438 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
440 *copyright = new_string;
447 ret = MEDIA_CONTENT_ERROR_NONE;
451 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
452 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
458 int video_meta_get_track_num(video_meta_h video, char **track_num)
460 int ret = MEDIA_CONTENT_ERROR_NONE;
461 video_meta_s *_video = (video_meta_s*)video;
464 if(STRING_VALID(_video->track_num))
466 char *new_string = strdup(_video->track_num);
467 if(NULL == new_string)
469 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
470 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
472 *track_num = new_string;
479 ret = MEDIA_CONTENT_ERROR_NONE;
483 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
484 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
490 int video_meta_get_bit_rate(video_meta_h video, int *bit_rate)
492 int ret = MEDIA_CONTENT_ERROR_NONE;
493 video_meta_s *_video = (video_meta_s*)video;
495 if(_video && bit_rate)
497 *bit_rate = _video->bitrate;
498 ret = MEDIA_CONTENT_ERROR_NONE;
502 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
503 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
509 int video_meta_get_duration(video_meta_h video, int *duration)
511 int ret = MEDIA_CONTENT_ERROR_NONE;
512 video_meta_s *_video = (video_meta_s*)video;
514 if(_video && duration)
516 *duration = _video->duration;
517 ret = MEDIA_CONTENT_ERROR_NONE;
521 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
522 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
528 int video_meta_get_width(video_meta_h video, int *width)
530 int ret = MEDIA_CONTENT_ERROR_NONE;
531 video_meta_s *_video = (video_meta_s*)video;
535 *width = _video->width;
536 ret = MEDIA_CONTENT_ERROR_NONE;
540 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
541 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
547 int video_meta_get_height(video_meta_h video, int *height)
549 int ret = MEDIA_CONTENT_ERROR_NONE;
550 video_meta_s *_video = (video_meta_s*)video;
553 *height = _video->height;
554 ret = MEDIA_CONTENT_ERROR_NONE;
558 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
559 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
565 int video_meta_get_played_count(video_meta_h video, int *played_count)
567 int ret = MEDIA_CONTENT_ERROR_NONE;
568 video_meta_s *_video = (video_meta_s*)video;
570 if(_video && played_count)
572 *played_count = _video->played_count;
573 ret = MEDIA_CONTENT_ERROR_NONE;
577 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
578 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
584 int video_meta_get_played_time(video_meta_h video, time_t* played_time)
586 int ret = MEDIA_CONTENT_ERROR_NONE;
587 video_meta_s *_video = (video_meta_s*)video;
591 *played_time = _video->played_time;
592 ret = MEDIA_CONTENT_ERROR_NONE;
596 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
597 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
603 int video_meta_get_played_position(video_meta_h video, int *played_position)
605 int ret = MEDIA_CONTENT_ERROR_NONE;
606 video_meta_s *_video = (video_meta_s*)video;
610 *played_position = _video->played_position;
611 ret = MEDIA_CONTENT_ERROR_NONE;
615 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
616 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
622 int video_meta_set_played_count(video_meta_h video, int played_count)
624 int ret = MEDIA_CONTENT_ERROR_NONE;
625 video_meta_s *_video = (video_meta_s*)video;
629 _video->played_count = played_count;
633 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
634 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
640 int video_meta_set_played_time(video_meta_h video, time_t played_time)
642 int ret = MEDIA_CONTENT_ERROR_NONE;
643 video_meta_s *_video = (video_meta_s*)video;
647 _video->played_time = played_time;
651 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
652 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
658 int video_meta_set_played_position(video_meta_h video, int played_position)
660 int ret = MEDIA_CONTENT_ERROR_NONE;
661 video_meta_s *_video = (video_meta_s*)video;
665 _video->played_position = played_position;
669 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
670 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
676 int video_meta_update_to_db(video_meta_h video)
678 int ret = MEDIA_CONTENT_ERROR_NONE;
679 video_meta_s *_video = (video_meta_s*)video;
682 if(_video != NULL && STRING_VALID(_video->media_id))
684 sql = sqlite3_mprintf(UPDATE_AV_META_FROM_MEDIA, _video->played_count, _video->played_time, _video->played_position, _video->media_id);
685 ret = _content_query_sql(sql);
690 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
691 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;