code: public void start() {
      	synchronized(worker) {
      		//check scheduler
      		try {
      			//prevent duplicate starting
      			if (started) {
      				return;
      			}
  
      			if (scheduler == null) {
      				throw new IllegalArgumentException("Scheduler is not assigned");
      			}
  
      			this.txBytes = 0;
      			this.txPackets = 0;
              
      			//reset media time and sequence number
      			timestamp = this.initialOffset;
      			this.initialOffset = 0;
              
      			sn = 0;
  
      			//switch indicator that source has been started
      			started = true;
  
      			//just started component always synchronized as well
      			this.isSynchronized = true;
      			
      			if(mediaSink!=null)
      				mediaSink.start();
      			
      			//scheduler worker    
      			worker.reinit();
      			scheduler.submit(worker,worker.getQueueNumber());
      			
      			//started!
      			started();
      		} catch (Exception e) {
      			started = false;
      			failed(e);
      			logger.error(e);
      		}
      	}
      }
docs: (Non Java-doc).
  
  @see org.mobicents.media.MediaSource#start().