[0.6.254] fix crash during gapless playback 78/272778/2 accepted/tizen/6.0/unified/20220325.133423 submit/tizen_6.0/20220324.075930
authorEunhye Choi <eunhae1.choi@samsung.com>
Thu, 24 Mar 2022 05:49:22 +0000 (14:49 +0900)
committerEunhye Choi <eunhae1.choi@samsung.com>
Thu, 24 Mar 2022 07:05:50 +0000 (16:05 +0900)
- uridecodebin includes all the elements
  except concat and sinkbin

Change-Id: Idbedaafb131ef99028e3095c33fef98572eeea2c

packaging/libmm-player.spec
src/include/mm_player_priv.h
src/mm_player_priv.c

index 03fc1c19bd510828663e3a0fd4485c113e132aae..9e5fbe040b01e727a3595f6541e399ceaa0cf8c0 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-player
 Summary:    Multimedia Framework Player Library
-Version:    0.6.253
+Version:    0.6.254
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index ebb3f879556b25be60d6ac085942f84bbec50245..4d9df970b6fcb95176ecbaea35074aec0f79bd01 100644 (file)
@@ -177,7 +177,6 @@ typedef enum {
        /* streaming plugin */
        MMPLAYER_M_MUXED_S_BUFFER,
        MMPLAYER_M_DEMUXED_S_BUFFER,
-       MMPLAYER_M_ID3DEMUX,
        MMPLAYER_M_ADAPTIVE_DEMUX,
 
        /* es buff src queue */
index 374d4b3fbdf2717a53ba9fef3452b878d49a805e..f881559774c8fa8c082f6ca3b361b623faf402b8 100644 (file)
@@ -744,11 +744,17 @@ __mmplayer_gapless_play_thread(gpointer data)
 
                mainbin = player->pipeline->mainbin;
 
-               MMPLAYER_RELEASE_ELEMENT(player, mainbin, MMPLAYER_M_MUXED_S_BUFFER);
-               MMPLAYER_RELEASE_ELEMENT(player, mainbin, MMPLAYER_M_ID3DEMUX);
-               MMPLAYER_RELEASE_ELEMENT(player, mainbin, MMPLAYER_M_AUTOPLUG);
-               MMPLAYER_RELEASE_ELEMENT(player, mainbin, MMPLAYER_M_TYPEFIND);
-               MMPLAYER_RELEASE_ELEMENT(player, mainbin, MMPLAYER_M_SRC);
+               if (MMPLAYER_USE_DECODEBIN(player)) {
+                       MMPLAYER_RELEASE_ELEMENT(player, mainbin, MMPLAYER_M_MUXED_S_BUFFER);
+                       MMPLAYER_RELEASE_ELEMENT(player, mainbin, MMPLAYER_M_AUTOPLUG); /* decodebin */
+                       MMPLAYER_RELEASE_ELEMENT(player, mainbin, MMPLAYER_M_TYPEFIND);
+                       MMPLAYER_RELEASE_ELEMENT(player, mainbin, MMPLAYER_M_SRC);
+               } else {
+                       MMPLAYER_RELEASE_ELEMENT(player, mainbin, MMPLAYER_M_AUTOPLUG); /* uridecodebin */
+                       mainbin[MMPLAYER_M_MUXED_S_BUFFER].gst = NULL;
+                       mainbin[MMPLAYER_M_TYPEFIND].gst = NULL;
+                       mainbin[MMPLAYER_M_SRC].gst = NULL;
+               }
 
                /* Initialize Player values */
                __mmplayer_initialize_gapless_play(player);