Output no longer frees AudioBufferList from datasource (it is assumed the caller if providing a global preallocated audio buffer list). Also added tweaks to make sure silence occurs on nil or NULL values