Bug 1264694: [MSE] P3. Remove no longer necessay methods. r=jwwang

P2 let all tasks run until completion, as such we don't need to deal with interrupted tasks anymore.

MozReview-Commit-ID: 45lYcIGk2ce

--HG--
extra : rebase_source : db9c8db1b3f1d51d57ad090fdeb2cad6682de2be
This commit is contained in:
Jean-Yves Avenard 2016-05-16 21:14:28 +08:00
Родитель 62469ee531
Коммит a240a3d77e
2 изменённых файлов: 4 добавлений и 39 удалений

Просмотреть файл

@ -111,7 +111,6 @@ TrackBuffersManager::TrackBuffersManager(MediaSourceDecoder* aParentDecoder,
TrackBuffersManager::~TrackBuffersManager()
{
CancelAllTasks();
ShutdownDemuxers();
}
@ -213,43 +212,6 @@ TrackBuffersManager::ProcessTasks()
}
}
// A PromiseHolder will assert upon destruction if it has a pending promise
// that hasn't been completed. It is possible that a task didn't get processed
// due to the owning SourceBuffer having shutdown.
// We resolve/reject all pending promises and remove all pending tasks from the
// queue.
void
TrackBuffersManager::CancelAllTasks()
{
typedef SourceBufferTask::Type Type;
if (mCurrentTask) {
mQueue.Push(mCurrentTask);
mCurrentTask = nullptr;
}
RefPtr<SourceBufferTask> task;
while ((task = mQueue.Pop())) {
switch (task->GetType()) {
case Type::AppendBuffer:
task->As<AppendBufferTask>()->mPromise.RejectIfExists(NS_ERROR_ABORT, __func__);
break;
case Type::RangeRemoval:
task->As<RangeRemovalTask>()->mPromise.ResolveIfExists(false, __func__);
break;
case Type::EvictData:
break;
case Type::Abort:
// not handled yet, and probably never.
break;
case Type::Reset:
break;
default:
NS_WARNING("Invalid Task");
}
}
}
// The MSE spec requires that we abort the current SegmentParserLoop
// which is then followed by a call to ResetParserState.
// However due to our asynchronous design this causes inherent difficulties.

Просмотреть файл

@ -35,6 +35,10 @@ public:
SourceBufferTaskQueue()
: mMonitor("SourceBufferTaskQueue")
{}
~SourceBufferTaskQueue()
{
MOZ_ASSERT(mQueue.IsEmpty(), "All tasks must have been processed");
}
void Push(SourceBufferTask* aTask)
{
@ -380,7 +384,6 @@ private:
SourceBufferTaskQueue mQueue;
void QueueTask(SourceBufferTask* aTask);
void ProcessTasks();
void CancelAllTasks();
// Set if the TrackBuffersManager is currently processing a task.
// At this stage, this task is always a AppendBufferTask.
RefPtr<SourceBufferTask> mCurrentTask;