code: public synchronized void close() throws IOException {
          for (StreamingTrack streamingTrack : source) {
              writeFragment(createFragment(streamingTrack, sampleBuffers.get(streamingTrack)));
              streamingTrack.close();
          }
          writeFooter(createFooter());
      }
docs: Writes the remaining samples to file (even though the typical condition for wrapping up
  a segment have not yet been met) and writes the MovieFragmentRandomAccessBox.
  It does not close the sink!
  
  @throws IOException if writing to the underlying data sink fails
  @see MovieFragmentRandomAccessBox