diff options
author | Mark Nauwelaerts <manauw@skynet.be> | 2006-04-27 14:51:06 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.net> | 2006-04-27 14:51:06 +0000 |
commit | d1cdfa6d3c0950bf95ad25697e4a38586a4eab83 (patch) | |
tree | 383baa172c1160cb0abe1e4a50bf10728703414d /gst/avi/gstavimux.h | |
parent | 422c6fcc0cfc274feef4696747e92fd7f8552811 (diff) |
gst/avi/: Port AVI muxer to GStreamer-0.10 (#332031).
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet dot be>
* gst/avi/Makefile.am:
* gst/avi/gstavi.c: (plugin_init):
* gst/avi/gstavimux.c: (gst_avi_mux_get_type),
(gst_avi_mux_base_init), (gst_avi_mux_finalize),
(gst_avi_mux_class_init), (gst_avi_mux_init),
(gst_avi_mux_vidsink_set_caps), (gst_avi_mux_audsink_set_caps),
(gst_avi_mux_pad_link), (gst_avi_mux_pad_unlink),
(gst_avi_mux_request_new_pad), (gst_avi_mux_release_pad),
(gst_avi_mux_write_tag), (gst_avi_mux_riff_get_avi_header),
(gst_avi_mux_riff_get_avix_header),
(gst_avi_mux_riff_get_video_header),
(gst_avi_mux_riff_get_audio_header), (gst_avi_mux_add_index),
(gst_avi_mux_write_index), (gst_avi_mux_bigfile),
(gst_avi_mux_start_file), (gst_avi_mux_stop_file),
(gst_avi_mux_restart_file), (gst_avi_mux_handle_event),
(gst_avi_mux_fill_queue), (gst_avi_mux_send_pad_data),
(gst_avi_mux_strip_buffer), (gst_avi_mux_do_audio_buffer),
(gst_avi_mux_do_video_buffer), (gst_avi_mux_do_one_buffer),
(gst_avi_mux_loop), (gst_avi_mux_collect_pads),
(gst_avi_mux_get_property), (gst_avi_mux_set_property),
(gst_avi_mux_change_state):
* gst/avi/gstavimux.h:
Port AVI muxer to GStreamer-0.10 (#332031).
* tests/check/Makefile.am:
* tests/check/elements/avimux.c:
* tests/check/elements/.cvsignore:
Add unit test for AVI muxer.
Diffstat (limited to 'gst/avi/gstavimux.h')
-rw-r--r-- | gst/avi/gstavimux.h | 57 |
1 files changed, 26 insertions, 31 deletions
diff --git a/gst/avi/gstavimux.h b/gst/avi/gstavimux.h index d814941d..68566991 100644 --- a/gst/avi/gstavimux.h +++ b/gst/avi/gstavimux.h @@ -18,30 +18,27 @@ */ -#ifndef __GST_AVIMUX_H__ -#define __GST_AVIMUX_H__ +#ifndef __GST_AVI_MUX_H__ +#define __GST_AVI_MUX_H__ #include <gst/gst.h> +#include <gst/base/gstcollectpads.h> #include <gst/riff/riff-ids.h> #include "avi-ids.h" +G_BEGIN_DECLS -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -#define GST_TYPE_AVIMUX \ - (gst_avimux_get_type()) -#define GST_AVIMUX(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AVIMUX,GstAviMux)) -#define GST_AVIMUX_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AVIMUX,GstAviMux)) -#define GST_IS_AVIMUX(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AVIMUX)) -#define GST_IS_AVIMUX_CLASS(obj) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_AVIMUX)) +#define GST_TYPE_AVI_MUX \ + (gst_avi_mux_get_type()) +#define GST_AVI_MUX(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AVI_MUX,GstAviMux)) +#define GST_AVI_MUX_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AVI_MUX,GstAviMuxClass)) +#define GST_IS_AVI_MUX(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AVI_MUX)) +#define GST_IS_AVI_MUX_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_AVI_MUX)) typedef struct _GstAviMux GstAviMux; @@ -51,11 +48,13 @@ struct _GstAviMux { GstElement element; /* pads */ - GstPad *srcpad; - GstPad *audiosinkpad; - gboolean audio_pad_connected, audio_pad_eos; - GstPad *videosinkpad; - gboolean video_pad_connected, video_pad_eos; + GstPad *srcpad; + GstCollectData *audiocollectdata; + gboolean audio_pad_connected; + GstCollectData *videocollectdata; + gboolean video_pad_connected; + GstCollectPads *collect; + GstPadEventFunction collect_event; /* the AVI header */ gst_riff_avih avi_hdr; @@ -79,6 +78,8 @@ struct _GstAviMux { /* tags */ GstTagList *tags; + GstTagList *tags_snap; + guint32 tag_size; /* information about the AVI index ('idx') */ gst_riff_index_entry *idx; @@ -91,21 +92,15 @@ struct _GstAviMux { /* whether to use "large AVI files" or just stick to small indexed files */ gboolean enable_large_avi; - - /* in order to be usable as a loopbased element, we need an internal - * 'buffered' buffer for each pad, so one for audio, one for video */ - GstBuffer *audio_buffer_queue, *video_buffer_queue; }; struct _GstAviMuxClass { GstElementClass parent_class; }; -GType gst_avimux_get_type(void); +GType gst_avi_mux_get_type(void); -#ifdef __cplusplus -} -#endif /* __cplusplus */ +G_END_DECLS -#endif /* __GST_AVIMUX_H__ */ +#endif /* __GST_AVI_MUX_H__ */ |