From 32d802f60f31826c649ee35cf4c2845bf2b55a32 Mon Sep 17 00:00:00 2001 From: Jeongmo Yang Date: Mon, 29 Aug 2022 21:20:20 +0900 Subject: [PATCH] Add new enum for codec role [Version] 0.6.25 [Issue Type] Update Change-Id: If817afcb91ab538079098a0320510873d951fa51 Signed-off-by: Jeongmo Yang --- include/media_codec_ini.h | 11 ++++++++-- packaging/capi-media-codec.spec | 2 +- src/media_codec_ini.c | 40 +++++++++++++++++----------------- src/media_codec_port.c | 48 ++++++++++++++++++++--------------------- 4 files changed, 54 insertions(+), 47 deletions(-) diff --git a/include/media_codec_ini.h b/include/media_codec_ini.h index ee05257..bdf22ba 100644 --- a/include/media_codec_ini.h +++ b/include/media_codec_ini.h @@ -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]; }; diff --git a/packaging/capi-media-codec.spec b/packaging/capi-media-codec.spec index 2ab1b78..0cede0a 100644 --- a/packaging/capi-media-codec.spec +++ b/packaging/capi-media-codec.spec @@ -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 diff --git a/src/media_codec_ini.c b/src/media_codec_ini.c index 35bc0b0..0978fe3 100644 --- a/src/media_codec_ini.c +++ b/src/media_codec_ini.c @@ -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 */ diff --git a/src/media_codec_port.c b/src/media_codec_port.c index 128a44a..68d5b78 100644 --- a/src/media_codec_port.c +++ b/src/media_codec_port.c @@ -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; -- 2.7.4