summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/encoder.cc2
-rw-r--r--src/libmplex_wrapper.cc3
-rw-r--r--src/libmplex_wrapper.h3
-rw-r--r--src/mainwindow.cc19
-rw-r--r--src/mainwindow.h3
-rw-r--r--src/mov_encoder_writer.cc16
-rw-r--r--src/multiplexer.cc13
-rw-r--r--src/server.cc2
8 files changed, 45 insertions, 16 deletions
diff --git a/src/encoder.cc b/src/encoder.cc
index eb8c444..e7b79bf 100644
--- a/src/encoder.cc
+++ b/src/encoder.cc
@@ -126,6 +126,8 @@ void Encoder::encode()
h.header.h_data.record = frame->record;
h.header.h_data.savestate = savestate;//NO_CHANGE;
h.header.h_data.mute = frame->mute;
+
+ savestate = NO_CHANGE; // only transmit once!
// if(freeze_request != freeze_value) freeze_value = freeze_request;
// if(shoot_request != shoot_value) shoot_value = shoot_request;
diff --git a/src/libmplex_wrapper.cc b/src/libmplex_wrapper.cc
index a93b4a9..4164ffe 100644
--- a/src/libmplex_wrapper.cc
+++ b/src/libmplex_wrapper.cc
@@ -28,6 +28,8 @@
#include "libmplex_wrapper.h"
#include "miav_config.h"
+#ifdef WITH_LIBMPLEX
+
#include <mjpeg_types.h>
#include <mjpeg_logging.h>
#include <mpegconsts.h>
@@ -480,3 +482,4 @@ int main (int argc, char* argv[])
}
#endif/*LIBMPLEX_WRAPPER_TEST*/
+#endif/*WITH_LIBMPLEX*/
diff --git a/src/libmplex_wrapper.h b/src/libmplex_wrapper.h
index 8591563..1be71a1 100644
--- a/src/libmplex_wrapper.h
+++ b/src/libmplex_wrapper.h
@@ -28,6 +28,8 @@
#ifndef __MIAV_LIBMPLEX_WRAPPER_H__
#define __MIAV_LIBMPLEX_WRAPPER_H__
+#ifdef WITH_LIBMPLEX
+
#include "info.h"
#include "file.h"
#include "threadsafe_queue_priority.h"
@@ -48,5 +50,6 @@ private:
ThreadSafeQueuePriority *video_queue;
ThreadSafeQueuePriority *audio_queue;
};
+#endif/*WITH_LIBMPLEX*/
#endif/*__MIAV_LIBMPLEX_WRAPPER_H__*/
diff --git a/src/mainwindow.cc b/src/mainwindow.cc
index 279fab6..1454b2e 100644
--- a/src/mainwindow.cc
+++ b/src/mainwindow.cc
@@ -193,17 +193,22 @@ void MainWindow::createGui()
// QGridLayout *g2 = new QGridLayout(1, NUM_HISTORY, -1);
// QVBoxLayout *g2 = new QVBoxLayout(this);
// g0->addLayout(g2, 0, 1);
- gb->setInsideMargin(25);
+
+ gb->setInsideMargin(HISTORY_LIST_MARGIN);
+ gb->setInsideSpacing(HISTORY_LIST_SPACING);
gb->setFlat(true);
g0->addWidget(gb, 0, 1);
- int output_width = this->width() -
+ int resolution_w = config->readInt("pixel_width");
+ int resolution_h = config->readInt("pixel_height");
+
+ int output_width = resolution_w - // this->width() -
(int)(BUTTON_WIDTH * unit) -
(gb->insideMargin() * 2) -
g1->margin() * 2 -
g0->margin() * 2;
- int output_height = this->height() -
+ int output_height = resolution_h - // this->height() -
(int)(3 * BUTTON_HEIGHT * unit) -
g1->margin() * 5 -
g0->margin() * 3;
@@ -264,7 +269,9 @@ void MainWindow::createGui()
int h = (int)(576.0f / (720.0f / ((float)BUTTON_WIDTH * unit)));
int window_height = config->readInt("pixel_height");
- this->num_history = (window_height - ((int)unit * BUTTON_HEIGHT)) / h;
+ this->num_history = (window_height -
+ ((int)unit * BUTTON_HEIGHT + HISTORY_LIST_SPACING ) -
+ (2 * HISTORY_LIST_MARGIN)) / (h + HISTORY_LIST_SPACING);
img_history = new (HistoryWidget*)[this->num_history];
for(unsigned int i = 0; i < num_history; i++) {
@@ -288,7 +295,7 @@ void MainWindow::createGui()
lbl_recordtime->setFixedWidth((int)(BUTTON_WIDTH * unit) +
(gb->insideMargin() * 2) +
g1->margin() * 2 +
- g0->margin() * 2);
+ g0->margin() * 2 + 100);
status->addWidget(lbl_recordtime, 0, TRUE);
// About button
@@ -321,6 +328,7 @@ QPushButton *MainWindow::createButton(char *caption, QWidget *parent, int width,
QPushButton *btn = new QPushButton(caption, parent);
btn->setFont( QFont( "Sans Serif", (int)(unit * height / 2), QFont::Bold ) );
btn->setFixedHeight((int)(unit * height));
+ btn->setFixedWidth((int)(unit * width));
return btn;
}
@@ -333,6 +341,7 @@ QLabel *MainWindow::createLabel(char *caption, int width, int height)
(int)(unit * height / 2),
(height>1)?QFont::Bold:QFont::Normal ) );
lbl->setFixedHeight((int)(unit * height));
+ // lbl->setFixedWidth((int)(unit * width));
return lbl;
}
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 56a5312..e95933d 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -58,6 +58,9 @@ using namespace std;
#define BUTTON_WIDTH 8
#define BUTTON_HEIGHT 2
+#define HISTORY_LIST_MARGIN 25
+#define HISTORY_LIST_SPACING 5
+
/**
* Textstrings
*/
diff --git a/src/mov_encoder_writer.cc b/src/mov_encoder_writer.cc
index e831b9e..1773527 100644
--- a/src/mov_encoder_writer.cc
+++ b/src/mov_encoder_writer.cc
@@ -117,19 +117,19 @@ void MovEncoderWriter::thread_main()
{
info->info("MovEncoderWriter::run");
- Multiplexer multiplexer(file, multicast,
- info, &running,
- video_queue,
- audio_queue);
- multiplexer.multiplex();
-
- /*
+#ifdef WITH_LIBMPLEX
LibMPlexWrapper mplex(info,
file,
video_queue,
audio_queue);
mplex.multiplex();
- */
+#else/*WITH_LIBMPLEX*/
+ Multiplexer multiplexer(file, multicast,
+ info, &running,
+ video_queue,
+ audio_queue);
+ multiplexer.multiplex();
+#endif/*WITH_LIBMPLEX*/
info->info("MovEncoderWriter::stop");
}
diff --git a/src/multiplexer.cc b/src/multiplexer.cc
index 0021c03..7a8b095 100644
--- a/src/multiplexer.cc
+++ b/src/multiplexer.cc
@@ -301,13 +301,22 @@ bool Multiplexer::packet()
//info->info("\t\tWritten[A]: %f, Written[V]: %f", written[TYPE_AUDIO], written[TYPE_VIDEO]);
StreamType type;
-
+ /*
// New switching mechanism
- if(written[TYPE_AUDIO] < written[TYPE_VIDEO] + 10) {
+ if(written[TYPE_AUDIO] < written[TYPE_VIDEO]) {
type = TYPE_AUDIO;
} else {
type = TYPE_VIDEO;
}
+ */
+
+ // Newer switching mechanism
+ if(queue[TYPE_AUDIO]->size() > queue[TYPE_VIDEO]->size()) {
+ type = TYPE_AUDIO;
+ } else {
+ type = TYPE_VIDEO;
+ }
+
if(!packet(type)) {
// Flush the other stream too...
diff --git a/src/server.cc b/src/server.cc
index fc06a1d..34aac7b 100644
--- a/src/server.cc
+++ b/src/server.cc
@@ -100,7 +100,7 @@ void newConnection(Socket *socket, Info *info)
}
}
- if(h.header.h_data.savestate) {
+ if(h.header.h_data.savestate != NO_CHANGE) {
savestate = h.header.h_data.savestate;
info->info("GOT SAVESTATE FROM NETWORK: %d", savestate );
}