Code clean up
[platform/core/api/mediacodec.git] / include / media_codec_ini.h
1 /*
2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3 *
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
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
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.
15 */
16
17 #ifndef __TIZEN_MEDIA_CODEC_INI_H__
18 #define __TIZEN_MEDIA_CODEC_INI_H__
19
20 #include <glib.h>
21 #include <mm_types.h>
22 #include <media_codec.h>
23
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28
29 #define MEDIA_CODEC_INI_DEFAULT_PATH   SYSCONFDIR"/multimedia/mmfw_media_codec.ini"
30 #define MEDIA_CODEC_INI_MAX_STRLEN     256
31 #define DEFAULT_PORT "GST_PORT"
32 #define MEDIA_CODEC_MAX_CODEC_TYPE 100
33 #define MEDIA_CODEC_MAX_CODEC_ROLE 4
34
35 #define MEDICODEC_INI_MAX_ELEMENT 10
36 #define MEDIA_CODEC_MAX_VIDEO_CODEC 100
37 #define MEDIA_CODEC_MAX_AUDIO_CODEC 100
38
39 typedef struct _codec_list_t codec_list_t;
40 typedef struct _codec_info_t codec_info_t;
41 typedef struct _codec_t codec_t;
42 typedef struct _mc_ini_t mc_ini_t;
43
44 struct _codec_list_t {
45         gchar cname[MEDIA_CODEC_INI_MAX_STRLEN];
46         mediacodec_codec_type_e ctype;
47 };
48
49 typedef enum {
50         GST_PORT = 0,
51         FFMPEG_PORT,
52         CUSTOM_PORT,
53 } port_mode;
54
55 struct _codec_info_t {
56         gchar name[MEDIA_CODEC_INI_MAX_STRLEN];
57         gchar mime[MEDIA_CODEC_INI_MAX_STRLEN];
58         gchar format[MEDIA_CODEC_INI_MAX_STRLEN];
59 };
60
61 struct _codec_t {
62         gint codec_id;
63         codec_info_t codec_info[MEDIA_CODEC_MAX_CODEC_ROLE];
64 };
65
66
67 /* @ mark means the item has tested */
68 struct _mc_ini_t {
69         gboolean loaded;
70         gint codec_list;
71         gint num_supported_codecs;
72         port_mode port_type;
73         /* general */
74         gchar port_name[MEDIA_CODEC_INI_MAX_STRLEN];
75         codec_t  codec[MEDIA_CODEC_MAX_CODEC_TYPE];
76 };
77
78 /*Default sink ini values*/
79 /* General*/
80
81 /* NOTE : following content should be same with above default values */
82 /* FIXIT : need smarter way to generate default ini file. */
83 /* FIXIT : finally, it should be an external file */
84 #define MEDIA_CODEC_DEFAULT_INI \
85 "\
86 [general] \n\
87 \n\
88 ;Add general config parameters here\n\
89 \n\
90 \n\
91 \n\
92 [port_in_use] \n\
93 \n\
94 ;media_codec_port = GST_PORT \n\
95 ;media_codec_port = FFMPEG_PORT \n\
96 ;media_codec_port = CUSTOM_PORT \n\
97 media_codec_port = GST_PORT \n\
98 \n\
99 [gst_port] \n\
100 \n\
101 ;Add gst port specific config paramters here\n\
102 \n\
103 \n\
104 [custom_port] \n\
105 \n\
106 ;Add custom port specific config paramters here\n\
107 \n\
108 \n\
109 \n\
110 "
111
112 extern mc_ini_t mc_ini;
113
114 int mc_ini_load(mc_ini_t *ini);
115 media_format_mimetype_e _mc_convert_media_format_str_to_int(char *sformat);
116
117
118 #ifdef __cplusplus
119 }
120 #endif
121 #endif /*__TIZEN_MEDIA_CODEC_INI_H__*/