Add feature check when create handle 24/319724/1 accepted/tizen/unified/20250219.114933 accepted/tizen/unified/x/20250221.101011
authorJeongmo Yang <jm80.yang@samsung.com>
Mon, 17 Feb 2025 04:50:58 +0000 (13:50 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Mon, 17 Feb 2025 04:50:58 +0000 (13:50 +0900)
[Version] 1.1.8
[Issue Type] Bug fix

Change-Id: Ib8a4e7a629bdd1203922b05d59c7ae97d9800bd6
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
packaging/capi-media-codec.spec
src/media_codec.c

index 7157f949268e46a2d38b03137694764555fefc67..6dfca187e46816a6d87b18358dd497378fd05c77 100644 (file)
@@ -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
index 162cb84c05bd185c4ed23b56edea4da442d27176..f63015471689becc95116ba276ed772e48591ae8 100644 (file)
 #include <media_codec_rm.h>
 #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..");