--- a/gst_plugins_good/gst/avi/gstavidemux.h Fri Jul 09 16:26:45 2010 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-/* 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
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GST_AVI_DEMUX_H__
-#define __GST_AVI_DEMUX_H__
-
-#include <gst/gst.h>
-
-#include "avi-ids.h"
-#include "gst/riff/riff-ids.h"
-#include "gst/riff/riff-read.h"
-#include <gst/base/gstadapter.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_AVI_DEMUX \
- (gst_avi_demux_get_type ())
-#define GST_AVI_DEMUX(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_AVI_DEMUX, GstAviDemux))
-#define GST_AVI_DEMUX_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_AVI_DEMUX, GstAviDemuxClass))
-#define GST_IS_AVI_DEMUX(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_AVI_DEMUX))
-#define GST_IS_AVI_DEMUX_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_AVI_DEMUX))
-
-#define GST_AVI_DEMUX_MAX_STREAMS 16
-
-#define CHUNKID_TO_STREAMNR(chunkid) \
- ((((chunkid) & 0xff) - '0') * 10 + \
- (((chunkid) >> 8) & 0xff) - '0')
-
-#define GST_AVI_INDEX_ENTRY_FLAG_KEYFRAME 1
-
-/* 48 bytes */
-typedef struct {
- guint index_nr; /* = (entry-index_entries)/sizeof(gst_avi_index_entry); */
- guchar stream_nr;
- guchar flags;
- guint64 ts;
- guint64 dur; /* =entry[1].ts-entry->ts */
- guint64 offset;
- guint64 bytes_before; /* calculated */
- guint32 frames_before; /* calculated */
- guint32 size; /* could be read from the chunk (if we don't split) */
-} gst_avi_index_entry;
-
-typedef struct {
- /* index of this streamcontext */
- guint num;
-
- /* pad*/
- GstPad *pad;
-
- /* stream info and headers */
- gst_riff_strh *strh;
- union {
- gst_riff_strf_vids *vids;
- gst_riff_strf_auds *auds;
- gst_riff_strf_iavs *iavs;
- gpointer data;
- } strf;
- GstBuffer *extradata, *initdata;
- gchar *name;
-
- /* current position (byte, frame, time) and other status vars */
- guint current_frame;
- guint64 current_byte;
- GstFlowReturn last_flow;
- gboolean discont;
-
- /* stream length */
- guint64 total_bytes;
- guint32 total_frames;
- guint32 total_blocks;
- /* stream length according to index */
- GstClockTime idx_duration;
- /* stream length according to header */
- GstClockTime hdr_duration;
- /* stream length based on header/index */
- GstClockTime duration;
-
- /* VBR indicator */
- gboolean is_vbr;
-
- /* openDML support (for files >4GB) */
- gboolean superindex;
- guint64 *indexes;
-
- GstTagList *taglist;
-} avi_stream_context;
-
-typedef enum {
- GST_AVI_DEMUX_START,
- GST_AVI_DEMUX_HEADER,
- 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;
-
- /* pads */
- GstPad *sinkpad;
-
- /* AVI decoding state */
- GstAviDemuxState state;
- GstAviDemuxHeaderState header_state;
- guint64 offset;
-
- /* index */
- gst_avi_index_entry *index_entries;
- guint index_size;
- guint64 index_offset;
- guint current_entry;
- guint reverse_start_index;
- guint reverse_stop_index;
-
- /* streams */
- guint num_streams;
- guint num_v_streams;
- guint num_a_streams;
- guint num_t_streams; /* subtitle text 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;
-
- /* pending tags/events */
- GstEvent *seek_event;
- GstTagList *globaltags;
- gboolean got_tags;
-
-} GstAviDemux;
-
-typedef struct _GstAviDemuxClass {
- GstElementClass parent_class;
-} GstAviDemuxClass;
-
-GType gst_avi_demux_get_type (void);
-
-G_END_DECLS
-
-#endif /* __GST_AVI_DEMUX_H__ */