which happens in player or author, during playback or recording. This is to avoid
a leave to get transferred to upper layers, resulting in calling abort and crashing.
PendForExec();
OsclExecScheduler *sched = OsclExecScheduler::Current();
- sched->StartScheduler(mSyncSem);
+ error = OsclErrNone;
+ OSCL_TRY(error, sched->StartScheduler(mSyncSem));
+ OSCL_FIRST_CATCH_ANY(error,
+ // Some AO did a leave, log it
+ LOGE("Author Engine AO did a leave, error=%d", error)
+ );
+
LOGV("Delete Author");
PVAuthorEngineFactory::DeleteAuthor(mAuthor);
mAuthor = NULL;
LOGV("OsclActiveScheduler::Current");
OsclExecScheduler *sched = OsclExecScheduler::Current();
LOGV("StartScheduler");
- sched->StartScheduler(mSyncSem);
+ error = OsclErrNone;
+ OSCL_TRY(error, sched->StartScheduler(mSyncSem));
+ OSCL_FIRST_CATCH_ANY(error,
+ // Some AO did a leave, log it
+ LOGE("Player Engine AO did a leave, error=%d", error)
+ );
LOGV("DeletePlayer");
PVPlayerFactory::DeletePlayer(mPlayer);