diff --git a/ChangeLog b/ChangeLog index e8ce415d69..5d28f06752 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,29 @@ +2006-10-13 Tim-Philipp Müller + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-ugly-plugins-docs.sgml: + * docs/plugins/gst-plugins-ugly-plugins-sections.txt: + * ext/lame/gstlame.c: (gst_lame_class_init): + * ext/lame/gstlame.h: + Add docs for lame and lame to docs. Specify allowed bitrates + in the properties description (#361140). Canonicalise object + property names (ie. use hyphen instead of underscore). + + * docs/plugins/inspect/plugin-a52dec.xml: + * docs/plugins/inspect/plugin-amrnb.xml: + * docs/plugins/inspect/plugin-asf.xml: + * docs/plugins/inspect/plugin-dvdlpcmdec.xml: + * docs/plugins/inspect/plugin-dvdread.xml: + * docs/plugins/inspect/plugin-dvdsub.xml: + * docs/plugins/inspect/plugin-iec958.xml: + * docs/plugins/inspect/plugin-lame.xml: + * docs/plugins/inspect/plugin-mad.xml: + * docs/plugins/inspect/plugin-mpeg2dec.xml: + * docs/plugins/inspect/plugin-mpegaudioparse.xml: + * docs/plugins/inspect/plugin-mpegstream.xml: + * docs/plugins/inspect/plugin-siddec.xml: + Update version to CVS. + 2006-10-13 Tim-Philipp Müller * ext/lame/gstlame.c: (gst_lame_sink_setcaps), diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am index 79de36c3ce..c6ead19539 100644 --- a/docs/plugins/Makefile.am +++ b/docs/plugins/Makefile.am @@ -82,6 +82,7 @@ IGNORE_CFILES = # $(top_srcdir)/ext/gnomevfs/gstgnomevfssink.c EXTRA_HFILES = \ + $(top_srcdir)/ext/lame/gstlame.h \ $(top_srcdir)/ext/mad/gstmad.h # Images to copy into HTML directory. diff --git a/docs/plugins/gst-plugins-ugly-plugins-docs.sgml b/docs/plugins/gst-plugins-ugly-plugins-docs.sgml index 2dc2844dda..746d8f04a2 100644 --- a/docs/plugins/gst-plugins-ugly-plugins-docs.sgml +++ b/docs/plugins/gst-plugins-ugly-plugins-docs.sgml @@ -12,6 +12,8 @@ gst-plugins-ugly Elements + + diff --git a/docs/plugins/gst-plugins-ugly-plugins-sections.txt b/docs/plugins/gst-plugins-ugly-plugins-sections.txt index 515956759a..60a3b215f0 100644 --- a/docs/plugins/gst-plugins-ugly-plugins-sections.txt +++ b/docs/plugins/gst-plugins-ugly-plugins-sections.txt @@ -6,4 +6,11 @@ GstMad GstMadClass +
+element-lame +GstLame +lame + +GstLameClass +
diff --git a/docs/plugins/inspect/plugin-a52dec.xml b/docs/plugins/inspect/plugin-a52dec.xml index 090275578f..1ff63a09bd 100644 --- a/docs/plugins/inspect/plugin-a52dec.xml +++ b/docs/plugins/inspect/plugin-a52dec.xml @@ -3,10 +3,10 @@ Decodes ATSC A/52 encoded audio streams ../../ext/a52dec/.libs/libgsta52dec.so libgsta52dec.so - 0.10.4 + 0.10.4.1 GPL gst-plugins-ugly - GStreamer Ugly Plug-ins source release + GStreamer Ugly Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-amrnb.xml b/docs/plugins/inspect/plugin-amrnb.xml index 292a5bb67f..e3008becb3 100644 --- a/docs/plugins/inspect/plugin-amrnb.xml +++ b/docs/plugins/inspect/plugin-amrnb.xml @@ -3,10 +3,10 @@ Adaptive Multi-Rate Narrow-Band ../../ext/amrnb/.libs/libgstamrnb.so libgstamrnb.so - 0.10.4 + 0.10.4.1 unknown gst-plugins-ugly - GStreamer Ugly Plug-ins source release + GStreamer Ugly Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-asf.xml b/docs/plugins/inspect/plugin-asf.xml index 83970c01f6..535d65ff9d 100644 --- a/docs/plugins/inspect/plugin-asf.xml +++ b/docs/plugins/inspect/plugin-asf.xml @@ -3,10 +3,10 @@ Demuxes and muxes audio and video in Microsofts ASF format ../../gst/asfdemux/.libs/libgstasf.so libgstasf.so - 0.10.4 + 0.10.4.1 LGPL gst-plugins-ugly - GStreamer Ugly Plug-ins source release + GStreamer Ugly Plug-ins CVS/prerelease Unknown package origin @@ -16,5 +16,12 @@ Demultiplexes ASF Streams Owen Fraser-Green <owen@discobabe.net> + + rtpasfdepay + RTP ASF packet depayloader + Codec/Depayloader/Network + Extracts ASF streams from RTP + Tim-Philipp Müller <tim centricular net> + \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-dvdlpcmdec.xml b/docs/plugins/inspect/plugin-dvdlpcmdec.xml index e51e155c3a..8264e58ced 100644 --- a/docs/plugins/inspect/plugin-dvdlpcmdec.xml +++ b/docs/plugins/inspect/plugin-dvdlpcmdec.xml @@ -3,10 +3,10 @@ Decode DVD LPCM frames into standard PCM ../../gst/dvdlpcmdec/.libs/libgstdvdlpcmdec.so libgstdvdlpcmdec.so - 0.10.4 + 0.10.4.1 LGPL gst-plugins-ugly - GStreamer Ugly Plug-ins source release + GStreamer Ugly Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-dvdread.xml b/docs/plugins/inspect/plugin-dvdread.xml index 3917f62f07..41c11886fd 100644 --- a/docs/plugins/inspect/plugin-dvdread.xml +++ b/docs/plugins/inspect/plugin-dvdread.xml @@ -3,10 +3,10 @@ Access a DVD with dvdread ../../ext/dvdread/.libs/libgstdvdread.so libgstdvdread.so - 0.10.4 + 0.10.4.1 GPL gst-plugins-ugly - GStreamer Ugly Plug-ins source release + GStreamer Ugly Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-dvdsub.xml b/docs/plugins/inspect/plugin-dvdsub.xml index 9fb3944ad9..bd14c1d733 100644 --- a/docs/plugins/inspect/plugin-dvdsub.xml +++ b/docs/plugins/inspect/plugin-dvdsub.xml @@ -3,10 +3,10 @@ Decode DVD subtitles to AYUV video frames ../../gst/dvdsub/.libs/libgstdvdsub.so libgstdvdsub.so - 0.10.4 + 0.10.4.1 LGPL gst-plugins-ugly - GStreamer Ugly Plug-ins source release + GStreamer Ugly Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-iec958.xml b/docs/plugins/inspect/plugin-iec958.xml index 25d107b26d..4eee035c93 100644 --- a/docs/plugins/inspect/plugin-iec958.xml +++ b/docs/plugins/inspect/plugin-iec958.xml @@ -3,10 +3,10 @@ Convert raw AC3 into IEC958 (S/PDIF) frames ../../gst/iec958/.libs/libgstiec958.so libgstiec958.so - 0.10.4 + 0.10.4.1 LGPL gst-plugins-ugly - GStreamer Ugly Plug-ins source release + GStreamer Ugly Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-lame.xml b/docs/plugins/inspect/plugin-lame.xml index 4d2c978861..919a5189f1 100644 --- a/docs/plugins/inspect/plugin-lame.xml +++ b/docs/plugins/inspect/plugin-lame.xml @@ -1,12 +1,12 @@ lame - Encode MP3's with LAME + Encode MP3s with LAME ../../ext/lame/.libs/libgstlame.so libgstlame.so - 0.10.4 + 0.10.4.1 LGPL gst-plugins-ugly - GStreamer Ugly Plug-ins source release + GStreamer Ugly Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-mad.xml b/docs/plugins/inspect/plugin-mad.xml index 6f98acf5f0..197ded04f1 100644 --- a/docs/plugins/inspect/plugin-mad.xml +++ b/docs/plugins/inspect/plugin-mad.xml @@ -3,10 +3,10 @@ id3 tag manipulation and mp3 decoding based on the mad library ../../ext/mad/.libs/libgstmad.so libgstmad.so - 0.10.4 + 0.10.4.1 GPL gst-plugins-ugly - GStreamer Ugly Plug-ins source release + GStreamer Ugly Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-mpeg2dec.xml b/docs/plugins/inspect/plugin-mpeg2dec.xml index 5a0fbae6e8..608f704eb1 100644 --- a/docs/plugins/inspect/plugin-mpeg2dec.xml +++ b/docs/plugins/inspect/plugin-mpeg2dec.xml @@ -3,10 +3,10 @@ LibMpeg2 decoder ../../ext/mpeg2dec/.libs/libgstmpeg2dec.so libgstmpeg2dec.so - 0.10.4 + 0.10.4.1 GPL gst-plugins-ugly - GStreamer Ugly Plug-ins source release + GStreamer Ugly Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-mpegaudioparse.xml b/docs/plugins/inspect/plugin-mpegaudioparse.xml index c26f0238c1..c2f29611a3 100644 --- a/docs/plugins/inspect/plugin-mpegaudioparse.xml +++ b/docs/plugins/inspect/plugin-mpegaudioparse.xml @@ -3,10 +3,10 @@ MPEG-1 layer 1/2/3 audio parser ../../gst/mpegaudioparse/.libs/libgstmpegaudioparse.so libgstmpegaudioparse.so - 0.10.4 + 0.10.4.1 LGPL gst-plugins-ugly - GStreamer Ugly Plug-ins source release + GStreamer Ugly Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-mpegstream.xml b/docs/plugins/inspect/plugin-mpegstream.xml index d1ead85614..1266e35c35 100644 --- a/docs/plugins/inspect/plugin-mpegstream.xml +++ b/docs/plugins/inspect/plugin-mpegstream.xml @@ -3,10 +3,10 @@ MPEG system stream parser ../../gst/mpegstream/.libs/libgstmpegstream.so libgstmpegstream.so - 0.10.4 + 0.10.4.1 LGPL gst-plugins-ugly - GStreamer Ugly Plug-ins source release + GStreamer Ugly Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-siddec.xml b/docs/plugins/inspect/plugin-siddec.xml index c8f13e9bc0..ea82e06748 100644 --- a/docs/plugins/inspect/plugin-siddec.xml +++ b/docs/plugins/inspect/plugin-siddec.xml @@ -3,10 +3,10 @@ Uses libsidplay to decode .sid files ../../ext/sidplay/.libs/libgstsid.so libgstsid.so - 0.10.4 + 0.10.4.1 GPL gst-plugins-ugly - GStreamer Ugly Plug-ins source release + GStreamer Ugly Plug-ins CVS/prerelease Unknown package origin diff --git a/ext/lame/gstlame.c b/ext/lame/gstlame.c index 36bcae2d14..c714e63fe6 100644 --- a/ext/lame/gstlame.c +++ b/ext/lame/gstlame.c @@ -19,6 +19,57 @@ * Boston, MA 02111-1307, USA. */ +/** + * SECTION:element-lame + * @short_description: an encoder that encodes audio to MPEG-1 layer 3 (mp3) + * @see_also: mad, vorbisenc + * + * + * + * This element encodes raw integer audio into an MPEG-1 layer 3 (MP3) stream. + * Note that MP3 is not + * a free format, there are licensing and patent issues to take into + * consideration. See Ogg/Vorbis + * for a royalty free (and often higher quality) alternative. + * + * Writing metadata (tags) + * + * Whilst the lame encoder element does claim to implement the GstTagSetter + * interface, it does so only for backwards compatibility reasons. Tag writing + * has been removed from lame. Use external elements like id3v2mux or apev2mux + * to add tags to your MP3 streams. The same goes for XING headers: use the + * xingmux element to add XING headers to your VBR mp3 file. + * + * Example pipelines + * + * Encode a test sine signal to MP3. + * + * + * gst-launch -v audiotestsrc wave=sine num-buffers=100 ! audioconvert ! lame ! filesink location=sine.mp3 + * + * + * Record from a sound card using ALSA and encode to MP3 + * + * + * gst-launch -v alsasrc ! audioconvert ! lame bitrate=192 ! filesink location=alsasrc.mp3 + * + * + * Transcode from a .wav file to MP3 (the id3v2mux element is optional): + * + * + * gst-launch -v filesrc location=music.wav ! decodebin ! audioconvert ! audioresample ! lame bitrate=192 ! id3v2mux ! filesink location=music.mp3 + * + * + * Encode Audio CD track 5 to MP3: + * + * + * gst-launch -v cdda://5 ! audioconvert ! lame bitrate=192 ! filesink location=track5.mp3 + * + * + * + * Last reviewed on 2006-10-13 (0.10.4) + */ + #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -315,7 +366,9 @@ gst_lame_class_init (GstLameClass * klass) gobject_class->finalize = gst_lame_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_BITRATE, - g_param_spec_int ("bitrate", "Bitrate (kb/s)", "Bitrate in kbit/sec", + g_param_spec_int ("bitrate", "Bitrate (kb/s)", + "Bitrate in kbit/sec (8, 16, 24, 32, 40, 48, 56, 64, 80, 96, " + "112, 128, 160, 192, 224, 256 or 320)", 8, 320, 128, G_PARAM_READWRITE)); /* compression ratio set to 0.0 by default otherwise it overrides the bitrate setting */ g_object_class_install_property (G_OBJECT_CLASS (klass), @@ -331,10 +384,10 @@ gst_lame_class_init (GstLameClass * klass) g_param_spec_enum ("mode", "Mode", "Encoding mode", GST_TYPE_LAME_MODE, 0, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_FORCE_MS, - g_param_spec_boolean ("force_ms", "Force ms", + g_param_spec_boolean ("force-ms", "Force ms", "Force ms_stereo on all frames", TRUE, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_FREE_FORMAT, - g_param_spec_boolean ("free_format", "Free format", + g_param_spec_boolean ("free-format", "Free format", "Produce a free format bitstream", TRUE, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_COPYRIGHT, g_param_spec_boolean ("copyright", "Copyright", "Mark as copyright", TRUE, @@ -343,78 +396,82 @@ gst_lame_class_init (GstLameClass * klass) g_param_spec_boolean ("original", "Original", "Mark as non-original", TRUE, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_ERROR_PROTECTION, - g_param_spec_boolean ("error_protection", "Error protection", + g_param_spec_boolean ("error-protection", "Error protection", "Adds 16 bit checksum to every frame", TRUE, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_PADDING_TYPE, - g_param_spec_enum ("padding_type", "Padding type", "Padding type", + g_param_spec_enum ("padding-type", "Padding type", "Padding type", GST_TYPE_LAME_PADDING, 0, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_EXTENSION, g_param_spec_boolean ("extension", "Extension", "Extension", TRUE, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_STRICT_ISO, - g_param_spec_boolean ("strict_iso", "Strict ISO", + g_param_spec_boolean ("strict-iso", "Strict ISO", "Comply as much as possible to ISO MPEG spec", TRUE, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), - ARG_DISABLE_RESERVOIR, g_param_spec_boolean ("disable_reservoir", + ARG_DISABLE_RESERVOIR, g_param_spec_boolean ("disable-reservoir", "Disable reservoir", "Disable the bit reservoir", TRUE, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_VBR, g_param_spec_enum ("vbr", "VBR", "Specify bitrate mode", GST_TYPE_LAME_VBRMODE, vbr_off, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_VBR_QUALITY, - g_param_spec_enum ("vbr_quality", "VBR Quality", "VBR Quality", + g_param_spec_enum ("vbr-quality", "VBR Quality", "VBR Quality", GST_TYPE_LAME_QUALITY, 5, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_VBR_MEAN_BITRATE, - g_param_spec_int ("vbr_mean_bitrate", "VBR mean bitrate", - "Specify mean bitrate", 0, G_MAXINT, 0, G_PARAM_READWRITE)); + g_param_spec_int ("vbr-mean-bitrate", "VBR mean bitrate", + "Specify mean VBR bitrate", 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_VBR_MIN_BITRATE, - g_param_spec_int ("vbr_min_bitrate", "VBR min bitrate", - "Specify min bitrate", 0, G_MAXINT, 0, G_PARAM_READWRITE)); + g_param_spec_int ("vbr-min-bitrate", "VBR min bitrate", + "Specify minimum VBR bitrate (8, 16, 24, 32, 40, 48, 56, 64, 80, 96, " + "112, 128, 160, 192, 224, 256 or 320)", + 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_VBR_MAX_BITRATE, - g_param_spec_int ("vbr_max_bitrate", "VBR max bitrate", - "Specify max bitrate", 0, G_MAXINT, 0, G_PARAM_READWRITE)); + g_param_spec_int ("vbr-max-bitrate", "VBR max bitrate", + "Specify maximum VBR bitrate (8, 16, 24, 32, 40, 48, 56, 64, 80, 96, " + "112, 128, 160, 192, 224, 256 or 320)", + 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_VBR_HARD_MIN, - g_param_spec_int ("vbr_hard_min", "VBR hard min", + g_param_spec_int ("vbr-hard-min", "VBR hard min", "Specify hard min bitrate", 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_LOWPASS_FREQ, - g_param_spec_int ("lowpass_freq", "Lowpass freq", + g_param_spec_int ("lowpass-freq", "Lowpass freq", "frequency(kHz), lowpass filter cutoff above freq", 0, 50000, 0, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_LOWPASS_WIDTH, - g_param_spec_int ("lowpass_width", "Lowpass width", + g_param_spec_int ("lowpass-width", "Lowpass width", "frequency(kHz) - default 15% of lowpass freq", 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_HIGHPASS_FREQ, - g_param_spec_int ("highpass_freq", "Highpass freq", + g_param_spec_int ("highpass-freq", "Highpass freq", "frequency(kHz), highpass filter cutoff below freq", 0, 50000, 0, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_HIGHPASS_WIDTH, - g_param_spec_int ("highpass_width", "Highpass width", + g_param_spec_int ("highpass-width", "Highpass width", "frequency(kHz) - default 15% of highpass freq", 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_ATH_ONLY, - g_param_spec_boolean ("ath_only", "ATH only", + g_param_spec_boolean ("ath-only", "ATH only", "Ignore GPSYCHO completely, use ATH only", TRUE, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_ATH_SHORT, - g_param_spec_boolean ("ath_short", "ATH short", + g_param_spec_boolean ("ath-short", "ATH short", "Ignore GPSYCHO for short blocks, use ATH only", TRUE, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_NO_ATH, - g_param_spec_boolean ("no_ath", "No ath", + g_param_spec_boolean ("no-ath", "No ath", "turns ATH down to a flat noise floor", TRUE, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_ATH_LOWER, - g_param_spec_int ("ath_lower", "ATH lower", "lowers ATH by x dB", + g_param_spec_int ("ath-lower", "ATH lower", "lowers ATH by x dB", G_MININT, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_CWLIMIT, g_param_spec_int ("cwlimit", "Cwlimit", "Compute tonality up to freq (in kHz) default 8.8717", 0, 50000, 0, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_ALLOW_DIFF_SHORT, - g_param_spec_boolean ("allow_diff_short", "Allow diff short", + g_param_spec_boolean ("allow-diff-short", "Allow diff short", "Allow diff short", TRUE, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_NO_SHORT_BLOCKS, - g_param_spec_boolean ("no_short_blocks", "No short blocks", + g_param_spec_boolean ("no-short-blocks", "No short blocks", "Do not use short blocks", TRUE, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_EMPHASIS, g_param_spec_boolean ("emphasis", "Emphasis", "Emphasis", TRUE, diff --git a/ext/lame/gstlame.h b/ext/lame/gstlame.h index 0af09fd529..8c980e47b8 100644 --- a/ext/lame/gstlame.h +++ b/ext/lame/gstlame.h @@ -42,9 +42,15 @@ G_BEGIN_DECLS typedef struct _GstLame GstLame; typedef struct _GstLameClass GstLameClass; +/** + * GstLame: + * + * Opaque data structure. + */ struct _GstLame { GstElement element; - /* pads */ + + /*< private >*/ GstPad *srcpad, *sinkpad; gint samplerate;