diff options
| author | deva <deva> | 2005-10-13 11:56:10 +0000 | 
|---|---|---|
| committer | deva <deva> | 2005-10-13 11:56:10 +0000 | 
| commit | 38e4cbdb7aabf90d9a56ac95f1c8beca810c9436 (patch) | |
| tree | c98a9b239838b3900809ceaea98bab669b06d188 /src | |
| parent | 56632c4b32abc705f613475c3b78ae7a5dd4a3d2 (diff) | |
*** empty log message ***
Diffstat (limited to 'src')
| -rw-r--r-- | src/mov_encoder.cc | 8 | ||||
| -rw-r--r-- | src/mov_encoder_thread.cc | 14 | 
2 files changed, 8 insertions, 14 deletions
diff --git a/src/mov_encoder.cc b/src/mov_encoder.cc index a4d3483..6ac5876 100644 --- a/src/mov_encoder.cc +++ b/src/mov_encoder.cc @@ -73,8 +73,6 @@ MovEncoder::~MovEncoder()  void MovEncoder::thread_main()  {    info->info("MovEncoder::run"); -  //  static volatile int test = 0; -  //  int insize = 0;    // Run with slightly lower priority than MovEncoderWriter AND AudioEncoder    nice(2); @@ -103,8 +101,10 @@ void MovEncoder::thread_main()            *running = false;            // Kick them sleepy ones so they get the message. -          int threads = config->readInt("encoding_threads"); -          for(int cnt = 0; cnt < threads; cnt++) {/*sem_post(input_sem);*/} // FIXME: Kick the other encoders +          int threads = config->readInt("encoding_threads") - 1; // -1 cause we only need the others! +          for(int cnt = 0; cnt < threads; cnt++) { +            inputqueue->push(NULL); +          }          }          // Encode video diff --git a/src/mov_encoder_thread.cc b/src/mov_encoder_thread.cc index 6c54191..35f62a6 100644 --- a/src/mov_encoder_thread.cc +++ b/src/mov_encoder_thread.cc @@ -35,7 +35,6 @@ MovEncoderThread::MovEncoderThread(const char *clientip, const char *cpr, Info *    info->info("MovEncoderThread");    // Queue -  //  inputqueue = new ThreadSafeQueueFIFO<FrameVector*>();    inputqueue = new ThreadSafeQueueFIFO();    // Initialize read semaphore @@ -94,31 +93,26 @@ MovEncoderThread::~MovEncoderThread()    info->info("~MovEncoderThread");    // First we destroy the movie encoders -  //  for(int cnt = 0; cnt < threads; cnt++) sem_post(&in_sem); // Kick them    for(int cnt = 0; cnt < threads; cnt++) {      encs[cnt]->wait_stop();    // Wait for it to stop      delete encs[cnt];    // Delete it    } -    info->info("Deleted the movie encoders"); +    // Then we destroy the audio encoder    audioenc->wait_stop();  // Wait for it to stop.    delete audioenc;  // delete the audio encoder -      info->info("Deleted the audio encoder"); -  // Finally we destroy the writer. -  writer->running = false; -  // FIXME: Post writer +  // Finally we destroy the writer.    writer->wait_stop(); // Wait for it to stop.    delete writer;  // delete the writer (end thereby close the file) -    info->info("Deleted the writer"); -  // Destroy the semaphores. -  // sem_destroy(&in_sem); + +  // Destroy the semaphore.    sem_destroy(&read_sem);    info->info("~MovEncoderThread::done");  | 
