summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2010-09-28 15:40:01 +0200
committerGerd Hoffmann <kraxel@redhat.com>2010-09-28 15:40:01 +0200
commitee905655aa11b804f6270c83227cc502c4504871 (patch)
treea44649e1d16049131ca94aef0909aa2e60b2bfb5
parentef57834505419a28e5048524e500638923b088d5 (diff)
add channel-display-priv.h
-rw-r--r--gtk/channel-display-priv.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/gtk/channel-display-priv.h b/gtk/channel-display-priv.h
new file mode 100644
index 0000000..76e6b8c
--- /dev/null
+++ b/gtk/channel-display-priv.h
@@ -0,0 +1,48 @@
+#include <pixman.h>
+#include <jpeglib.h>
+
+/* spice/common */
+#include "canvas_base.h"
+#include "canvas_utils.h"
+#include "sw_canvas.h"
+#include "ring.h"
+#include "quic.h"
+#include "rop3.h"
+
+#define DISPLAY_PIXMAP_CACHE (1024 * 1024 * 32)
+#define GLZ_WINDOW_SIZE (1024 * 1024 * 16)
+
+typedef struct display_surface {
+ RingItem link;
+ int surface_id;
+ bool primary;
+ enum SpiceSurfaceFmt format;
+ int width, height, stride, size;
+ int shmid;
+ uint8_t *data;
+ SpiceCanvas *canvas;
+ SpiceGlzDecoder *glz_decoder;
+} display_surface;
+
+typedef struct display_stream {
+ spice_msg_in *msg_create;
+ spice_msg_in *msg_clip;
+ spice_msg_in *msg_data;
+
+ /* from messages */
+ display_surface *surface;
+ SpiceClip *clip;
+ int codec;
+
+ /* mjpeg decoder */
+ struct jpeg_source_mgr mjpeg_src;
+ struct jpeg_decompress_struct mjpeg_cinfo;
+ struct jpeg_error_mgr mjpeg_jerr;
+
+ uint8_t *out_frame;
+} display_stream;
+
+/* channel-display-mjpeg.c */
+void stream_mjpeg_init(display_stream *st);
+void stream_mjpeg_data(display_stream *st);
+void stream_mjpeg_cleanup(display_stream *st);