Backed out changeset ddc1ce464361 (bug 1374774)

This commit is contained in:
Sebastian Hengst 2017-06-24 00:47:55 +02:00
Родитель 18f07bbb9d
Коммит 9d3e7b7424
1 изменённых файлов: 38 добавлений и 3 удалений

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

@ -727,11 +727,46 @@ H264::vui_parameters(BitReader& aBr, SPSData& aDest)
H264::DecodeSPSFromExtraData(const mozilla::MediaByteBuffer* aExtraData,
SPSData& aDest)
{
SPSNALIterator it(aExtraData);
if (!it) {
if (!HasSPS(aExtraData)) {
return false;
}
return (*it).GetSPSData(aDest);
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);
}
/* static */ bool