diff options
author | Sebastian Dröge <slomo@circular-chaos.org> | 2007-03-30 04:50:11 +0000 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2007-03-30 04:50:11 +0000 |
commit | 14c0bebf4b587eb747649987eb09aeab3e31dbe8 (patch) | |
tree | c8fe4ecce8fe614311480da285ad86d1690f4d23 /ext/wavpack/gstwavpackparse.h | |
parent | 365437cbc0a210a71756528331c5b3b6fd667813 (diff) | |
download | gst-plugins-bad-14c0bebf4b587eb747649987eb09aeab3e31dbe8.tar.gz gst-plugins-bad-14c0bebf4b587eb747649987eb09aeab3e31dbe8.tar.bz2 gst-plugins-bad-14c0bebf4b587eb747649987eb09aeab3e31dbe8.zip |
ext/wavpack/: Don't play audioconvert. As wavpack wants/outputs all samples with width==32 and depth=[1,32] accept th...
Original commit message from CVS:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_reset),
(gst_wavpack_dec_init), (gst_wavpack_dec_sink_set_caps),
(gst_wavpack_dec_clip_outgoing_buffer),
(gst_wavpack_dec_post_tags), (gst_wavpack_dec_chain):
* ext/wavpack/gstwavpackdec.h:
* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_reset),
(gst_wavpack_enc_sink_set_caps), (gst_wavpack_enc_set_wp_config),
(gst_wavpack_enc_chain):
* ext/wavpack/gstwavpackenc.h:
* ext/wavpack/gstwavpackparse.c:
Don't play audioconvert. As wavpack wants/outputs all samples with
width==32 and depth=[1,32] accept this and let audioconvert convert
to accepted formats instead of doing it in the element for n*8 depths.
This also adds support for non-n*8 depths and prevents some useless
memory allocations. Fixes #421598
Also add a workaround for bug #421542 in wavpackenc for now...
* tests/check/elements/wavpackdec.c: (GST_START_TEST):
* tests/check/elements/wavpackenc.c: (GST_START_TEST):
* tests/check/elements/wavpackparse.c: (GST_START_TEST):
Consider the change above in the unit tests and test if the correct
caps are accepted and set. Also check for GST_BUFFER_OFFSET_END in
the wavpackparse unit test.
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_init),
(gst_wavpack_dec_sink_set_caps):
Set caps on the src pad as soon as possible.
* ext/wavpack/gstwavpackdec.h:
* ext/wavpack/gstwavpackcommon.h:
* ext/wavpack/gstwavpackenc.h:
* ext/wavpack/gstwavpackparse.h:
Fix indention. gst-indent is now called by cicl.
Diffstat (limited to 'ext/wavpack/gstwavpackparse.h')
-rw-r--r-- | ext/wavpack/gstwavpackparse.h | 52 |
1 files changed, 25 insertions, 27 deletions
diff --git a/ext/wavpack/gstwavpackparse.h b/ext/wavpack/gstwavpackparse.h index ed7db73a..7729c0f4 100644 --- a/ext/wavpack/gstwavpackparse.h +++ b/ext/wavpack/gstwavpackparse.h @@ -26,7 +26,6 @@ #include <gst/base/gstadapter.h> G_BEGIN_DECLS - #define GST_TYPE_WAVPACK_PARSE \ (gst_wavpack_parse_get_type()) #define GST_WAVPACK_PARSE(obj) \ @@ -37,58 +36,57 @@ G_BEGIN_DECLS (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_WAVPACK_PARSE)) #define GST_IS_WAVPACK_PARSE_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_WAVPACK_PARSE)) - -typedef struct _GstWavpackParse GstWavpackParse; -typedef struct _GstWavpackParseClass GstWavpackParseClass; +typedef struct _GstWavpackParse GstWavpackParse; +typedef struct _GstWavpackParseClass GstWavpackParseClass; typedef struct _GstWavpackParseIndexEntry GstWavpackParseIndexEntry; -struct _GstWavpackParseIndexEntry { - gint64 byte_offset; /* byte offset of this chunk */ - gint64 sample_offset; /* first sample in this chunk */ - gint64 sample_offset_end; /* first sample in next chunk */ +struct _GstWavpackParseIndexEntry +{ + gint64 byte_offset; /* byte offset of this chunk */ + gint64 sample_offset; /* first sample in this chunk */ + gint64 sample_offset_end; /* first sample in next chunk */ }; struct _GstWavpackParse { - GstElement element; + GstElement element; - /*< private >*/ - GstPad *sinkpad; - GstPad *srcpad; - - guint samplerate; - guint channels; - guint total_samples; + /*< private > */ + GstPad *sinkpad; + GstPad *srcpad; - gboolean need_newsegment; + guint samplerate; + guint channels; + guint total_samples; - gint64 current_offset; /* byte offset on sink pad */ - gint64 upstream_length; /* length of file in bytes */ + gboolean need_newsegment; - GstSegment segment; /* the currently configured segment, in - * samples/audio frames (DEFAULT format) */ + gint64 current_offset; /* byte offset on sink pad */ + gint64 upstream_length; /* length of file in bytes */ - GstAdapter *adapter; /* when operating chain-based, otherwise NULL */ + GstSegment segment; /* the currently configured segment, in + * samples/audio frames (DEFAULT format) */ + + GstAdapter *adapter; /* when operating chain-based, otherwise NULL */ /* Array of GstWavpackParseIndexEntry structs, mapping known * sample offsets to byte offsets. Is kept increasing without * gaps (ie. append only and consecutive entries must always * map to consecutive chunks in the file). */ - GArray *entries; + GArray *entries; /* Queued events (e.g. tag events we receive before we create the src pad) */ - GList *queued_events; /* STREAM_LOCK */ + GList *queued_events; /* STREAM_LOCK */ }; -struct _GstWavpackParseClass +struct _GstWavpackParseClass { GstElementClass parent; }; GType gst_wavpack_parse_get_type (void); -gboolean gst_wavpack_parse_plugin_init (GstPlugin *plugin); +gboolean gst_wavpack_parse_plugin_init (GstPlugin * plugin); G_END_DECLS - #endif /* __GST_WAVPACK_PARSE_H__ */ |