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->album_artist);
35 SAFE_FREE(_video->genre);
36 SAFE_FREE(_video->composer);
37 SAFE_FREE(_video->year);
38 SAFE_FREE(_video->recorded_date);
39 SAFE_FREE(_video->copyright);
40 SAFE_FREE(_video->track_num);
44 ret = MEDIA_CONTENT_ERROR_NONE;
48 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
49 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
55 int video_meta_clone(video_meta_h *dst, video_meta_h src)
57 int ret = MEDIA_CONTENT_ERROR_NONE;
58 video_meta_s *_src = (video_meta_s*)src;
62 video_meta_s *_dst = (video_meta_s*)calloc(1, sizeof(video_meta_s));
67 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
68 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
71 if(STRING_VALID(_src->media_id))
73 _dst->media_id = strdup(_src->media_id);
74 if(_dst->media_id == NULL)
76 video_meta_destroy((video_meta_h)_dst);
77 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
78 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
82 if(STRING_VALID(_src->title))
84 _dst->title = strdup(_src->title);
85 if(_dst->title == NULL)
87 video_meta_destroy((video_meta_h)_dst);
88 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
89 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
93 if(STRING_VALID(_src->album))
95 _dst->album = strdup(_src->album);
96 if(_dst->album == NULL)
98 video_meta_destroy((video_meta_h)_dst);
99 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
100 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
104 if(STRING_VALID(_src->artist))
106 _dst->artist = strdup(_src->artist);
107 if(_dst->artist == NULL)
109 video_meta_destroy((video_meta_h)_dst);
110 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
111 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
115 if(STRING_VALID(_src->album_artist))
117 _dst->album_artist = strdup(_src->album_artist);
118 if(_dst->album_artist == NULL)
120 video_meta_destroy((video_meta_h)_dst);
121 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
122 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
126 if(STRING_VALID(_src->genre))
128 _dst->genre = strdup(_src->genre);
129 if(_dst->genre == NULL)
131 video_meta_destroy((video_meta_h)_dst);
132 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
133 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
137 if(STRING_VALID(_src->composer))
139 _dst->composer = strdup(_src->composer);
140 if(_dst->composer == NULL)
142 video_meta_destroy((video_meta_h)_dst);
143 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
144 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
148 if(STRING_VALID(_src->year))
150 _dst->year = strdup(_src->year);
151 if(_dst->year == NULL)
153 video_meta_destroy((video_meta_h)_dst);
154 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
155 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
159 if(STRING_VALID(_src->recorded_date))
161 _dst->recorded_date = strdup(_src->recorded_date);
162 if(_dst->recorded_date == NULL)
164 video_meta_destroy((video_meta_h)_dst);
165 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
166 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
170 if(STRING_VALID(_src->copyright))
172 _dst->copyright = strdup(_src->copyright);
173 if(_dst->copyright == NULL)
175 video_meta_destroy((video_meta_h)_dst);
176 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
177 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
181 if(STRING_VALID(_src->track_num))
183 _dst->track_num = strdup(_src->track_num);
184 if(_dst->track_num == NULL)
186 video_meta_destroy((video_meta_h)_dst);
187 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
188 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
192 _dst->bitrate = _src->bitrate;
193 _dst->duration = _src->duration;
194 _dst->width = _src->width;
195 _dst->height = _src->height;
196 _dst->played_count = _src->played_count;
197 _dst->played_time = _src->played_time;
198 _dst->played_position = _src->played_position;
200 *dst = (video_meta_h)_dst;
202 ret = MEDIA_CONTENT_ERROR_NONE;
206 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
207 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
213 int video_meta_get_media_id(video_meta_h video, char **media_id)
215 int ret = MEDIA_CONTENT_ERROR_NONE;
216 video_meta_s *_video = (video_meta_s*)video;
219 if(STRING_VALID(_video->media_id))
221 char *new_string = strdup(_video->media_id);
222 if(NULL == new_string)
224 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
225 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
227 *media_id = new_string;
233 ret = MEDIA_CONTENT_ERROR_NONE;
238 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
239 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
245 int video_meta_get_album(video_meta_h video, char **album)
247 int ret = MEDIA_CONTENT_ERROR_NONE;
248 video_meta_s *_video = (video_meta_s*)video;
251 if(STRING_VALID(_video->album))
253 char *new_string = strdup(_video->album);
254 if(NULL == new_string)
256 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
257 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
265 ret = MEDIA_CONTENT_ERROR_NONE;
270 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
271 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
277 int video_meta_get_artist(video_meta_h video, char **artist)
279 int ret = MEDIA_CONTENT_ERROR_NONE;
280 video_meta_s *_video = (video_meta_s*)video;
283 if(STRING_VALID(_video->artist))
285 char *new_string = strdup(_video->artist);
286 if(NULL == new_string)
288 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
289 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
291 *artist = new_string;
297 ret = MEDIA_CONTENT_ERROR_NONE;
302 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
303 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
310 int video_meta_get_album_artist(video_meta_h video, char **album_artist)
312 int ret = MEDIA_CONTENT_ERROR_NONE;
313 video_meta_s *_video = (video_meta_s*)video;
316 if(STRING_VALID(_video->album_artist))
318 char *new_string = strdup(_video->album_artist);
319 if(NULL == new_string)
321 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
322 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
324 *album_artist = new_string;
328 *album_artist = NULL;
330 ret = MEDIA_CONTENT_ERROR_NONE;
335 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
336 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
343 int video_meta_get_genre(video_meta_h video, char **genre)
345 int ret = MEDIA_CONTENT_ERROR_NONE;
346 video_meta_s *_video = (video_meta_s*)video;
349 if(STRING_VALID(_video->genre))
351 char *new_string = strdup(_video->genre);
352 if(NULL == new_string)
354 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
355 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
364 ret = MEDIA_CONTENT_ERROR_NONE;
368 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
369 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
375 int video_meta_get_composer(video_meta_h video, char **composer)
377 int ret = MEDIA_CONTENT_ERROR_NONE;
378 video_meta_s *_video = (video_meta_s*)video;
381 if(STRING_VALID(_video->composer))
383 char *new_string = strdup(_video->composer);
384 if(NULL == new_string)
386 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
387 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
389 *composer = new_string;
396 ret = MEDIA_CONTENT_ERROR_NONE;
400 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
401 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
407 int video_meta_get_year(video_meta_h video, char **year)
409 int ret = MEDIA_CONTENT_ERROR_NONE;
410 video_meta_s *_video = (video_meta_s*)video;
413 if(STRING_VALID(_video->year))
415 char *new_string = strdup(_video->year);
416 if(NULL == new_string)
418 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
419 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
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_recorded_date(video_meta_h video, char **recorded_date)
441 int ret = MEDIA_CONTENT_ERROR_NONE;
442 video_meta_s *_video = (video_meta_s*)video;
445 if(STRING_VALID(_video->recorded_date))
447 char *new_string = strdup(_video->recorded_date);
448 if(NULL == new_string)
450 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
451 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
453 *recorded_date = new_string;
457 *recorded_date = NULL;
460 ret = MEDIA_CONTENT_ERROR_NONE;
464 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
465 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
471 int video_meta_get_copyright(video_meta_h video, char **copyright)
473 int ret = MEDIA_CONTENT_ERROR_NONE;
474 video_meta_s *_video = (video_meta_s*)video;
477 if(STRING_VALID(_video->copyright))
479 char *new_string = strdup(_video->copyright);
480 if(NULL == new_string)
482 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
483 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
485 *copyright = new_string;
492 ret = MEDIA_CONTENT_ERROR_NONE;
496 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
497 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
503 int video_meta_get_track_num(video_meta_h video, char **track_num)
505 int ret = MEDIA_CONTENT_ERROR_NONE;
506 video_meta_s *_video = (video_meta_s*)video;
509 if(STRING_VALID(_video->track_num))
511 char *new_string = strdup(_video->track_num);
512 if(NULL == new_string)
514 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
515 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
517 *track_num = new_string;
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_bit_rate(video_meta_h video, int *bit_rate)
537 int ret = MEDIA_CONTENT_ERROR_NONE;
538 video_meta_s *_video = (video_meta_s*)video;
540 if(_video && bit_rate)
542 *bit_rate = _video->bitrate;
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_duration(video_meta_h video, int *duration)
556 int ret = MEDIA_CONTENT_ERROR_NONE;
557 video_meta_s *_video = (video_meta_s*)video;
559 if(_video && duration)
561 *duration = _video->duration;
562 ret = MEDIA_CONTENT_ERROR_NONE;
566 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
567 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
573 int video_meta_get_width(video_meta_h video, int *width)
575 int ret = MEDIA_CONTENT_ERROR_NONE;
576 video_meta_s *_video = (video_meta_s*)video;
580 *width = _video->width;
581 ret = MEDIA_CONTENT_ERROR_NONE;
585 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
586 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
592 int video_meta_get_height(video_meta_h video, int *height)
594 int ret = MEDIA_CONTENT_ERROR_NONE;
595 video_meta_s *_video = (video_meta_s*)video;
598 *height = _video->height;
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_count(video_meta_h video, int *played_count)
612 int ret = MEDIA_CONTENT_ERROR_NONE;
613 video_meta_s *_video = (video_meta_s*)video;
615 if(_video && played_count)
617 *played_count = _video->played_count;
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_get_played_time(video_meta_h video, time_t* played_time)
631 int ret = MEDIA_CONTENT_ERROR_NONE;
632 video_meta_s *_video = (video_meta_s*)video;
636 *played_time = _video->played_time;
637 ret = MEDIA_CONTENT_ERROR_NONE;
641 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
642 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
648 int video_meta_get_played_position(video_meta_h video, int *played_position)
650 int ret = MEDIA_CONTENT_ERROR_NONE;
651 video_meta_s *_video = (video_meta_s*)video;
655 *played_position = _video->played_position;
656 ret = MEDIA_CONTENT_ERROR_NONE;
660 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
661 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
667 int video_meta_set_played_count(video_meta_h video, int played_count)
669 int ret = MEDIA_CONTENT_ERROR_NONE;
670 video_meta_s *_video = (video_meta_s*)video;
674 _video->played_count = played_count;
678 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
679 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
685 int video_meta_set_played_time(video_meta_h video, time_t played_time)
687 int ret = MEDIA_CONTENT_ERROR_NONE;
688 video_meta_s *_video = (video_meta_s*)video;
692 _video->played_time = played_time;
696 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
697 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
703 int video_meta_set_played_position(video_meta_h video, int played_position)
705 int ret = MEDIA_CONTENT_ERROR_NONE;
706 video_meta_s *_video = (video_meta_s*)video;
710 _video->played_position = played_position;
714 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
715 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
721 int video_meta_update_to_db(video_meta_h video)
723 int ret = MEDIA_CONTENT_ERROR_NONE;
724 video_meta_s *_video = (video_meta_s*)video;
727 if(_video != NULL && STRING_VALID(_video->media_id))
729 sql = sqlite3_mprintf(UPDATE_AV_META_FROM_MEDIA, _video->played_count, _video->played_time, _video->played_position, _video->media_id);
730 ret = _content_query_sql(sql);
735 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
736 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;