Bug 1313497 - Use InvokeAsync with Storages in TrackBuffersManager - r?jya
MozReview-Commit-ID: IkpuSyFgPbP
--- a/dom/media/mediasource/TrackBuffersManager.cpp
+++ b/dom/media/mediasource/TrackBuffersManager.cpp
@@ -116,26 +116,24 @@ RefPtr<TrackBuffersManager::AppendPromis
TrackBuffersManager::AppendData(MediaByteBuffer* aData,
const SourceBufferAttributes& aAttributes)
{
MOZ_ASSERT(NS_IsMainThread());
MSE_DEBUG("Appending %lld bytes", aData->Length());
mEnded = false;
- RefPtr<MediaByteBuffer> buffer = aData;
-
- return InvokeAsync(GetTaskQueue(), this,
- __func__, &TrackBuffersManager::DoAppendData,
- buffer, aAttributes);
+ return InvokeAsync<RefPtr<MediaByteBuffer>, SourceBufferAttributes&&>(
+ GetTaskQueue(), this, __func__,
+ &TrackBuffersManager::DoAppendData, aData, aAttributes);
}
RefPtr<TrackBuffersManager::AppendPromise>
-TrackBuffersManager::DoAppendData(RefPtr<MediaByteBuffer> aData,
- SourceBufferAttributes aAttributes)
+TrackBuffersManager::DoAppendData(MediaByteBuffer* aData,
+ const SourceBufferAttributes& aAttributes)
{
RefPtr<AppendBufferTask> task = new AppendBufferTask(aData, aAttributes);
RefPtr<AppendPromise> p = task->mPromise.Ensure(__func__);
QueueTask(task);
return p;
}
--- a/dom/media/mediasource/TrackBuffersManager.h
+++ b/dom/media/mediasource/TrackBuffersManager.h
@@ -168,18 +168,18 @@ public:
private:
typedef MozPromise<bool, MediaResult, /* IsExclusive = */ true> CodedFrameProcessingPromise;
// for MediaSourceDemuxer::GetMozDebugReaderData
friend class MediaSourceDemuxer;
~TrackBuffersManager();
// All following functions run on the taskqueue.
- RefPtr<AppendPromise> DoAppendData(RefPtr<MediaByteBuffer> aData,
- SourceBufferAttributes aAttributes);
+ RefPtr<AppendPromise> DoAppendData(MediaByteBuffer* aData,
+ const SourceBufferAttributes& aAttributes);
void ScheduleSegmentParserLoop();
void SegmentParserLoop();
void InitializationSegmentReceived();
void ShutdownDemuxers();
void CreateDemuxerforMIMEType();
void ResetDemuxingState();
void NeedMoreData();
void RejectAppend(const MediaResult& aRejectValue, const char* aName);