summaryrefslogtreecommitdiffstats
path: root/ext
AgeCommit message (Collapse)AuthorFilesLines
2007-01-13ext/mythtv/gstmythtvsrc.c: Clean up a bit, mostly the debug statements; fix ↵Tim-Philipp Müller1-93/+55
deadlock in _set_property() in the error ... Original commit message from CVS: * ext/mythtv/gstmythtvsrc.c: (do_read_request_response), (gst_mythtv_src_create), (gst_mythtv_src_get_position), (gst_mythtv_src_do_seek), (gst_mythtv_src_start), (gst_mythtv_src_next_program_chain), (gst_mythtv_src_get_size), (gst_mythtv_src_handle_event), (gst_mythtv_src_handle_query), (gst_mythtv_src_change_state), (gst_mythtv_src_set_property), (gst_mythtv_src_uri_get_type): Clean up a bit, mostly the debug statements; fix deadlock in _set_property() in the error cases; fix up query function.
2007-01-12ext/ladspa/gstsignalprocessor.c (gst_signal_processor_fixate)Andy Wingo1-39/+55
Original commit message from CVS: 2007-01-12 Andy Wingo <wingo@pobox.com> * ext/ladspa/gstsignalprocessor.c (gst_signal_processor_fixate) (gst_signal_processor_ouija_caps, gst_signal_processor_prepare): Remove fixate/ouija stuff, thankfully, due to the new part-negotiation.txt pull-mode negotiation scheme. (gst_signal_processor_setcaps_pull) (gst_signal_processor_setcaps): Implement upstream set_caps pull proxying for pull mode. Now this works: ladspa-sine-fcac ! audioconvert ! alsasink.
2007-01-12MythTV client source plugin created.Edgard Lima4-0/+1510
Original commit message from CVS: MythTV client source plugin created.
2007-01-12ext/jack/gstjackaudiosink.*: Improve docs.Wim Taymans2-10/+37
Original commit message from CVS: * ext/jack/gstjackaudiosink.c: (jack_sample_rate_cb), (jack_buffer_size_cb), (jack_shutdown_cb), (gst_jack_ring_buffer_acquire): * ext/jack/gstjackaudiosink.h: Improve docs.
2007-01-12ext/gsm/gstgsmenc.c: Fix typo in docs.Wim Taymans1-1/+1
Original commit message from CVS: * ext/gsm/gstgsmenc.c: (gst_gsmenc_init): Fix typo in docs.
2007-01-11ext/wavpack/gstwavpackenc.c: Minor clean-up: use enum values instead of ↵Sebastian Dröge1-11/+12
hardcoded constants (#395536). Original commit message from CVS: Patch by: Sebastian Dröge <slomo@circular-chaos.org> * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_mode_get_type), (gst_wavpack_enc_correction_mode_get_type), (gst_wavpack_enc_joint_stereo_mode_get_type): Minor clean-up: use enum values instead of hardcoded constants (#395536).
2007-01-06ext/ladspa/gstsignalprocessor.cAndy Wingo1-31/+31
Original commit message from CVS: 2007-01-06 Andy Wingo <wingo@pobox.com> * ext/ladspa/gstsignalprocessor.c (gst_signal_processor_ouija_caps): Move around in the source file... (gst_signal_processor_prepare, gst_signal_processor_do_pulls): Call ouija_caps in prepare() instead of do_pulls(), a bit earlier. This allows us to have caps when we do the pad_alloc_buffer(). (gst_pad_alloc_buffer_and_set_caps): Use self->caps instead of the pad caps, which might not be set yet.
2007-01-06ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_add_pad_from_template)Andy Wingo1-16/+51
Original commit message from CVS: 2007-01-06 Andy Wingo <wingo@pobox.com> * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_add_pad_from_template) (gst_signal_processor_fixate): Add a fixate function, to assist in pathological ladspa-sine-fcac ! fakesink can-activate-pull=true cases. (gst_signal_processor_prepare, gst_signal_processor_process): Add nframes args so that getrange can tell ladspa how many frames to process. (gst_signal_processor_ouija_caps): setcaps needs to be called before processing, which normally happens when chaining a buffer to a pad. However in getrange mode with no sinks we need to check explicitly for this condition, guess some caps to use, and use those to setcaps(). Hence this mystical function. (gst_signal_processor_do_pulls): Pull in bytes, not samples. Divine the caps if necessary. (gst_signal_processor_getrange): Interpret the length as bytes, not samples. (gst_signal_processor_chain): nframes=G_MAXUINT, will be limited by incoming buffer sizes.
2007-01-04move amrwb codeThomas Vander Stichele5-9/+81
Original commit message from CVS: move amrwb code
2007-01-04move amrwb codeThomas Vander Stichele1-44/+0
Original commit message from CVS: move amrwb code
2007-01-04ext/: Fix various compiler warnings that reveal potential bugs.Julien Moutte4-11/+8
Original commit message from CVS: 2007-01-04 Julien MOUTTE <julien@moutte.net> * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_navigation_send_event), (gst_dfbvideosink_get_type): * ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_open): * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_setcaps), (gst_sdlvideosink_show_frame), (gst_sdlvideosink_navigation_send_event): * ext/sdl/sdlvideosink.h: Fix various compiler warnings that reveal potential bugs.
2007-01-03Fix build with gcc-2.x (declare variables at the beginning of a block etc.). ↵Jens Granseuer1-2/+4
Fixes #391971. Original commit message from CVS: Patch by: Jens Granseuer <jensgr at gmx net> * ext/xvid/gstxvidenc.c: (gst_xvidenc_encode), (gst_xvidenc_get_property): * gst/filter/gstbpwsinc.c: (bpwsinc_transform_ip): * gst/filter/gstfilter.c: (plugin_init): * gst/filter/gstiir.c: (iir_transform_ip): * gst/filter/gstlpwsinc.c: (lpwsinc_transform_ip): * gst/modplug/gstmodplug.cc: * gst/nuvdemux/gstnuvdemux.c: (gst_nuv_demux_header_load), (gst_nuv_demux_stream_extend_header): Fix build with gcc-2.x (declare variables at the beginning of a block etc.). Fixes #391971.
2006-12-22Added seek support.Edgard Lima2-438/+514
Original commit message from CVS: Added seek support.
2006-12-18Move LADPSA plugin from -good for the release, as it's not quite ready to be ↵Jan Schmidt1-0/+8
enabled by default in the -good module yet. Original commit message from CVS: * configure.ac: * ext/Makefile.am: * ext/ladspa/*: Move LADPSA plugin from -good for the release, as it's not quite ready to be enabled by default in the -good module yet.
2006-12-18ext/ladspa/gstsignalprocessor.c: Reset flow_state back to _OK after a flush ↵Wim Taymans1-7/+18
stop so that we exit our error state afte... Original commit message from CVS: * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_setcaps), (gst_signal_processor_event): Reset flow_state back to _OK after a flush stop so that we exit our error state after the flush. Fixes #374213
2006-12-18ext/wavpack/gstwavpackenc.h: Use local copy of md5.h, as it disappeared in ↵Sebastian Dröge1-1/+1
recent wavpack installs. Original commit message from CVS: * ext/wavpack/gstwavpackenc.h: Use local copy of md5.h, as it disappeared in recent wavpack installs. Patch by: Sebastian Dröge <slomo at ubuntu dot com> Fixes: #387076
2006-12-15ext/libmms/gstmms.c: These debug statements should be using LOG level.Tim-Philipp Müller1-4/+4
Original commit message from CVS: * ext/libmms/gstmms.c: (gst_mms_create): These debug statements should be using LOG level.
2006-12-12ext/neon/gstneonhttpsrc.c: Fix minor mem leak in redirect code.Tim-Philipp Müller1-2/+4
Original commit message from CVS: * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_create), (send_request_and_redirect): Fix minor mem leak in redirect code. * tests/check/Makefile.am: * tests/check/elements/.cvsignore: * tests/check/elements/neonhttpsrc.c: (handoff_cb), (GST_START_TEST), (neonhttpsrc_suite): * tests/check/gst-plugins-bad.supp: Add super-basic unit test for #384140.
2006-12-12ext/neon/gstneonhttpsrc.c: Set offset on buffers pushed out (id3demux gets ↵Tim-Philipp Müller1-1/+3
confused if the first buffer does not have... Original commit message from CVS: * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_create), (send_request_and_redirect): Set offset on buffers pushed out (id3demux gets confused if the first buffer does not have an offset of 0). Fixes #384140.
2006-12-12ext/neon/gstneonhttpsrc.c: Minor clean-ups; remove newlines at end of debug ↵Tim-Philipp Müller1-14/+16
statements. Original commit message from CVS: * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init), (gst_neonhttp_src_create), (send_request_and_redirect), (gst_neonhttp_src_start), (oom_callback): Minor clean-ups; remove newlines at end of debug statements.
2006-12-06ext/jack/.cvsignore: Ignore old files as requested by the build slave.Jan Schmidt1-0/+1
Original commit message from CVS: * ext/jack/.cvsignore: Ignore old files as requested by the build slave.
2006-11-30ext/Makefile.am: Fix build.Wim Taymans2-4/+7
Original commit message from CVS: * ext/Makefile.am: Fix build. * ext/jack/gstjackaudiosink.c: (jack_process_cb), (jack_sample_rate_cb), (jack_buffer_size_cb), (jack_shutdown_cb), (gst_jack_ring_buffer_acquire): Small cleanups.
2006-11-30Added fully functional jackaudiosink.Wim Taymans6-655/+958
Original commit message from CVS: * configure.ac: * ext/Makefile.am: * ext/jack/Makefile.am: * ext/jack/gstjack.c: (plugin_init): * ext/jack/gstjack.h: * ext/jack/gstjackaudiosink.c: (gst_jack_ring_buffer_get_type), (gst_jack_ring_buffer_class_init), (jack_process_cb), (jack_sample_rate_cb), (jack_buffer_size_cb), (jack_shutdown_cb), (gst_jack_ring_buffer_init), (gst_jack_ring_buffer_dispose), (gst_jack_ring_buffer_finalize), (gst_jack_ring_buffer_open_device), (gst_jack_ring_buffer_close_device), (gst_jack_ring_buffer_acquire), (gst_jack_ring_buffer_release), (gst_jack_ring_buffer_start), (gst_jack_ring_buffer_pause), (gst_jack_ring_buffer_stop), (gst_jack_ring_buffer_delay), (gst_jack_connect_get_type), (gst_jack_audio_sink_base_init), (gst_jack_audio_sink_class_init), (gst_jack_audio_sink_init), (gst_jack_audio_sink_set_property), (gst_jack_audio_sink_get_property), (gst_jack_audio_sink_getcaps), (gst_jack_audio_sink_create_ringbuffer): * ext/jack/gstjackaudiosink.h: Added fully functional jackaudiosink.
2006-11-26ext/theora/theoradec.c: Send events on the right pads, since they don't work ↵Michael Smith1-2/+2
very well if you send them in the wrong ... Original commit message from CVS: * ext/theora/theoradec.c: (theora_dec_src_query), (theora_dec_src_event), (theora_handle_data_packet), (theora_dec_chain): Send events on the right pads, since they don't work very well if you send them in the wrong direction.
2006-11-24remove obsolete _factory_init protos and functionsStefan Kost4-23/+3
Original commit message from CVS: * ext/audiofile/gstafsink.c: * ext/polyp/plugin.c: (plugin_init): * ext/polyp/polypsink.c: * ext/polyp/polypsink.h: * sys/dxr3/dxr3audiosink.h: * sys/dxr3/dxr3spusink.h: * sys/dxr3/dxr3videosink.h: remove obsolete _factory_init protos and functions
2006-11-16ext/spc/gstspc.c: Fix build with disabled gst-debug.Tim-Philipp Müller1-3/+2
Original commit message from CVS: * ext/spc/gstspc.c: (spc_play): Fix build with disabled gst-debug.
2006-11-15ext/wavpack/: Some small clean-ups: use enums instead of hard-coded numbers, ↵Sebastian Dröge3-70/+103
const-ify element details, re-factor som... Original commit message from CVS: Patch by: Sebastian Dröge <slomo@circular-chaos.org> * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_reset), (gst_wavpack_dec_init), (gst_wavpack_dec_change_state): * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_base_init), (gst_wavpack_enc_class_init), (gst_wavpack_enc_reset), (gst_wavpack_enc_init), (gst_wavpack_enc_set_wp_config), (gst_wavpack_enc_change_state): * ext/wavpack/gstwavpackparse.c: Some small clean-ups: use enums instead of hard-coded numbers, const-ify element details, re-factor some code into _reset() functions (#352605).
2006-11-14ext/Makefile.am: dist cdaudio dir.Wim Taymans1-0/+1
Original commit message from CVS: * ext/Makefile.am: dist cdaudio dir.
2006-11-14Fix cdaudio build.Wim Taymans1-4/+4
Original commit message from CVS: * configure.ac: * ext/Makefile.am: Fix cdaudio build.
2006-11-02Fix enum nicks; only emit no-more-pads once; add support for very fast ↵Sebastian Dröge1-17/+35
encoding mode in upcoming 4.40.0 release (#369... Original commit message from CVS: Patch by: Sebastian Dröge <slomo at circular-chaos.org> * configure.ac: * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_mode_get_type), (gst_wavpack_enc_correction_mode_get_type), (gst_wavpack_enc_joint_stereo_mode_get_type), (gst_wavpack_enc_init), (gst_wavpack_enc_set_wp_config): Fix enum nicks; only emit no-more-pads once; add support for very fast encoding mode in upcoming 4.40.0 release (#369539).
2006-10-29ext/dts/gstdtsdec.c: Fix flow handling and buffer refcounting ↵Tim-Philipp Müller1-12/+4
(gst_pad_push() takes ownership of the buffer passed to... Original commit message from CVS: * ext/dts/gstdtsdec.c: (gst_dtsdec_handle_frame): Fix flow handling and buffer refcounting (gst_pad_push() takes ownership of the buffer passed to it, the buffer does not have to be unreffed no matter what flow value gst_pad_push() returns).
2006-10-17Activate pads before adding them to running element.Tim-Philipp Müller2-0/+2
Original commit message from CVS: * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_set_wp_config): * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_create_src_pad): * gst/nuvdemux/gstnuvdemux.c: (gst_nuv_demux_create_pads): * tests/check/elements/wavpackparse.c: (wavpackparse_found_pad): Activate pads before adding them to running element.
2006-10-06ext/faad/gstfaad.c: Some cleanups.Wim Taymans1-11/+31
Original commit message from CVS: * ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_chain), (gst_faad_close_decoder): Some cleanups. Added some more debugging. Don't ever ignore unlinked, we're not a demuxer. * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream): Activate pad before adding it to the element.
2006-10-06ext/theora/theoradec.*: Port lots of changes from theoradec to theoraexpdec.Michael Smith2-38/+145
Original commit message from CVS: * ext/theora/theoradec.c: (gst_theoradec_reset), (theora_get_query_types), (theora_dec_src_query), (theora_dec_src_event), (theora_dec_sink_event), (theora_handle_comment_packet), (theora_handle_type_packet), (theora_handle_header_packet), (clip_buffer), (theora_dec_push), (theora_handle_422_image), (theora_handle_420_image), (theora_handle_data_packet), (theora_dec_chain), (theora_dec_change_state): * ext/theora/theoradec.h: Port lots of changes from theoradec to theoraexpdec. This catches this plugin up to theoradec. Note that duplicate frames are broken in theoradec at the moment.
2006-10-05Another batch of printf format fixes.Tim-Philipp Müller3-4/+4
Original commit message from CVS: * ext/dts/gstdtsdec.c: (gst_dtsdec_chain): * ext/musicbrainz/gsttrm.c: (gst_trm_setcaps): * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_sink_set_caps): * gst/qtdemux/qtdemux.c: (gst_qtdemux_chain), (qtdemux_parse), (qtdemux_parse_trak): * gst/spectrum/gstspectrum.c: (gst_spectrum_transform_ip): Another batch of printf format fixes.
2006-10-02ext/xvid/gstxvid.c: Set rank of xviddec to NONE until someone fixes it (too ↵Tim-Philipp Müller1-1/+1
many crasher bug reports against totem, p... Original commit message from CVS: * ext/xvid/gstxvid.c: (plugin_init): Set rank of xviddec to NONE until someone fixes it (too many crasher bug reports against totem, people should use gst-ffmpeg).
2006-09-23ext/cdaudio/gstcdaudio.c: Port to 0.10.Wim Taymans1-133/+187
Original commit message from CVS: * ext/cdaudio/gstcdaudio.c: (gst_cdaudio_class_init), (gst_cdaudio_init), (gst_cdaudio_set_property), (gst_cdaudio_get_property), (gst_cdaudio_change_state), (gst_cdaudio_send_event), (gst_cdaudio_get_query_types), (gst_cdaudio_query), (cdaudio_uri_set_uri): Port to 0.10.
2006-09-22ext/directfb/dfbvideosink.c: Lower rank from SECONDARY to MARGINAL. Plugins ↵Tim-Philipp Müller1-1/+1
in -bad that might be autoplugged shouldn... Original commit message from CVS: * ext/directfb/dfbvideosink.c: (plugin_init): Lower rank from SECONDARY to MARGINAL. Plugins in -bad that might be autoplugged shouldn't trump plugins in -base, -good or -ugly (in this case ximagesink). * sys/glsink/glimagesink.c: (plugin_init): Set rank to NONE to prevent it from being autoplugged until errors are handled properly (see #357212).
2006-09-21Reverted previous commit (2006-09-19 - Allow internal codes from last.fm). ↵Edgard Lima3-151/+67
As dicussed on #gstreamer it should be don... Original commit message from CVS: Reverted previous commit (2006-09-19 - Allow internal codes from last.fm). As dicussed on #gstreamer it should be done in separete element.
2006-09-21ext/faac/gstfaac.c: Add decoder specific info on the caps.Wim Taymans1-42/+77
Original commit message from CVS: * ext/faac/gstfaac.c: (gst_faac_configure_source_pad), (gst_faac_chain): Add decoder specific info on the caps. Some cleanups here and there.
2006-09-19Allow internal codes from last.fmEdgard Lima3-64/+149
Original commit message from CVS: Allow internal codes from last.fm
2006-09-19ext/gsm/gstgsmdec.*: Handle WAV49 variant (GSM in WAV).Wim Taymans2-28/+55
Original commit message from CVS: * ext/gsm/gstgsmdec.c: (gst_gsmdec_init), (gst_gsmdec_sink_setcaps), (gst_gsmdec_sink_event), (gst_gsmdec_chain): * ext/gsm/gstgsmdec.h: Handle WAV49 variant (GSM in WAV). Some small cleanups.
2006-09-16More G_OBJECT macro fixing.Stefan Kost7-7/+7
Original commit message from CVS: * ext/hermes/gsthermescolorspace.c: * ext/ivorbis/vorbisfile.c: * ext/lcs/gstcolorspace.c: * ext/wavpack/gstwavpackenc.h: * ext/xine/xineaudiodec.c: * ext/xine/xineaudiosink.c: * ext/xine/xineinput.c: * gst/chart/gstchart.c: * gst/equalizer/gstiirequalizer.c: * gst/games/gstpuzzle.c: * gst/librfb/gstrfbsrc.c: * gst/mixmatrix/mixmatrix.c: * gst/nsf/gstnsf.h: * gst/vbidec/gstvbidec.c: * gst/virtualdub/gstxsharpen.c: More G_OBJECT macro fixing.
2006-09-03higher up firstThomas Vander Stichele1-2/+2
Original commit message from CVS: higher up first
2006-08-29ext/sdl/: Only de-init the subsystem we previously initialised. Avoids ↵Andrew Andkjar2-3/+3
borkage when both sdlvideosink and sdlaudiosin... Original commit message from CVS: Patch by: Andrew Andkjar <enki at goodship net> * ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_close): * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_supported), (gst_sdlvideosink_deinitsdl): Only de-init the subsystem we previously initialised. Avoids borkage when both sdlvideosink and sdlaudiosink are used at the same time and one is shut down.
2006-08-24ext/wavpack/gstwavpackdec.c: Post audio codec and average bitrate tags on ↵Sebastian Dröge2-3/+37
bus (#344472). Original commit message from CVS: Patch by: Sebastian Dröge <slomo at circular-chaos.org> * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_post_tags), (gst_wavpack_dec_chain): Post audio codec and average bitrate tags on bus (#344472). * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init), (gst_wavpack_parse_src_query): Forward queries in other formats (BYTE format in particular) upstream; add Sebastian to authors.
2006-08-23ext/wavpack/gstwavpackenc.c: Fix mem leak, send newsegment event on ↵Tim-Philipp Müller2-4/+4
correction pad as well (#352476). Original commit message from CVS: * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_push_block): Fix mem leak, send newsegment event on correction pad as well (#352476). * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init): Restore original author (on Sebastian's request). * tests/check/Makefile.am: * tests/check/gst-plugins-bad.supp: Add (so far empty) suppression file for -bad. Remove wavpackenc test from VALGRIND_TO_FIX now that the leak is fixed.
2006-08-23Add docs for wavpack elements (#352476).Sebastian Dröge6-3/+71
Original commit message from CVS: Patch by: Sebastian Dröge <slomo at circular-chaos.org> * docs/plugins/Makefile.am: * docs/plugins/gst-plugins-bad-plugins-docs.sgml: * docs/plugins/gst-plugins-bad-plugins-sections.txt: * docs/plugins/gst-plugins-bad-plugins.hierarchy: * docs/plugins/inspect/plugin-wavpack.xml: * ext/wavpack/gstwavpackdec.c: * ext/wavpack/gstwavpackdec.h: * ext/wavpack/gstwavpackenc.c: * ext/wavpack/gstwavpackenc.h: * ext/wavpack/gstwavpackparse.c: * ext/wavpack/gstwavpackparse.h: Add docs for wavpack elements (#352476).
2006-08-21ext/gsm/gstgsm.c: Make rank PRIMARY now that GSM seems to work fine.Wim Taymans1-1/+2
Original commit message from CVS: * ext/gsm/gstgsm.c: (plugin_init): Make rank PRIMARY now that GSM seems to work fine.
2006-08-21ext/wavpack/: More clean-ups: use shorter variable names to make code easier ↵Tim-Philipp Müller3-289/+281
to read; prefix structures we define wit... Original commit message from CVS: * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_init), (gst_wavpack_enc_finalize), (gst_wavpack_enc_sink_set_caps), (gst_wavpack_enc_set_wp_config), (gst_wavpack_enc_format_samples), (gst_wavpack_enc_push_block), (gst_wavpack_enc_chain), (gst_wavpack_enc_rewrite_first_block), (gst_wavpack_enc_sink_event), (gst_wavpack_enc_change_state), (gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property): * ext/wavpack/gstwavpackenc.h: * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset), (gst_wavpack_parse_src_query), (gst_wavpack_parse_src_event), (gst_wavpack_parse_init), (gst_wavpack_parse_get_upstream_length), (gst_wavpack_parse_loop): More clean-ups: use shorter variable names to make code easier to read; prefix structures we define with 'Gst' to make it clearer where they come from.