Null-check string pointers before reading.

Found to be a problem with Nikon D800's.
Mark capture & file read ffi functions as blocking, to allow for multi-threading.