mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 04:15:43 +00:00
Bug 1369326 - Make mp4_demuxer::ResourceStream use a MediaResourceIndex - r=cpearce
Access the MediaResource through a MediaResourceIndex, which brings caching reads (and therefore can avoid some of the repeated locking and IOs from consecutive read operations). MozReview-Commit-ID: Crk6ZgLWdw8 --HG-- extra : rebase_source : 9cc8c3577747829e8bd5931e9f48c782d6423fe6
This commit is contained in:
parent
64def1c9bb
commit
7e4d1255aa
@ -30,7 +30,7 @@ ResourceStream::ReadAt(int64_t aOffset, void* aBuffer, size_t aCount,
|
||||
uint64_t offset = aOffset + sum;
|
||||
char* buffer = reinterpret_cast<char*>(aBuffer) + sum;
|
||||
uint32_t toRead = aCount - sum;
|
||||
nsresult rv = mResource->ReadAt(offset, buffer, toRead, &bytesRead);
|
||||
nsresult rv = mResource.ReadAt(offset, buffer, toRead, &bytesRead);
|
||||
if (NS_FAILED(rv)) {
|
||||
return false;
|
||||
}
|
||||
@ -45,8 +45,8 @@ bool
|
||||
ResourceStream::CachedReadAt(int64_t aOffset, void* aBuffer, size_t aCount,
|
||||
size_t* aBytesRead)
|
||||
{
|
||||
nsresult rv = mResource->ReadFromCache(reinterpret_cast<char*>(aBuffer),
|
||||
aOffset, aCount);
|
||||
nsresult rv = mResource.GetResource()->ReadFromCache(
|
||||
reinterpret_cast<char*>(aBuffer), aOffset, aCount);
|
||||
if (NS_FAILED(rv)) {
|
||||
*aBytesRead = 0;
|
||||
return false;
|
||||
@ -58,9 +58,9 @@ ResourceStream::CachedReadAt(int64_t aOffset, void* aBuffer, size_t aCount,
|
||||
bool
|
||||
ResourceStream::Length(int64_t* aSize)
|
||||
{
|
||||
if (mResource->GetLength() < 0)
|
||||
if (mResource.GetLength() < 0)
|
||||
return false;
|
||||
*aSize = mResource->GetLength();
|
||||
*aSize = mResource.GetLength();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -25,13 +25,13 @@ public:
|
||||
|
||||
void Pin()
|
||||
{
|
||||
mResource->Pin();
|
||||
mResource.GetResource()->Pin();
|
||||
++mPinCount;
|
||||
}
|
||||
|
||||
void Unpin()
|
||||
{
|
||||
mResource->Unpin();
|
||||
mResource.GetResource()->Unpin();
|
||||
MOZ_ASSERT(mPinCount);
|
||||
--mPinCount;
|
||||
}
|
||||
@ -40,7 +40,7 @@ protected:
|
||||
virtual ~ResourceStream();
|
||||
|
||||
private:
|
||||
RefPtr<mozilla::MediaResource> mResource;
|
||||
mozilla::MediaResourceIndex mResource;
|
||||
uint32_t mPinCount;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user