From: Jeongmo Yang Date: Mon, 17 Feb 2025 04:50:58 +0000 (+0900) Subject: Add feature check when create handle X-Git-Tag: accepted/tizen/unified/20250219.114933^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f1216c87c436949ef2d0390ab8ccfc7c2e326807;p=platform%2Fcore%2Fapi%2Fmediacodec.git Add feature check when create handle [Version] 1.1.8 [Issue Type] Bug fix Change-Id: Ib8a4e7a629bdd1203922b05d59c7ae97d9800bd6 Signed-off-by: Jeongmo Yang --- diff --git a/packaging/capi-media-codec.spec b/packaging/capi-media-codec.spec index 7157f94..6dfca18 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: 1.1.7 +Version: 1.1.8 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/media_codec.c b/src/media_codec.c index 162cb84..f630154 100644 --- a/src/media_codec.c +++ b/src/media_codec.c @@ -28,11 +28,16 @@ #include #endif + +#define MEDIACODEC_FEATURE_NAME "http://tizen.org/feature/multimedia.media_codec" + + static gboolean __mediacodec_empty_buffer_cb(media_packet_h pkt, void *user_data); static gboolean __mediacodec_fill_buffer_cb(media_packet_h pkt, void *user_data); static gboolean __mediacodec_eos_cb(void *user_data); static gboolean __mediacodec_buffer_status_cb(mediacodec_status_e status, void *user_data); + /* * Internal Implementation */ @@ -123,8 +128,23 @@ int __convert_error_code(int code, char *func_name) int mediacodec_create(mediacodec_h *mediacodec) { MEDIACODEC_INSTANCE_CHECK(mediacodec); + mediacodec_s *handle; - int ret; + int ret = 0; + bool is_supported = false; + + LOGI("check feature[%s]", MEDIACODEC_FEATURE_NAME); + + ret = system_info_get_platform_bool(MEDIACODEC_FEATURE_NAME, &is_supported); + if (ret != SYSTEM_INFO_ERROR_NONE) { + LOGE("get feature[%s] failed[0x%x]", MEDIACODEC_FEATURE_NAME, ret); + return MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE; + } + + if (!is_supported) { + LOGE("feature[%s] disabled", MEDIACODEC_FEATURE_NAME); + return MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE; + } LOGD("mediacodec_create..");