summaryrefslogtreecommitdiff
path: root/server/mov_encoder_thread.cc
diff options
context:
space:
mode:
Diffstat (limited to 'server/mov_encoder_thread.cc')
-rw-r--r--server/mov_encoder_thread.cc43
1 files changed, 20 insertions, 23 deletions
diff --git a/server/mov_encoder_thread.cc b/server/mov_encoder_thread.cc
index c0b8b27..63bc3c6 100644
--- a/server/mov_encoder_thread.cc
+++ b/server/mov_encoder_thread.cc
@@ -28,11 +28,11 @@
#include "mov_encoder_thread.h"
#include <errno.h>
#include "miav_config.h"
+#include "info.h"
-MovEncoderThread::MovEncoderThread(const char *clientip, const char *cpr, Info *i)
+MovEncoderThread::MovEncoderThread(const char *clientip, const char *cpr)
{
- info = i;
- info->info("MovEncoderThread");
+ MIaV::info->info("MovEncoderThread");
// Queue
inputqueue = new ThreadSafeQueueFIFO();
@@ -40,19 +40,19 @@ MovEncoderThread::MovEncoderThread(const char *clientip, const char *cpr, Info *
// Initialize read semaphore
sem_init(&read_sem, 0, 0);
- video_output_queue = new ThreadSafeQueuePriority(info);
- audio_input_queue = new ThreadSafeQueuePriority(info);
- audio_output_queue = new ThreadSafeQueuePriority(info);
+ video_output_queue = new ThreadSafeQueuePriority();
+ audio_input_queue = new ThreadSafeQueuePriority();
+ audio_output_queue = new ThreadSafeQueuePriority();
- info->info("video_output_queue: 0x%x", video_output_queue);
- info->info("audio_input_queue: 0x%x", audio_input_queue);
- info->info("audio_output_queue: 0x%x", audio_output_queue);
+ MIaV::info->info("video_output_queue: 0x%x", video_output_queue);
+ MIaV::info->info("audio_input_queue: 0x%x", audio_input_queue);
+ MIaV::info->info("audio_output_queue: 0x%x", audio_output_queue);
block = new FrameVector();
num_frames_in_block = MIaV::config->readString("frame_sequence")->length();
- info->info("Frame sequence length %d", num_frames_in_block);
+ MIaV::info->info("Frame sequence length %d", num_frames_in_block);
threads = MIaV::config->readInt("encoding_threads");
@@ -65,23 +65,20 @@ MovEncoderThread::MovEncoderThread(const char *clientip, const char *cpr, Info *
MovEncoder *movenc = new MovEncoder(&movencodersrunning, &read_sem,
inputqueue,
video_output_queue,
- audio_input_queue,
- info);
+ audio_input_queue);
movenc->run();
encs.push_back(movenc);
}
// Create the audio encoder
audioenc = new AudioEncoder(audio_input_queue,
- audio_output_queue,
- info);
+ audio_output_queue);
audioenc->run();
// Create the multiplexer
writer = new MovEncoderWriter(clientip, cpr,
video_output_queue,
- audio_output_queue,
- info);
+ audio_output_queue);
writer->run();
frame_number = 0;
@@ -90,39 +87,39 @@ MovEncoderThread::MovEncoderThread(const char *clientip, const char *cpr, Info *
//#include <unistd.h>
MovEncoderThread::~MovEncoderThread()
{
- info->info("~MovEncoderThread");
+ MIaV::info->info("~MovEncoderThread");
// First we destroy the movie encoders
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");
+ MIaV::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");
+ MIaV::info->info("Deleted the audio encoder");
// 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");
+ MIaV::info->info("Deleted the writer");
// Destroy the semaphore.
sem_destroy(&read_sem);
- info->info("~MovEncoderThread::done");
+ MIaV::info->info("~MovEncoderThread::done");
}
static int output = 0;
void MovEncoderThread::encode(Frame* frame)
{
if(output % 250 == 0) // 25 * 24
- info->info("inputqueue: %d\tvideo_outputqueue: %d\taudio_inputqueue: %d\taudio_outputqueue: %d.",
+ MIaV::info->info("inputqueue: %d\tvideo_outputqueue: %d\taudio_inputqueue: %d\taudio_outputqueue: %d.",
inputqueue->size(),
video_output_queue->size(),
audio_input_queue->size(),
@@ -130,7 +127,7 @@ void MovEncoderThread::encode(Frame* frame)
output++;
if(frame == NULL) {
- info->info("MovEncoderThread::encode - NULL frame detected.");
+ MIaV::info->info("MovEncoderThread::encode - NULL frame detected.");
// Terminate
return;
}