[0.6.290] Fix adaptive streaming not being prepared due to upgrade to GST 1.22.7
[platform/core/multimedia/libmm-player.git] / src / include / mm_player_utils.h
index 6d09d1a..126f972 100644 (file)
 
 #define MMPLAYER_FREEIF(x) \
        do {    \
-               if (x) { \
-                       g_free(x); \
-                       x = NULL;       \
-               } \
+               g_clear_pointer(&x, g_free); \
        } while (0)
 
 #define MMPLAYER_GET_ATTRS(x_player) ((mmplayer_t *)x_player)->attrs
 
 /* command */
-#define MMPLAYER_CMD_LOCK(x_player)                          g_mutex_lock(&((mmplayer_t *)x_player)->cmd_lock)
-#define MMPLAYER_CMD_TRYLOCK(x_player)                       g_mutex_trylock(&((mmplayer_t *)x_player)->cmd_lock)
-#define MMPLAYER_CMD_UNLOCK(x_player)                        g_mutex_unlock(&((mmplayer_t *)x_player)->cmd_lock)
+#define MMPLAYER_CMD_LOCK_INIT(x_player)                     _mmplayer_cmd_lock_init((mmplayer_t *)x_player)
+#define MMPLAYER_CMD_LOCK(x_player)                          _mmplayer_cmd_lock((mmplayer_t *)x_player)
+#define MMPLAYER_CMD_TRYLOCK(x_player)                       _mmplayer_cmd_trylock((mmplayer_t *)x_player)
+#define MMPLAYER_CMD_UNLOCK(x_player)                        _mmplayer_cmd_unlock((mmplayer_t *)x_player)
+#define MMPLAYER_CMD_LOCK_DEINIT(x_player)                   _mmplayer_cmd_lock_deinit((mmplayer_t *)x_player)
 
 /* pipeline reconfigure */
 #define MMPLAYER_RECONFIGURE_LOCK(x_player)                  g_mutex_lock(&((mmplayer_t *)x_player)->reconfigure_lock)
 #define MMPLAYER_GENERATE_DOT_IF_ENABLED(x_player, x_name) \
        do { \
                if (x_player->ini.generate_dot) { \
-                       GST_DEBUG_BIN_TO_DOT_FILE(GST_BIN(player->pipeline->mainbin[MMPLAYER_M_PIPE].gst), \
+                       GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(GST_BIN(player->pipeline->mainbin[MMPLAYER_M_PIPE].gst), \
                        GST_DEBUG_GRAPH_SHOW_ALL, x_name); \
                } \
        } while (0)
 #define MMPLAYER_IS_LIVE_STREAMING(x_player) _mmplayer_is_live_streaming(x_player)
 #define MMPLAYER_IS_DASH_STREAMING(x_player) _mmplayer_is_dash_streaming(x_player)
 #define MMPLAYER_IS_SMOOTH_STREAMING(x_player) _mmplayer_is_smooth_streaming(x_player)
+#define MMPLAYER_IS_ADAPTIVE_STREAMING(x_player) _mmplayer_is_adaptive_streaming(x_player)
 #define MMPLAYER_IS_MS_BUFF_SRC(x_player) _mmplayer_is_ms_buff_src(x_player)
 
 #define MMPLAYER_URL_HAS_DASH_SUFFIX(x_player) _mmplayer_has_suffix(x_player, ".mpd")
 
 #define MMPLAYER_STREAM_TYPE_GET_NAME(type) _mmplayer_get_stream_type_name(type)
 
+#define MMPLAYER_USE_DECODEBIN(x_player) _mmplayer_use_decodebin(x_player)
+
 /*===========================================================================================
 |                                                                                                                                                                                      |
 |  GLOBAL FUNCTION PROTOTYPES                                                                                                                          |
@@ -306,9 +308,11 @@ gboolean _mmplayer_is_http_streaming(mmplayer_t *player);
 gboolean _mmplayer_is_http_live_streaming(mmplayer_t *player);
 gboolean _mmplayer_is_dash_streaming(mmplayer_t *player);
 gboolean _mmplayer_is_smooth_streaming(mmplayer_t *player);
+gboolean _mmplayer_is_adaptive_streaming(mmplayer_t *player);
 gboolean _mmplayer_is_ms_buff_src(mmplayer_t *player);
 gboolean _mmplayer_has_suffix(mmplayer_t *player, const gchar *suffix);
 gboolean _mmplayer_is_videosink_ready(mmplayer_t *player, int surface_type);
+gboolean _mmplayer_use_decodebin(mmplayer_t *player);
 
 gboolean _mmplayer_post_message(mmplayer_t *player, enum MMMessageType msgtype, MMMessageParamType *param);
 gboolean _mmplayer_dump_pipeline_state(mmplayer_t *player);
@@ -320,6 +324,12 @@ const char *_mmplayer_get_charset(const char *file_path);
 int _mmplayer_get_pixtype(unsigned int fourcc);
 bool _mmplayer_get_storage_info(const char *path, mmplayer_storage_info_t *storage_info);
 
+/* for command lock */
+void _mmplayer_cmd_lock_init(mmplayer_t *player);
+void _mmplayer_cmd_lock_deinit(mmplayer_t *player);
+void _mmplayer_cmd_lock(mmplayer_t *player);
+gboolean _mmplayer_cmd_trylock(mmplayer_t *player);
+void _mmplayer_cmd_unlock(mmplayer_t *player);
 media_format_mimetype_e _mmplayer_convert_audio_pcm_str_to_media_format_mime(const gchar *audio_pcm_str);
 
 #ifdef __cplusplus