code: synchronized private void startFrameThreads() {
      if(!process)
        return;
      int requests = unassignedEncodeRequests.size();
      int frames = inactiveFrameThreads.size();
      frames = (requests <= frames) ? requests:frames;
      for(int i = 0; i < frames; i++) {
        FrameThread ft = inactiveFrameThreads.remove(0);
        Thread thread = new Thread(ft);
        frameThreadMap.put(ft, thread);
        thread.start();
      }
    }
docs: Start any available FrameThread objects encoding, so long as there are
  waiting BlockEncodeRequest objects.