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;
27 SAFE_FREE(_video->media_id);
28 SAFE_FREE(_video->title);
29 SAFE_FREE(_video->album);
30 SAFE_FREE(_video->artist);
31 SAFE_FREE(_video->album_artist);
32 SAFE_FREE(_video->genre);
33 SAFE_FREE(_video->composer);
34 SAFE_FREE(_video->year);
35 SAFE_FREE(_video->recorded_date);
36 SAFE_FREE(_video->copyright);
37 SAFE_FREE(_video->track_num);
40 ret = MEDIA_CONTENT_ERROR_NONE;
42 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
43 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
49 int video_meta_clone(video_meta_h *dst, video_meta_h src)
51 int ret = MEDIA_CONTENT_ERROR_NONE;
52 video_meta_s *_src = (video_meta_s*)src;
55 video_meta_s *_dst = (video_meta_s*)calloc(1, sizeof(video_meta_s));
56 media_content_retvm_if(_dst == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
58 if (_src->media_id != NULL) {
59 _dst->media_id = g_strdup(_src->media_id);
60 if (_dst->media_id == NULL) {
61 video_meta_destroy((video_meta_h)_dst);
62 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
63 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
67 if (_src->title != NULL) {
68 _dst->title = g_strdup(_src->title);
69 if (_dst->title == NULL) {
70 video_meta_destroy((video_meta_h)_dst);
71 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
72 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
76 if (_src->album != NULL) {
77 _dst->album = g_strdup(_src->album);
78 if (_dst->album == 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 (_src->artist != NULL) {
86 _dst->artist = g_strdup(_src->artist);
87 if (_dst->artist == NULL) {
88 video_meta_destroy((video_meta_h)_dst);
89 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
90 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
94 if (_src->album_artist != NULL) {
95 _dst->album_artist = g_strdup(_src->album_artist);
96 if (_dst->album_artist == 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 (_src->genre != NULL) {
104 _dst->genre = g_strdup(_src->genre);
105 if (_dst->genre == NULL) {
106 video_meta_destroy((video_meta_h)_dst);
107 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
108 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
112 if (_src->composer != NULL) {
113 _dst->composer = g_strdup(_src->composer);
114 if (_dst->composer == NULL) {
115 video_meta_destroy((video_meta_h)_dst);
116 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
117 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
121 if (_src->year != NULL) {
122 _dst->year = g_strdup(_src->year);
123 if (_dst->year == NULL) {
124 video_meta_destroy((video_meta_h)_dst);
125 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
126 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
130 if (_src->recorded_date != NULL) {
131 _dst->recorded_date = g_strdup(_src->recorded_date);
132 if (_dst->recorded_date == NULL) {
133 video_meta_destroy((video_meta_h)_dst);
134 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
135 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
139 if (_src->copyright != NULL) {
140 _dst->copyright = g_strdup(_src->copyright);
141 if (_dst->copyright == 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 (_src->track_num != NULL) {
149 _dst->track_num = g_strdup(_src->track_num);
150 if (_dst->track_num == 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 _dst->bitrate = _src->bitrate;
158 _dst->duration = _src->duration;
159 _dst->width = _src->width;
160 _dst->height = _src->height;
161 _dst->rotation = _src->rotation;
163 *dst = (video_meta_h)_dst;
165 ret = MEDIA_CONTENT_ERROR_NONE;
167 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
168 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
174 int video_meta_get_media_id(video_meta_h video, char **media_id)
176 int ret = MEDIA_CONTENT_ERROR_NONE;
177 video_meta_s *_video = (video_meta_s*)video;
179 if (_video->media_id != NULL) {
180 char *new_string = strdup(_video->media_id);
181 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
183 *media_id = new_string;
187 ret = MEDIA_CONTENT_ERROR_NONE;
190 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
191 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
197 int video_meta_get_album(video_meta_h video, char **album)
199 int ret = MEDIA_CONTENT_ERROR_NONE;
200 video_meta_s *_video = (video_meta_s*)video;
202 if (_video->album != NULL) {
203 char *new_string = strdup(_video->album);
204 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
210 ret = MEDIA_CONTENT_ERROR_NONE;
213 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
214 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
220 int video_meta_get_artist(video_meta_h video, char **artist)
222 int ret = MEDIA_CONTENT_ERROR_NONE;
223 video_meta_s *_video = (video_meta_s*)video;
225 if (_video->artist != NULL) {
226 char *new_string = strdup(_video->artist);
227 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
229 *artist = new_string;
233 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_artist(video_meta_h video, char **album_artist)
245 int ret = MEDIA_CONTENT_ERROR_NONE;
246 video_meta_s *_video = (video_meta_s*)video;
248 if (_video->album_artist != NULL) {
249 char *new_string = strdup(_video->album_artist);
250 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
252 *album_artist = new_string;
254 *album_artist = NULL;
256 ret = MEDIA_CONTENT_ERROR_NONE;
259 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
260 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
266 int video_meta_get_genre(video_meta_h video, char **genre)
268 int ret = MEDIA_CONTENT_ERROR_NONE;
269 video_meta_s *_video = (video_meta_s*)video;
271 if (_video->genre != NULL) {
272 char *new_string = strdup(_video->genre);
273 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
280 ret = MEDIA_CONTENT_ERROR_NONE;
282 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
283 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
289 int video_meta_get_composer(video_meta_h video, char **composer)
291 int ret = MEDIA_CONTENT_ERROR_NONE;
292 video_meta_s *_video = (video_meta_s*)video;
294 if (_video->composer != NULL) {
295 char *new_string = strdup(_video->composer);
296 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
298 *composer = new_string;
303 ret = MEDIA_CONTENT_ERROR_NONE;
305 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
306 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
312 int video_meta_get_year(video_meta_h video, char **year)
314 int ret = MEDIA_CONTENT_ERROR_NONE;
315 video_meta_s *_video = (video_meta_s*)video;
317 if (_video->year != NULL) {
318 char *new_string = strdup(_video->year);
319 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
326 ret = MEDIA_CONTENT_ERROR_NONE;
328 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
329 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
335 int video_meta_get_recorded_date(video_meta_h video, char **recorded_date)
337 int ret = MEDIA_CONTENT_ERROR_NONE;
338 video_meta_s *_video = (video_meta_s*)video;
340 if (_video->recorded_date != NULL) {
341 char *new_string = strdup(_video->recorded_date);
342 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
344 *recorded_date = new_string;
346 *recorded_date = NULL;
349 ret = MEDIA_CONTENT_ERROR_NONE;
351 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
352 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
358 int video_meta_get_copyright(video_meta_h video, char **copyright)
360 int ret = MEDIA_CONTENT_ERROR_NONE;
361 video_meta_s *_video = (video_meta_s*)video;
363 if (_video->copyright != NULL) {
364 char *new_string = strdup(_video->copyright);
365 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
367 *copyright = new_string;
372 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_track_num(video_meta_h video, char **track_num)
383 int ret = MEDIA_CONTENT_ERROR_NONE;
384 video_meta_s *_video = (video_meta_s*)video;
386 if (_video->track_num != NULL) {
387 char *new_string = strdup(_video->track_num);
388 media_content_retvm_if(new_string == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
390 *track_num = new_string;
395 ret = MEDIA_CONTENT_ERROR_NONE;
397 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
398 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
404 int video_meta_get_bit_rate(video_meta_h video, int *bit_rate)
406 int ret = MEDIA_CONTENT_ERROR_NONE;
407 video_meta_s *_video = (video_meta_s*)video;
409 if (_video && bit_rate) {
410 *bit_rate = _video->bitrate;
411 ret = MEDIA_CONTENT_ERROR_NONE;
413 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
414 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
420 int video_meta_get_duration(video_meta_h video, int *duration)
422 int ret = MEDIA_CONTENT_ERROR_NONE;
423 video_meta_s *_video = (video_meta_s*)video;
425 if (_video && duration) {
426 *duration = _video->duration;
427 ret = MEDIA_CONTENT_ERROR_NONE;
429 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
430 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
436 int video_meta_get_width(video_meta_h video, int *width)
438 int ret = MEDIA_CONTENT_ERROR_NONE;
439 video_meta_s *_video = (video_meta_s*)video;
441 if (_video && width) {
442 *width = _video->width;
443 ret = MEDIA_CONTENT_ERROR_NONE;
445 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
446 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
452 int video_meta_get_height(video_meta_h video, int *height)
454 int ret = MEDIA_CONTENT_ERROR_NONE;
455 video_meta_s *_video = (video_meta_s*)video;
456 if (_video && height) {
457 *height = _video->height;
458 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_rotation(video_meta_h video, int *rotation)
469 int ret = MEDIA_CONTENT_ERROR_NONE;
470 video_meta_s *_video = (video_meta_s*)video;
471 if (_video && rotation) {
472 *rotation = _video->rotation;
473 ret = MEDIA_CONTENT_ERROR_NONE;
475 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
476 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
482 int video_meta_update_to_db(video_meta_h video)
484 media_content_warn("DEPRECATION WARNING: video_meta_update_to_db() is deprecated and will be removed from next release.");
485 video_meta_s *_video = (video_meta_s*)video;
487 if (_video == NULL) {
488 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
489 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
492 return MEDIA_CONTENT_ERROR_NONE;