From f5832892c46104e1fa39eb03732f45b53c9346f7 Mon Sep 17 00:00:00 2001 From: Gilbok Lee Date: Thu, 21 Dec 2023 16:49:56 +0900 Subject: [PATCH 1/1] [0.6.290] Fix adaptive streaming not being prepared due to upgrade to GST 1.22.7 - decodebin3 ignores the stream select that has already been forwarded Change-Id: I78f9acad03a9dc872e6a87156a6c726eef5e06f8 --- packaging/libmm-player.spec | 2 +- src/include/mm_player_utils.h | 2 ++ src/mm_player_gst.c | 8 ++------ src/mm_player_utils.c | 8 ++++++++ 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/packaging/libmm-player.spec b/packaging/libmm-player.spec index aab3ada..451159f 100644 --- a/packaging/libmm-player.spec +++ b/packaging/libmm-player.spec @@ -1,6 +1,6 @@ Name: libmm-player Summary: Multimedia Framework Player Library -Version: 0.6.289 +Version: 0.6.290 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/include/mm_player_utils.h b/src/include/mm_player_utils.h index 6eba4df..126f972 100644 --- a/src/include/mm_player_utils.h +++ b/src/include/mm_player_utils.h @@ -282,6 +282,7 @@ #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") @@ -307,6 +308,7 @@ 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); diff --git a/src/mm_player_gst.c b/src/mm_player_gst.c index ec3a3b7..bdce524 100644 --- a/src/mm_player_gst.c +++ b/src/mm_player_gst.c @@ -950,11 +950,6 @@ __mmplayer_gst_check_useful_message(mmplayer_t *player, GstMessage *message) { if (MMPLAYER_USE_DECODEBIN(player)) break; /* drop msg */ - if (message->src == (GstObject *)player->pipeline->mainbin[MMPLAYER_M_ADAPTIVE_DEMUX].gst) { - LOGD("pipeline is still under construction for adaptive streaming"); - retval = TRUE; - break; - } if ((MMPLAYER_IS_HTTP_STREAMING(player)) && (!player->pipeline->mainbin[MMPLAYER_M_DEMUXED_S_BUFFER].gst) && @@ -977,7 +972,8 @@ __mmplayer_gst_check_useful_message(mmplayer_t *player, GstMessage *message) LOGD("GST_MESSAGE_STREAMS_SELECTED"); player->no_more_pad = TRUE; _mmplayer_set_reconfigure_state(player, FALSE); - _mmplayer_pipeline_complete(NULL, player); + if (!MMPLAYER_IS_ADAPTIVE_STREAMING(player)) + _mmplayer_pipeline_complete(NULL, player); retval = TRUE; break; } diff --git a/src/mm_player_utils.c b/src/mm_player_utils.c index b7acd33..d43a79e 100644 --- a/src/mm_player_utils.c +++ b/src/mm_player_utils.c @@ -134,6 +134,14 @@ _mmplayer_is_smooth_streaming(mmplayer_t *player) } gboolean +_mmplayer_is_adaptive_streaming(mmplayer_t *player) +{ + MMPLAYER_RETURN_VAL_IF_FAIL(player, FALSE); + return (_mmplayer_is_http_live_streaming(player) || _mmplayer_is_dash_streaming(player) + || _mmplayer_is_smooth_streaming(player)) ? TRUE : FALSE; +} + +gboolean _mmplayer_is_ms_buff_src(mmplayer_t *player) { MMPLAYER_RETURN_VAL_IF_FAIL(player, FALSE); -- 2.7.4