From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- dom/media/gtest/MockMediaResource.h | 56 +++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 dom/media/gtest/MockMediaResource.h (limited to 'dom/media/gtest/MockMediaResource.h') diff --git a/dom/media/gtest/MockMediaResource.h b/dom/media/gtest/MockMediaResource.h new file mode 100644 index 0000000000..9ec2a884a0 --- /dev/null +++ b/dom/media/gtest/MockMediaResource.h @@ -0,0 +1,56 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef MOCK_MEDIA_RESOURCE_H_ +#define MOCK_MEDIA_RESOURCE_H_ + +#include "MediaResource.h" +#include "nsTArray.h" +#include "mozilla/Atomics.h" + +namespace mozilla { + +DDLoggedTypeDeclNameAndBase(MockMediaResource, MediaResource); + +class MockMediaResource : public MediaResource, + public DecoderDoctorLifeLogger { + public: + explicit MockMediaResource(const char* aFileName); + nsresult ReadAt(int64_t aOffset, char* aBuffer, uint32_t aCount, + uint32_t* aBytes) override; + // Data stored in file, caching recommended. + bool ShouldCacheReads() override { return true; } + void Pin() override {} + void Unpin() override {} + int64_t GetLength() override; + int64_t GetNextCachedData(int64_t aOffset) override; + int64_t GetCachedDataEnd(int64_t aOffset) override; + bool IsDataCachedToEndOfResource(int64_t aOffset) override { return false; } + nsresult ReadFromCache(char* aBuffer, int64_t aOffset, + uint32_t aCount) override { + uint32_t bytesRead = 0; + nsresult rv = ReadAt(aOffset, aBuffer, aCount, &bytesRead); + NS_ENSURE_SUCCESS(rv, rv); + return bytesRead == aCount ? NS_OK : NS_ERROR_FAILURE; + } + + nsresult Open(); + nsresult GetCachedRanges(MediaByteRangeSet& aRanges) override; + + void MockClearBufferedRanges(); + void MockAddBufferedRange(int64_t aStart, int64_t aEnd); + + protected: + virtual ~MockMediaResource(); + + private: + FILE* mFileHandle; + const char* mFileName; + MediaByteRangeSet mRanges; + Atomic mEntry; +}; + +} // namespace mozilla + +#endif -- cgit v1.2.3