Define GstElementDetails as const and also static (when defined as global)
authorStefan Kost <ensonic@users.sourceforge.net>
Tue, 25 Apr 2006 21:39:46 +0000 (21:39 +0000)
committerStefan Kost <ensonic@users.sourceforge.net>
Tue, 25 Apr 2006 21:39:46 +0000 (21:39 +0000)
Original commit message from CVS:
* ext/aalib/gstaasink.c:
* ext/annodex/gstcmmldec.c:
* ext/annodex/gstcmmlenc.c:
* ext/cairo/gsttextoverlay.c:
* ext/cairo/gsttimeoverlay.c:
* ext/cdio/gstcdiocddasrc.c:
* ext/dv/gstdvdec.c:
* ext/dv/gstdvdemux.c:
* ext/esd/esdmon.c:
* ext/esd/esdsink.c:
* ext/flac/gstflacenc.c:
* ext/flac/gstflactag.c:
* ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_base_init):
* ext/gconf/gstgconfaudiosrc.c: (gst_gconf_audio_src_base_init):
* ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_base_init):
* ext/gconf/gstgconfvideosrc.c: (gst_gconf_video_src_base_init):
* ext/gdk_pixbuf/pixbufscale.c:
* ext/hal/gsthalaudiosink.c: (gst_hal_audio_sink_base_init):
* ext/hal/gsthalaudiosrc.c: (gst_hal_audio_src_base_init):
* ext/jpeg/gstjpegdec.c:
* ext/jpeg/gstjpegenc.c:
* ext/jpeg/gstsmokedec.c:
* ext/jpeg/gstsmokeenc.c:
* ext/libcaca/gstcacasink.c:
* ext/libmng/gstmngdec.c:
* ext/libmng/gstmngenc.c:
* ext/libpng/gstpngdec.c:
* ext/libpng/gstpngenc.c:
* ext/mikmod/gstmikmod.c:
* ext/raw1394/gstdv1394src.c:
* ext/shout2/gstshout2.c: (gst_shout2send_init):
* ext/shout2/gstshout2.h:
* ext/speex/gstspeexdec.c:
* ext/speex/gstspeexenc.c:
* gst/alpha/gstalpha.c:
* gst/alpha/gstalphacolor.c:
* gst/apetag/gstapedemux.c:
* gst/auparse/gstauparse.c:
* gst/autodetect/gstautoaudiosink.c:
(gst_auto_audio_sink_base_init):
* gst/autodetect/gstautovideosink.c:
(gst_auto_video_sink_base_init):
* gst/avi/gstavidemux.c: (gst_avi_demux_base_init):
* gst/avi/gstavimux.c: (gst_avimux_base_init):
* gst/cutter/gstcutter.c:
* gst/debug/breakmydata.c:
* gst/debug/efence.c:
* gst/debug/gstnavigationtest.c:
* gst/debug/gstnavseek.c:
* gst/debug/negotiation.c:
* gst/debug/progressreport.c:
* gst/debug/testplugin.c:
* gst/effectv/gstaging.c:
* gst/effectv/gstdice.c:
* gst/effectv/gstedge.c:
* gst/effectv/gstquark.c:
* gst/effectv/gstrev.c:
* gst/effectv/gstshagadelic.c:
* gst/effectv/gstvertigo.c:
* gst/effectv/gstwarp.c:
* gst/flx/gstflxdec.c:
* gst/goom/gstgoom.c:
* gst/icydemux/gsticydemux.c:
* gst/id3demux/gstid3demux.c:
* gst/interleave/deinterleave.c:
* gst/interleave/interleave.c:
* gst/law/alaw-decode.c: (gst_alawdec_base_init):
* gst/law/alaw-encode.c: (gst_alawenc_base_init):
* gst/law/mulaw-decode.c: (gst_mulawdec_base_init):
* gst/law/mulaw-encode.c: (gst_mulawenc_base_init):
* gst/level/gstlevel.c:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_base_init):
* gst/matroska/matroska-mux.c: (gst_matroska_mux_base_init):
* gst/median/gstmedian.c:
* gst/monoscope/gstmonoscope.c:
* gst/multipart/multipartdemux.c:
* gst/multipart/multipartmux.c:
* gst/oldcore/gstaggregator.c:
* gst/oldcore/gstfdsink.c:
* gst/oldcore/gstmd5sink.c:
* gst/oldcore/gstmultifilesrc.c:
* gst/oldcore/gstpipefilter.c:
* gst/oldcore/gstshaper.c:
* gst/oldcore/gststatistics.c:
* gst/rtp/gstasteriskh263.c:
* gst/rtp/gstrtpL16depay.c:
* gst/rtp/gstrtpL16pay.c:
* gst/rtp/gstrtpamrdepay.c:
* gst/rtp/gstrtpamrpay.c:
* gst/rtp/gstrtpdepay.c:
* gst/rtp/gstrtpgsmpay.c:
* gst/rtp/gstrtph263pay.c:
* gst/rtp/gstrtph263pdepay.c:
* gst/rtp/gstrtph263ppay.c:
* gst/rtp/gstrtpilbcdepay.c:
* gst/rtp/gstrtpmp4gpay.c:
* gst/rtp/gstrtpmp4vdepay.c:
* gst/rtp/gstrtpmp4vpay.c:
* gst/rtp/gstrtpmpadepay.c:
* gst/rtp/gstrtpmpapay.c:
* gst/rtp/gstrtppcmadepay.c:
* gst/rtp/gstrtppcmapay.c:
* gst/rtp/gstrtppcmudepay.c:
* gst/rtp/gstrtppcmupay.c:
* gst/rtp/gstrtpspeexdepay.c:
* gst/rtp/gstrtpspeexpay.c:
* gst/rtsp/gstrtpdec.c:
* gst/rtsp/gstrtspsrc.c:
* gst/smpte/gstsmpte.c:
* gst/udp/gstdynudpsink.c:
* gst/udp/gstmultiudpsink.c:
* gst/udp/gstudpsink.c:
* gst/udp/gstudpsrc.c:
* gst/videobox/gstvideobox.c:
* gst/videofilter/gstgamma.c: (gst_gamma_base_init):
* gst/videofilter/gstvideobalance.c:
* gst/videofilter/gstvideoflip.c:
* gst/videofilter/gstvideotemplate.c:
(gst_videotemplate_base_init):
* gst/videomixer/videomixer.c:
* gst/wavparse/gstwavparse.c: (gst_wavparse_base_init),
(gst_wavparse_class_init), (gst_wavparse_dispose),
(gst_wavparse_reset), (gst_wavparse_init),
(gst_wavparse_perform_seek), (gst_wavparse_peek_chunk_info),
(gst_wavparse_peek_chunk), (gst_wavparse_stream_headers),
(gst_wavparse_parse_stream_init), (gst_wavparse_send_event),
(gst_wavparse_add_src_pad), (gst_wavparse_stream_data),
(gst_wavparse_chain), (gst_wavparse_srcpad_event),
(gst_wavparse_sink_activate), (gst_wavparse_sink_activate_pull),
(gst_wavparse_change_state):
* gst/wavparse/gstwavparse.h:
* sys/oss/gstossmixerelement.c:
* sys/oss/gstosssink.c:
* sys/oss/gstosssrc.c:
* sys/osxaudio/gstosxaudioelement.c:
* sys/osxaudio/gstosxaudiosink.c:
* sys/osxaudio/gstosxaudiosrc.c:
* sys/sunaudio/gstsunaudiomixer.c:
* sys/sunaudio/gstsunaudiosink.c:
Define GstElementDetails as const and also static (when defined as
global)

124 files changed:
ChangeLog
ext/aalib/gstaasink.c
ext/annodex/gstcmmldec.c
ext/annodex/gstcmmlenc.c
ext/cairo/gsttextoverlay.c
ext/cairo/gsttimeoverlay.c
ext/cdio/gstcdiocddasrc.c
ext/dv/gstdvdec.c
ext/dv/gstdvdemux.c
ext/esd/esdmon.c
ext/esd/esdsink.c
ext/flac/gstflacenc.c
ext/flac/gstflactag.c
ext/gconf/gstgconfaudiosink.c
ext/gconf/gstgconfaudiosrc.c
ext/gconf/gstgconfvideosink.c
ext/gconf/gstgconfvideosrc.c
ext/gdk_pixbuf/pixbufscale.c
ext/hal/gsthalaudiosink.c
ext/hal/gsthalaudiosrc.c
ext/jpeg/gstjpegdec.c
ext/jpeg/gstjpegenc.c
ext/jpeg/gstsmokedec.c
ext/jpeg/gstsmokeenc.c
ext/libcaca/gstcacasink.c
ext/libmng/gstmngdec.c
ext/libmng/gstmngenc.c
ext/libpng/gstpngdec.c
ext/libpng/gstpngenc.c
ext/mikmod/gstmikmod.c
ext/raw1394/gstdv1394src.c
ext/speex/gstspeexdec.c
ext/speex/gstspeexenc.c
gst/alpha/gstalpha.c
gst/alpha/gstalphacolor.c
gst/apetag/gstapedemux.c
gst/auparse/gstauparse.c
gst/autodetect/gstautoaudiosink.c
gst/autodetect/gstautovideosink.c
gst/avi/gstavidemux.c
gst/avi/gstavimux.c
gst/cutter/gstcutter.c
gst/debug/breakmydata.c
gst/debug/efence.c
gst/debug/gstnavigationtest.c
gst/debug/gstnavseek.c
gst/debug/negotiation.c
gst/debug/progressreport.c
gst/debug/testplugin.c
gst/effectv/gstaging.c
gst/effectv/gstdice.c
gst/effectv/gstedge.c
gst/effectv/gstquark.c
gst/effectv/gstrev.c
gst/effectv/gstshagadelic.c
gst/effectv/gstvertigo.c
gst/effectv/gstwarp.c
gst/flx/gstflxdec.c
gst/goom/gstgoom.c
gst/icydemux/gsticydemux.c
gst/id3demux/gstid3demux.c
gst/law/alaw-decode.c
gst/law/alaw-encode.c
gst/law/mulaw-decode.c
gst/law/mulaw-encode.c
gst/level/gstlevel.c
gst/matroska/matroska-demux.c
gst/matroska/matroska-mux.c
gst/median/gstmedian.c
gst/monoscope/gstmonoscope.c
gst/multipart/multipartdemux.c
gst/multipart/multipartmux.c
gst/oldcore/gstaggregator.c
gst/oldcore/gstfdsink.c
gst/oldcore/gstmd5sink.c
gst/oldcore/gstmultifilesrc.c
gst/oldcore/gstpipefilter.c
gst/oldcore/gstshaper.c
gst/oldcore/gststatistics.c
gst/rtp/gstasteriskh263.c
gst/rtp/gstrtpL16depay.c
gst/rtp/gstrtpL16pay.c
gst/rtp/gstrtpamrdepay.c
gst/rtp/gstrtpamrpay.c
gst/rtp/gstrtpdepay.c
gst/rtp/gstrtpgsmpay.c
gst/rtp/gstrtph263pay.c
gst/rtp/gstrtph263pdepay.c
gst/rtp/gstrtph263ppay.c
gst/rtp/gstrtpilbcdepay.c
gst/rtp/gstrtpmp4gpay.c
gst/rtp/gstrtpmp4vdepay.c
gst/rtp/gstrtpmp4vpay.c
gst/rtp/gstrtpmpadepay.c
gst/rtp/gstrtpmpapay.c
gst/rtp/gstrtppcmadepay.c
gst/rtp/gstrtppcmapay.c
gst/rtp/gstrtppcmudepay.c
gst/rtp/gstrtppcmupay.c
gst/rtp/gstrtpspeexdepay.c
gst/rtp/gstrtpspeexpay.c
gst/rtsp/gstrtpdec.c
gst/rtsp/gstrtspsrc.c
gst/smpte/gstsmpte.c
gst/udp/gstdynudpsink.c
gst/udp/gstmultiudpsink.c
gst/udp/gstudpsink.c
gst/udp/gstudpsrc.c
gst/videobox/gstvideobox.c
gst/videofilter/gstgamma.c
gst/videofilter/gstvideobalance.c
gst/videofilter/gstvideoflip.c
gst/videofilter/gstvideotemplate.c
gst/videomixer/videomixer.c
gst/wavparse/gstwavparse.c
gst/wavparse/gstwavparse.h
sys/oss/gstossmixerelement.c
sys/oss/gstosssink.c
sys/oss/gstosssrc.c
sys/osxaudio/gstosxaudioelement.c
sys/osxaudio/gstosxaudiosink.c
sys/osxaudio/gstosxaudiosrc.c
sys/sunaudio/gstsunaudiomixer.c
sys/sunaudio/gstsunaudiosink.c

index ca5cb8f..170b2b0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,147 @@
+2006-04-26  Stefan Kost  <ensonic@users.sf.net>
+
+       * ext/aalib/gstaasink.c:
+       * ext/annodex/gstcmmldec.c:
+       * ext/annodex/gstcmmlenc.c:
+       * ext/cairo/gsttextoverlay.c:
+       * ext/cairo/gsttimeoverlay.c:
+       * ext/cdio/gstcdiocddasrc.c:
+       * ext/dv/gstdvdec.c:
+       * ext/dv/gstdvdemux.c:
+       * ext/esd/esdmon.c:
+       * ext/esd/esdsink.c:
+       * ext/flac/gstflacenc.c:
+       * ext/flac/gstflactag.c:
+       * ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_base_init):
+       * ext/gconf/gstgconfaudiosrc.c: (gst_gconf_audio_src_base_init):
+       * ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_base_init):
+       * ext/gconf/gstgconfvideosrc.c: (gst_gconf_video_src_base_init):
+       * ext/gdk_pixbuf/pixbufscale.c:
+       * ext/hal/gsthalaudiosink.c: (gst_hal_audio_sink_base_init):
+       * ext/hal/gsthalaudiosrc.c: (gst_hal_audio_src_base_init):
+       * ext/jpeg/gstjpegdec.c:
+       * ext/jpeg/gstjpegenc.c:
+       * ext/jpeg/gstsmokedec.c:
+       * ext/jpeg/gstsmokeenc.c:
+       * ext/libcaca/gstcacasink.c:
+       * ext/libmng/gstmngdec.c:
+       * ext/libmng/gstmngenc.c:
+       * ext/libpng/gstpngdec.c:
+       * ext/libpng/gstpngenc.c:
+       * ext/mikmod/gstmikmod.c:
+       * ext/raw1394/gstdv1394src.c:
+       * ext/shout2/gstshout2.c: (gst_shout2send_init):
+       * ext/shout2/gstshout2.h:
+       * ext/speex/gstspeexdec.c:
+       * ext/speex/gstspeexenc.c:
+       * gst/alpha/gstalpha.c:
+       * gst/alpha/gstalphacolor.c:
+       * gst/apetag/gstapedemux.c:
+       * gst/auparse/gstauparse.c:
+       * gst/autodetect/gstautoaudiosink.c:
+       (gst_auto_audio_sink_base_init):
+       * gst/autodetect/gstautovideosink.c:
+       (gst_auto_video_sink_base_init):
+       * gst/avi/gstavidemux.c: (gst_avi_demux_base_init):
+       * gst/avi/gstavimux.c: (gst_avimux_base_init):
+       * gst/cutter/gstcutter.c:
+       * gst/debug/breakmydata.c:
+       * gst/debug/efence.c:
+       * gst/debug/gstnavigationtest.c:
+       * gst/debug/gstnavseek.c:
+       * gst/debug/negotiation.c:
+       * gst/debug/progressreport.c:
+       * gst/debug/testplugin.c:
+       * gst/effectv/gstaging.c:
+       * gst/effectv/gstdice.c:
+       * gst/effectv/gstedge.c:
+       * gst/effectv/gstquark.c:
+       * gst/effectv/gstrev.c:
+       * gst/effectv/gstshagadelic.c:
+       * gst/effectv/gstvertigo.c:
+       * gst/effectv/gstwarp.c:
+       * gst/flx/gstflxdec.c:
+       * gst/goom/gstgoom.c:
+       * gst/icydemux/gsticydemux.c:
+       * gst/id3demux/gstid3demux.c:
+       * gst/interleave/deinterleave.c:
+       * gst/interleave/interleave.c:
+       * gst/law/alaw-decode.c: (gst_alawdec_base_init):
+       * gst/law/alaw-encode.c: (gst_alawenc_base_init):
+       * gst/law/mulaw-decode.c: (gst_mulawdec_base_init):
+       * gst/law/mulaw-encode.c: (gst_mulawenc_base_init):
+       * gst/level/gstlevel.c:
+       * gst/matroska/matroska-demux.c: (gst_matroska_demux_base_init):
+       * gst/matroska/matroska-mux.c: (gst_matroska_mux_base_init):
+       * gst/median/gstmedian.c:
+       * gst/monoscope/gstmonoscope.c:
+       * gst/multipart/multipartdemux.c:
+       * gst/multipart/multipartmux.c:
+       * gst/oldcore/gstaggregator.c:
+       * gst/oldcore/gstfdsink.c:
+       * gst/oldcore/gstmd5sink.c:
+       * gst/oldcore/gstmultifilesrc.c:
+       * gst/oldcore/gstpipefilter.c:
+       * gst/oldcore/gstshaper.c:
+       * gst/oldcore/gststatistics.c:
+       * gst/rtp/gstasteriskh263.c:
+       * gst/rtp/gstrtpL16depay.c:
+       * gst/rtp/gstrtpL16pay.c:
+       * gst/rtp/gstrtpamrdepay.c:
+       * gst/rtp/gstrtpamrpay.c:
+       * gst/rtp/gstrtpdepay.c:
+       * gst/rtp/gstrtpgsmpay.c:
+       * gst/rtp/gstrtph263pay.c:
+       * gst/rtp/gstrtph263pdepay.c:
+       * gst/rtp/gstrtph263ppay.c:
+       * gst/rtp/gstrtpilbcdepay.c:
+       * gst/rtp/gstrtpmp4gpay.c:
+       * gst/rtp/gstrtpmp4vdepay.c:
+       * gst/rtp/gstrtpmp4vpay.c:
+       * gst/rtp/gstrtpmpadepay.c:
+       * gst/rtp/gstrtpmpapay.c:
+       * gst/rtp/gstrtppcmadepay.c:
+       * gst/rtp/gstrtppcmapay.c:
+       * gst/rtp/gstrtppcmudepay.c:
+       * gst/rtp/gstrtppcmupay.c:
+       * gst/rtp/gstrtpspeexdepay.c:
+       * gst/rtp/gstrtpspeexpay.c:
+       * gst/rtsp/gstrtpdec.c:
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/smpte/gstsmpte.c:
+       * gst/udp/gstdynudpsink.c:
+       * gst/udp/gstmultiudpsink.c:
+       * gst/udp/gstudpsink.c:
+       * gst/udp/gstudpsrc.c:
+       * gst/videobox/gstvideobox.c:
+       * gst/videofilter/gstgamma.c: (gst_gamma_base_init):
+       * gst/videofilter/gstvideobalance.c:
+       * gst/videofilter/gstvideoflip.c:
+       * gst/videofilter/gstvideotemplate.c:
+       (gst_videotemplate_base_init):
+       * gst/videomixer/videomixer.c:
+       * gst/wavparse/gstwavparse.c: (gst_wavparse_base_init),
+       (gst_wavparse_class_init), (gst_wavparse_dispose),
+       (gst_wavparse_reset), (gst_wavparse_init),
+       (gst_wavparse_perform_seek), (gst_wavparse_peek_chunk_info),
+       (gst_wavparse_peek_chunk), (gst_wavparse_stream_headers),
+       (gst_wavparse_parse_stream_init), (gst_wavparse_send_event),
+       (gst_wavparse_add_src_pad), (gst_wavparse_stream_data),
+       (gst_wavparse_chain), (gst_wavparse_srcpad_event),
+       (gst_wavparse_sink_activate), (gst_wavparse_sink_activate_pull),
+       (gst_wavparse_change_state):
+       * gst/wavparse/gstwavparse.h:
+       * sys/oss/gstossmixerelement.c:
+       * sys/oss/gstosssink.c:
+       * sys/oss/gstosssrc.c:
+       * sys/osxaudio/gstosxaudioelement.c:
+       * sys/osxaudio/gstosxaudiosink.c:
+       * sys/osxaudio/gstosxaudiosrc.c:
+       * sys/sunaudio/gstsunaudiomixer.c:
+       * sys/sunaudio/gstsunaudiosink.c:
+         Define GstElementDetails as const and also static (when defined as
+         global)
+
 2006-04-25  Tim-Philipp Müller  <tim at centricular dot net>
 
        * ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_chain):
index 6f2aa6f..a633b2d 100644 (file)
@@ -28,7 +28,7 @@
 #include <gst/video/video.h>
 
 /* elementfactory information */
-static GstElementDetails gst_aasink_details =
+static const GstElementDetails gst_aasink_details =
 GST_ELEMENT_DETAILS ("ASCII art video sink",
     "Sink/Video",
     "An ASCII art videosink",
index f52ca2e..71f322f 100644 (file)
@@ -69,7 +69,7 @@ enum
   LAST_SIGNAL
 };
 
-static GstElementDetails gst_cmml_dec_details =
+static const GstElementDetails gst_cmml_dec_details =
 GST_ELEMENT_DETAILS ("CMML stream decoder",
     "Codec/Decoder",
     "Decodes CMML streams",
index 3ec87f4..5c7d758 100644 (file)
@@ -65,7 +65,7 @@ enum
   LAST_SIGNAL
 };
 
-static GstElementDetails gst_cmml_enc_details =
+static const GstElementDetails gst_cmml_enc_details =
 GST_ELEMENT_DETAILS ("CMML streams encoder",
     "Codec/Encoder",
     "Encodes CMML streams",
index 642dd52..664de84 100644 (file)
@@ -43,7 +43,7 @@
 GST_DEBUG_CATEGORY_EXTERN (cairo_debug);
 #define GST_CAT_DEFAULT cairo_debug
 
-static GstElementDetails cairo_text_overlay_details =
+static const GstElementDetails cairo_text_overlay_details =
 GST_ELEMENT_DETAILS ("Text overlay",
     "Filter/Editor/Video",
     "Adds text strings on top of a video buffer",
index 9d03988..d501a54 100644 (file)
@@ -48,7 +48,7 @@
 
 #include <gst/video/video.h>
 
-static GstElementDetails cairo_time_overlay_details =
+static const GstElementDetails cairo_time_overlay_details =
 GST_ELEMENT_DETAILS ("Time overlay",
     "Filter/Editor/Video",
     "Overlays the time on a video stream",
index 754edc8..cf83656 100644 (file)
@@ -91,7 +91,7 @@ enum
   PROP_READ_SPEED
 };
 
-static GstElementDetails gst_cdio_cdda_src_details =
+static const GstElementDetails gst_cdio_cdda_src_details =
 GST_ELEMENT_DETAILS ("CD audio source (CDDA)",
     "Source/File",
     "Read audio from CD using libcdio",
index 2392094..c7ab369 100644 (file)
@@ -51,7 +51,7 @@
 #include "gstdvdec.h"
 
 
-static GstElementDetails dvdec_details =
+static const GstElementDetails dvdec_details =
 GST_ELEMENT_DETAILS ("DV video decoder",
     "Codec/Decoder/Video",
     "Uses libdv to decode DV video (smpte314) (libdv.sourceforge.net)",
index 5223e96..55a4125 100644 (file)
 GST_DEBUG_CATEGORY (dvdemux_debug);
 #define GST_CAT_DEFAULT dvdemux_debug
 
-static GstElementDetails dvdemux_details =
+static const GstElementDetails dvdemux_details =
 GST_ELEMENT_DETAILS ("DV system stream demuxer",
     "Codec/Demuxer",
     "Uses libdv to separate DV audio from DV video (libdv.sourceforge.net)",
index 473b1ea..df1b59e 100644 (file)
@@ -29,7 +29,7 @@
 
 
 /* elementfactory information */
-static GstElementDetails esdmon_details =
+static const GstElementDetails esdmon_details =
 GST_ELEMENT_DETAILS ("Esound audio monitor",
     "Source/Audio",
     "Monitors audio from an esound server",
index dca30d5..ff0a194 100644 (file)
@@ -37,7 +37,7 @@ GST_DEBUG_CATEGORY_EXTERN (esd_debug);
 #define GST_CAT_DEFAULT esd_debug
 
 /* elementfactory information */
-static GstElementDetails esdsink_details =
+static const GstElementDetails esdsink_details =
 GST_ELEMENT_DETAILS ("Esound audio sink",
     "Sink/Audio",
     "Plays audio to an esound server",
index 655dff3..28b85c2 100644 (file)
@@ -31,7 +31,8 @@
 #include "flac_compat.h"
 
 
-GstElementDetails flacenc_details = GST_ELEMENT_DETAILS ("FLAC audio encoder",
+static const GstElementDetails flacenc_details =
+GST_ELEMENT_DETAILS ("FLAC audio encoder",
     "Codec/Encoder/Audio",
     "Encodes audio with the FLAC lossless audio encoder",
     "Wim Taymans <wim.taymans@chello.be>");
index f1271b6..246efbe 100644 (file)
@@ -86,7 +86,7 @@ struct _GstFlacTagClass
 };
 
 /* elementfactory information */
-static GstElementDetails gst_flac_tag_details =
+static const GstElementDetails gst_flac_tag_details =
 GST_ELEMENT_DETAILS ("FLAC tagger",
     "Tag",
     "Rewrite tags in a FLAC file",
index 6c704a0..8cd81c1 100644 (file)
@@ -51,7 +51,7 @@ static void
 gst_gconf_audio_sink_base_init (gpointer klass)
 {
   GstElementClass *eklass = GST_ELEMENT_CLASS (klass);
-  GstElementDetails gst_gconf_audio_sink_details =
+  static const GstElementDetails gst_gconf_audio_sink_details =
       GST_ELEMENT_DETAILS ("GConf audio sink",
       "Sink/Audio",
       "Audio sink embedding the GConf-settings for audio output",
index 86837c1..b80c89c 100644 (file)
@@ -40,7 +40,7 @@ static void
 gst_gconf_audio_src_base_init (gpointer klass)
 {
   GstElementClass *eklass = GST_ELEMENT_CLASS (klass);
-  GstElementDetails gst_gconf_audio_src_details =
+  static const GstElementDetails gst_gconf_audio_src_details =
       GST_ELEMENT_DETAILS ("GConf audio source",
       "Source/Audio",
       "Audio source embedding the GConf-settings for audio input",
index 1b4479e..ed37287 100644 (file)
@@ -39,7 +39,7 @@ static void
 gst_gconf_video_sink_base_init (gpointer klass)
 {
   GstElementClass *eklass = GST_ELEMENT_CLASS (klass);
-  GstElementDetails gst_gconf_video_sink_details =
+  static const GstElementDetails gst_gconf_video_sink_details =
       GST_ELEMENT_DETAILS ("GConf video sink",
       "Sink/Video",
       "Video sink embedding the GConf-settings for video output",
index a613da6..093545e 100644 (file)
@@ -40,7 +40,7 @@ static void
 gst_gconf_video_src_base_init (gpointer klass)
 {
   GstElementClass *eklass = GST_ELEMENT_CLASS (klass);
-  GstElementDetails gst_gconf_video_src_details =
+  static const GstElementDetails gst_gconf_video_src_details =
       GST_ELEMENT_DETAILS ("GConf video source",
       "Source/Video",
       "Video source embedding the GConf-settings for video input",
index a6dbe1e..7c498d3 100644 (file)
@@ -40,7 +40,7 @@ GST_DEBUG_CATEGORY (pixbufscale_debug);
 #define GST_CAT_DEFAULT pixbufscale_debug
 
 /* elementfactory information */
-static GstElementDetails pixbufscale_details =
+static const GstElementDetails pixbufscale_details =
 GST_ELEMENT_DETAILS ("GdkPixbuf image scaler",
     "Filter/Effect/Video",
     "Resizes video",
index eb9c4ee..ea3c406 100644 (file)
@@ -73,7 +73,7 @@ static void
 gst_hal_audio_sink_base_init (gpointer klass)
 {
   GstElementClass *eklass = GST_ELEMENT_CLASS (klass);
-  GstElementDetails gst_hal_audio_sink_details =
+  static const GstElementDetails gst_hal_audio_sink_details =
       GST_ELEMENT_DETAILS ("HAL audio sink",
       "Sink/Audio",
       "Audio sink for sound device access via HAL",
index fb8cc9b..f57e963 100644 (file)
@@ -75,7 +75,7 @@ static void
 gst_hal_audio_src_base_init (gpointer klass)
 {
   GstElementClass *eklass = GST_ELEMENT_CLASS (klass);
-  GstElementDetails gst_hal_audio_src_details =
+  static const GstElementDetails gst_hal_audio_src_details =
       GST_ELEMENT_DETAILS ("HAL audio source",
       "Source/Audio",
       "Audio source for sound device access via HAL",
index aa57291..55704f6 100644 (file)
@@ -28,7 +28,7 @@
 #include "gst/gst-i18n-plugin.h"
 #include <jerror.h>
 
-GstElementDetails gst_jpeg_dec_details =
+static const GstElementDetails gst_jpeg_dec_details =
 GST_ELEMENT_DETAILS ("JPEG image decoder",
     "Codec/Decoder/Image",
     "Decode images from JPEG format",
index 93833cf..2fc16b4 100644 (file)
@@ -27,7 +27,7 @@
 #include <gst/video/video.h>
 
 /* elementfactory information */
-GstElementDetails gst_jpegenc_details =
+static const GstElementDetails gst_jpegenc_details =
 GST_ELEMENT_DETAILS ("JPEG image encoder",
     "Codec/Encoder/Image",
     "Encode images in JPEG format",
index 79aea65..2cfc790 100644 (file)
@@ -28,7 +28,7 @@
 #include <gst/video/video.h>
 
 /* elementfactory information */
-GstElementDetails gst_smokedec_details =
+static const GstElementDetails gst_smokedec_details =
 GST_ELEMENT_DETAILS ("Smoke video decoder",
     "Codec/Decoder/Video",
     "Decode video from Smoke format",
index 83bbf1f..2ea7cf8 100644 (file)
@@ -27,7 +27,7 @@
 #include <gst/video/video.h>
 
 /* elementfactory information */
-GstElementDetails gst_smokeenc_details =
+static const GstElementDetails gst_smokeenc_details =
 GST_ELEMENT_DETAILS ("Smoke video encoder",
     "Codec/Encoder/Video",
     "Encode images into the Smoke format",
index 9139d19..9786edb 100644 (file)
@@ -27,7 +27,7 @@
 #include "gstcacasink.h"
 
 /* elementfactory information */
-static GstElementDetails gst_cacasink_details =
+static const GstElementDetails gst_cacasink_details =
 GST_ELEMENT_DETAILS ("A colored ASCII art video sink",
     "Sink/Video",
     "A colored ASCII art videosink",
index 70f615f..d3f05ce 100644 (file)
@@ -21,7 +21,7 @@
 #include "gstmngdec.h"
 #include <gst/video/video.h>
 
-static GstElementDetails gst_mngdec_details =
+static const GstElementDetails gst_mngdec_details =
 GST_ELEMENT_DETAILS ("MNG video decoder",
     "Codec/Decoder/Video",
     "Decode a mng video to raw images",
index 81b393e..c6e3432 100644 (file)
@@ -27,7 +27,8 @@
 #define MAX_HEIGHT              4096
 
 
-GstElementDetails gst_mngenc_details = GST_ELEMENT_DETAILS ("MNG video encoder",
+static const GstElementDetails gst_mngenc_details =
+GST_ELEMENT_DETAILS ("MNG video encoder",
     "Codec/Encoder/Video",
     "Encode a video frame to an .mng video",
     "Wim Taymans <wim@fluendo.com>");
index 6fbca48..3be0149 100644 (file)
@@ -23,7 +23,7 @@
 #include <gst/video/video.h>
 #include <gst/gst-i18n-plugin.h>
 
-static GstElementDetails gst_pngdec_details =
+static const GstElementDetails gst_pngdec_details =
 GST_ELEMENT_DETAILS ("PNG image decoder",
     "Codec/Decoder/Image",
     "Decode a png video frame to a raw image",
index 2078c30..c20b30f 100644 (file)
@@ -28,7 +28,7 @@
 #define MAX_HEIGHT              4096
 
 
-static GstElementDetails gst_pngenc_details =
+static const GstElementDetails gst_pngenc_details =
 GST_ELEMENT_DETAILS ("PNG image encoder",
     "Codec/Encoder/Image",
     "Encode a video frame to a .png image",
index 749c88c..83dd315 100644 (file)
@@ -25,7 +25,8 @@
 #include <stdlib.h>
 
 /* elementfactory information */
-GstElementDetails mikmod_details = GST_ELEMENT_DETAILS ("MikMod audio decoder",
+static const GstElementDetails mikmod_details =
+GST_ELEMENT_DETAILS ("MikMod audio decoder",
     "Codec/Decoder/Audio",
     "Module decoder based on libmikmod",
     "Jeremy SIMON <jsimon13@yahoo.fr>");
index 7a9ccea..e6289a2 100644 (file)
@@ -93,7 +93,7 @@ enum
   PROP_GUID
 };
 
-static GstElementDetails gst_dv1394src_details =
+static const GstElementDetails gst_dv1394src_details =
 GST_ELEMENT_DETAILS ("Firewire (1394) DV video source",
     "Source/Video",
     "Source for DV video data from firewire port",
index c7e5d05..d20573d 100644 (file)
@@ -53,7 +53,7 @@
 GST_DEBUG_CATEGORY_STATIC (speexdec_debug);
 #define GST_CAT_DEFAULT speexdec_debug
 
-static GstElementDetails speex_dec_details =
+static const GstElementDetails speex_dec_details =
 GST_ELEMENT_DETAILS ("Speex audio decoder",
     "Codec/Decoder/Audio",
     "decode speex streams to audio",
index 0a9fabd..bbd9e01 100644 (file)
@@ -38,7 +38,8 @@ GST_DEBUG_CATEGORY (speexenc_debug);
 static GstPadTemplate *gst_speexenc_src_template, *gst_speexenc_sink_template;
 
 /* elementfactory information */
-GstElementDetails speexenc_details = GST_ELEMENT_DETAILS ("Speex audio encoder",
+static const GstElementDetails speexenc_details =
+GST_ELEMENT_DETAILS ("Speex audio encoder",
     "Codec/Encoder/Audio",
     "Encodes audio in Speex format",
     "Wim Taymans <wim@fluendo.com>");
index 55fa32e..966cc55 100644 (file)
@@ -98,7 +98,7 @@ struct _GstAlphaClass
 };
 
 /* elementfactory information */
-static GstElementDetails gst_alpha_details =
+static const GstElementDetails gst_alpha_details =
 GST_ELEMENT_DETAILS ("Alpha filter",
     "Filter/Effect/Video",
     "Adds an alpha channel to video",
index 7fd225e..46e76c7 100644 (file)
@@ -59,7 +59,7 @@ struct _GstAlphaColorClass
 };
 
 /* elementfactory information */
-static GstElementDetails gst_alpha_color_details =
+static const GstElementDetails gst_alpha_color_details =
 GST_ELEMENT_DETAILS ("Alpha color filter",
     "Filter/Effect/Video",
     "RGB->YUV colorspace conversion preserving the alpha channels",
index 37e9224..26cb658 100644 (file)
@@ -65,7 +65,7 @@
 GST_DEBUG_CATEGORY (apedemux_debug);
 #define GST_CAT_DEFAULT (apedemux_debug)
 
-static GstElementDetails gst_ape_demux_details =
+static const GstElementDetails gst_ape_demux_details =
 GST_ELEMENT_DETAILS ("APE tag demuxer",
     "Codec/Demuxer/Metadata",
     "Read and output APE tags while demuxing the contents",
index ba03538..5d425ba 100644 (file)
@@ -33,7 +33,7 @@
 #include <gst/audio/audio.h>
 
 /* elementfactory information */
-static GstElementDetails gst_au_parse_details =
+static const GstElementDetails gst_au_parse_details =
 GST_ELEMENT_DETAILS ("AU audio demuxer",
     "Codec/Demuxer/Audio",
     "Parse an .au file into raw audio",
index cb087c0..5743ef3 100644 (file)
@@ -56,7 +56,7 @@ static void
 gst_auto_audio_sink_base_init (gpointer klass)
 {
   GstElementClass *eklass = GST_ELEMENT_CLASS (klass);
-  GstElementDetails gst_auto_audio_sink_details =
+  const GstElementDetails gst_auto_audio_sink_details =
       GST_ELEMENT_DETAILS ("Auto audio sink",
       "Sink/Audio",
       "Wrapper audio sink for automatically detected audio sink",
index 0e1ce09..15d8909 100644 (file)
@@ -56,7 +56,7 @@ static void
 gst_auto_video_sink_base_init (gpointer klass)
 {
   GstElementClass *eklass = GST_ELEMENT_CLASS (klass);
-  GstElementDetails gst_auto_video_sink_details =
+  const GstElementDetails gst_auto_video_sink_details =
       GST_ELEMENT_DETAILS ("Auto video sink",
       "Sink/Video",
       "Wrapper video sink for automatically detected video sink",
index c6e6cc6..cfbb4d2 100644 (file)
@@ -99,7 +99,7 @@ gst_avi_demux_get_type (void)
 static void
 gst_avi_demux_base_init (GstAviDemuxClass * klass)
 {
-  static GstElementDetails gst_avi_demux_details =
+  static const GstElementDetails gst_avi_demux_details =
       GST_ELEMENT_DETAILS ("Avi demuxer",
       "Codec/Demuxer",
       "Demultiplex an avi file into audio and video",
index ea9014e..df768b5 100644 (file)
@@ -197,7 +197,7 @@ static void
 gst_avimux_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
-  static GstElementDetails gst_avimux_details =
+  static const GstElementDetails gst_avimux_details =
       GST_ELEMENT_DETAILS ("Avi muxer",
       "Codec/Muxer",
       "Muxes audio and video into an avi stream",
index 5f794d9..b45af6e 100644 (file)
@@ -34,7 +34,8 @@ GST_DEBUG_CATEGORY (cutter_debug);
 #define CUTTER_DEFAULT_THRESHOLD_LENGTH  (500 * GST_MSECOND)
 #define CUTTER_DEFAULT_PRE_LENGTH        (200 * GST_MSECOND)
 
-static GstElementDetails cutter_details = GST_ELEMENT_DETAILS ("Audio cutter",
+static const GstElementDetails cutter_details =
+GST_ELEMENT_DETAILS ("Audio cutter",
     "Filter/Editor/Audio",
     "Audio Cutter to split audio into non-silent bits",
     "Thomas <thomas@apestaart.org>");
index 0a02058..4ef3bfe 100644 (file)
@@ -83,7 +83,7 @@ static GstFlowReturn gst_break_my_data_transform_ip (GstBaseTransform * trans,
 static gboolean gst_break_my_data_stop (GstBaseTransform * trans);
 static gboolean gst_break_my_data_start (GstBaseTransform * trans);
 
-static GstElementDetails details = GST_ELEMENT_DETAILS ("Break my data",
+static const GstElementDetails details = GST_ELEMENT_DETAILS ("Break my data",
     "Testing",
     "randomly change data in the stream",
     "Benjamin Otte <otte@gnome>");
index 22a7da1..1ef462f 100644 (file)
@@ -42,7 +42,8 @@
 GST_DEBUG_CATEGORY_STATIC (gst_efence_debug);
 #define GST_CAT_DEFAULT  gst_efence_debug
 
-static GstElementDetails plugin_details = GST_ELEMENT_DETAILS ("Electric Fence",
+static const GstElementDetails plugin_details =
+GST_ELEMENT_DETAILS ("Electric Fence",
     "Testing",
     "This element converts a stream of normal GStreamer buffers into a "
     "stream of buffers that are allocated in such a way that out-of-bounds "
index d46ee47..b9c84b0 100644 (file)
@@ -31,7 +31,7 @@
 GST_DEBUG_CATEGORY (navigationtest_debug);
 #define GST_CAT_DEFAULT navigationtest_debug
 
-static GstElementDetails navigationtest_details =
+static const GstElementDetails navigationtest_details =
 GST_ELEMENT_DETAILS ("Video navigation test",
     "Filter/Effect/Video",
     "Handle navigation events showing a black square following mouse pointer",
index d0923d5..1f006a0 100644 (file)
@@ -47,7 +47,7 @@ GstStaticPadTemplate navseek_sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS_ANY);
 
-static GstElementDetails navseek_details =
+static const GstElementDetails navseek_details =
 GST_ELEMENT_DETAILS ("Seek based on left-right arrows",
     "Filter/Video",
     "Seek based on navigation keys left-right",
index a01be1b..e28b2cf 100644 (file)
@@ -60,7 +60,8 @@ struct _GstNegotiationClass
 GType gst_gst_negotiation_get_type (void);
 
 
-static GstElementDetails plugin_details = GST_ELEMENT_DETAILS ("Negotiation",
+static const GstElementDetails plugin_details =
+GST_ELEMENT_DETAILS ("Negotiation",
     "Testing",
     "This element acts like identity, except that one can control how "
     "negotiation works",
index 237cbf1..83d3015 100644 (file)
@@ -83,7 +83,7 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS_ANY);
 
-static GstElementDetails progress_report_details =
+static const GstElementDetails progress_report_details =
 GST_ELEMENT_DETAILS ("Progress report",
     "Testing",
     "Periodically query and report on processing progress",
index e549c99..edd82be 100644 (file)
@@ -79,7 +79,7 @@ static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_STATIC_CAPS_ANY);
 
 
-static GstElementDetails details = GST_ELEMENT_DETAILS ("Test plugin",
+static const GstElementDetails details = GST_ELEMENT_DETAILS ("Test plugin",
     "Testing",
     "perform a number of tests",
     "Benjamin Otte <otte@gnome>");
index 54e1e59..639d1ea 100644 (file)
@@ -93,7 +93,7 @@ struct _GstAgingTVClass
 
 GType gst_agingtv_get_type (void);
 
-static GstElementDetails agingtv_details =
+static const GstElementDetails agingtv_details =
 GST_ELEMENT_DETAILS ("AgingTV effect",
     "Filter/Effect/Video",
     "AgingTV adds age to video input using scratches and dust",
index 711f3c5..26f682b 100644 (file)
@@ -70,7 +70,7 @@ GType gst_dicetv_get_type (void);
 
 static void gst_dicetv_create_map (GstDiceTV * filter);
 
-static GstElementDetails gst_dicetv_details =
+static const GstElementDetails gst_dicetv_details =
 GST_ELEMENT_DETAILS ("DiceTV effect",
     "Filter/Effect/Video",
     "'Dices' the screen up into many small squares",
index eb7f6aa..1ba04f0 100644 (file)
@@ -62,7 +62,7 @@ struct _GstEdgeTVClass
 
 GType gst_edgetv_get_type (void);
 
-static GstElementDetails gst_edgetv_details =
+static const GstElementDetails gst_edgetv_details =
 GST_ELEMENT_DETAILS ("EdgeTV effect",
     "Filter/Effect/Video",
     "Apply edge detect on video",
index 9b98569..af59d6e 100644 (file)
@@ -76,7 +76,7 @@ GType gst_quarktv_get_type (void);
 
 static void gst_quarktv_planetable_clear (GstQuarkTV * filter);
 
-static GstElementDetails quarktv_details =
+static const GstElementDetails quarktv_details =
 GST_ELEMENT_DETAILS ("QuarkTV effect",
     "Filter/Effect/Video",
     "Motion dissolver",
index 44dd3ef..1089155 100644 (file)
@@ -93,7 +93,7 @@ enum
 
 GType gst_revtv_get_type (void);
 
-static GstElementDetails gst_revtv_details =
+static const GstElementDetails gst_revtv_details =
 GST_ELEMENT_DETAILS ("RevTV effect",
     "Filter/Effect/Video",
     "A video waveform monitor for each line of video processed",
index c5f9980..3d09bda 100644 (file)
@@ -75,7 +75,7 @@ GType gst_shagadelictv_get_type (void);
 
 static void gst_shagadelic_initialize (GstShagadelicTV * filter);
 
-static GstElementDetails shagadelictv_details =
+static const GstElementDetails shagadelictv_details =
 GST_ELEMENT_DETAILS ("ShagadelicTV",
     "Filter/Effect/Video",
     "Oh behave, ShagedelicTV makes images shagadelic!",
index 5c0016e..110e625 100644 (file)
@@ -76,7 +76,7 @@ enum
   ARG_ZOOM_SPEED
 };
 
-static GstElementDetails vertigotv_details =
+static const GstElementDetails vertigotv_details =
 GST_ELEMENT_DETAILS ("VertigoTV effect",
     "Filter/Effect/Video",
     "A loopback alpha blending effector with rotating and scaling",
index ec45153..d7af725 100644 (file)
@@ -85,7 +85,8 @@ static void initSinTable (GstWarpTV * filter);
 static void initOffsTable (GstWarpTV * filter);
 static void initDistTable (GstWarpTV * filter);
 
-static GstElementDetails warptv_details = GST_ELEMENT_DETAILS ("WarpTV effect",
+static const GstElementDetails warptv_details =
+GST_ELEMENT_DETAILS ("WarpTV effect",
     "Filter/Effect/Video",
     "WarpTV does realtime goo'ing of the video input",
     "Sam Lantinga <slouken@devolution.com>");
index ac9b569..abde052 100644 (file)
@@ -32,7 +32,7 @@ GST_DEBUG_CATEGORY_STATIC (flxdec_debug);
 #define GST_CAT_DEFAULT flxdec_debug
 
 /* flx element information */
-static GstElementDetails flxdec_details =
+static const GstElementDetails flxdec_details =
 GST_ELEMENT_DETAILS ("FLX audio decoder",
     "Codec/Decoder/Audio",
     "FLX decoder",
index 848e6f9..3c574c5 100644 (file)
@@ -45,7 +45,7 @@ GST_DEBUG_CATEGORY_STATIC (goom_debug);
 #define GST_CAT_DEFAULT goom_debug
 
 /* elementfactory information */
-static GstElementDetails gst_goom_details =
+static const GstElementDetails gst_goom_details =
 GST_ELEMENT_DETAILS ("GOOM: what a GOOM!",
     "Visualization",
     "Takes frames of data and outputs video frames using the GOOM filter",
index 2415941..6816b0c 100644 (file)
@@ -47,7 +47,7 @@
 
 #include <string.h>
 
-static GstElementDetails gst_icydemux_details =
+static const GstElementDetails gst_icydemux_details =
 GST_ELEMENT_DETAILS ("ICY tag demuxer",
     "Codec/Demuxer/Metadata",
     "Read and output ICY tags while demuxing the contents",
index b2eb315..56dae51 100644 (file)
@@ -50,7 +50,7 @@
 #include "gstid3demux.h"
 #include "id3tags.h"
 
-static GstElementDetails gst_id3demux_details =
+static const GstElementDetails gst_id3demux_details =
 GST_ELEMENT_DETAILS ("ID3 tag demuxer",
     "Codec/Demuxer/Metadata",
     "Read and output ID3v1 and ID3v2 tags while demuxing the contents",
index 3352ce3..6995185 100644 (file)
@@ -191,7 +191,7 @@ static void
 gst_alawdec_base_init (GstALawDecClass * klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
-  GstElementDetails alawdec_details =
+  const GstElementDetails alawdec_details =
       GST_ELEMENT_DETAILS ("A Law audio decoder",
       "Codec/Decoder/Audio",
       "Convert 8bit A law to 16bit PCM",
index d75a489..fbd7d66 100644 (file)
@@ -227,7 +227,7 @@ static void
 gst_alawenc_base_init (GstALawEncClass * klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
-  GstElementDetails alawenc_details =
+  const GstElementDetails alawenc_details =
       GST_ELEMENT_DETAILS ("A Law audio encoder",
       "Codec/Encoder/Audio",
       "Convert 16bit PCM to 8bit A law",
index 607f570..fe8e07d 100644 (file)
@@ -161,7 +161,7 @@ static void
 gst_mulawdec_base_init (GstMuLawDecClass * klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
-  GstElementDetails mulawdec_details =
+  const GstElementDetails mulawdec_details =
       GST_ELEMENT_DETAILS ("Mu Law audio decoder",
       "Codec/Decoder/Audio",
       "Convert 8bit mu law to 16bit PCM",
index 4bf060e..467553b 100644 (file)
@@ -161,7 +161,7 @@ static void
 gst_mulawenc_base_init (GstMuLawEncClass * klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
-  GstElementDetails mulawenc_details =
+  const GstElementDetails mulawenc_details =
       GST_ELEMENT_DETAILS ("Mu Law audio encoder",
       "Codec/Encoder/Audio",
       "Convert 16bit PCM to 8bit mu law",
index a9c6ffb..9097e5d 100644 (file)
@@ -86,7 +86,7 @@
 GST_DEBUG_CATEGORY (level_debug);
 #define GST_CAT_DEFAULT level_debug
 
-static GstElementDetails level_details = GST_ELEMENT_DETAILS ("Level",
+static const GstElementDetails level_details = GST_ELEMENT_DETAILS ("Level",
     "Filter/Analyzer/Audio",
     "RMS/Peak/Decaying Peak Level messager for audio/raw",
     "Thomas Vander Stichele <thomas at apestaart dot org>");
index bc98a0b..9f922c8 100644 (file)
@@ -149,7 +149,7 @@ static void
 gst_matroska_demux_base_init (GstMatroskaDemuxClass * klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
-  static GstElementDetails gst_matroska_demux_details =
+  static const GstElementDetails gst_matroska_demux_details =
       GST_ELEMENT_DETAILS ("Matroska demuxer",
       "Codec/Demuxer",
       "Demuxes a Matroska Stream into video/audio/subtitles",
index 7ce6ab5..6e17588 100644 (file)
@@ -172,7 +172,7 @@ static void
 gst_matroska_mux_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
-  static GstElementDetails gst_matroska_mux_details =
+  static const GstElementDetails gst_matroska_mux_details =
       GST_ELEMENT_DETAILS ("Matroska muxer",
       "Codec/Muxer",
       "Muxes video/audio/subtitle streams into a matroska stream",
index dccf65f..e16cdef 100644 (file)
@@ -25,7 +25,8 @@
 #include <gst/video/video.h>
 
 /* elementfactory information */
-static GstElementDetails median_details = GST_ELEMENT_DETAILS ("Median effect",
+static const GstElementDetails median_details =
+GST_ELEMENT_DETAILS ("Median effect",
     "Filter/Effect/Video",
     "Apply a median filter to an image",
     "Wim Taymans <wim.taymans@chello.be>");
index 36f6b3d..541853c 100644 (file)
@@ -69,7 +69,7 @@ GType gst_monoscope_get_type (void);
 
 
 /* elementfactory information */
-static GstElementDetails gst_monoscope_details =
+static const GstElementDetails gst_monoscope_details =
 GST_ELEMENT_DETAILS ("Monoscope",
     "Visualization",
     "Displays a highly stabilised waveform of audio input",
index 55a4266..ca57ca1 100644 (file)
@@ -122,7 +122,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_multipart_demux_debug);
 #define GST_CAT_DEFAULT gst_multipart_demux_debug
 
 /* elementfactory information */
-static GstElementDetails gst_multipart_demux_details =
+static const GstElementDetails gst_multipart_demux_details =
 GST_ELEMENT_DETAILS ("Multipart demuxer",
     "Codec/Demuxer",
     "demux multipart streams",
index 781df21..1cc61a9 100644 (file)
@@ -101,7 +101,7 @@ struct _GstMultipartMuxClass
 };
 
 /* elementfactory information */
-static GstElementDetails gst_multipart_mux_details =
+static const GstElementDetails gst_multipart_mux_details =
 GST_ELEMENT_DETAILS ("Multipart muxer",
     "Codec/Muxer",
     "mux multipart streams",
index 53b165a..5770416 100644 (file)
@@ -34,7 +34,7 @@ static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
 GST_DEBUG_CATEGORY_STATIC (gst_aggregator_debug);
 #define GST_CAT_DEFAULT gst_aggregator_debug
 
-GstElementDetails gst_aggregator_details =
+static const GstElementDetails gst_aggregator_details =
 GST_ELEMENT_DETAILS ("Aggregator pipe fitting",
     "Generic",
     "N-to-1 pipe fitting",
index 1d2ad11..12da685 100644 (file)
@@ -37,7 +37,7 @@ static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
 GST_DEBUG_CATEGORY_STATIC (gst_fdsink_debug);
 #define GST_CAT_DEFAULT gst_fdsink_debug
 
-GstElementDetails gst_fdsink_details =
+static const GstElementDetails gst_fdsink_details =
 GST_ELEMENT_DETAILS ("Filedescriptor Sink",
     "Sink/File",
     "Write data to a file descriptor",
index 282d4c3..88292e6 100644 (file)
@@ -35,7 +35,8 @@
 GST_DEBUG_CATEGORY_STATIC (gst_md5sink_debug);
 #define GST_CAT_DEFAULT gst_md5sink_debug
 
-GstElementDetails gst_md5sink_details = GST_ELEMENT_DETAILS ("MD5 Sink",
+static const GstElementDetails gst_md5sink_details =
+GST_ELEMENT_DETAILS ("MD5 Sink",
     "Sink",
     "compute MD5 for incoming data",
     "Benjamin Otte <in7y118@public.uni-hamburg.de>");
index d73bd6a..74f0cee 100644 (file)
@@ -45,7 +45,7 @@ static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
 GST_DEBUG_CATEGORY_STATIC (gst_multifilesrc_debug);
 #define GST_CAT_DEFAULT gst_multifilesrc_debug
 
-GstElementDetails gst_multifilesrc_details =
+static const GstElementDetails gst_multifilesrc_details =
 GST_ELEMENT_DETAILS ("Multi file source",
     "Source/File",
     "Read from multiple files in order",
index 623b9a1..a941115 100644 (file)
@@ -50,7 +50,8 @@ static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
 GST_DEBUG_CATEGORY_STATIC (gst_pipefilter_debug);
 #define GST_CAT_DEFAULT gst_pipefilter_debug
 
-GstElementDetails gst_pipefilter_details = GST_ELEMENT_DETAILS ("Pipe filter",
+static const GstElementDetails gst_pipefilter_details =
+GST_ELEMENT_DETAILS ("Pipe filter",
     "Filter",
     "Interoperate with an external program using stdin and stdout",
     "Erik Walthinsen <omega@cse.ogi.edu>, "
index 56f84b8..f3504d2 100644 (file)
@@ -32,7 +32,8 @@
 GST_DEBUG_CATEGORY_STATIC (gst_shaper_debug);
 #define GST_CAT_DEFAULT gst_shaper_debug
 
-GstElementDetails gst_shaper_details = GST_ELEMENT_DETAILS ("Shaper",
+static const GstElementDetails gst_shaper_details =
+GST_ELEMENT_DETAILS ("Shaper",
     "Generic",
     "Synchronizes streams on different pads",
     "Wim Taymans <wim.taymans@chello.be>");
index 30e3bfc..8184cf5 100644 (file)
@@ -40,7 +40,8 @@ static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
 GST_DEBUG_CATEGORY_STATIC (gst_statistics_debug);
 #define GST_CAT_DEFAULT gst_statistics_debug
 
-GstElementDetails gst_statistics_details = GST_ELEMENT_DETAILS ("Statistics",
+static const GstElementDetails gst_statistics_details =
+GST_ELEMENT_DETAILS ("Statistics",
     "Generic",
     "Statistics on buffers/bytes/events",
     "David I. Lehn <dlehn@users.sourceforge.net>");
index ff81ec7..f3f67f5 100644 (file)
@@ -43,7 +43,7 @@ typedef struct _GstAsteriskH263Header
 #define GST_ASTERISKH263_HEADER_LENGTH(buf) (((GstAsteriskH263Header *)(GST_BUFFER_DATA (buf)))->length)
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_h263p_depaydetails =
+static const GstElementDetails gst_rtp_h263p_depaydetails =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Depayr/Network",
     "Extracts H263 video from RTP and encodes in Asterisk H263 format",
index a46a498..95887f5 100644 (file)
@@ -20,7 +20,7 @@
 #include "gstrtp-common.h"
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_L16depay_details =
+static const GstElementDetails gst_rtp_L16depay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Depayr/Network",
     "Extracts raw audio from RTP packets",
index fb17eb1..27e25ba 100644 (file)
@@ -25,7 +25,7 @@
 #include "gstrtpL16pay.h"
 
 /* elementfactory information */
-static GstElementDetails gst_rtpL16pay_details =
+static const GstElementDetails gst_rtpL16pay_details =
 GST_ELEMENT_DETAILS ("RTP RAW audio payloader",
     "Codec/Payloader/Network",
     "Payload-encodes Raw Audio into a RTP packet",
index c6272bb..c9df817 100644 (file)
@@ -29,7 +29,7 @@
  */
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_amrdepay_details =
+static const GstElementDetails gst_rtp_amrdepay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Depayr/Network",
     "Extracts AMR audio from RTP packets (RFC 3267)",
index cf9cda6..d85164e 100644 (file)
@@ -33,7 +33,7 @@ GST_DEBUG_CATEGORY (rtpamrpay_debug);
  */
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_amrpay_details =
+static const GstElementDetails gst_rtp_amrpay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Payloader/Network",
     "Payload-encode AMR audio into RTP packets (RFC 3267)",
index ee8d680..d5623e8 100644 (file)
@@ -24,7 +24,7 @@ GST_DEBUG_CATEGORY (rtpdepay_debug);
 #define GST_CAT_DEFAULT (rtpdepay_debug)
 
 /* elementfactory information */
-static GstElementDetails rtpdepay_details =
+static const GstElementDetails rtpdepay_details =
 GST_ELEMENT_DETAILS ("RTP payloader",
     "Codec/Depayr/Network",
     "Accepts raw RTP and RTCP packets and sends them forward",
index 2c0fb96..acbd5d2 100644 (file)
@@ -29,7 +29,7 @@
 #include "gstrtpgsmpay.h"
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_gsm_pay_details =
+static const GstElementDetails gst_rtp_gsm_pay_details =
 GST_ELEMENT_DETAILS ("RTP GSM audio payloader",
     "Codec/Payloader/Network",
     "Payload-encodes GSM audio into a RTP packet",
index 8615c47..a919067 100644 (file)
@@ -139,7 +139,7 @@ typedef struct _GstH263PictureLayer
 
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_h263pay_details =
+static const GstElementDetails gst_rtp_h263pay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Payloader/Network",
     "Payload-encodes H263 video in RTP packets (RFC 2190)",
index a387197..5cffdc3 100644 (file)
@@ -22,7 +22,7 @@
 #include "gstrtph263pdepay.h"
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_h263pdepay_details =
+static const GstElementDetails gst_rtp_h263pdepay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Depayr/Network",
     "Extracts H263+ video from RTP packets (RFC 2429)",
index 0a2d96b..6e27982 100644 (file)
@@ -23,7 +23,7 @@
 #include "gstrtph263ppay.h"
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_h263ppay_details =
+static const GstElementDetails gst_rtp_h263ppay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Payloader/Network",
     "Payload-encodes H263+ video in RTP packets (RFC 2429)",
index 1dd5bde..d08c5b3 100644 (file)
@@ -26,7 +26,7 @@
 #include "gstrtpilbcdepay.h"
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_ilbc_depay_details =
+static const GstElementDetails gst_rtp_ilbc_depay_details =
 GST_ELEMENT_DETAILS ("RTP iLBC packet depayloader",
     "Codec/Depayr/Network",
     "Extracts iLBC audio from RTP packets",
index 8ff8827..a666c01 100644 (file)
@@ -26,7 +26,7 @@ GST_DEBUG_CATEGORY (rtpmp4gpay_debug);
 #define GST_CAT_DEFAULT (rtpmp4gpay_debug)
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_mp4gpay_details =
+static const GstElementDetails gst_rtp_mp4gpay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Payloader/Network",
     "Payload MPEG4 elementary streams as RTP packets (RFC 3640)",
index 5106916..16597db 100644 (file)
@@ -22,7 +22,7 @@
 #include "gstrtpmp4vdepay.h"
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_mp4vdepay_details =
+static const GstElementDetails gst_rtp_mp4vdepay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Depayr/Network",
     "Extracts MPEG4 video from RTP packets (RFC 3016)",
index 98c0455..ad13350 100644 (file)
@@ -26,7 +26,7 @@ GST_DEBUG_CATEGORY (rtpmp4vpay_debug);
 #define GST_CAT_DEFAULT (rtpmp4vpay_debug)
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_mp4vpay_details =
+static const GstElementDetails gst_rtp_mp4vpay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Payloader/Network",
     "Payode MPEG4 video as RTP packets (RFC 3016)",
index 9b814c0..5b8b43f 100644 (file)
@@ -22,7 +22,7 @@
 #include "gstrtpmpadepay.h"
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_mpadepay_details =
+static const GstElementDetails gst_rtp_mpadepay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Depayr/Network",
     "Extracts MPEG audio from RTP packets (RFC 2038)",
index b15d55b..49877fa 100644 (file)
@@ -23,7 +23,7 @@
 #include "gstrtpmpapay.h"
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_mpapay_details =
+static const GstElementDetails gst_rtp_mpapay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Payloader/Network",
     "Payode MPEG audio as RTP packets (RFC 2038)",
index e67f814..188c700 100644 (file)
@@ -23,7 +23,7 @@
 #include "gstrtppcmadepay.h"
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_pcmadepay_details =
+static const GstElementDetails gst_rtp_pcmadepay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Depayr/Network",
     "Extracts PCMA audio from RTP packets",
index 439efaa..b20d076 100644 (file)
@@ -25,7 +25,7 @@
 #include "gstrtppcmapay.h"
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_pcma_pay_details =
+static const GstElementDetails gst_rtp_pcma_pay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Payloader/Network",
     "Payload-encodes PCMA audio into a RTP packet",
index 0b6a208..dcdb992 100644 (file)
@@ -23,7 +23,7 @@
 #include "gstrtppcmudepay.h"
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_pcmudepay_details =
+static const GstElementDetails gst_rtp_pcmudepay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Depayr/Network",
     "Extracts PCMU audio from RTP packets",
index ffb220b..6389207 100644 (file)
@@ -25,7 +25,7 @@
 #include "gstrtppcmupay.h"
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_pcmu_pay_details =
+static const GstElementDetails gst_rtp_pcmu_pay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Payloader/Network",
     "Payload-encodes PCMU audio into a RTP packet",
index 84d08c2..c5828a0 100644 (file)
@@ -21,7 +21,7 @@
 #include "gstrtpspeexdepay.h"
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_speexdepay_details =
+static const GstElementDetails gst_rtp_speexdepay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Depayr/Network",
     "Extracts Speex audio from RTP packets",
index c1f3727..30c4b8f 100644 (file)
@@ -23,7 +23,7 @@
 #include "gstrtpspeexpay.h"
 
 /* elementfactory information */
-static GstElementDetails gst_rtp_speex_pay_details =
+static const GstElementDetails gst_rtp_speex_pay_details =
 GST_ELEMENT_DETAILS ("RTP packet parser",
     "Codec/Payloader/Network",
     "Payload-encodes Speex audio into a RTP packet",
index 073b38d..c22d4cc 100644 (file)
@@ -24,7 +24,8 @@ GST_DEBUG_CATEGORY (rtpdec_debug);
 #define GST_CAT_DEFAULT (rtpdec_debug)
 
 /* elementfactory information */
-static GstElementDetails rtpdec_details = GST_ELEMENT_DETAILS ("RTP Decoder",
+static const GstElementDetails rtpdec_details =
+GST_ELEMENT_DETAILS ("RTP Decoder",
     "Codec/Parser/Network",
     "Accepts raw RTP and RTCP packets and sends them forward",
     "Wim Taymans <wim@fluendo.com>");
index b208bec..a05849b 100644 (file)
@@ -31,7 +31,7 @@ GST_DEBUG_CATEGORY (rtspsrc_debug);
 #define GST_CAT_DEFAULT (rtspsrc_debug)
 
 /* elementfactory information */
-static GstElementDetails gst_rtspsrc_details =
+static const GstElementDetails gst_rtspsrc_details =
 GST_ELEMENT_DETAILS ("RTSP packet receiver",
     "Source/Network",
     "Receive data over the network via RTSP (RFC 2326)",
index 695861a..67d5d66 100644 (file)
@@ -26,7 +26,7 @@
 #include "paint.h"
 
 /* elementfactory information */
-static GstElementDetails smpte_details =
+static const GstElementDetails smpte_details =
 GST_ELEMENT_DETAILS ("SMPTE transitions",
     "Filter/Editor/Video",
     "Apply the standard SMPTE transitions on video images",
index a332902..661f55a 100644 (file)
@@ -34,7 +34,7 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_STATIC_CAPS_ANY);
 
 /* elementfactory information */
-static GstElementDetails gst_dynudpsink_details =
+static const GstElementDetails gst_dynudpsink_details =
 GST_ELEMENT_DETAILS ("UDP packet sender",
     "Sink/Network",
     "Send data over the network via UDP",
index 1a675c5..0a62661 100644 (file)
@@ -45,7 +45,7 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_STATIC_CAPS_ANY);
 
 /* elementfactory information */
-static GstElementDetails gst_multiudpsink_details =
+static const GstElementDetails gst_multiudpsink_details =
 GST_ELEMENT_DETAILS ("UDP packet sender",
     "Sink/Network",
     "Send data over the network via UDP",
index 2f8d00c..382e919 100644 (file)
@@ -26,7 +26,7 @@
 #define UDP_DEFAULT_PORT        4951
 
 /* elementfactory information */
-static GstElementDetails gst_udpsink_details =
+static const GstElementDetails gst_udpsink_details =
 GST_ELEMENT_DETAILS ("UDP packet sender",
     "Sink/Network",
     "Send data over the network via UDP",
index 2aa1758..395f178 100644 (file)
@@ -113,7 +113,7 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS_ANY);
 
-static GstElementDetails gst_udpsrc_details =
+static const GstElementDetails gst_udpsrc_details =
 GST_ELEMENT_DETAILS ("UDP packet receiver",
     "Source/Network",
     "Receive data over the network via UDP",
index dc64474..efe1176 100644 (file)
@@ -78,7 +78,7 @@ struct _GstVideoBoxClass
 };
 
 /* elementfactory information */
-static GstElementDetails gst_video_box_details =
+static const GstElementDetails gst_video_box_details =
 GST_ELEMENT_DETAILS ("Video box filter",
     "Filter/Effect/Video",
     "Resizes a video by adding borders or cropping",
index 62a2181..7590f6d 100644 (file)
@@ -137,7 +137,7 @@ static GstVideofilterFormat gst_gamma_formats[] = {
 static void
 gst_gamma_base_init (gpointer g_class)
 {
-  static GstElementDetails gamma_details =
+  static const GstElementDetails gamma_details =
       GST_ELEMENT_DETAILS ("Video gamma correction",
       "Filter/Effect/Video",
       "Adjusts gamma on a video stream",
index b7972bf..2464ee0 100644 (file)
@@ -64,7 +64,7 @@
 #define rint(x) (floor((x)+0.5))
 #endif
 
-static GstElementDetails video_balance_details =
+static const GstElementDetails video_balance_details =
 GST_ELEMENT_DETAILS ("Video balance",
     "Filter/Effect/Video",
     "Adjusts brightness, contrast, hue, saturation on a video stream",
index 5bcb95e..c915fab 100644 (file)
@@ -63,7 +63,7 @@ enum
 GST_DEBUG_CATEGORY (video_flip_debug);
 #define GST_CAT_DEFAULT video_flip_debug
 
-static GstElementDetails video_flip_details =
+static const GstElementDetails video_flip_details =
 GST_ELEMENT_DETAILS ("Video flipper",
     "Filter/Effect/Video",
     "Flips and rotates video",
index 9541433..df8aa7b 100644 (file)
@@ -118,7 +118,7 @@ static GstVideofilterFormat gst_videotemplate_formats[] = {
 static void
 gst_videotemplate_base_init (gpointer g_class)
 {
-  static GstElementDetails videotemplate_details =
+  static const GstElementDetails videotemplate_details =
       GST_ELEMENT_DETAILS ("Video filter template",
       "Filter/Effect/Video",
       "Template for a video filter",
index 9b2a341..4b5b763 100644 (file)
@@ -398,7 +398,7 @@ gst_videomixer_pad_init (GstVideoMixerPad * mixerpad)
 
 
 /* elementfactory information */
-static GstElementDetails gst_videomixer_details =
+static const GstElementDetails gst_videomixer_details =
 GST_ELEMENT_DETAILS ("Video mixer",
     "Filter/Editor/Video",
     "Mix multiple video streams",
index 27b2964..87fdd5a 100644 (file)
@@ -1,6 +1,7 @@
 /* -*- Mode: C; tab-width: 2; indent-tabs-mode: t; c-basic-offset: 2 -*- */
 /* GStreamer
  * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2006> Nokia Corporation.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "gst/riff/riff-media.h"
 #include <gst/gst-i18n-plugin.h>
 
+#ifndef G_MAXUINT32
+#define G_MAXUINT32 0xffffffff
+#endif
+
 GST_DEBUG_CATEGORY_STATIC (wavparse_debug);
 #define GST_CAT_DEFAULT (wavparse_debug)
 
 static void gst_wavparse_base_init (gpointer g_class);
 static void gst_wavparse_class_init (GstWavParseClass * klass);
 static void gst_wavparse_init (GstWavParse * wavparse);
+static void gst_wavparse_dispose (GObject * object);
 
 static gboolean gst_wavparse_sink_activate (GstPad * sinkpad);
 static gboolean gst_wavparse_sink_activate_pull (GstPad * sinkpad,
     gboolean active);
 static gboolean gst_wavparse_send_event (GstElement * element,
     GstEvent * event);
+static GstFlowReturn gst_wavparse_chain (GstPad * pad, GstBuffer * buf);
 static GstStateChangeReturn gst_wavparse_change_state (GstElement * element,
     GstStateChange transition);
 
@@ -156,7 +163,7 @@ gst_wavparse_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
   GstPadTemplate *templ;
-  static GstElementDetails gst_wavparse_details =
+  static const GstElementDetails gst_wavparse_details =
       GST_ELEMENT_DETAILS ("WAV audio demuxer",
       "Codec/Demuxer/Audio",
       "Parse a .wav file into raw audio",
@@ -185,6 +192,7 @@ gst_wavparse_class_init (GstWavParseClass * klass)
   parent_class = g_type_class_peek_parent (klass);
 
   object_class->get_property = gst_wavparse_get_property;
+  object_class->dispose = gst_wavparse_dispose;
 
   gstelement_class->change_state = gst_wavparse_change_state;
   gstelement_class->send_event = gst_wavparse_send_event;
@@ -192,6 +200,22 @@ gst_wavparse_class_init (GstWavParseClass * klass)
   GST_DEBUG_CATEGORY_INIT (wavparse_debug, "wavparse", 0, "WAV parser");
 }
 
+
+static void
+gst_wavparse_dispose (GObject * object)
+{
+  GST_DEBUG ("WAV: Dispose\n");
+  GstWavParse *wav = GST_WAVPARSE (object);
+
+  if (wav->adapter) {
+    g_object_unref (wav->adapter);
+    wav->adapter = NULL;
+  }
+
+  G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+
 static void
 gst_wavparse_reset (GstWavParse * wavparse)
 {
@@ -209,6 +233,11 @@ gst_wavparse_reset (GstWavParse * wavparse)
   wavparse->dataleft = 0;
   wavparse->datasize = 0;
   wavparse->datastart = 0;
+  wavparse->got_fmt = FALSE;
+
+  if (wavparse->seek_event)
+    gst_event_unref (wavparse->seek_event);
+  wavparse->seek_event = NULL;
 
   /* we keep the segment info in time */
   gst_segment_init (&wavparse->segment, GST_FORMAT_TIME);
@@ -226,6 +255,8 @@ gst_wavparse_init (GstWavParse * wavparse)
       GST_DEBUG_FUNCPTR (gst_wavparse_sink_activate));
   gst_pad_set_activatepull_function (wavparse->sinkpad,
       GST_DEBUG_FUNCPTR (gst_wavparse_sink_activate_pull));
+  gst_pad_set_chain_function (wavparse->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_wavparse_chain));
   gst_element_add_pad (GST_ELEMENT (wavparse), wavparse->sinkpad);
 }
 
@@ -740,7 +771,6 @@ gst_wavparse_perform_seek (GstWavParse * wav, GstEvent * event)
   gboolean update;
   GstSegment seeksegment;
 
-
   if (event) {
     GST_DEBUG_OBJECT (wav, "doing seek with event");
 
@@ -770,10 +800,12 @@ gst_wavparse_perform_seek (GstWavParse * wav, GstEvent * event)
 
   flush = flags & GST_SEEK_FLAG_FLUSH;
 
-  if (flush)
+  if (flush) {
+    GST_DEBUG_OBJECT (wav, "sending flush start");
     gst_pad_push_event (wav->srcpad, gst_event_new_flush_start ());
-  else
+  } else {
     gst_pad_pause_task (wav->sinkpad);
+  }
 
   GST_PAD_STREAM_LOCK (wav->sinkpad);
 
@@ -815,6 +847,7 @@ gst_wavparse_perform_seek (GstWavParse * wav, GstEvent * event)
 
   /* prepare for streaming again */
   if (flush) {
+    GST_DEBUG_OBJECT (wav, "sending flush stop");
     gst_pad_push_event (wav->srcpad, gst_event_new_flush_stop ());
   } else if (wav->segment_running) {
     /* we are running the current segment and doing a non-flushing seek,
@@ -868,6 +901,61 @@ no_format:
   }
 }
 
+
+/*
+ * gst_wavparse_peek_chunk_info:
+ * @wav Wavparse object
+ * @tag holder for tag
+ * @size holder for tag size
+ *                         
+ * Peek next chunk info (tag and size)                         
+ *
+ * Returns: %TRUE when one chunk info has been got from the adapter
+ */
+static gboolean
+gst_wavparse_peek_chunk_info (GstWavParse * wav, guint32 * tag, guint32 * size)
+{
+  const guint8 *data = NULL;
+
+  if (gst_adapter_available (wav->adapter) < 8) {
+    return FALSE;
+  }
+
+  GST_DEBUG ("Next chunk size is %d bytes", *size);
+  data = gst_adapter_peek (wav->adapter, 8);
+  *tag = GST_READ_UINT32_LE (data);
+  *size = GST_READ_UINT32_LE (data + 4);
+
+  return TRUE;
+}
+
+
+/*
+ * gst_wavparse_peek_chunk:
+ * @wav Wavparse object
+ * @tag holder for tag
+ * @size holder for tag size
+ *
+ * Peek enough data for one full chunk
+ *
+ * Returns: %TRUE when one chunk has been got
+ */
+static gboolean
+gst_wavparse_peek_chunk (GstWavParse * wav, guint32 * tag, guint32 * size)
+{
+  guint32 peek_size = 0;
+
+  gst_wavparse_peek_chunk_info (wav, tag, size);
+  GST_DEBUG ("Need to peek chunk of %d bytes", *size);
+  peek_size = (*size + 1) & ~1;
+
+  if (gst_adapter_available (wav->adapter) >= (8 + peek_size)) {
+    return TRUE;
+  } else {
+    return FALSE;
+  }
+}
+
 static gboolean
 gst_wavparse_get_upstream_size (GstWavParse * wav, gint64 * len)
 {
@@ -887,97 +975,128 @@ static GstFlowReturn
 gst_wavparse_stream_headers (GstWavParse * wav)
 {
   GstFlowReturn res;
-  GstBuffer *buf, *extra;
+  GstBuffer *buf;
   gst_riff_strf_auds *header = NULL;
-  guint32 tag;
+  guint32 tag, size;
   gboolean gotdata = FALSE;
   GstCaps *caps;
   gint64 duration;
   gchar *codec_name = NULL;
   GstEvent **event_p;
 
-  /* The header start with a 'fmt ' tag */
-  if ((res = gst_riff_read_chunk (GST_ELEMENT (wav), wav->sinkpad,
-              &wav->offset, &tag, &buf)) != GST_FLOW_OK)
-    return res;
+  if (!wav->got_fmt) {
+    GstBuffer *extra;
 
-  else if (tag != GST_RIFF_TAG_fmt)
-    goto invalid_wav;
+    /* The header start with a 'fmt ' tag */
 
-  if (!(gst_riff_parse_strf_auds (GST_ELEMENT (wav), buf, &header, &extra)))
-    goto parse_header_error;
+    if (wav->streaming) {
+      if (!gst_wavparse_peek_chunk (wav, &tag, &size))
+        return GST_FLOW_OK;
 
-  /* Note: gst_riff_create_audio_caps might nedd to fix values in
-   * the header header depending on the format, so call it first */
-  caps =
-      gst_riff_create_audio_caps (header->format, NULL, header, extra,
-      NULL, &codec_name);
+      buf = gst_buffer_new ();
+      gst_buffer_ref (buf);
+      gst_adapter_flush (wav->adapter, 8);
+      wav->offset += 8;
+      GST_BUFFER_DATA (buf) = (guint8 *) gst_adapter_peek (wav->adapter, size);
+      GST_BUFFER_SIZE (buf) = size;
 
-  if (extra)
-    gst_buffer_unref (extra);
+    } else {
+      if ((res = gst_riff_read_chunk (GST_ELEMENT (wav), wav->sinkpad,
+                  &wav->offset, &tag, &buf)) != GST_FLOW_OK)
+        return res;
+    }
 
-  wav->format = header->format;
-  wav->rate = header->rate;
-  wav->channels = header->channels;
+    if (tag != GST_RIFF_TAG_fmt)
+      goto invalid_wav;
 
-  if (wav->channels == 0)
-    goto no_channels;
+    if (!(gst_riff_parse_strf_auds (GST_ELEMENT (wav), buf, &header, &extra)))
+      goto parse_header_error;
 
-  wav->blockalign = header->blockalign;
-  wav->width = (header->blockalign * 8) / header->channels;
-  wav->depth = header->size;
-  wav->bps = header->av_bps;
+    if (extra)
+      gst_buffer_unref (extra);
 
-  if (wav->bps <= 0)
-    goto no_bitrate;
+    if (wav->streaming) {
+      gst_adapter_flush (wav->adapter, size);
+      wav->offset += size;
+      GST_BUFFER_DATA (buf) = NULL;
+      gst_buffer_unref (buf);
+    }
 
-  wav->bytes_per_sample = wav->channels * wav->width / 8;
-  if (wav->bytes_per_sample <= 0)
-    goto no_bytes_per_sample;
+    /* Note: gst_riff_create_audio_caps might nedd to fix values in
+     * the header header depending on the format, so call it first */
+    caps =
+        gst_riff_create_audio_caps (header->format, NULL, header, NULL,
+        NULL, &codec_name);
 
-  g_free (header);
+    wav->format = header->format;
+    wav->rate = header->rate;
+    wav->channels = header->channels;
 
-  if (!caps)
-    goto unknown_format;
+    if (wav->channels == 0)
+      goto no_channels;
 
-  GST_DEBUG_OBJECT (wav, "blockalign = %u", (guint) wav->blockalign);
-  GST_DEBUG_OBJECT (wav, "width      = %u", (guint) wav->width);
-  GST_DEBUG_OBJECT (wav, "depth      = %u", (guint) wav->depth);
-  GST_DEBUG_OBJECT (wav, "bps        = %u", (guint) wav->bps);
+    wav->blockalign = header->blockalign;
+    wav->width = (header->blockalign * 8) / header->channels;
+    wav->depth = header->size;
+    wav->bps = header->av_bps;
 
-  /* create pad later so we can sniff the first few bytes
-   * of the real data and correct our caps if necessary */
-  gst_caps_replace (&wav->caps, caps);
-  gst_caps_replace (&caps, NULL);
+    if (wav->bps <= 0)
+      goto no_bitrate;
 
-  if (codec_name) {
-    wav->tags = gst_tag_list_new ();
+    wav->bytes_per_sample = wav->channels * wav->width / 8;
+    if (wav->bytes_per_sample <= 0)
+      goto no_bytes_per_sample;
 
-    gst_tag_list_add (wav->tags, GST_TAG_MERGE_REPLACE,
-        GST_TAG_AUDIO_CODEC, codec_name, NULL);
+    g_free (header);
 
-    g_free (codec_name);
-    codec_name = NULL;
-  }
+    if (!caps)
+      goto unknown_format;
+
+    GST_DEBUG_OBJECT (wav, "blockalign = %u", (guint) wav->blockalign);
+    GST_DEBUG_OBJECT (wav, "width      = %u", (guint) wav->width);
+    GST_DEBUG_OBJECT (wav, "depth      = %u", (guint) wav->depth);
+    GST_DEBUG_OBJECT (wav, "bps        = %u", (guint) wav->bps);
+
+    /* create pad later so we can sniff the first few bytes
+     * of the real data and correct our caps if necessary */
+    gst_caps_replace (&wav->caps, caps);
+    gst_caps_replace (&caps, NULL);
 
-  GST_DEBUG_OBJECT (wav, "frequency %d, channels %d", wav->rate, wav->channels);
+    wav->got_fmt = TRUE;
+
+    if (codec_name) {
+      wav->tags = gst_tag_list_new ();
+
+      gst_tag_list_add (wav->tags, GST_TAG_MERGE_REPLACE,
+          GST_TAG_AUDIO_CODEC, codec_name, NULL);
+
+      g_free (codec_name);
+      codec_name = NULL;
+    }
+
+    GST_DEBUG_OBJECT (wav, "frequency %d, channels %d", wav->rate,
+        wav->channels);
+  }
 
   /* loop headers until we get data */
   while (!gotdata) {
-    guint size;
-    guint32 tag;
 
-    if ((res =
-            gst_pad_pull_range (wav->sinkpad, wav->offset, 8,
-                &buf)) != GST_FLOW_OK)
-      goto header_read_error;
+    if (wav->streaming) {
+      if (!gst_wavparse_peek_chunk_info (wav, &tag, &size))
+        return GST_FLOW_OK;
+    } else {
+      if ((res =
+              gst_pad_pull_range (wav->sinkpad, wav->offset, 8,
+                  &buf)) != GST_FLOW_OK)
+        goto header_read_error;
+      tag = GST_READ_UINT32_LE (GST_BUFFER_DATA (buf));
+      size = GST_READ_UINT32_LE (GST_BUFFER_DATA (buf) + 4);
+    }
 
     /*
        wav is a st00pid format, we don't know for sure where data starts.
        So we have to go bit by bit until we find the 'data' header
      */
-    tag = GST_READ_UINT32_LE (GST_BUFFER_DATA (buf));
-    size = GST_READ_UINT32_LE (GST_BUFFER_DATA (buf) + 4);
 
     switch (tag) {
         /* TODO : Implement the various cases */
@@ -986,6 +1105,11 @@ gst_wavparse_stream_headers (GstWavParse * wav)
 
         GST_DEBUG_OBJECT (wav, "Got 'data' TAG, size : %d", size);
         gotdata = TRUE;
+        if (wav->streaming) {
+          gst_adapter_flush (wav->adapter, 8);
+        } else {
+          gst_buffer_unref (buf);
+        }
         wav->offset += 8;
         wav->datastart = wav->offset;
         /* file might be truncated */
@@ -998,12 +1122,19 @@ gst_wavparse_stream_headers (GstWavParse * wav)
         break;
       }
       default:
+        if (wav->streaming) {
+          if (!gst_wavparse_peek_chunk (wav, &tag, &size))
+            return GST_FLOW_OK;
+        }
         GST_DEBUG_OBJECT (wav, "Ignoring tag %" GST_FOURCC_FORMAT,
             GST_FOURCC_ARGS (tag));
         wav->offset += 8 + ((size + 1) & ~1);
-        break;
+        if (wav->streaming) {
+          gst_adapter_flush (wav->adapter, 8 + ((size + 1) & ~1));
+        } else {
+          gst_buffer_unref (buf);
+        }
     }
-    gst_buffer_unref (buf);
   }
 
   GST_DEBUG_OBJECT (wav, "Finished parsing headers");
@@ -1021,6 +1152,7 @@ gst_wavparse_stream_headers (GstWavParse * wav)
   event_p = &wav->seek_event;
   gst_event_replace (event_p, NULL);
 
+  wav->state = GST_WAVPARSE_DATA;
   return GST_FLOW_OK;
 
   /* ERROR */
@@ -1080,6 +1212,32 @@ header_read_error:
   }
 }
 
+
+/*                       
+ * Read WAV file tag when streaming
+ */
+static GstFlowReturn
+gst_wavparse_parse_stream_init (GstWavParse * wav)
+{
+  if (gst_adapter_available (wav->adapter) >= 12) {
+    GstBuffer *tmp = gst_buffer_new ();
+
+    /* _take flushes the data */
+    GST_BUFFER_DATA (tmp) = gst_adapter_take (wav->adapter, 12);
+    GST_BUFFER_SIZE (tmp) = 12;
+
+    GST_DEBUG ("Parsing wav header");
+    if (!gst_wavparse_parse_file_header (GST_ELEMENT (wav), tmp)) {
+      return GST_FLOW_ERROR;
+    }
+
+    wav->offset += 12;
+    /* Go to next state */
+    wav->state = GST_WAVPARSE_HEADER;
+  }
+  return GST_FLOW_OK;
+}
+
 /* handle an event sent directly to the element.
  *
  * This event can be sent either in the READY state or the
@@ -1100,6 +1258,8 @@ gst_wavparse_send_event (GstElement * element, GstEvent * event)
   gboolean res = FALSE;
   GstEvent **event_p;
 
+  GST_DEBUG_OBJECT (wav, "received event %s", GST_EVENT_TYPE_NAME (event));
+
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_SEEK:
       if (wav->state == GST_WAVPARSE_DATA) {
@@ -1149,6 +1309,7 @@ gst_wavparse_add_src_pad (GstWavParse * wav, GstBuffer * buf)
   gst_element_add_pad (GST_ELEMENT (wav), wav->srcpad);
   gst_element_no_more_pads (GST_ELEMENT (wav));
 
+  GST_DEBUG_OBJECT (wav, "Send newsegment event on newpad");
   gst_pad_push_event (wav->srcpad, wav->newsegment);
   wav->newsegment = NULL;
 
@@ -1169,6 +1330,7 @@ gst_wavparse_stream_data (GstWavParse * wav, gboolean first)
   GstClockTime timestamp, next_timestamp;
   guint64 pos, nextpos;
 
+iterate_adapter:
   GST_LOG_OBJECT (wav, "offset: %" G_GINT64_FORMAT " , end: %" G_GINT64_FORMAT,
       wav->offset, wav->end_offset);
 
@@ -1187,9 +1349,18 @@ gst_wavparse_stream_data (GstWavParse * wav, gboolean first)
   GST_LOG_OBJECT (wav, "Fetching %" G_GINT64_FORMAT " bytes of data "
       "from the sinkpad", desired);
 
-  if ((res = gst_pad_pull_range (wav->sinkpad, wav->offset,
-              desired, &buf)) != GST_FLOW_OK)
-    goto pull_error;
+  if (wav->streaming) {
+    if (gst_adapter_available (wav->adapter) < desired)
+      return GST_FLOW_OK;
+
+    buf = gst_buffer_new ();
+    GST_BUFFER_DATA (buf) = gst_adapter_take (wav->adapter, desired);
+    GST_BUFFER_SIZE (buf) = desired;
+  } else {
+    if ((res = gst_pad_pull_range (wav->sinkpad, wav->offset,
+                desired, &buf)) != GST_FLOW_OK)
+      goto pull_error;
+  }
 
   obtained = GST_BUFFER_SIZE (buf);
 
@@ -1225,8 +1396,13 @@ gst_wavparse_stream_data (GstWavParse * wav, gboolean first)
       ", size:%u", GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
       GST_TIME_ARGS (GST_BUFFER_DURATION (buf)), GST_BUFFER_SIZE (buf));
 
-  if ((res = gst_pad_push (wav->srcpad, buf)) != GST_FLOW_OK)
-    goto push_error;
+  if (gst_pad_is_linked (wav->srcpad)) {
+    if ((res = gst_pad_push (wav->srcpad, buf)) != GST_FLOW_OK)
+      goto push_error;
+  } else {
+    GST_DEBUG ("Srcpad not linked!");
+    gst_buffer_unref (buf);
+  }
 
   if (obtained < wav->dataleft) {
     wav->dataleft -= obtained;
@@ -1234,6 +1410,14 @@ gst_wavparse_stream_data (GstWavParse * wav, gboolean first)
   } else {
     wav->dataleft = 0;
   }
+  /* Iterate until need more data, so adapter size won't grow */
+  if (wav->streaming) {
+    GST_LOG_OBJECT (wav,
+        "offset: %" G_GINT64_FORMAT " , end: %" G_GINT64_FORMAT, wav->offset,
+        wav->end_offset);
+    goto iterate_adapter;
+  }
+
   return res;
 
   /* ERROR */
@@ -1315,6 +1499,52 @@ pause:
   }
 }
 
+static GstFlowReturn
+gst_wavparse_chain (GstPad * pad, GstBuffer * buf)
+{
+  GstFlowReturn ret;
+  GstWavParse *wav = GST_WAVPARSE (GST_PAD_PARENT (pad));
+
+  gst_adapter_push (wav->adapter, buf);
+
+  switch (wav->state) {
+    case GST_WAVPARSE_START:
+      if ((ret = gst_wavparse_parse_stream_init (wav)) != GST_FLOW_OK)
+        goto pause;
+      /* fall-through */
+
+    case GST_WAVPARSE_HEADER:
+      if ((ret = gst_wavparse_stream_headers (wav)) != GST_FLOW_OK)
+        goto pause;
+
+      wav->state = GST_WAVPARSE_DATA;
+      if ((ret = gst_wavparse_stream_data (wav, TRUE)) != GST_FLOW_OK)
+        goto pause;
+      break;
+    case GST_WAVPARSE_DATA:
+      if ((ret = gst_wavparse_stream_data (wav, FALSE)) != GST_FLOW_OK)
+        goto pause;
+      break;
+    default:
+      g_assert_not_reached ();
+  }
+
+  return ret;
+
+pause:
+  GST_LOG_OBJECT (wav, "pausing task %d", ret);
+  gst_pad_pause_task (wav->sinkpad);
+  if (GST_FLOW_IS_FATAL (ret)) {
+    /* for fatal errors we post an error message */
+    GST_ELEMENT_ERROR (wav, STREAM, FAILED,
+        (_("Internal data stream error.")),
+        ("streaming stopped, reason %s", gst_flow_get_name (ret)));
+    if (wav->srcpad != NULL)
+      gst_pad_push_event (wav->srcpad, gst_event_new_eos ());
+  }
+  return ret;
+}
+
 #if 0
 /* convert and query stuff */
 static const GstFormat *
@@ -1526,7 +1756,8 @@ gst_wavparse_srcpad_event (GstPad * pad, GstEvent * event)
   GstWavParse *wavparse = GST_WAVPARSE (GST_PAD_PARENT (pad));
   gboolean res = TRUE;
 
-  GST_DEBUG_OBJECT (wavparse, "event %d", GST_EVENT_TYPE (event));
+  GST_DEBUG_OBJECT (wavparse, "event %d, %s", GST_EVENT_TYPE (event),
+      GST_EVENT_TYPE_NAME (event));
 
   /* can only handle events when we are in the data state */
   if (wavparse->state != GST_WAVPARSE_DATA)
@@ -1551,20 +1782,34 @@ gst_wavparse_srcpad_event (GstPad * pad, GstEvent * event)
 static gboolean
 gst_wavparse_sink_activate (GstPad * sinkpad)
 {
-  if (gst_pad_check_pull_range (sinkpad))
+  GstWavParse *wav = GST_WAVPARSE (gst_pad_get_parent (sinkpad));
+
+  if (gst_pad_check_pull_range (sinkpad)) {
+    GST_DEBUG ("going to pull mode");
+    wav->streaming = FALSE;
+    wav->adapter = NULL;
+    gst_object_unref (wav);
     return gst_pad_activate_pull (sinkpad, TRUE);
+  } else {
+    GST_DEBUG ("going to push (streaming) mode");
+    wav->streaming = TRUE;
+    wav->adapter = gst_adapter_new ();
+    gst_object_unref (wav);
+    return gst_pad_activate_push (sinkpad, TRUE);
+  }
+}
 
-  /* FIXME, we can only operate in pull mode for now */
-  GST_DEBUG_OBJECT (sinkpad, "pull_range not supported on sinkpad");
-  return FALSE;
-};
 
 static gboolean
 gst_wavparse_sink_activate_pull (GstPad * sinkpad, gboolean active)
 {
   GstWavParse *wav = GST_WAVPARSE (gst_pad_get_parent (sinkpad));
 
+  GST_DEBUG_OBJECT (wav, "activating pull");
+
   if (active) {
+    /* if we have a scheduler we can start the task */
+    wav->segment_running = TRUE;
     gst_pad_start_task (sinkpad, (GstTaskFunction) gst_wavparse_loop, sinkpad);
   } else {
     gst_pad_stop_task (sinkpad);
@@ -1580,6 +1825,8 @@ gst_wavparse_change_state (GstElement * element, GstStateChange transition)
   GstStateChangeReturn ret;
   GstWavParse *wav = GST_WAVPARSE (element);
 
+  GST_DEBUG_OBJECT (wav, "chaning state");
+
   switch (transition) {
     case GST_STATE_CHANGE_NULL_TO_READY:
       break;
@@ -1603,8 +1850,11 @@ gst_wavparse_change_state (GstElement * element, GstStateChange transition)
       gst_wavparse_destroy_sourcepad (wav);
       gst_event_replace (event_p, NULL);
       gst_wavparse_reset (wav);
-    }
+      if (wav->adapter) {
+        gst_adapter_clear (wav->adapter);
+      }
       break;
+    }
     case GST_STATE_CHANGE_READY_TO_NULL:
       break;
     default:
index 2d14061..9dd32e5 100644 (file)
@@ -1,5 +1,6 @@
 /* GStreamer
  * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2006> Nokia Corporation.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -25,6 +26,7 @@
 #include <gst/gst.h>
 #include "gst/riff/riff-ids.h"
 #include "gst/riff/riff-read.h"
+#include <gst/base/gstadapter.h>
 
 G_BEGIN_DECLS
 
@@ -93,6 +95,11 @@ struct _GstWavParse {
   /* pending seek */
   GstEvent *seek_event;
 
+  /* For streaming */
+  GstAdapter *adapter;
+  gboolean got_fmt;
+  gboolean streaming;
+
   /* configured segment, start/stop expressed in time */
   GstSegment segment;
   gboolean segment_running;
index 01e7a3d..65c12a2 100644 (file)
@@ -33,7 +33,7 @@ enum
 };
 
 
-static GstElementDetails gst_oss_mixer_element_details =
+static const GstElementDetails gst_oss_mixer_element_details =
 GST_ELEMENT_DETAILS ("OSS Mixer",
     "Generic/Audio",
     "Control sound input and output levels with OSS",
index 4799411..f262107 100644 (file)
@@ -50,7 +50,7 @@ GST_DEBUG_CATEGORY_EXTERN (oss_debug);
 #define GST_CAT_DEFAULT oss_debug
 
 /* elementfactory information */
-static GstElementDetails gst_oss_sink_details =
+static const GstElementDetails gst_oss_sink_details =
 GST_ELEMENT_DETAILS ("Audio Sink (OSS)",
     "Sink/Audio",
     "Output to a sound card via OSS",
index 7ff4c93..f740f91 100644 (file)
@@ -50,7 +50,7 @@
 GST_DEBUG_CATEGORY_EXTERN (oss_debug);
 #define GST_CAT_DEFAULT oss_debug
 
-static GstElementDetails gst_oss_src_details =
+static const GstElementDetails gst_oss_src_details =
 GST_ELEMENT_DETAILS ("Audio Source (OSS)",
     "Source/Audio",
     "Capture from a sound card via OSS",
index db142ca..6e1d791 100644 (file)
@@ -40,7 +40,7 @@ enum
 };
 
 /* elementfactory information */
-static GstElementDetails gst_osxaudioelement_details =
+static const GstElementDetails gst_osxaudioelement_details =
 GST_ELEMENT_DETAILS ("Audio Mixer (OSX)",
     "Generic/Audio",
     "Mac OS X audio mixer element",
index 75998b6..7f4a6fc 100644 (file)
@@ -31,7 +31,7 @@
 #include "gstosxaudiosink.h"
 
 /* elementfactory information */
-static GstElementDetails gst_osxaudiosink_details =
+static const GstElementDetails gst_osxaudiosink_details =
 GST_ELEMENT_DETAILS ("Audio Sink (Mac OS X)",
     "Sink/Audio",
     "Output to a Mac OS X CoreAudio Sound Device",
index c6e25cb..e12e18a 100644 (file)
@@ -34,7 +34,7 @@
 #include <gstosxaudioelement.h>
 
 /* elementfactory information */
-static GstElementDetails gst_osxaudiosrc_details =
+static const GstElementDetails gst_osxaudiosrc_details =
 GST_ELEMENT_DETAILS ("Audio Source (Mac OS X)",
     "Source/Audio",
     "Read from the sound card",
index 0023585..fb0ce95 100644 (file)
@@ -35,7 +35,7 @@
 
 #include "gstsunaudiomixer.h"
 
-static GstElementDetails gst_sunaudiomixer_details =
+static const GstElementDetails gst_sunaudiomixer_details =
 GST_ELEMENT_DETAILS ("Sun Audio Mixer",
     "Generic/Audio",
     "Control sound input and output levels with Sun Audio",
index 9d50c8c..be6de94 100644 (file)
@@ -48,7 +48,8 @@
 #include "gstsunaudiosink.h"
 
 /* elementfactory information */
-static GstElementDetails plugin_details = GST_ELEMENT_DETAILS ("Sun Audio Sink",
+static const GstElementDetails plugin_details =
+GST_ELEMENT_DETAILS ("Sun Audio Sink",
     "Sink/Audio",
     "Audio sink for Sun Audio devices",
     "David A. Schleef <ds@schleef.org>, "