summaryrefslogtreecommitdiff
path: root/src/mov_encoder_thread.cc
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2014-05-28 15:05:57 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2014-05-28 15:05:57 +0200
commit0332e496347f6b563abb86d4ef9650bbd6ebc3e1 (patch)
tree74dadbe6e4f3216c8a3c8570e203aad0187febf3 /src/mov_encoder_thread.cc
parent8eb0759e2e8a5405b2dd9e6d72d3bd620b51bee4 (diff)
Port server to hugin.
Diffstat (limited to 'src/mov_encoder_thread.cc')
-rw-r--r--src/mov_encoder_thread.cc56
1 files changed, 28 insertions, 28 deletions
diff --git a/src/mov_encoder_thread.cc b/src/mov_encoder_thread.cc
index 2ff013d..77380d5 100644
--- a/src/mov_encoder_thread.cc
+++ b/src/mov_encoder_thread.cc
@@ -24,15 +24,17 @@
* along with MIaV; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-#include <config.h>
#include "mov_encoder_thread.h"
+
#include <errno.h>
+
+#include <hugin.hpp>
+
#include "miav_config.h"
-MovEncoderThread::MovEncoderThread(const char *clientip, const char *cpr, Info *i)
+MovEncoderThread::MovEncoderThread(const char *clientip, const char *cpr)
{
- info = i;
- info->info("MovEncoderThread");
+ DEBUG(mov, "MovEncoderThread");
// Queue
inputqueue = new ThreadSafeQueueFIFO();
@@ -40,19 +42,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);
+ INFO(mov, "video_output_queue: %p", video_output_queue);
+ INFO(mov, "audio_input_queue: %p", audio_input_queue);
+ INFO(mov, "audio_output_queue: %p", audio_output_queue);
block = new FrameVector();
num_frames_in_block = config->readString("frame_sequence")->length();
- info->info("Frame sequence length %d", num_frames_in_block);
+ INFO(mov, "Frame sequence length %d", num_frames_in_block);
threads = config->readInt("encoding_threads");
@@ -65,23 +67,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,47 +89,48 @@ MovEncoderThread::MovEncoderThread(const char *clientip, const char *cpr, Info *
//#include <unistd.h>
MovEncoderThread::~MovEncoderThread()
{
- info->info("~MovEncoderThread");
+ DEBUG(mov, "~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");
+ DEBUG(mov, "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");
+ DEBUG(mov, "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");
+ DEBUG(mov, "Deleted the writer");
// Destroy the semaphore.
sem_destroy(&read_sem);
- info->info("~MovEncoderThread::done");
+ DEBUG(mov, "~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.",
- inputqueue->size(),
- video_output_queue->size(),
- audio_input_queue->size(),
- audio_output_queue->size());
+ INFO(mov, "inputqueue: %d\tvideo_outputqueue: %d\taudio_inputqueue: %d\t"
+ "audio_outputqueue: %d.",
+ inputqueue->size(),
+ video_output_queue->size(),
+ audio_input_queue->size(),
+ audio_output_queue->size());
output++;
if(frame == NULL) {
- info->info("MovEncoderThread::encode - NULL frame detected.");
+ WARN(mov, "MovEncoderThread::encode - NULL frame detected.");
// Terminate
return;
}