[v0.6.24] Disable webm fileformat (skip autoplugin select) 32/112732/1
authorGilbok Lee <gilbok.lee@samsung.com>
Wed, 25 Jan 2017 13:13:06 +0000 (22:13 +0900)
committerGilbok Lee <gilbok.lee@samsung.com>
Thu, 2 Feb 2017 11:03:59 +0000 (20:03 +0900)
Change-Id: I21c5a4acc6e7af77eb0131a0cba772191a398e35

src/mm_player_priv.c

index 6e52e0c..2403fdf 100644 (file)
@@ -10144,9 +10144,7 @@ GstCaps *caps, gpointer data)
 
        if ((!MMPLAYER_IS_WFD_STREAMING(player)) &&
                (!MMPLAYER_IS_RTSP_STREAMING(player)) &&
-               (g_strrstr(player->type, "audio/x-raw-int") ||
-               g_strrstr(player->type, "audio/webm") ||
-               g_strrstr(player->type, "video/webm"))) {
+               (g_strrstr(player->type, "audio/x-raw-int"))) {
                LOGE("not support media format\n");
 
                if (player->msg_posted == FALSE) {
@@ -11680,14 +11678,7 @@ GstCaps * caps,  gpointer data)
                /* set it directly because not sent by TAG */
                if (g_strrstr(caps_str, "mobile-xmf"))
                        mm_attrs_set_string_by_name(player->attrs, "content_audio_codec", "mobile-xmf");
-               if (g_strrstr(caps_str, "audio/webm")) {
-                       LOGD("webm is not supported");
-                       ret = FALSE;
-               }
                MMPLAYER_FREEIF(caps_str);
-       } else if (g_str_has_prefix(mime, "video/webm")) {
-               LOGD("webm is not supported");
-               ret = FALSE;
        } else if (g_str_has_prefix(mime, "video") && !player->ini.video_playback_supported) {
                MMMessageParamType msg_param;
                memset(&msg_param, 0, sizeof(MMMessageParamType));
@@ -11754,6 +11745,19 @@ GstCaps* caps, GstElementFactory* factory, gpointer data)
                }
        }
 
+       /* exclude webm format */
+       /* NOTE : MSL have to post MM_ERROR_PLAYER_NOT_SUPPORTED_FORMAT
+        * because webm format is not supportable.
+        * If webm is disabled in "autoplug-continue", there is no state change
+        * failure or error because the decodebin will expose the pad directly.
+        * It make MSL invoke _prepare_async_callback.
+        * So, we need to disable webm format in "autoplug-select" */
+       if (strstr(caps_str, "webm")) {
+               LOGW("webm is not supported");
+               result = GST_AUTOPLUG_SELECT_SKIP;
+               goto DONE;
+       }
+
        /* check factory class for filtering */
        /* NOTE : msl don't need to use image plugins.
         * So, those plugins should be skipped for error handling.