Add new enum for codec role 98/280398/1 accepted/tizen/unified/20220907.040712
authorJeongmo Yang <jm80.yang@samsung.com>
Mon, 29 Aug 2022 12:20:20 +0000 (21:20 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Mon, 29 Aug 2022 12:20:20 +0000 (21:20 +0900)
[Version] 0.6.25
[Issue Type] Update

Change-Id: If817afcb91ab538079098a0320510873d951fa51
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
include/media_codec_ini.h
packaging/capi-media-codec.spec
src/media_codec_ini.c
src/media_codec_port.c

index ee05257..bdf22ba 100644 (file)
@@ -31,7 +31,6 @@ extern "C" {
 #define MEDIA_CODEC_INI_CNAME_LEN      16
 #define DEFAULT_PORT "GST_PORT"
 #define MEDIA_CODEC_MAX_CODEC_TYPE 100
-#define MEDIA_CODEC_MAX_CODEC_ROLE 4
 
 #define MEDICODEC_INI_MAX_ELEMENT 10
 #define MEDIA_CODEC_MAX_VIDEO_CODEC 100
@@ -53,6 +52,14 @@ typedef enum {
        CUSTOM_PORT,
 } port_mode;
 
+typedef enum {
+       MEDIA_CODEC_ROLE_HW_DECODER = 0,
+       MEDIA_CODEC_ROLE_HW_ENCODER,
+       MEDIA_CODEC_ROLE_SW_DECODER,
+       MEDIA_CODEC_ROLE_SW_ENCODER,
+       MEDIA_CODEC_ROLE_MAX
+} codec_role;
+
 struct _codec_info_t {
        gchar name[MEDIA_CODEC_INI_MAX_STRLEN];
        gchar mime[MEDIA_CODEC_INI_MAX_STRLEN];
@@ -61,7 +68,7 @@ struct _codec_info_t {
 
 struct _codec_t {
        gint codec_id;
-       codec_info_t codec_info[MEDIA_CODEC_MAX_CODEC_ROLE];
+       codec_info_t codec_info[MEDIA_CODEC_ROLE_MAX];
 };
 
 
index 2ab1b78..0cede0a 100644 (file)
@@ -4,7 +4,7 @@
 
 Name:       capi-media-codec
 Summary:    A Media Codec library in Tizen Native API
-Version:    0.6.24
+Version:    0.6.25
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index 35bc0b0..0978fe3 100644 (file)
@@ -341,13 +341,13 @@ int mc_ini_load(mc_ini_t *ini)
                        int len = strlen(cname);
                        ini->codec[i].codec_id =  general_codec_list[i].ctype;
                        snprintf(cname+len, CNAME_SIZE - len, "%s", ":hw_decoder");
-                       MEDIA_CODEC_INI_GET_STRING_FROM_LIST(dict, ini->codec[i].codec_info[0], cname, DEFAULT_VALUE);
+                       MEDIA_CODEC_INI_GET_STRING_FROM_LIST(dict, ini->codec[i].codec_info[MEDIA_CODEC_ROLE_HW_DECODER], cname, DEFAULT_VALUE);
                        snprintf(cname+len, CNAME_SIZE - len, "%s", ":hw_encoder");
-                       MEDIA_CODEC_INI_GET_STRING_FROM_LIST(dict, ini->codec[i].codec_info[1], cname, DEFAULT_VALUE);
+                       MEDIA_CODEC_INI_GET_STRING_FROM_LIST(dict, ini->codec[i].codec_info[MEDIA_CODEC_ROLE_HW_ENCODER], cname, DEFAULT_VALUE);
                        snprintf(cname+len, CNAME_SIZE - len, "%s", ":sw_decoder");
-                       MEDIA_CODEC_INI_GET_STRING_FROM_LIST(dict, ini->codec[i].codec_info[2], cname, DEFAULT_VALUE);
+                       MEDIA_CODEC_INI_GET_STRING_FROM_LIST(dict, ini->codec[i].codec_info[MEDIA_CODEC_ROLE_SW_DECODER], cname, DEFAULT_VALUE);
                        snprintf(cname+len, CNAME_SIZE - len, "%s", ":sw_encoder");
-                       MEDIA_CODEC_INI_GET_STRING_FROM_LIST(dict, ini->codec[i].codec_info[3], cname, DEFAULT_VALUE);
+                       MEDIA_CODEC_INI_GET_STRING_FROM_LIST(dict, ini->codec[i].codec_info[MEDIA_CODEC_ROLE_SW_ENCODER], cname, DEFAULT_VALUE);
                }
        } else {/* if dict is not available just fill the structure with default value */
 
@@ -355,21 +355,21 @@ int mc_ini_load(mc_ini_t *ini)
                /* general */
                snprintf(ini->port_name, sizeof(ini->port_name), "%s", DEFAULT_PORT);
                for (i = 0; i < ini->codec_list; i++) {
-                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[0].name,   DEFAULT_HW_DECODER_NAME);
-                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[0].mime,   DEFAULT_HW_DECODER_MIME);
-                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[0].format, DEFAULT_HW_DECODER_FORMAT);
+                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_HW_DECODER].name,   DEFAULT_HW_DECODER_NAME);
+                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_HW_DECODER].mime,   DEFAULT_HW_DECODER_MIME);
+                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_HW_DECODER].format, DEFAULT_HW_DECODER_FORMAT);
 
-                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[1].name,   DEFAULT_HW_ENCODER_NAME);
-                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[1].mime,   DEFAULT_HW_ENCODER_MIME);
-                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[1].format, DEFAULT_HW_ENCODER_FORMAT);
+                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_HW_ENCODER].name,   DEFAULT_HW_ENCODER_NAME);
+                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_HW_ENCODER].mime,   DEFAULT_HW_ENCODER_MIME);
+                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_HW_ENCODER].format, DEFAULT_HW_ENCODER_FORMAT);
 
-                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[2].name,   DEFAULT_SW_DECODER_NAME);
-                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[2].mime,   DEFAULT_SW_DECODER_MIME);
-                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[2].format, DEFAULT_SW_DECODER_FORMAT);
+                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_SW_DECODER].name,   DEFAULT_SW_DECODER_NAME);
+                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_SW_DECODER].mime,   DEFAULT_SW_DECODER_MIME);
+                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_SW_DECODER].format, DEFAULT_SW_DECODER_FORMAT);
 
-                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[3].name,   DEFAULT_SW_ENCODER_NAME);
-                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[3].mime,   DEFAULT_SW_ENCODER_MIME);
-                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[3].format, DEFAULT_SW_ENCODER_FORMAT);
+                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_SW_ENCODER].name,   DEFAULT_SW_ENCODER_NAME);
+                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_SW_ENCODER].mime,   DEFAULT_SW_ENCODER_MIME);
+                       MEDIA_CODEC_GET_DEFAULT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_SW_ENCODER].format, DEFAULT_SW_ENCODER_FORMAT);
                }
        }
 
@@ -388,13 +388,13 @@ int mc_ini_load(mc_ini_t *ini)
                int len = strlen(cname);
 
                snprintf(cname+len, CNAME_SIZE-len, "%s", ":hw_decoder");
-               MEDIA_CODEC_PRINT_LIST(ini->codec[i].codec_info[0], cname);
+               MEDIA_CODEC_PRINT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_HW_DECODER], cname);
                snprintf(cname+len, CNAME_SIZE-len, "%s", ":hw_encoder");
-               MEDIA_CODEC_PRINT_LIST(ini->codec[i].codec_info[1], cname);
+               MEDIA_CODEC_PRINT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_HW_ENCODER], cname);
                snprintf(cname+len, CNAME_SIZE-len, "%s", ":sw_decoder");
-               MEDIA_CODEC_PRINT_LIST(ini->codec[i].codec_info[2], cname);
+               MEDIA_CODEC_PRINT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_SW_DECODER], cname);
                snprintf(cname+len, CNAME_SIZE-len, "%s", ":sw_encoder");
-               MEDIA_CODEC_PRINT_LIST(ini->codec[i].codec_info[3], cname);
+               MEDIA_CODEC_PRINT_LIST(ini->codec[i].codec_info[MEDIA_CODEC_ROLE_SW_ENCODER], cname);
        }
 
        /* free dict as we got our own structure */
index 128a44a..68d5b78 100644 (file)
@@ -840,23 +840,23 @@ void _mc_create_decoder_map_from_ini(mc_handle_t *mediacodec)
        int indx = 0, count = 0;
        int codec_list = mediacodec->ini->codec_list;
        for (indx = 0; indx < codec_list; indx++) {
-               if (strcmp(mediacodec->ini->codec[indx].codec_info[0].name, "")) {
+               if (strcmp(mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_HW_DECODER].name, "")) {
                        mediacodec->decoder_map[count].id = mediacodec->ini->codec[indx].codec_id;
                        mediacodec->decoder_map[count].hardware = 1; /* hardware */
-                       mediacodec->decoder_map[count].type.factory_name = mediacodec->ini->codec[indx].codec_info[0].name;
-                       mediacodec->decoder_map[count].type.mime = mediacodec->ini->codec[indx].codec_info[0].mime;
+                       mediacodec->decoder_map[count].type.factory_name = mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_HW_DECODER].name;
+                       mediacodec->decoder_map[count].type.mime = mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_HW_DECODER].mime;
                        mediacodec->decoder_map[count].type.out_format =
-                               _mc_convert_media_format_str_to_int(mediacodec->ini->codec[indx].codec_info[0].format);
+                               _mc_convert_media_format_str_to_int(mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_HW_DECODER].format);
                        count++;
                }
 
-               if (strcmp(mediacodec->ini->codec[indx].codec_info[2].name, "")) {
+               if (strcmp(mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_SW_DECODER].name, "")) {
                        mediacodec->decoder_map[count].id = mediacodec->ini->codec[indx].codec_id;
                        mediacodec->decoder_map[count].hardware = 0; /* software */
-                       mediacodec->decoder_map[count].type.factory_name = mediacodec->ini->codec[indx].codec_info[2].name;
-                       mediacodec->decoder_map[count].type.mime = mediacodec->ini->codec[indx].codec_info[2].mime;
+                       mediacodec->decoder_map[count].type.factory_name = mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_SW_DECODER].name;
+                       mediacodec->decoder_map[count].type.mime = mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_SW_DECODER].mime;
                        mediacodec->decoder_map[count].type.out_format =
-                               _mc_convert_media_format_str_to_int(mediacodec->ini->codec[indx].codec_info[2].format);
+                               _mc_convert_media_format_str_to_int(mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_SW_DECODER].format);
                        count++;
                }
        }
@@ -871,23 +871,23 @@ void _mc_create_encoder_map_from_ini(mc_handle_t *mediacodec)
        int codec_list = mediacodec->ini->codec_list;
 
        for (indx = 0; indx < codec_list; indx++) {
-               if (strcmp(mediacodec->ini->codec[indx].codec_info[1].name, "")) {
+               if (strcmp(mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_HW_ENCODER].name, "")) {
                        mediacodec->encoder_map[count].id = mediacodec->ini->codec[indx].codec_id;
                        mediacodec->encoder_map[count].hardware = 1;
-                       mediacodec->encoder_map[count].type.factory_name = mediacodec->ini->codec[indx].codec_info[1].name;
-                       mediacodec->encoder_map[count].type.mime = mediacodec->ini->codec[indx].codec_info[1].mime;
+                       mediacodec->encoder_map[count].type.factory_name = mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_HW_ENCODER].name;
+                       mediacodec->encoder_map[count].type.mime = mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_HW_ENCODER].mime;
                        mediacodec->encoder_map[count].type.out_format =
-                               _mc_convert_media_format_str_to_int(mediacodec->ini->codec[indx].codec_info[1].format);
+                               _mc_convert_media_format_str_to_int(mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_HW_ENCODER].format);
                        count++;
                }
 
-               if (strcmp(mediacodec->ini->codec[indx].codec_info[3].name, "")) {
+               if (strcmp(mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_SW_ENCODER].name, "")) {
                        mediacodec->encoder_map[count].id = mediacodec->ini->codec[indx].codec_id;
                        mediacodec->encoder_map[count].hardware = 0;
-                       mediacodec->encoder_map[count].type.factory_name = mediacodec->ini->codec[indx].codec_info[3].name;
-                       mediacodec->encoder_map[count].type.mime = mediacodec->ini->codec[indx].codec_info[3].mime;
+                       mediacodec->encoder_map[count].type.factory_name = mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_SW_ENCODER].name;
+                       mediacodec->encoder_map[count].type.mime = mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_SW_ENCODER].mime;
                        mediacodec->encoder_map[count].type.out_format =
-                               _mc_convert_media_format_str_to_int(mediacodec->ini->codec[indx].codec_info[3].format);
+                               _mc_convert_media_format_str_to_int(mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_SW_ENCODER].format);
                        count++;
                }
        }
@@ -901,25 +901,25 @@ void _mc_create_codec_map_from_ini(mc_handle_t *mediacodec, mc_codec_spec_t *spe
        int codec_list = mediacodec->ini->codec_list;
 
        for (indx = 0; indx < codec_list; indx++) {
-               if (strcmp(mediacodec->ini->codec[indx].codec_info[0].name, "")) {
+               if (strcmp(mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_HW_DECODER].name, "")) {
                        spec_emul[count].codec_id = mediacodec->ini->codec[indx].codec_id;
                        spec_emul[count].codec_type =  MEDIACODEC_DECODER | MEDIACODEC_SUPPORT_TYPE_HW;
                        spec_emul[count].port_type =  MEDIACODEC_PORT_TYPE_GST;
                        count++;
                }
-               if (strcmp(mediacodec->ini->codec[indx].codec_info[1].name, "")) {
+               if (strcmp(mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_HW_ENCODER].name, "")) {
                        spec_emul[count].codec_id = mediacodec->ini->codec[indx].codec_id;
                        spec_emul[count].codec_type =  MEDIACODEC_ENCODER | MEDIACODEC_SUPPORT_TYPE_HW;
                        spec_emul[count].port_type =  MEDIACODEC_PORT_TYPE_GST;
                        count++;
                }
-               if (strcmp(mediacodec->ini->codec[indx].codec_info[2].name, "")) {
+               if (strcmp(mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_SW_DECODER].name, "")) {
                        spec_emul[count].codec_id = mediacodec->ini->codec[indx].codec_id;
                        spec_emul[count].codec_type =  MEDIACODEC_DECODER | MEDIACODEC_SUPPORT_TYPE_SW;
                        spec_emul[count].port_type =  MEDIACODEC_PORT_TYPE_GST;
                        count++;
                }
-               if (strcmp(mediacodec->ini->codec[indx].codec_info[3].name, "")) {
+               if (strcmp(mediacodec->ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_SW_ENCODER].name, "")) {
                        spec_emul[count].codec_id = mediacodec->ini->codec[indx].codec_id;
                        spec_emul[count].codec_type =  MEDIACODEC_ENCODER | MEDIACODEC_SUPPORT_TYPE_SW;
                        spec_emul[count].port_type =  MEDIACODEC_PORT_TYPE_GST;
@@ -938,25 +938,25 @@ void _mc_create_codec_map_from_ini_static(mc_ini_t *ini, mc_codec_spec_t *spec_e
        int codec_list = ini->codec_list;
 
        for (indx = 0; indx < codec_list; indx++) {
-               if (strcmp(ini->codec[indx].codec_info[0].name, "")) {
+               if (strcmp(ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_HW_DECODER].name, "")) {
                        spec_emul[count].codec_id = ini->codec[indx].codec_id;
                        spec_emul[count].codec_type =  MEDIACODEC_DECODER | MEDIACODEC_SUPPORT_TYPE_HW;
                        spec_emul[count].port_type =  MEDIACODEC_PORT_TYPE_GST;
                        count++;
                }
-               if (strcmp(ini->codec[indx].codec_info[1].name, "")) {
+               if (strcmp(ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_HW_ENCODER].name, "")) {
                        spec_emul[count].codec_id = ini->codec[indx].codec_id;
                        spec_emul[count].codec_type =  MEDIACODEC_ENCODER | MEDIACODEC_SUPPORT_TYPE_HW;
                        spec_emul[count].port_type =  MEDIACODEC_PORT_TYPE_GST;
                        count++;
                }
-               if (strcmp(ini->codec[indx].codec_info[2].name, "")) {
+               if (strcmp(ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_SW_DECODER].name, "")) {
                        spec_emul[count].codec_id = ini->codec[indx].codec_id;
                        spec_emul[count].codec_type =  MEDIACODEC_DECODER | MEDIACODEC_SUPPORT_TYPE_SW;
                        spec_emul[count].port_type =  MEDIACODEC_PORT_TYPE_GST;
                        count++;
                }
-               if (strcmp(ini->codec[indx].codec_info[3].name, "")) {
+               if (strcmp(ini->codec[indx].codec_info[MEDIA_CODEC_ROLE_SW_ENCODER].name, "")) {
                        spec_emul[count].codec_id = ini->codec[indx].codec_id;
                        spec_emul[count].codec_type =  MEDIACODEC_ENCODER | MEDIACODEC_SUPPORT_TYPE_SW;
                        spec_emul[count].port_type =  MEDIACODEC_PORT_TYPE_GST;