summaryrefslogtreecommitdiffstats
path: root/gst/avi/gstavidemux.h
diff options
context:
space:
mode:
authorStefan Kost <ensonic@users.sourceforge.net>2006-08-23 15:33:47 +0000
committerStefan Kost <ensonic@users.sourceforge.net>2006-08-23 15:33:47 +0000
commite91b76790cb2c23b09448d1bb4d6adbe54716add (patch)
tree7c5d34ff95f1de0703a863b5e0ba01015fa557a0 /gst/avi/gstavidemux.h
parent03733a2d28a698c81f3dc4862d0f566db0c29014 (diff)
gst/avi/gstavidemux.*: Initial streaming support for avidemux (fixes #336465)
Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_class_init), (gst_avi_demux_init), (gst_avi_demux_dispose), (gst_avi_demux_reset), (gst_avi_demux_index_next), (gst_avi_demux_index_entry_for_time), (gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query), (gst_avi_demux_handle_src_event), (gst_avi_demux_peek_chunk_info), (gst_avi_demux_peek_chunk), (gst_avi_demux_stream_init_push), (gst_avi_demux_stream_init_pull), (gst_avi_demux_parse_subindex), (gst_avi_demux_read_subindexes_push), (gst_avi_demux_read_subindexes_pull), (gst_avi_demux_parse_stream), (sort), (gst_avi_demux_parse_index), (gst_avi_demux_stream_index), (gst_avi_demux_sync), (gst_avi_demux_peek_tag), (gst_avi_demux_massage_index), (gst_avi_demux_stream_header_push), (gst_avi_demux_stream_header_pull), (gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data), (push_tag_lists), (gst_avi_demux_loop), (gst_avi_demux_chain), (gst_avi_demux_sink_activate), (gst_avi_demux_activate_push), (gst_avi_demux_change_state): * gst/avi/gstavidemux.h: Initial streaming support for avidemux (fixes #336465)
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;