mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1110608 - Add CENC support to MoofParser; r=edwin
This commit is contained in:
parent
588e681cfe
commit
0b7ceea197
@ -126,6 +126,8 @@ MP4Sample* SampleIterator::GetNext()
|
||||
sample->crypto.plain_sizes.AppendElement(reader.ReadU16());
|
||||
sample->crypto.encrypted_sizes.AppendElement(reader.ReadU32());
|
||||
}
|
||||
reader.ReadArray(sample->crypto.iv, 16);
|
||||
sample->crypto.iv_size = 16;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -247,18 +247,16 @@ Moof::ParseTraf(Box& aBox, Trex& aTrex, Mdhd& aMdhd, Edts& aEdts)
|
||||
for (Box box = aBox.FirstChild(); box.IsAvailable(); box = box.Next()) {
|
||||
if (box.IsType("tfhd")) {
|
||||
tfhd = Tfhd(box, aTrex);
|
||||
} else if (box.IsType("tfdt")) {
|
||||
if (!aTrex.mTrackId || tfhd.mTrackId == aTrex.mTrackId) {
|
||||
} else if (!aTrex.mTrackId || tfhd.mTrackId == aTrex.mTrackId) {
|
||||
if (box.IsType("tfdt")) {
|
||||
tfdt = Tfdt(box);
|
||||
}
|
||||
} else if (box.IsType("trun")) {
|
||||
if (!aTrex.mTrackId || tfhd.mTrackId == aTrex.mTrackId) {
|
||||
} else if (box.IsType("trun")) {
|
||||
ParseTrun(box, tfhd, tfdt, aMdhd, aEdts);
|
||||
} else if (box.IsType("saiz")) {
|
||||
mSaizs.AppendElement(Saiz(box));
|
||||
} else if (box.IsType("saio")) {
|
||||
mSaios.AppendElement(Saio(box));
|
||||
}
|
||||
} else if (box.IsType("saiz")) {
|
||||
mSaizs.AppendElement(Saiz(box));
|
||||
} else if (box.IsType("saio")) {
|
||||
mSaios.AppendElement(Saio(box));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ MP4Demuxer::Init()
|
||||
nsRefPtr<Index> index = new Index(mPrivate->mAudio->exportIndex(),
|
||||
mSource, mAudioConfig.mTrackId);
|
||||
mPrivate->mIndexes.AppendElement(index);
|
||||
if (index->IsFragmented() && !mAudioConfig.crypto.valid) {
|
||||
if (index->IsFragmented()) {
|
||||
mPrivate->mAudioIterator = new SampleIterator(index);
|
||||
}
|
||||
} else if (!mPrivate->mVideo.get() && !strncmp(mimeType, "video/", 6)) {
|
||||
@ -124,7 +124,7 @@ MP4Demuxer::Init()
|
||||
nsRefPtr<Index> index = new Index(mPrivate->mVideo->exportIndex(),
|
||||
mSource, mVideoConfig.mTrackId);
|
||||
mPrivate->mIndexes.AppendElement(index);
|
||||
if (index->IsFragmented() && !mVideoConfig.crypto.valid) {
|
||||
if (index->IsFragmented()) {
|
||||
mPrivate->mVideoIterator = new SampleIterator(index);
|
||||
}
|
||||
}
|
||||
@ -219,7 +219,6 @@ MP4Demuxer::DemuxVideoSample()
|
||||
sample->prefix_data = mVideoConfig.annex_b;
|
||||
if (sample->crypto.valid) {
|
||||
sample->crypto.mode = mVideoConfig.crypto.mode;
|
||||
sample->crypto.iv_size = mVideoConfig.crypto.iv_size;
|
||||
sample->crypto.key.AppendElements(mVideoConfig.crypto.key);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user