#define MEDIA_FORMAT_CAST(obj) ((media_format_s*)(obj))
+#define CHECK_BIT(x, y) (((x) >> (y)) & 0x01)
+
+#define CHECK_IS_AUDIO(x) \
+ (CHECK_BIT(x, 24) == 1 && CHECK_BIT(x, 25) == 0)
+
+#define CHECK_IS_VIDEO(x) \
+ (CHECK_BIT(x, 25) == 1 && CHECK_BIT(x, 24) == 0)
+
+#define CHECK_IS_TEXT(x) \
+ (CHECK_BIT(x, 25) == 1 && CHECK_BIT(x, 24) == 1)
+
+#define CHECK_IS_CONTAINER(x) CHECK_BIT(x, 26)
+
+#define CHECK_IS_ENCODED(x) (CHECK_BIT(x, 28) == 1)
+
+#define CHECK_IS_RAW(x) (CHECK_BIT(x, 29) == 1)
+
/**
* @brief Check whether given media format is for audio or not
* @since_tizen 2.3
*/
-#define MEDIA_FORMAT_IS_AUDIO(x_fmt) (MEDIA_FORMAT_CAST(x_fmt)->mimetype & MEDIA_FORMAT_AUDIO)
+#define MEDIA_FORMAT_IS_AUDIO(x_fmt) (CHECK_IS_AUDIO(MEDIA_FORMAT_CAST(x_fmt)->mimetype))
/**
* @brief Check whether given media format is for video or not
* @since_tizen 2.3
*/
-#define MEDIA_FORMAT_IS_VIDEO(x_fmt) (MEDIA_FORMAT_CAST(x_fmt)->mimetype & MEDIA_FORMAT_VIDEO)
+#define MEDIA_FORMAT_IS_VIDEO(x_fmt) (CHECK_IS_VIDEO(MEDIA_FORMAT_CAST(x_fmt)->mimetype))
/**
* @brief Check whether given media format is for text or not
* @since_tizen 2.3
*/
-#define MEDIA_FORMAT_IS_TEXT(x_fmt) (MEDIA_FORMAT_CAST(x_fmt)->mimetype & MEDIA_FORMAT_TEXT)
+#define MEDIA_FORMAT_IS_TEXT(x_fmt) (CHECK_IS_TEXT(MEDIA_FORMAT_CAST(x_fmt)->mimetype))
/**
* @brief Check whether given media format is for raw type or not
* @since_tizen 2.3
*/
-#define MEDIA_FORMAT_IS_RAW(x_fmt) (MEDIA_FORMAT_CAST(x_fmt)->mimetype & MEDIA_FORMAT_RAW)
+#define MEDIA_FORMAT_IS_RAW(x_fmt) (CHECK_IS_RAW(MEDIA_FORMAT_CAST(x_fmt)->mimetype))
/**
* @brief Check whether given media format is for encoded type or not
* @since_tizen 2.3
*/
-#define MEDIA_FORMAT_IS_ENCODED(x_fmt) (MEDIA_FORMAT_CAST(x_fmt)->mimetype & MEDIA_FORMAT_ENCODED)
+#define MEDIA_FORMAT_IS_ENCODED(x_fmt) (CHECK_IS_ENCODED(MEDIA_FORMAT_CAST(x_fmt)->mimetype))
/**
* @brief Gets the number of media format ref_count
*/
#define MEDIA_FORMAT_DEC_REFCOUNT_TEST(x_fmt) (g_atomic_int_dec_and_test(&(MEDIA_FORMAT_CAST(x_fmt))->ref_count))
-#define CHECK_BIT(x, y) (((x) >> (y)) & 0x01)
-
-#define CHECK_IS_AUDIO(x) \
- (CHECK_BIT(x, 24) == 1 && CHECK_BIT(x, 25) == 0)
-
-#define CHECK_IS_VIDEO(x) \
- (CHECK_BIT(x, 25) == 1 && CHECK_BIT(x, 24) == 0)
-
-#define CHECK_IS_TEXT(x) \
- (CHECK_BIT(x, 25) == 1 && CHECK_BIT(x, 24) == 1)
-
-#define CHECK_IS_CONTAINER(x) CHECK_BIT(x, 26)
/**
* @brief Media format for configuring video codec.
* @since_tizen 2.3
if (!formattype)
return MEDIA_FORMAT_ERROR_INVALID_PARAMETER;
- if (fmt_handle->mimetype & MEDIA_FORMAT_AUDIO)
+ if (CHECK_IS_AUDIO(fmt_handle->mimetype))
*formattype = MEDIA_FORMAT_AUDIO;
- else if (fmt_handle->mimetype & MEDIA_FORMAT_VIDEO)
+ else if (CHECK_IS_VIDEO(fmt_handle->mimetype))
*formattype = MEDIA_FORMAT_VIDEO;
- else if (fmt_handle->mimetype & MEDIA_FORMAT_CONTAINER)
+ else if (CHECK_IS_CONTAINER(fmt_handle->mimetype))
*formattype = MEDIA_FORMAT_CONTAINER;
- else if (fmt_handle->mimetype & MEDIA_FORMAT_TEXT)
+ else if (CHECK_IS_TEXT(fmt_handle->mimetype))
*formattype = MEDIA_FORMAT_TEXT;
else {
LOGE("The format handle is not for AUDIO / VIDEO / CONTAINER / TEXT..\n");
media_format_s *fmt_handle;
fmt_handle = (media_format_s *)fmt;
- if (!(fmt_handle->mimetype & MEDIA_FORMAT_CONTAINER)) {
+ if (!CHECK_IS_CONTAINER(fmt_handle->mimetype)) {
LOGE("The format handle is not for MEDIA_FORMAT_CONTAINER..\n");
return MEDIA_FORMAT_ERROR_INVALID_PARAMETER;
}