diff options
author | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2005-02-05 16:28:31 +0000 |
---|---|---|
committer | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2005-02-05 16:28:31 +0000 |
commit | 4a1a8872625b855d6bf909e1c493625c1ee78c00 (patch) | |
tree | 82aff574c9ad35a106d582ad43a6e4de0580169a /gst-libs/gst/riff/riff-read.h | |
parent | 204e36d8724047fe9f87a5041c7c50fd1e5027d3 (diff) | |
download | gst-plugins-bad-4a1a8872625b855d6bf909e1c493625c1ee78c00.tar.gz gst-plugins-bad-4a1a8872625b855d6bf909e1c493625c1ee78c00.tar.bz2 gst-plugins-bad-4a1a8872625b855d6bf909e1c493625c1ee78c00.zip |
examples/seeking/seek.c: Add AVI pipeline.
Original commit message from CVS:
* examples/seeking/seek.c: (make_avi_msmpeg4v3_mp3_pipeline):
Add AVI pipeline.
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
(gst_riff_create_audio_caps), (gst_riff_create_iavs_caps),
(gst_riff_create_video_template_caps),
(gst_riff_create_audio_template_caps),
(gst_riff_create_iavs_template_caps):
* gst-libs/gst/riff/riff-media.h:
Remove obsolete non-data functions, make data functions the
default.
* gst-libs/gst/riff/riff-read.c: (gst_riff_read_chunk),
(gst_riff_parse_chunk), (gst_riff_parse_file_header),
(gst_riff_parse_strh), (gst_riff_parse_strf_vids),
(gst_riff_parse_strf_auds), (gst_riff_parse_strf_iavs),
(gst_riff_parse_info):
* gst-libs/gst/riff/riff-read.h:
* gst-libs/gst/riff/riff.c: (plugin_init):
Change from bytestream-wrapping to pure RIFF parsing (can be used
chain-based if someone would want that). Add gtk-doc comments.
* gst/avi/Makefile.am:
* gst/avi/gstavi.c: (plugin_init):
Disable mux for now.
* gst/avi/gstavidemux.c: (gst_avi_demux_get_type),
(gst_avi_demux_class_init), (gst_avi_demux_init),
(gst_avi_demux_reset), (gst_avi_demux_src_convert),
(gst_avi_demux_handle_src_query), (gst_avi_demux_handle_src_event),
(gst_avi_demux_parse_file_header), (gst_avi_demux_stream_init),
(gst_avi_demux_parse_avih), (gst_avi_demux_parse_superindex),
(gst_avi_demux_parse_subindex), (gst_avi_demux_read_subindexes),
(gst_avi_demux_parse_stream), (gst_avi_demux_parse_odml),
(gst_avi_demux_parse_index), (gst_avi_demux_stream_index),
(gst_avi_demux_stream_scan), (gst_avi_demux_massage_index),
(gst_avi_demux_stream_header), (gst_avi_demux_handle_seek),
(gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data),
(gst_avi_demux_loop), (gst_avi_demux_sink_activate):
* gst/avi/gstavidemux.h:
Port to changed RIFF API, port to 0.9, add locking. Add gtk-doc
comments to some relevant functions. Seeking is weird, works
otherwise. Some parts are still disabled.
Diffstat (limited to 'gst-libs/gst/riff/riff-read.h')
-rw-r--r-- | gst-libs/gst/riff/riff-read.h | 113 |
1 files changed, 42 insertions, 71 deletions
diff --git a/gst-libs/gst/riff/riff-read.h b/gst-libs/gst/riff/riff-read.h index d44c4ed7..aadd0a62 100644 --- a/gst-libs/gst/riff/riff-read.h +++ b/gst-libs/gst/riff/riff-read.h @@ -24,87 +24,58 @@ #include <glib.h> #include <gst/gst.h> -#include <gst/bytestream/bytestream.h> -G_BEGIN_DECLS +#include "riff-ids.h" -#define GST_TYPE_RIFF_READ \ - (gst_riff_read_get_type ()) -#define GST_RIFF_READ(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_RIFF_READ, GstRiffRead)) -#define GST_RIFF_READ_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_RIFF_READ, GstRiffReadClass)) -#define GST_IS_RIFF_READ(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_RIFF_READ)) -#define GST_IS_RIFF_READ_CLASS(obj) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_RIFF_READ)) -#define GST_RIFF_READ_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_RIFF_READ, GstRiffReadClass)) +G_BEGIN_DECLS -typedef struct _GstRiffLevel { - guint64 start, - length; -} GstRiffLevel; +/* + * Operate using pull_range(). + */ -typedef struct _GstRiffRead { - GstElement parent; +GstFlowReturn gst_riff_read_chunk (GstElement * element, + GstPad * pad, + guint64 * offset, + guint32 * fourcc, + GstBuffer ** chunk_data); - GstPad *sinkpad; - GstByteStream *bs; +/* + * These functions operate on provided data (the caller is + * supposed to strip the chunk headers). The buffer is + * provided by the caller, the strf/strh/data are filled in + * by the function. + */ - GList *level; -} GstRiffRead; +gboolean gst_riff_parse_chunk (GstElement * element, + GstBuffer * buf, + guint * offset, + guint32 * fourcc, + GstBuffer ** chunk_data); -typedef struct _GstRiffReadClass { - GstElementClass parent; -} GstRiffReadClass; +gboolean gst_riff_parse_file_header (GstElement * element, + GstBuffer * buf, + guint32 * doctype); -GType gst_riff_read_get_type (void); +gboolean gst_riff_parse_strh (GstElement * element, + GstBuffer * buf, + gst_riff_strh ** strh); -guint32 gst_riff_peek_tag (GstRiffRead *riff, - guint *level_up); -guint32 gst_riff_peek_list (GstRiffRead *riff); -gboolean gst_riff_peek_head (GstRiffRead *riff, - guint32 *tag, - guint32 *length, - guint *level_up); +gboolean gst_riff_parse_strf_vids (GstElement * element, + GstBuffer * buf, + gst_riff_strf_vids ** strf, + GstBuffer ** data); +gboolean gst_riff_parse_strf_auds (GstElement * element, + GstBuffer * buf, + gst_riff_strf_auds ** strf, + GstBuffer ** data); +gboolean gst_riff_parse_strf_iavs (GstElement * element, + GstBuffer * buf, + gst_riff_strf_iavs ** strf, + GstBuffer ** data); -GstEvent *gst_riff_read_seek (GstRiffRead *riff, - guint64 offset); -gboolean gst_riff_read_skip (GstRiffRead *riff); -gboolean gst_riff_read_data (GstRiffRead *riff, - guint32 *tag, - GstBuffer **buf); -gboolean gst_riff_read_ascii (GstRiffRead *riff, - guint32 *tag, - gchar **str); -gboolean gst_riff_read_list (GstRiffRead *riff, - guint32 *tag); -gboolean gst_riff_read_header (GstRiffRead *read, - guint32 *doctype); -GstBuffer *gst_riff_read_element_data (GstRiffRead *riff, - guint length, - guint *got_bytes); -/* - * Utility functions (including byteswapping). - */ -gboolean gst_riff_read_strh (GstRiffRead *riff, - gst_riff_strh **header); -gboolean gst_riff_read_strf_vids (GstRiffRead *riff, - gst_riff_strf_vids **header); -gboolean gst_riff_read_strf_vids_with_data - (GstRiffRead *riff, - gst_riff_strf_vids **header, - GstBuffer **extradata); -gboolean gst_riff_read_strf_auds (GstRiffRead *riff, - gst_riff_strf_auds **header); -gboolean gst_riff_read_strf_auds_with_data - (GstRiffRead *riff, - gst_riff_strf_auds **header, - GstBuffer **extradata); -gboolean gst_riff_read_strf_iavs (GstRiffRead *riff, - gst_riff_strf_iavs **header); -gboolean gst_riff_read_info (GstRiffRead *riff); +void gst_riff_parse_info (GstElement * element, + GstBuffer * buf, + GstTagList ** taglist); G_END_DECLS |