allow using a raw array source instead of an InputStream

if disk cache is not enabled, no temporary file is used for decoding