From 97aeaa8eb0ff5e853f2dbd25b492da456073b4cb Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Thu, 25 Nov 2004 20:03:51 +0000 Subject: gst/cdxaparse/: SVCD/VCD header stripping separated from CDXA image parsing. Original commit message from CVS: * gst/cdxaparse/Makefile.am: * gst/cdxaparse/gstcdxaparse.c: (gst_cdxaparse_get_type), (gst_cdxaparse_class_init), (gst_cdxaparse_init), (gst_cdxaparse_loop), (gst_cdxaparse_change_state), (plugin_init): * gst/cdxaparse/gstcdxaparse.h: * gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_get_type), (gst_cdxastrip_base_init), (gst_cdxastrip_class_init), (gst_cdxastrip_init), (gst_cdxastrip_get_src_formats), (gst_cdxastrip_get_src_query_types), (gst_cdxastrip_handle_src_query), (gst_cdxastrip_get_event_mask), (gst_cdxastrip_handle_src_event), (gst_cdxastrip_strip), (gst_cdxastrip_sync), (gst_cdxastrip_handle_event), (gst_cdxastrip_chain), (gst_cdxastrip_change_state): * gst/cdxaparse/gstcdxastrip.h: SVCD/VCD header stripping separated from CDXA image parsing. * gst/typefind/gsttypefindfunctions.c: (mp3_type_find), (plugin_init): Add VCD/SVCD header typefinding for VCD/SVCD. * sys/vcd/vcdsrc.c: (gst_vcdsrc_get_type), (gst_vcdsrc_base_init), (gst_vcdsrc_class_init), (gst_vcdsrc_init), (gst_vcdsrc_set_property), (gst_vcdsrc_get_property), (gst_vcdsrc_get_event_mask), (gst_vcdsrc_get_query_types), (gst_vcdsrc_get_formats), (gst_vcdsrc_srcpad_event), (gst_vcdsrc_srcpad_query), (gst_vcdsrc_get), (gst_vcdsrc_open_file), (gst_vcdsrc_close_file), (gst_vcdsrc_change_state), (gst_vcdsrc_msf), (gst_vcdsrc_recalculate), (gst_vcdsrc_uri_get_type), (gst_vcdsrc_uri_get_protocols), (gst_vcdsrc_uri_get_uri), (gst_vcdsrc_uri_set_uri), (gst_vcdsrc_uri_handler_init): * sys/vcd/vcdsrc.h: Fix up, add seeking, querying, URI interface. Works in totem now. --- sys/vcd/vcdsrc.h | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) (limited to 'sys/vcd/vcdsrc.h') diff --git a/sys/vcd/vcdsrc.h b/sys/vcd/vcdsrc.h index ab2c74da..2ab0e49b 100644 --- a/sys/vcd/vcdsrc.h +++ b/sys/vcd/vcdsrc.h @@ -21,25 +21,19 @@ #ifndef __VCDSRC_H__ #define __VCDSRC_H__ - #include - #include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - +G_BEGIN_DECLS #define VCD_BYTES_PER_SECTOR 2352 #define GST_TYPE_VCDSRC \ - (vcdsrc_get_type()) -#define VCDSRC(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_VCDSRC,VCDSrc)) -#define VCDSRC_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_VCDSRC,VCDSrcClass)) + (gst_vcdsrc_get_type()) +#define GST_VCDSRC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_VCDSRC,GstVCDSrc)) +#define GST_VCDSRC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_VCDSRC,GstVCDSrcClass)) #define GST_IS_VCDSRC(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_VCDSRC)) #define GST_IS_VCDSRC_CLASS(obj) \ @@ -50,12 +44,12 @@ typedef enum { VCDSRC_OPEN = GST_ELEMENT_FLAG_LAST, VCDSRC_FLAG_LAST = GST_ELEMENT_FLAG_LAST+2, -} VCDSrcFlags; +} GstVCDSrcFlags; -typedef struct _VCDSrc VCDSrc; -typedef struct _VCDSrcClass VCDSrcClass; +typedef struct _GstVCDSrc GstVCDSrc; +typedef struct _GstVCDSrcClass GstVCDSrcClass; -struct _VCDSrc { +struct _GstVCDSrc { GstElement element; /* pads */ GstPad *srcpad; @@ -75,6 +69,10 @@ struct _VCDSrc { gulong trackoffset; gulong frameoffset; + /* bytes offset in next buf */ + gulong tempoffset; + gboolean discont, flush; + gulong curoffset; /* current offset in file */ gulong bytes_per_read; /* bytes per read */ @@ -82,15 +80,12 @@ struct _VCDSrc { int max_errors; }; -struct _VCDSrcClass { +struct _GstVCDSrcClass { GstElementClass parent_class; }; -GType vcdsrc_get_type(void); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ +GType gst_vcdsrc_get_type(void); +G_END_DECLS #endif /* __VCDSRC_H__ */ -- cgit v1.2.1