Bug 1374774: P8. Use new SPSNALIterator class. r=gerald

MozReview-Commit-ID: 1nrvInxgugz

--HG--
extra : rebase_source : ac6782a20d882fa0c67db1214102dbd956eae019
This commit is contained in:
Jean-Yves Avenard 2017-06-23 02:08:41 +02:00
Родитель 0e9d876c18
Коммит 0392b68694
1 изменённых файлов: 3 добавлений и 38 удалений

Просмотреть файл

@ -727,46 +727,11 @@ H264::vui_parameters(BitReader& aBr, SPSData& aDest)
H264::DecodeSPSFromExtraData(const mozilla::MediaByteBuffer* aExtraData,
SPSData& aDest)
{
if (!HasSPS(aExtraData)) {
SPSNALIterator it(aExtraData);
if (!it) {
return false;
}
ByteReader reader(aExtraData);
if (!reader.Read(5)) {
return false;
}
uint8_t numSps = reader.ReadU8() & 0x1f;
if (!numSps) {
// No SPS.
return false;
}
if (numSps > 1) {
NS_WARNING("Multiple SPS, only decoding the first one");
}
uint16_t length = reader.ReadU16();
if (length == 0) {
return false;
}
if ((reader.PeekU8() & 0x1f) != H264_NAL_SPS) {
// Not a SPS NAL type.
return false;
}
const uint8_t* ptr = reader.Read(length);
if (!ptr) {
return false;
}
RefPtr<mozilla::MediaByteBuffer> sps = DecodeNALUnit(ptr, length);
if (!sps) {
return false;
}
return DecodeSPS(sps, aDest);
return (*it).GetSPSData(aDest);
}
/* static */ bool