зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset 03e5a89726be (bug 1110608) for non-unified build failure on CLOSED TREE
This commit is contained in:
Родитель
6245216328
Коммит
afb9264894
|
@ -5,7 +5,6 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "MP4Reader.h"
|
||||
#include "MP4Stream.h"
|
||||
#include "MediaResource.h"
|
||||
#include "nsSize.h"
|
||||
#include "VideoUtils.h"
|
||||
|
@ -63,6 +62,63 @@ TrackTypeToStr(TrackType aTrack)
|
|||
}
|
||||
#endif
|
||||
|
||||
class MP4Stream : public Stream {
|
||||
public:
|
||||
|
||||
explicit MP4Stream(MediaResource* aResource)
|
||||
: mResource(aResource)
|
||||
{
|
||||
MOZ_COUNT_CTOR(MP4Stream);
|
||||
MOZ_ASSERT(aResource);
|
||||
}
|
||||
virtual ~MP4Stream() {
|
||||
MOZ_COUNT_DTOR(MP4Stream);
|
||||
}
|
||||
|
||||
virtual bool ReadAt(int64_t aOffset, void* aBuffer, size_t aCount,
|
||||
size_t* aBytesRead) MOZ_OVERRIDE
|
||||
{
|
||||
uint32_t sum = 0;
|
||||
uint32_t bytesRead = 0;
|
||||
do {
|
||||
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);
|
||||
if (NS_FAILED(rv)) {
|
||||
return false;
|
||||
}
|
||||
sum += bytesRead;
|
||||
} while (sum < aCount && bytesRead > 0);
|
||||
*aBytesRead = sum;
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual bool CachedReadAt(int64_t aOffset, void* aBuffer, size_t aCount,
|
||||
size_t* aBytesRead) MOZ_OVERRIDE
|
||||
{
|
||||
nsresult rv = mResource->ReadFromCache(reinterpret_cast<char*>(aBuffer),
|
||||
aOffset, aCount);
|
||||
if (NS_FAILED(rv)) {
|
||||
*aBytesRead = 0;
|
||||
return false;
|
||||
}
|
||||
*aBytesRead = aCount;
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual bool Length(int64_t* aSize) MOZ_OVERRIDE
|
||||
{
|
||||
if (mResource->GetLength() < 0)
|
||||
return false;
|
||||
*aSize = mResource->GetLength();
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
RefPtr<MediaResource> mResource;
|
||||
};
|
||||
|
||||
MP4Reader::MP4Reader(AbstractMediaDecoder* aDecoder)
|
||||
: MediaDecoderReader(aDecoder)
|
||||
, mAudio(MediaData::AUDIO_DATA, Preferences::GetUint("media.mp4-audio-decode-ahead", 2))
|
||||
|
|
|
@ -1,65 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim:set ts=2 sw=2 sts=2 et cindent: */
|
||||
/* 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/. */
|
||||
|
||||
#include "MP4Stream.h"
|
||||
#include "MediaResource.h"
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
MP4Stream::MP4Stream(MediaResource* aResource) : mResource(aResource)
|
||||
{
|
||||
MOZ_COUNT_CTOR(MP4Stream);
|
||||
MOZ_ASSERT(aResource);
|
||||
}
|
||||
|
||||
MP4Stream::~MP4Stream()
|
||||
{
|
||||
MOZ_COUNT_DTOR(MP4Stream);
|
||||
}
|
||||
|
||||
bool
|
||||
MP4Stream::ReadAt(int64_t aOffset, void* aBuffer, size_t aCount,
|
||||
size_t* aBytesRead)
|
||||
{
|
||||
uint32_t sum = 0;
|
||||
uint32_t bytesRead = 0;
|
||||
do {
|
||||
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);
|
||||
if (NS_FAILED(rv)) {
|
||||
return false;
|
||||
}
|
||||
sum += bytesRead;
|
||||
} while (sum < aCount && bytesRead > 0);
|
||||
*aBytesRead = sum;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
MP4Stream::CachedReadAt(int64_t aOffset, void* aBuffer, size_t aCount,
|
||||
size_t* aBytesRead)
|
||||
{
|
||||
nsresult rv = mResource->ReadFromCache(reinterpret_cast<char*>(aBuffer),
|
||||
aOffset, aCount);
|
||||
if (NS_FAILED(rv)) {
|
||||
*aBytesRead = 0;
|
||||
return false;
|
||||
}
|
||||
*aBytesRead = aCount;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
MP4Stream::Length(int64_t* aSize)
|
||||
{
|
||||
if (mResource->GetLength() < 0)
|
||||
return false;
|
||||
*aSize = mResource->GetLength();
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim:set ts=2 sw=2 sts=2 et cindent: */
|
||||
/* 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 MP4_STREAM_H_
|
||||
#define MP4_STREAM_H_
|
||||
|
||||
#include "mp4_demuxer/mp4_demuxer.h"
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
class MediaResource;
|
||||
|
||||
class MP4Stream : public mp4_demuxer::Stream {
|
||||
public:
|
||||
explicit MP4Stream(MediaResource* aResource);
|
||||
virtual ~MP4Stream();
|
||||
virtual bool ReadAt(int64_t aOffset, void* aBuffer, size_t aCount,
|
||||
size_t* aBytesRead) MOZ_OVERRIDE;
|
||||
virtual bool CachedReadAt(int64_t aOffset, void* aBuffer, size_t aCount,
|
||||
size_t* aBytesRead) MOZ_OVERRIDE;
|
||||
virtual bool Length(int64_t* aSize) MOZ_OVERRIDE;
|
||||
|
||||
private:
|
||||
nsRefPtr<MediaResource> mResource;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
|
@ -7,7 +7,6 @@
|
|||
EXPORTS += [
|
||||
'MP4Decoder.h',
|
||||
'MP4Reader.h',
|
||||
'MP4Stream.h',
|
||||
'PlatformDecoderModule.h',
|
||||
'SharedDecoderManager.h',
|
||||
]
|
||||
|
@ -15,7 +14,6 @@ EXPORTS += [
|
|||
UNIFIED_SOURCES += [
|
||||
'BlankDecoderModule.cpp',
|
||||
'MP4Decoder.cpp',
|
||||
'MP4Stream.cpp',
|
||||
'PlatformDecoderModule.cpp',
|
||||
'SharedDecoderManager.cpp',
|
||||
]
|
||||
|
|
|
@ -1,328 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* 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/. */
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "mp4_demuxer/mp4_demuxer.h"
|
||||
#include "MP4Stream.h"
|
||||
#include "mozilla/ArrayUtils.h"
|
||||
|
||||
using namespace mozilla;
|
||||
using namespace mozilla::dom;
|
||||
using namespace mp4_demuxer;
|
||||
|
||||
class MP4DemuxerBinding
|
||||
{
|
||||
public:
|
||||
NS_INLINE_DECL_THREADSAFE_REFCOUNTING(MP4DemuxerBinding);
|
||||
|
||||
nsRefPtr<MockMediaResource> resource;
|
||||
nsAutoPtr<MP4Demuxer> demuxer;
|
||||
|
||||
explicit MP4DemuxerBinding(const char* aFileName = "dash_dashinit.mp4")
|
||||
: resource(new MockMediaResource(aFileName))
|
||||
, demuxer(new MP4Demuxer(new MP4Stream(resource)))
|
||||
{
|
||||
EXPECT_EQ(NS_OK, resource->Open(nullptr));
|
||||
}
|
||||
|
||||
private:
|
||||
virtual ~MP4DemuxerBinding()
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
TEST(MP4Demuxer, Seek)
|
||||
{
|
||||
nsRefPtr<MP4DemuxerBinding> b = new MP4DemuxerBinding();
|
||||
MP4Demuxer* d = b->demuxer;
|
||||
|
||||
EXPECT_TRUE(d->Init());
|
||||
|
||||
nsTArray<nsAutoPtr<MP4Sample>> samples;
|
||||
MP4Sample* sample;
|
||||
while (!!(sample = d->DemuxVideoSample())) {
|
||||
samples.AppendElement(sample);
|
||||
if (samples.Length() >= 2) {
|
||||
EXPECT_LT(samples[samples.Length() - 2]->decode_timestamp,
|
||||
samples[samples.Length() - 1]->decode_timestamp);
|
||||
}
|
||||
}
|
||||
Microseconds keyFrame = 0;
|
||||
for (size_t i = 0; i < samples.Length(); i++) {
|
||||
if (samples[i]->is_sync_point) {
|
||||
keyFrame = samples[i]->decode_timestamp;
|
||||
}
|
||||
d->SeekVideo(samples[i]->composition_timestamp);
|
||||
sample = d->DemuxVideoSample();
|
||||
EXPECT_EQ(keyFrame, sample->decode_timestamp);
|
||||
}
|
||||
}
|
||||
|
||||
static nsCString
|
||||
ToCryptoString(CryptoSample& aCrypto)
|
||||
{
|
||||
nsCString res;
|
||||
if (aCrypto.valid) {
|
||||
res.AppendPrintf("%d %d ", aCrypto.mode, aCrypto.iv_size);
|
||||
for (size_t i = 0; i < aCrypto.key.Length(); i++) {
|
||||
res.AppendPrintf("%02x", aCrypto.key[i]);
|
||||
}
|
||||
res.Append(" ");
|
||||
for (size_t i = 0; i < aCrypto.iv.Length(); i++) {
|
||||
res.AppendPrintf("%02x", aCrypto.iv[i]);
|
||||
}
|
||||
EXPECT_EQ(aCrypto.plain_sizes.Length(), aCrypto.encrypted_sizes.Length());
|
||||
for (size_t i = 0; i < aCrypto.plain_sizes.Length(); i++) {
|
||||
res.AppendPrintf(" %d,%d", aCrypto.plain_sizes[i],
|
||||
aCrypto.encrypted_sizes[i]);
|
||||
}
|
||||
} else {
|
||||
res.Append("no crypto");
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
TEST(MP4Demuxer, CENC)
|
||||
{
|
||||
nsRefPtr<MP4DemuxerBinding> b = new MP4DemuxerBinding("short-cenc.mp4");
|
||||
MP4Demuxer* d = b->demuxer;
|
||||
|
||||
EXPECT_TRUE(d->Init());
|
||||
|
||||
const char* video[] = {
|
||||
"1 16 7e571d017e571d017e571d017e571d01 00000000000000000000000000000000 5,686 5,388",
|
||||
"1 16 7e571d017e571d017e571d017e571d01 00000000000000000000000000000044 5,717",
|
||||
"1 16 7e571d017e571d017e571d017e571d01 00000000000000000000000000000071 5,613",
|
||||
"1 16 7e571d017e571d017e571d017e571d01 00000000000000000000000000000098 5,196",
|
||||
"1 16 7e571d017e571d017e571d017e571d01 000000000000000000000000000000a5 5,213",
|
||||
"1 16 7e571d017e571d017e571d017e571d01 000000000000000000000000000000b3 5,213",
|
||||
"1 16 7e571d017e571d017e571d017e571d01 000000000000000000000000000000c1 5,384",
|
||||
"1 16 7e571d017e571d017e571d017e571d01 000000000000000000000000000000d9 5,256",
|
||||
"1 16 7e571d017e571d017e571d017e571d01 000000000000000000000000000000e9 5,245",
|
||||
"1 16 7e571d017e571d017e571d017e571d01 000000000000000000000000000000f9 5,251",
|
||||
};
|
||||
|
||||
MP4Sample* sample;
|
||||
size_t i = 0;
|
||||
while (!!(sample = d->DemuxVideoSample())) {
|
||||
nsCString text = ToCryptoString(sample->crypto);
|
||||
EXPECT_STREQ(video[i++], text.get());
|
||||
}
|
||||
EXPECT_EQ(ArrayLength(video), i);
|
||||
|
||||
const char* audio[] = {
|
||||
"1 16 7e571d027e571d027e571d027e571d02 00000000000000000000000000000000 0,371",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 00000000000000000000000000000018 0,372",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 00000000000000000000000000000030 0,371",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 00000000000000000000000000000048 0,372",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 00000000000000000000000000000060 0,371",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 00000000000000000000000000000078 0,372",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 00000000000000000000000000000090 0,371",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 000000000000000000000000000000a8 0,372",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 000000000000000000000000000000c0 0,371",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 000000000000000000000000000000d8 0,372",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 000000000000000000000000000000f0 0,371",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 00000000000000000000000000000108 0,372",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 00000000000000000000000000000120 0,371",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 00000000000000000000000000000138 0,372",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 00000000000000000000000000000150 0,371",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 00000000000000000000000000000168 0,372",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 00000000000000000000000000000180 0,371",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 00000000000000000000000000000198 0,372",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 000000000000000000000000000001b0 0,371",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 000000000000000000000000000001c8 0,372",
|
||||
"1 16 7e571d027e571d027e571d027e571d02 000000000000000000000000000001e0 0,371",
|
||||
};
|
||||
|
||||
i = 0;
|
||||
while (!!(sample = d->DemuxAudioSample())) {
|
||||
nsCString text = ToCryptoString(sample->crypto);
|
||||
EXPECT_STREQ(audio[i++], text.get());
|
||||
}
|
||||
EXPECT_EQ(ArrayLength(audio), i);
|
||||
}
|
||||
|
||||
TEST(MP4Demuxer, CENCFrag)
|
||||
{
|
||||
nsRefPtr<MP4DemuxerBinding> b = new MP4DemuxerBinding("gizmo-frag.mp4");
|
||||
MP4Demuxer* d = b->demuxer;
|
||||
|
||||
EXPECT_TRUE(d->Init());
|
||||
|
||||
const char* video[] = {
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000000 5,684 5,16980",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000450 5,1826",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000004c3 5,1215",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 0000000000000000000000000000050f 5,1302",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000561 5,939",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 0000000000000000000000000000059c 5,763",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000005cc 5,672",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000005f6 5,748",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000625 5,1025",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000666 5,730",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000694 5,897",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000006cd 5,643",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000006f6 5,556",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000719 5,527",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 0000000000000000000000000000073a 5,606",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000760 5,701",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 0000000000000000000000000000078c 5,531",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000007ae 5,562",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000007d2 5,576",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000007f6 5,514",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000817 5,404",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000831 5,635",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000859 5,433",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000875 5,478",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000893 5,474",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000008b1 5,462",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000008ce 5,473",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000008ec 5,437",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000908 5,418",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000923 5,475",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000941 5,23133",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000ee7 5,475",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000f05 5,402",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000f1f 5,415",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000f39 5,408",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000f53 5,442",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000f6f 5,385",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000f88 5,368",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000f9f 5,354",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000fb6 5,400",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000fcf 5,399",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000000fe8 5,1098",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 0000000000000000000000000000102d 5,1508",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 0000000000000000000000000000108c 5,1345",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000010e1 5,1945",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 0000000000000000000000000000115b 5,1824",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000011cd 5,2133",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000001253 5,2486",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000012ef 5,1739",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 0000000000000000000000000000135c 5,1836",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000013cf 5,2367",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000001463 5,2571",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000001504 5,3008",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000015c0 5,3255",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 0000000000000000000000000000168c 5,3225",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000001756 5,3118",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000001819 5,2407",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000018b0 5,2400",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 00000000000000000000000000001946 5,2158",
|
||||
"1 16 7e571d037e571d037e571d037e571d03 000000000000000000000000000019cd 5,2392",
|
||||
};
|
||||
|
||||
MP4Sample* sample;
|
||||
size_t i = 0;
|
||||
while (!!(sample = d->DemuxVideoSample())) {
|
||||
nsCString text = ToCryptoString(sample->crypto);
|
||||
EXPECT_STREQ(video[i++], text.get());
|
||||
}
|
||||
EXPECT_EQ(ArrayLength(video), i);
|
||||
|
||||
const char* audio[] = {
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000000 0,281",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000012 0,257",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000023 0,246",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000033 0,257",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000044 0,260",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000055 0,260",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000066 0,272",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000077 0,280",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000089 0,284",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000009b 0,290",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000000ae 0,278",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000000c0 0,268",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000000d1 0,307",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000000e5 0,290",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000000f8 0,304",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000010b 0,316",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000011f 0,308",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000133 0,301",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000146 0,318",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000015a 0,311",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000016e 0,303",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000181 0,325",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000196 0,334",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000001ab 0,344",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000001c1 0,344",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000001d7 0,387",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000001f0 0,396",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000209 0,368",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000220 0,373",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000238 0,425",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000253 0,428",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000026e 0,426",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000289 0,427",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000002a4 0,424",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000002bf 0,447",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000002db 0,446",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000002f7 0,442",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000313 0,444",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000032f 0,374",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000347 0,405",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000361 0,372",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000379 0,395",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000392 0,435",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000003ae 0,426",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000003c9 0,430",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000003e4 0,390",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000003fd 0,335",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000412 0,339",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000428 0,352",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000043e 0,364",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000455 0,398",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000046e 0,451",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000048b 0,448",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000004a7 0,436",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000004c3 0,424",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000004de 0,428",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000004f9 0,413",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000513 0,430",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000052e 0,450",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000054b 0,386",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000564 0,320",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000578 0,347",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000058e 0,382",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000005a6 0,437",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000005c2 0,387",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000005db 0,340",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000005f1 0,337",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000607 0,389",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000620 0,428",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000063b 0,426",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000656 0,446",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000672 0,456",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000068f 0,468",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000006ad 0,468",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000006cb 0,463",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000006e8 0,467",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000706 0,460",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000723 0,446",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000073f 0,453",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000075c 0,448",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000778 0,446",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000794 0,439",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000007b0 0,436",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000007cc 0,441",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000007e8 0,465",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000806 0,448",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000822 0,448",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000083e 0,469",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 0000000000000000000000000000085c 0,431",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000877 0,437",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 00000000000000000000000000000893 0,474",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000008b1 0,436",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000008cd 0,433",
|
||||
"1 16 7e571d047e571d047e571d047e571d04 000000000000000000000000000008e9 0,481",
|
||||
};
|
||||
|
||||
i = 0;
|
||||
while (!!(sample = d->DemuxAudioSample())) {
|
||||
nsCString text = ToCryptoString(sample->crypto);
|
||||
EXPECT_STREQ(audio[i++], text.get());
|
||||
}
|
||||
EXPECT_EQ(ArrayLength(audio), i);
|
||||
}
|
Двоичные данные
dom/media/gtest/dash_dashinit.mp4
Двоичные данные
dom/media/gtest/dash_dashinit.mp4
Двоичный файл не отображается.
|
@ -8,7 +8,6 @@ UNIFIED_SOURCES += [
|
|||
'MockMediaResource.cpp',
|
||||
'TestAudioCompactor.cpp',
|
||||
'TestGMPCrossOrigin.cpp',
|
||||
'TestMP4Demuxer.cpp',
|
||||
'TestMP4Reader.cpp',
|
||||
'TestTrackEncoder.cpp',
|
||||
'TestVideoSegment.cpp',
|
||||
|
@ -23,10 +22,7 @@ if CONFIG['MOZ_WEBM_ENCODER']:
|
|||
]
|
||||
|
||||
TEST_HARNESS_FILES.gtest += [
|
||||
'../test/gizmo-frag.mp4',
|
||||
'../test/gizmo.mp4',
|
||||
'../test/short-cenc.mp4',
|
||||
'dash_dashinit.mp4',
|
||||
'mediasource_test.mp4',
|
||||
'test.webm',
|
||||
]
|
||||
|
|
Двоичные данные
dom/media/test/gizmo-frag.mp4
Двоичные данные
dom/media/test/gizmo-frag.mp4
Двоичный файл не отображается.
Загрузка…
Ссылка в новой задаче