code: synchronized public boolean addRequest(BlockEncodeRequest ber) {
      //add request to the manager(requests are automatically removed when complete)
      process = true;
      boolean r = true;
      try {
        unassignedEncodeRequests.put(ber);
        synchronized(outstandingCountLock) {
        outstandingCount++;
      }
      startFrameThreads();
      }catch(InterruptedException e) {
        r = false;
        Thread.currentThread().interrupt();
      }
      return r;
    }
docs: Add a BlockEncodeRequest to the manager. This will immediately attempt
  to assign a request to an encoding thread(which may not occur if no
  threads are currently available). Requests are passed back to the
  currently set FLACEncoder object when finished and ready to be written
  to output.
  
  @param ber Block request to encode
  @return boolean true if block added, false if an error occured.