LOGD("ENTER event: %d", ev);
+ if (ev == MUSE_PLAYER_EVENT_TYPE_INTERRUPT)
+ __mplayer_remove_export_data(module, 0, true);
+
PLAYER_SEND_EVENT_MSG(api, ev, module);
}
+static void __mmplayer_flush_buffer(muse_player_event_e ev, muse_module_h module)
+{
+ LOGD("ENTER event: %d", ev);
+
+ __mplayer_remove_export_media_packet(module);
+}
+
static void __mplayer_error_cb(int code, void *user_data)
{
muse_player_cb_e api = MUSE_PLAYER_CB_EVENT;
__mplayer_video_stream_changed_cb, /* MUSE_PLAYER_EVENT_TYPE_VIDEO_STREAM_CHANGED */
__mplayer_default_callback, /* MUSE_PLAYER_EVENT_TYPE_RETURN_BUFFER */
NULL, /* MUSE_PLAYER_EVENT_TYPE_SERVICE_DISCONNECTED */
+ __mmplayer_flush_buffer, /* MUSE_PLAYER_EVENT_TYPE_INTERRUPT_STARTED */
};
static int __mplayer_set_callback_func(muse_player_handle_t *muse_player, muse_player_event_e type, bool set, void *user_data)
ret = PLAYER_ERROR_NONE;
}
}
+ legacy_player_set_callback(muse_player->player_handle, MUSE_PLAYER_EVENT_TYPE_INTERRUPT_STARTED,
+ __mplayer_callback_function[MUSE_PLAYER_EVENT_TYPE_INTERRUPT_STARTED], user_data);
}
LOGD("ret 0x%X", ret);
return PLAYER_ERROR_NONE;
}
+int _mplayer_unprepare(muse_module_h module)
+{
+ int ret = PLAYER_ERROR_NONE;
+ muse_player_handle_t *muse_player =
+ (muse_player_handle_t *)muse_server_ipc_get_handle(module);
+
+ /* decoder buffer need to be released first to destroy pipeline */
+ __mplayer_remove_export_media_packet(module);
+
+ ret = legacy_player_unprepare(muse_player->player_handle);
+
+ /* if the data exporting was blocked, the legacy player callback need to be cleared.
+ clearing legacy player cb is possible in idle state only */
+ if (!muse_player->export_video_data)
+ legacy_player_unset_callback(muse_player->player_handle, MUSE_PLAYER_EVENT_TYPE_MEDIA_PACKET_VIDEO_FRAME);
+
+ if (!muse_player->export_audio_data)
+ legacy_player_unset_callback(muse_player->player_handle, MUSE_PLAYER_EVENT_TYPE_MEDIA_PACKET_AUDIO_FRAME);
+
+ __mplayer_remove_export_data(module, 0, true);
+
+ return ret;
+}
+
int _mplayer_destroy(muse_module_h module)
{
int ret = PLAYER_ERROR_NONE;
{
int ret = PLAYER_ERROR_NONE;
muse_player_api_e api = MUSE_PLAYER_API_UNPREPARE;
- muse_player_handle_t *muse_player = NULL;
- bool unset_cb = false;
-
- muse_player = (muse_player_handle_t *)muse_server_ipc_get_handle(module);
- unset_cb = !muse_player->export_video_data;
-
- /* decoder buffer need to be released first to destroy pipeline */
- __mplayer_remove_export_media_packet(module);
-
- ret = legacy_player_unprepare(muse_player->player_handle);
-
- /* if the data exporting was blocked, the legacy player callback need to be cleared.
- clearing legacy player cb is possible in idle state only */
- if (unset_cb)
- legacy_player_unset_callback(muse_player->player_handle, MUSE_PLAYER_EVENT_TYPE_MEDIA_PACKET_VIDEO_FRAME);
-
- if (!muse_player->export_audio_data)
- legacy_player_unset_callback(muse_player->player_handle, MUSE_PLAYER_EVENT_TYPE_MEDIA_PACKET_AUDIO_FRAME);
-
- __mplayer_remove_export_data(module, 0, true);
+ ret = _mplayer_unprepare(module);
PLAYER_RETURN_MSG(api, ret, module);
return ret;