Don’t connect sources and sinks directly, use a pipeline to move data around.
Send metadata change on start.
Finish pipeline when an exception occurs.
Ignore EOF exceptions when identifying streams.
Split metadata into format and content metadata.
Use a single thread if a source/filter has only a single sink.
Add FLAC decoder filter.
Add filter that tracks the time.
Fix javadoc.
Add code comment.
Add logging.
Add more recognized encodings.
Add streaming audio source.
Add metadata stream parser and test case.
Include source/sink details in exceptions.
Add logging.
Rename original and copyright bit.
Add javadoc.
Add TestNG dependency.
Add controller interface.