public override void decode(MP4InputStream inStream) { configurationVersion = inStream.read(); profile = inStream.read(); profileCompatibility = (byte)inStream.read(); level = inStream.read(); //6 bits reserved, 2 bits 'length size minus one' lengthSize = (inStream.read() & 3) + 1; int len; //3 bits reserved, 5 bits number of sequence parameter sets int sequenceParameterSets = inStream.read() & 31; sequenceParameterSetNALUnit = new byte[sequenceParameterSets][]; for (int i = 0; i < sequenceParameterSets; i++) { len = (int)inStream.readBytes(2); sequenceParameterSetNALUnit[i] = inStream.readByteArray(len); } int pictureParameterSets = inStream.read(); pictureParameterSetNALUnit = new byte[pictureParameterSets][]; for (int i = 0; i < pictureParameterSets; i++) { len = (int)inStream.readBytes(2); pictureParameterSetNALUnit[i] = inStream.readByteArray(len); } }