summaryrefslogtreecommitdiffstats
path: root/gst/avi/gstavidemux.h
diff options
context:
space:
mode:
Diffstat (limited to 'gst/avi/gstavidemux.h')
-rw-r--r--gst/avi/gstavidemux.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/gst/avi/gstavidemux.h b/gst/avi/gstavidemux.h
index bc14183f..25a4e162 100644
--- a/gst/avi/gstavidemux.h
+++ b/gst/avi/gstavidemux.h
@@ -1,5 +1,6 @@
/* GStreamer
* Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2006> Nokia Corporation (contact <stefan.kost@nokia.com>)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -25,6 +26,7 @@
#include "avi-ids.h"
#include "gst/riff/riff-ids.h"
#include "gst/riff/riff-read.h"
+#include <gst/base/gstadapter.h>
G_BEGIN_DECLS
@@ -102,6 +104,15 @@ typedef enum {
GST_AVI_DEMUX_MOVI,
} GstAviDemuxState;
+typedef enum {
+ GST_AVI_DEMUX_HEADER_TAG_LIST,
+ GST_AVI_DEMUX_HEADER_AVIH,
+ GST_AVI_DEMUX_HEADER_ELEMENTS,
+ GST_AVI_DEMUX_HEADER_INFO,
+ GST_AVI_DEMUX_HEADER_JUNK,
+ GST_AVI_DEMUX_HEADER_DATA
+} GstAviDemuxHeaderState;
+
typedef struct _GstAviDemux {
GstElement parent;
@@ -110,6 +121,7 @@ typedef struct _GstAviDemux {
/* AVI decoding state */
GstAviDemuxState state;
+ GstAviDemuxHeaderState header_state;
guint64 offset;
/* index */
@@ -122,15 +134,20 @@ typedef struct _GstAviDemux {
guint num_streams;
guint num_v_streams;
guint num_a_streams;
+
avi_stream_context stream[GST_AVI_DEMUX_MAX_STREAMS];
+ /* for streaming mode */
+ gboolean streaming;
+ gboolean have_eos;
+ GstAdapter *adapter;
+
/* some stream info for length */
gst_riff_avih *avih;
/* segment in TIME */
GstSegment segment;
gboolean segment_running;
- gboolean streaming;
/* pending tags/events */
GstEvent *seek_event;