docs: static CompressedTexture load(InputStream stream, int maxLength,
                                    boolean closeStream)
              throws IOException {
          byte[] data;
          try {
              data = maxLength >= 0
                  ? readBytes(stream, maxLength)
                  : readBytes(stream);
          } finally {
              if (closeStream) {
                  stream.close();
              }
          }
  
          Reader reader = new Reader(data);
  
          GVRCompressedTextureLoader valid = null;
          List<GVRCompressedTextureLoader> loaders = GVRCompressedTextureLoader
                  .getLoaders();
          synchronized (loaders) {
              for (GVRCompressedTextureLoader loader : loaders) {
                  if (loader.sniff(data, reader)) {
                      if (valid != null) {
                          throw new IllegalArgumentException(
                                  "Multiple loaders think this smells right");
                      }
                      valid = loader;
                  }
                  reader.reset();
              }
              if (valid == null) {
                  throw new IllegalArgumentException(
                          "No loader thinks this smells right");
              }
              return valid.parse(data, reader);
          }
      }