/* state changed by asm callback */
if ( interrupted_by_asm )
{
- msg.union_type = MM_MSG_UNION_CODE;
- msg.code = player->sm.event_src;
+ msg.union_type = MM_MSG_UNION_CODE;
+ msg.code = player->sm.event_src;
MMPLAYER_POST_MSG( player, MM_MESSAGE_STATE_INTERRUPTED, &msg );
}
/* state changed by usecase */
}
else if (event_src == ASM_EVENT_SOURCE_RESOURCE_CONFLICT)
{
- /* can use video overlay simultaneously */
- /* video resource conflict */
if(player->pipeline->videobin)
{
- debug_log("video conflict but, can support multiple video");
- result = _mmplayer_pause((MMHandleType)player);
- cb_res = ASM_CB_RES_PAUSE;
+ debug_log("video conflict so, resource will be freed.");
+ result = _mmplayer_unrealize((MMHandleType)player);
+ cb_res = ASM_CB_RES_STOP;
}
else if (player->pipeline->audiobin)
{
MMPlayerGstElement* mainbin = NULL;
GstElement* decodebin2 = NULL;
GstElement* queue2 = NULL;
- GstElement* id3demux = NULL;
GstPad* sinkpad = NULL;
GstPad* qsrcpad= NULL;
gchar *caps_str = NULL;
queue2 = NULL;
}
- if (id3demux)
- {
- /* NOTE : Trying to dispose element id3demux, but it is in READY instead of the NULL state.
- * You need to explicitly set elements to the NULL state before
- * dropping the final reference, to allow them to clean up.
- */
- gst_element_set_state(id3demux, GST_STATE_NULL);
-
- /* And, it still has a parent "player".
- * You need to let the parent manage the object instead of unreffing the object directly.
- */
- gst_bin_remove (GST_BIN(mainbin[MMPLAYER_M_PIPE].gst), id3demux);
- gst_object_unref (id3demux);
- id3demux = NULL;
- }
-
if (decodebin2)
{
/* NOTE : Trying to dispose element queue0, but it is in READY instead of the NULL state.