summaryrefslogtreecommitdiff
path: root/ext/ogg/gstoggdemux.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/ogg/gstoggdemux.h')
-rw-r--r--ext/ogg/gstoggdemux.h176
1 files changed, 0 insertions, 176 deletions
diff --git a/ext/ogg/gstoggdemux.h b/ext/ogg/gstoggdemux.h
deleted file mode 100644
index a47642b3..00000000
--- a/ext/ogg/gstoggdemux.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/* GStreamer
- * Copyright (C) 2004 Wim Taymans <wim@fluendo.com>
- *
- * gstoggdemux.c: ogg stream demuxer
- *
- * 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_OGG_DEMUX_H__
-#define __GST_OGG_DEMUX_H__
-
-#include <ogg/ogg.h>
-
-#include <gst/gst.h>
-
-#include "gstoggstream.h"
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_OGG_PAD (gst_ogg_pad_get_type())
-#define GST_OGG_PAD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_OGG_PAD, GstOggPad))
-#define GST_OGG_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_OGG_PAD, GstOggPad))
-#define GST_IS_OGG_PAD(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_OGG_PAD))
-#define GST_IS_OGG_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_OGG_PAD))
-
-typedef struct _GstOggPad GstOggPad;
-typedef struct _GstOggPadClass GstOggPadClass;
-
-#define GST_TYPE_OGG_DEMUX (gst_ogg_demux_get_type())
-#define GST_OGG_DEMUX(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_OGG_DEMUX, GstOggDemux))
-#define GST_OGG_DEMUX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_OGG_DEMUX, GstOggDemux))
-#define GST_IS_OGG_DEMUX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_OGG_DEMUX))
-#define GST_IS_OGG_DEMUX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_OGG_DEMUX))
-
-GType gst_ogg_demux_get_type (void);
-
-typedef struct _GstOggDemux GstOggDemux;
-typedef struct _GstOggDemuxClass GstOggDemuxClass;
-typedef struct _GstOggChain GstOggChain;
-
-/* all information needed for one ogg chain (relevant for chained bitstreams) */
-struct _GstOggChain
-{
- GstOggDemux *ogg;
-
- gint64 offset; /* starting offset of chain */
- gint64 end_offset; /* end offset of chain */
- gint64 bytes; /* number of bytes */
-
- gboolean have_bos;
-
- GArray *streams;
-
- GstClockTime total_time; /* the total time of this chain, this is the MAX of
- the totals of all streams */
- GstClockTime begin_time; /* when this chain starts in the stream */
-
- GstClockTime segment_start; /* the timestamp of the first sample, this is the MIN of
- the start times of all streams. */
- GstClockTime segment_stop; /* the timestamp of the last page, this is the MAX of the
- streams. */
-};
-
-/* different modes for the pad */
-typedef enum
-{
- GST_OGG_PAD_MODE_INIT, /* we are feeding our internal decoder to get info */
- GST_OGG_PAD_MODE_STREAMING, /* we are streaming buffers to the outside */
-} GstOggPadMode;
-
-/* all information needed for one ogg stream */
-struct _GstOggPad
-{
- GstPad pad; /* subclass GstPad */
-
- gboolean have_type;
- GstOggPadMode mode;
-
- GstOggChain *chain; /* the chain we are part of */
- GstOggDemux *ogg; /* the ogg demuxer we are part of */
-
- GstOggStream map;
-
- gint64 packetno;
- gint64 current_granule;
- gint64 keyframe_granule;
-
- GstClockTime start_time; /* the timestamp of the first sample */
-
- gint64 first_granule; /* the granulepos of first page == first sample in next page */
- GstClockTime first_time; /* the timestamp of the second page or granuletime of first page */
-
- gboolean is_sparse; /* TRUE if this is a subtitle pad or some other sparse stream */
- GstClockTime last_stop; /* last_stop when last push occured; used to detect when we
- * need to send a newsegment update event for sparse streams */
-
- GList *continued;
-
- gboolean discont;
- GstFlowReturn last_ret; /* last return of _pad_push() */
-
- gboolean added;
-};
-
-struct _GstOggPadClass
-{
- GstPadClass parent_class;
-};
-
-/**
- * GstOggDemux:
- *
- * The ogg demuxer object structure.
- */
-struct _GstOggDemux
-{
- GstElement element;
-
- GstPad *sinkpad;
-
- gint64 length;
- gint64 read_offset;
- gint64 offset;
-
- gboolean pullmode;
- gboolean running;
-
- gboolean need_chains;
-
- /* state */
- GMutex *chain_lock; /* we need the lock to protect the chains */
- GArray *chains; /* list of chains we know */
- GstClockTime total_time;
-
- GstOggChain *current_chain;
- GstOggChain *building_chain;
-
- /* playback start/stop positions */
- GstSegment segment;
- gboolean segment_running;
- guint32 seqnum;
-
- GstEvent *event;
- GstEvent *newsegment; /* pending newsegment to be sent from _loop */
-
- /* annodex stuff */
- gboolean have_fishead;
- gint64 basetime;
- gint64 prestime;
-
- /* ogg stuff */
- ogg_sync_state sync;
-};
-
-struct _GstOggDemuxClass
-{
- GstElementClass parent_class;
-};
-
-
-G_END_DECLS
-
-#endif /* __GST_OGG_DEMUX_H__ */