summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordeva <deva>2005-07-28 15:09:52 +0000
committerdeva <deva>2005-07-28 15:09:52 +0000
commitc1e99b4951bd5e376cfab14cb6870869e60b91a2 (patch)
tree694e64f8f91149044e257e05df7f4de209a4720d
parent6be08a50e748fbccd05a0194a65b2721b78c1b76 (diff)
*** empty log message ***
-rw-r--r--src/Makefile.am2
-rw-r--r--src/aboutwindow.cc16
-rw-r--r--src/aboutwindow.h2
-rw-r--r--src/camera.h2
-rw-r--r--src/config.h33
-rw-r--r--src/cprquerydialog.h10
-rw-r--r--src/debug.h2
-rw-r--r--src/decoder.h2
-rw-r--r--src/dv.h2
-rw-r--r--src/dv1394.h2
-rw-r--r--src/encoder.h2
-rw-r--r--src/file.h2
-rw-r--r--src/frame.h2
-rw-r--r--src/historywidget.h2
-rw-r--r--src/img_encoder.cc126
-rw-r--r--src/img_encoder.h16
-rw-r--r--src/info.h2
-rw-r--r--src/info_console.h2
-rw-r--r--src/info_gui.h2
-rw-r--r--src/jpeg_mem_dest.cc137
-rw-r--r--src/jpeg_mem_dest.h39
-rw-r--r--src/libfame_wrapper.h2
-rw-r--r--src/liblame_wrapper.h2
-rw-r--r--src/mainwindow.h2
-rw-r--r--src/messagebox.h2
-rw-r--r--src/miav.h2
-rw-r--r--src/miav_config.h2
-rw-r--r--src/miav_daemon.h2
-rw-r--r--src/mov_encoder.h5
-rw-r--r--src/mov_encoder_thread.h2
-rw-r--r--src/mov_encoder_writer.h2
-rw-r--r--src/network.h2
-rw-r--r--src/package.h2
-rw-r--r--src/player.h2
-rw-r--r--src/queue.h2
-rw-r--r--src/server_status.h2
-rw-r--r--src/socket.h2
-rw-r--r--src/thread.h2
-rw-r--r--src/util.h2
-rw-r--r--src/videowidget.h2
40 files changed, 266 insertions, 180 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 2f4c151..f27b1dc 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -20,6 +20,7 @@ miav_SOURCES = $(shell if [ $QT_CXXFLAGS ] ; then ../tools/MocList cc; fi ) \
info.cc \
info_console.cc \
info_gui.cc \
+ jpeg_mem_dest.cc \
libfame_wrapper.cc \
liblame_wrapper.cc \
mainwindow.cc \
@@ -56,6 +57,7 @@ EXTRA_DIST = \
info.h \
info_console.h \
info_gui.h \
+ jpeg_mem_dest.h \
libfame_wrapper.h \
liblame_wrapper.h \
mainwindow.h \
diff --git a/src/aboutwindow.cc b/src/aboutwindow.cc
index 06ebb69..8743ed8 100644
--- a/src/aboutwindow.cc
+++ b/src/aboutwindow.cc
@@ -33,7 +33,7 @@
#include <qfont.h>
#include <config.h>
-//"miav-grab.h"
+
#define MARGIN 12
AboutWindow::AboutWindow( QWidget* parent, const char* name )
: QDialog( parent, name )
@@ -75,8 +75,10 @@ void AboutWindow::paintEvent( QPaintEvent *event )
QPainter painter;
painter.begin(this);
+ // Draw background
painter.drawPixmap(0,0, *pix_about);
+ // Draw title and version
painter.setBrush( SolidPattern );
painter.setFont( QFont( "Arial", 18, QFont::Bold ) );
painter.setPen( Qt::black );
@@ -84,18 +86,6 @@ void AboutWindow::paintEvent( QPaintEvent *event )
painter.setPen( Qt::red );
painter.drawText(version_x + 2, version_y + 2, "MIAV-Grab v" VERSION);
- /*
- painter.setBrush( Dense4Pattern );
- painter.drawRect(25,25,270,377);
-
- painter.setPen( Qt::white );
- painter.setFont( QFont( "Arial", 11, QFont::Bold ) );
- painter.drawText(30,70, 270, 357, 0, ABOUT_INFO);
-
- painter.setPen( Qt::white );
- painter.setFont( QFont( "Arial", 8, QFont::Bold ) );
- painter.drawText(30,165, 270, 357, 0, GPL_LICENSE);
- */
painter.end();
}
diff --git a/src/aboutwindow.h b/src/aboutwindow.h
index f63b4cd..f87a10e 100644
--- a/src/aboutwindow.h
+++ b/src/aboutwindow.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifdef USE_GUI
#ifndef __ABOUTWINDOW_H__
diff --git a/src/camera.h b/src/camera.h
index f1aaa3c..eee8bd7 100644
--- a/src/camera.h
+++ b/src/camera.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifdef USE_GUI
#ifndef __CAMERA_H__
diff --git a/src/config.h b/src/config.h
new file mode 100644
index 0000000..e7101c9
--- /dev/null
+++ b/src/config.h
@@ -0,0 +1,33 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/***************************************************************************
+ * config.h
+ *
+ * Thu Jul 28 12:46:38 CEST 2005
+ * Copyright 2004 Bent Bisballe
+ * deva@aasimon.org
+ ****************************************************************************/
+
+/*
+ * This file is part of MIaV.
+ *
+ * MIaV is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * MIaV is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with MIaV; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+
+#ifndef __CONFIG_IS_LOADED__
+#define __CONFIG_IS_LOADED__
+
+#include "../config.h"
+
+#endif/*__CONFIG_IS_LOADED__*/
diff --git a/src/cprquerydialog.h b/src/cprquerydialog.h
index 78a677b..2acf1b4 100644
--- a/src/cprquerydialog.h
+++ b/src/cprquerydialog.h
@@ -24,12 +24,12 @@
* 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"
+#ifdef USE_GUI
+
#ifndef __MIAV_CPRQUERYDIALOG_H__
#define __MIAV_CPRQUERYDIALOG_H__
-#include <config.h>
-#ifdef USE_GUI
-
/**
* Text
*/
@@ -153,6 +153,6 @@ private:
QTimer *timer;
};
-#endif/*__MIAV_CPRQUERYDIALOG_H__*/
-
#endif /* USE_GUI */
+
+#endif/*__MIAV_CPRQUERYDIALOG_H__*/
diff --git a/src/debug.h b/src/debug.h
index 9caa8d7..48c0830 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAV_DEBUG_H__
#define __MIAV_DEBUG_H__
diff --git a/src/decoder.h b/src/decoder.h
index c436722..ba78d49 100644
--- a/src/decoder.h
+++ b/src/decoder.h
@@ -31,7 +31,7 @@
* 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 "config.h"
#ifdef USE_GUI
#ifndef __RTVIDEOREC_DECODER_H
diff --git a/src/dv.h b/src/dv.h
index a5fad62..e346d03 100644
--- a/src/dv.h
+++ b/src/dv.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAV_DV_H__
#define __MIAV_DV_H__
diff --git a/src/dv1394.h b/src/dv1394.h
index 023d9e6..c63899e 100644
--- a/src/dv1394.h
+++ b/src/dv1394.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAV_DV1394_H__
#define __MIAV_DV1394_H__
diff --git a/src/encoder.h b/src/encoder.h
index b896d3d..29d139b 100644
--- a/src/encoder.h
+++ b/src/encoder.h
@@ -31,7 +31,7 @@
* 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 "config.h"
#ifdef USE_GUI
#ifndef __RTVIDEOREC_ENCODER_H
diff --git a/src/file.h b/src/file.h
index 3832ba7..c7f01c0 100644
--- a/src/file.h
+++ b/src/file.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAV_FILE_H__
#define __MIAV_FILE_H__
diff --git a/src/frame.h b/src/frame.h
index f1b411a..e6faacd 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __FRAME_H__
#define __FRAME_H__
diff --git a/src/historywidget.h b/src/historywidget.h
index 7d7bad4..af06325 100644
--- a/src/historywidget.h
+++ b/src/historywidget.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAV_HISTORYWIDGET_H__
#define __MIAV_HISTORYWIDGET_H__
diff --git a/src/img_encoder.cc b/src/img_encoder.cc
index 1e8f4a6..1516fc0 100644
--- a/src/img_encoder.cc
+++ b/src/img_encoder.cc
@@ -37,6 +37,8 @@
#include "debug.h"
+#include "jpeg_mem_dest.h"
+
// Use libdv
#include <libdv/dv.h>
#include <libdv/dv_types.h>
@@ -104,114 +106,6 @@ void ImgEncoder::encode(Frame *dvframe, int quality)
writeJPEGFile(quality, (JSAMPLE*)rgb, 720, 576);
}
-#define OUTPUT_BUF_SIZE 4096 /* choose an efficiently ?? size */
-
-/* Expanded data destination object for stdio output */
-typedef struct {
- struct jpeg_destination_mgr pub; /* public fields */
-
- JOCTET * outbuff; /* target buffer */
- size_t * size;
-} mem_destination_mgr;
-
-typedef mem_destination_mgr * mem_dest_ptr;
-
-/*
- * Initialize destination --- called by jpeg_start_compress
- * before any data is actually written.
- */
-void init_destination (j_compress_ptr cinfo)
-{
- mem_dest_ptr dest = (mem_dest_ptr) cinfo->dest;
-
- *dest->size = 0;
- dest->pub.next_output_byte = dest->outbuff;
- dest->pub.free_in_buffer = OUTPUT_BUF_SIZE;
-}
-
-/*
- * Terminate destination --- called by jpeg_finish_compress
- * after all data has been written. Usually needs to flush buffer.
- *
- * NB: *not* called by jpeg_abort or jpeg_destroy; surrounding
- * application must deal with any cleanup that should happen even
- * for error exit.
- */
-void term_destination (j_compress_ptr cinfo)
-{
- mem_dest_ptr dest = (mem_dest_ptr) cinfo->dest;
- size_t datacount = OUTPUT_BUF_SIZE - dest->pub.free_in_buffer;
-
- /* Write any data remaining in the buffer */
- if (datacount > 0) {
- dest->outbuff+=datacount;
- *dest->size+=datacount;
- }
-}
-
-/*
- * Empty the output buffer --- called whenever buffer fills up.
- *
- * In typical applications, this should write the entire output buffer
- * (ignoring the current state of next_output_byte & free_in_buffer),
- * reset the pointer & count to the start of the buffer, and return TRUE
- * indicating that the buffer has been dumped.
- *
- * In applications that need to be able to suspend compression due to output
- * overrun, a FALSE return indicates that the buffer cannot be emptied now.
- * In this situation, the compressor will return to its caller (possibly with
- * an indication that it has not accepted all the supplied scanlines). The
- * application should resume compression after it has made more room in the
- * output buffer. Note that there are substantial restrictions on the use of
- * suspension --- see the documentation.
- *
- * When suspending, the compressor will back up to a convenient restart point
- * (typically the start of the current MCU). next_output_byte & free_in_buffer
- * indicate where the restart point will be if the current call returns FALSE.
- * Data beyond this point will be regenerated after resumption, so do not
- * write it out when emptying the buffer externally.
- */
-boolean empty_output_buffer (j_compress_ptr cinfo)
-{
- mem_dest_ptr dest = (mem_dest_ptr) cinfo->dest;
-
- dest->outbuff+=OUTPUT_BUF_SIZE;
- *dest->size+=OUTPUT_BUF_SIZE;
-
- dest->pub.next_output_byte = dest->outbuff;
- dest->pub.free_in_buffer = OUTPUT_BUF_SIZE;
-
- return TRUE;
-}
-
-/*
- * Prepare for output to a memory buffer.
- . The caller must have already allocated the buffer, and is responsible
- * for closing it after finishing compression.
- */
-void jpeg_mem_dest (j_compress_ptr cinfo, char * outbuff, size_t * size)
-{
- mem_dest_ptr dest;
-
- /* The destination object is made permanent so that multiple JPEG images
- * can be written to the same file without re-executing jpeg_stdio_dest.
- * This makes it dangerous to use this manager and a different destination
- * manager serially with the same JPEG object, because their private object
- * sizes may be different. Caveat programmer.
- */
- if (cinfo->dest == NULL) { /* first time for this JPEG object? */
- cinfo->dest = (struct jpeg_destination_mgr *)
- (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT,
- sizeof(mem_destination_mgr));
- }
-
- dest = (mem_dest_ptr) cinfo->dest;
- dest->pub.init_destination = init_destination;
- dest->pub.empty_output_buffer = empty_output_buffer;
- dest->pub.term_destination = term_destination;
- dest->outbuff = (JOCTET *)outbuff;
- dest->size = (size_t *)size;
-}
void ImgEncoder::writeJPEGFile(int quality, JSAMPLE * image_buffer, int image_width, int image_height)
{
@@ -223,29 +117,27 @@ void ImgEncoder::writeJPEGFile(int quality, JSAMPLE * image_buffer, int image_wi
JSAMPROW row_pointer[1]; // pointer to JSAMPLE row[s]
int row_stride; // physical row width in image buffer
- // Step 1: allocate and initialize JPEG compression object
+ // Allocate and initialize JPEG compression object
cinfo.err = jpeg_std_error(&jerr);
jpeg_create_compress(&cinfo);
- // Step 2: specify data destination (eg, a file)
- //jpeg_stdio_dest(&cinfo, file->getFP());
+ // Specify data destination (see jpeg_mem_dest)
jpeg_mem_dest(&cinfo, jpeg_output_buffer, &buffersize);
- // Step 3: set parameters for compression
+ // Set compression parameters
cinfo.image_width = image_width; // image width and height, in pixels
cinfo.image_height = image_height;
cinfo.input_components = 3; // # of color components per pixel
-
cinfo.in_color_space = JCS_RGB; // colorspace of input image
jpeg_set_defaults(&cinfo);
jpeg_set_quality(&cinfo, quality, TRUE); // limit to baseline-JPEG values
- // Step 4: Start compressor
+ // Start compressor
jpeg_start_compress(&cinfo, TRUE);
- // Step 5: while (scan lines remain to be written)
+ // While (scan lines remain to be written)
row_stride = image_width * 3; // JSAMPLEs per row in image_buffer
while (cinfo.next_scanline < cinfo.image_height) {
@@ -253,10 +145,10 @@ void ImgEncoder::writeJPEGFile(int quality, JSAMPLE * image_buffer, int image_wi
(void) jpeg_write_scanlines(&cinfo, row_pointer, 1);
}
- // Step 6: Finish compression
+ // Finish compression
jpeg_finish_compress(&cinfo);
- // Step 7: release JPEG compression object
+ // Release JPEG compression object
jpeg_destroy_compress(&cinfo);
info->info("JPEG buffersize: %d", buffersize);
diff --git a/src/img_encoder.h b/src/img_encoder.h
index 9df1e21..7237f48 100644
--- a/src/img_encoder.h
+++ b/src/img_encoder.h
@@ -31,26 +31,22 @@
* 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"
#ifndef __RTVIDEOREC_IMGENCODER_H
#define __RTVIDEOREC_IMGENCODER_H
+#include <stdio.h>
+
#include "frame.h"
#include "util.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-//#include <avformat.h>
extern "C" {
-#ifdef HAVE_STDLIB_H
-#undef HAVE_STDLIB_H
-#endif
#include <jpeglib.h>
-#ifdef HAVE_STDLIB_H
-#undef HAVE_STDLIB_H
-#endif
}
+//#include <stdlib.h>
+//#include <string.h>
+
#include "info.h"
#include "file.h"
diff --git a/src/info.h b/src/info.h
index 54838f6..d533051 100644
--- a/src/info.h
+++ b/src/info.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAV_INFO_H__
#define __MIAV_INFO_H__
diff --git a/src/info_console.h b/src/info_console.h
index 836c1cd..2adcad6 100644
--- a/src/info_console.h
+++ b/src/info_console.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAV_INFO_CONSOLE_H__
#define __MIAV_INFO_CONSOLE_H__
diff --git a/src/info_gui.h b/src/info_gui.h
index 6c3b303..a4f5135 100644
--- a/src/info_gui.h
+++ b/src/info_gui.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAV_INFO_GUI_H__
#define __MIAV_INFO_GUI_H__
diff --git a/src/jpeg_mem_dest.cc b/src/jpeg_mem_dest.cc
new file mode 100644
index 0000000..439c9a8
--- /dev/null
+++ b/src/jpeg_mem_dest.cc
@@ -0,0 +1,137 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/***************************************************************************
+ * jpeg_mem_dest.cc
+ *
+ * Thu Jul 28 16:40:08 CEST 2005
+ * Copyright 2005 Bent Bisballe
+ * deva@aasimon.org
+ ****************************************************************************/
+
+/*
+ * This file is part of MIaV.
+ *
+ * MIaV is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * MIaV is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * 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 "jpeg_mem_dest.h"
+
+#define OUTPUT_BUF_SIZE 4096 /* choose an efficiently ?? size */
+
+/* Expanded data destination object for stdio output */
+typedef struct {
+ struct jpeg_destination_mgr pub; /* public fields */
+
+ JOCTET * outbuff; /* target buffer */
+ size_t * size;
+} mem_destination_mgr;
+
+typedef mem_destination_mgr * mem_dest_ptr;
+
+/*
+ * Initialize destination --- called by jpeg_start_compress
+ * before any data is actually written.
+ */
+void init_destination (j_compress_ptr cinfo)
+{
+ mem_dest_ptr dest = (mem_dest_ptr) cinfo->dest;
+
+ *dest->size = 0;
+ dest->pub.next_output_byte = dest->outbuff;
+ dest->pub.free_in_buffer = OUTPUT_BUF_SIZE;
+}
+
+/*
+ * Terminate destination --- called by jpeg_finish_compress
+ * after all data has been written. Usually needs to flush buffer.
+ *
+ * NB: *not* called by jpeg_abort or jpeg_destroy; surrounding
+ * application must deal with any cleanup that should happen even
+ * for error exit.
+ */
+void term_destination (j_compress_ptr cinfo)
+{
+ mem_dest_ptr dest = (mem_dest_ptr) cinfo->dest;
+ size_t datacount = OUTPUT_BUF_SIZE - dest->pub.free_in_buffer;
+
+ /* Write any data remaining in the buffer */
+ if (datacount > 0) {
+ dest->outbuff+=datacount;
+ *dest->size+=datacount;
+ }
+}
+
+/*
+ * Empty the output buffer --- called whenever buffer fills up.
+ *
+ * In typical applications, this should write the entire output buffer
+ * (ignoring the current state of next_output_byte & free_in_buffer),
+ * reset the pointer & count to the start of the buffer, and return TRUE
+ * indicating that the buffer has been dumped.
+ *
+ * In applications that need to be able to suspend compression due to output
+ * overrun, a FALSE return indicates that the buffer cannot be emptied now.
+ * In this situation, the compressor will return to its caller (possibly with
+ * an indication that it has not accepted all the supplied scanlines). The
+ * application should resume compression after it has made more room in the
+ * output buffer. Note that there are substantial restrictions on the use of
+ * suspension --- see the documentation.
+ *
+ * When suspending, the compressor will back up to a convenient restart point
+ * (typically the start of the current MCU). next_output_byte & free_in_buffer
+ * indicate where the restart point will be if the current call returns FALSE.
+ * Data beyond this point will be regenerated after resumption, so do not
+ * write it out when emptying the buffer externally.
+ */
+boolean empty_output_buffer (j_compress_ptr cinfo)
+{
+ mem_dest_ptr dest = (mem_dest_ptr) cinfo->dest;
+
+ dest->outbuff+=OUTPUT_BUF_SIZE;
+ *dest->size+=OUTPUT_BUF_SIZE;
+
+ dest->pub.next_output_byte = dest->outbuff;
+ dest->pub.free_in_buffer = OUTPUT_BUF_SIZE;
+
+ return TRUE;
+}
+
+/*
+ * Prepare for output to a memory buffer.
+ . The caller must have already allocated the buffer, and is responsible
+ * for closing it after finishing compression.
+ */
+void jpeg_mem_dest (j_compress_ptr cinfo, char * outbuff, size_t * size)
+{
+ mem_dest_ptr dest;
+
+ /* The destination object is made permanent so that multiple JPEG images
+ * can be written to the same file without re-executing jpeg_stdio_dest.
+ * This makes it dangerous to use this manager and a different destination
+ * manager serially with the same JPEG object, because their private object
+ * sizes may be different. Caveat programmer.
+ */
+ if (cinfo->dest == NULL) { /* first time for this JPEG object? */
+ cinfo->dest = (struct jpeg_destination_mgr *)
+ (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT,
+ sizeof(mem_destination_mgr));
+ }
+
+ dest = (mem_dest_ptr) cinfo->dest;
+ dest->pub.init_destination = init_destination;
+ dest->pub.empty_output_buffer = empty_output_buffer;
+ dest->pub.term_destination = term_destination;
+ dest->outbuff = (JOCTET *)outbuff;
+ dest->size = (size_t *)size;
+}
diff --git a/src/jpeg_mem_dest.h b/src/jpeg_mem_dest.h
new file mode 100644
index 0000000..0506b9d
--- /dev/null
+++ b/src/jpeg_mem_dest.h
@@ -0,0 +1,39 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/***************************************************************************
+ * jpeg_mem_dest.h
+ *
+ * Thu Jul 28 16:40:08 CEST 2005
+ * Copyright 2005 Bent Bisballe
+ * deva@aasimon.org
+ ****************************************************************************/
+
+/*
+ * This file is part of MIaV.
+ *
+ * MIaV is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * MIaV is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * 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"
+#ifndef __MIAV_JPEG_MEM_DEST_H__
+#define __MIAV_JPEG_MEM_DEST_H__
+
+#include <stdio.h>
+
+extern "C" {
+#include <jpeglib.h>
+}
+
+void jpeg_mem_dest (j_compress_ptr cinfo, char * outbuff, size_t * size);
+
+#endif/*__MIAV_JPEG_MEM_DEST_H__*/
diff --git a/src/libfame_wrapper.h b/src/libfame_wrapper.h
index 68664e5..c4b5344 100644
--- a/src/libfame_wrapper.h
+++ b/src/libfame_wrapper.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAV_LIBFAME_WRAPPER_H__
#define __MIAV_LIBFAME_WRAPPER_H__
diff --git a/src/liblame_wrapper.h b/src/liblame_wrapper.h
index fd1d690..75f3b3d 100644
--- a/src/liblame_wrapper.h
+++ b/src/liblame_wrapper.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAV_LIBLAME_WRAPPER_H__
#define __MIAV_LIBLAME_WRAPPER_H__
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 2d3adb5..8f75aeb 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifdef USE_GUI
#ifndef __MAINWINDOW_H__
diff --git a/src/messagebox.h b/src/messagebox.h
index 189b926..32753d7 100644
--- a/src/messagebox.h
+++ b/src/messagebox.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifdef USE_GUI
#ifndef __MIAV_MESSAGEBOX_H__
diff --git a/src/miav.h b/src/miav.h
index 6c6b8bf..6d5068a 100644
--- a/src/miav.h
+++ b/src/miav.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __LIBMIAV_H__
#define __LIBMIAV_H__
diff --git a/src/miav_config.h b/src/miav_config.h
index 65f4480..45732c1 100644
--- a/src/miav_config.h
+++ b/src/miav_config.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAV_MIAV_CONFIG_H__
#define __MIAV_MIAV_CONFIG_H__
diff --git a/src/miav_daemon.h b/src/miav_daemon.h
index 5cedad7..6ab469e 100644
--- a/src/miav_daemon.h
+++ b/src/miav_daemon.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAV_MIAV_DAEMON_H__
#define __MIAV_MIAV_DAEMON_H__
diff --git a/src/mov_encoder.h b/src/mov_encoder.h
index 3442c77..cb233e5 100644
--- a/src/mov_encoder.h
+++ b/src/mov_encoder.h
@@ -29,10 +29,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-
-/*
- * $Id$
- */
+#include "config.h"
#ifndef __RTVIDEOREC_ENCODER_H
#define __RTVIDEOREC_ENCODER_H
diff --git a/src/mov_encoder_thread.h b/src/mov_encoder_thread.h
index dfeba67..5d38d3b 100644
--- a/src/mov_encoder_thread.h
+++ b/src/mov_encoder_thread.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAV_MOV_ENCODER_THREAD_H__
#define __MIAV_MOV_ENCODER_THREAD_H__
diff --git a/src/mov_encoder_writer.h b/src/mov_encoder_writer.h
index afb0d47..f74dc51 100644
--- a/src/mov_encoder_writer.h
+++ b/src/mov_encoder_writer.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAV_MOV_ENCODER_WRITER_H__
#define __MIAV_MOV_ENCODER_WRITER_H__
diff --git a/src/network.h b/src/network.h
index 39faff9..f64310e 100644
--- a/src/network.h
+++ b/src/network.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAVLIB_NETWORK_H__
#define __MIAVLIB_NETWORK_H__
diff --git a/src/package.h b/src/package.h
index 77e74b7..725ff59 100644
--- a/src/package.h
+++ b/src/package.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAVLIB_PACKAGE_H__
#define __MIAVLIB_PACKAGE_H__
diff --git a/src/player.h b/src/player.h
index 851a5a7..9cfd440 100644
--- a/src/player.h
+++ b/src/player.h
@@ -32,7 +32,7 @@
* 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 "config.h"
#ifdef USE_GUI
#ifndef __RTVIDEOREC_PLAYER_H
diff --git a/src/queue.h b/src/queue.h
index ac269e5..3cb6fbc 100644
--- a/src/queue.h
+++ b/src/queue.h
@@ -31,7 +31,7 @@
* 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 "config.h"
#ifndef __RTVIDEOREC_QUEUE_H
#define __RTVIDEOREC_QUEUE_H
diff --git a/src/server_status.h b/src/server_status.h
index 564840e..5a7cb6c 100644
--- a/src/server_status.h
+++ b/src/server_status.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAV_SERVER_STATUS_H__
#define __MIAV_SERVER_STATUS_H__
diff --git a/src/socket.h b/src/socket.h
index a066f50..df2a133 100644
--- a/src/socket.h
+++ b/src/socket.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __MIAVLIB_SOCKET_H__
#define __MIAVLIB_SOCKET_H__
diff --git a/src/thread.h b/src/thread.h
index 46ccadd..3ed3c93 100644
--- a/src/thread.h
+++ b/src/thread.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifndef __THREAD_H__
#define __THREAD_H__
diff --git a/src/util.h b/src/util.h
index effa5dd..f33c5ce 100644
--- a/src/util.h
+++ b/src/util.h
@@ -31,7 +31,7 @@
* 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 "config.h"
#ifndef __RTVIDEOREC_UTIL_H
#define __RTVIDEOREC_UTIL_H
diff --git a/src/videowidget.h b/src/videowidget.h
index eaacd4f..b9ac9d6 100644
--- a/src/videowidget.h
+++ b/src/videowidget.h
@@ -24,7 +24,7 @@
* 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 "config.h"
#ifdef USE_GUI
#ifndef __VIDEOWIDGET_H__