Bug 1368837 - Implement SourceBufferResource::GetCachedDataEnd - r=cpearce
MediaResourceIndex caching requires GetCachedDataEnd and ReadFromCache.
Implementing SourceBufferResource::GetCachedDataEnd is trivial, as it's just a
buffer from 0 to GetLength(), so if the requested cached-data offset is inside
the buffer, we can just return the total length as known cached data.
MozReview-Commit-ID: 1DO0PzDnjQp
--- a/dom/media/mediasource/SourceBufferResource.h
+++ b/dom/media/mediasource/SourceBufferResource.h
@@ -79,18 +79,24 @@ public:
return mInputBuffer.GetOffset();
} else if (aOffset == GetLength()) {
return -1;
}
return aOffset;
}
int64_t GetCachedDataEnd(int64_t aOffset) override
{
- UNIMPLEMENTED();
- return -1;
+ MOZ_ASSERT(OnTaskQueue());
+ MOZ_ASSERT(aOffset >= 0);
+ if (uint64_t(aOffset) < mInputBuffer.GetOffset() ||
+ aOffset >= GetLength()) {
+ // aOffset is outside of the buffered range.
+ return aOffset;
+ }
+ return GetLength();
}
bool IsDataCachedToEndOfResource(int64_t aOffset) override { return false; }
bool IsSuspendedByCache() override
{
UNIMPLEMENTED();
return false;
}
bool IsSuspended() override