mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 11:41:09 +00:00
lame: hook up to build system
https://bugzilla.gnome.org/show_bug.cgi?id=774252
This commit is contained in:
parent
53ec444963
commit
1473b662de
17 changed files with 174 additions and 2 deletions
|
@ -125,6 +125,12 @@ DebianPackage: libdv4-dev
|
|||
Plugins: dv (dvdec)
|
||||
URL: http://libdv.sourceforge.net/
|
||||
|
||||
Package: liblame
|
||||
Version: >= 3.98
|
||||
DebianPackage: libmp3lame-dev
|
||||
Plugins: lame (lamemp3enc)
|
||||
URL: http://www.mp3dev.org/mp3/
|
||||
|
||||
Package: libmpg123
|
||||
Version: >= 1.3
|
||||
DebianPackage: libpng12-dev
|
||||
|
|
22
configure.ac
22
configure.ac
|
@ -665,6 +665,26 @@ AG_GST_CHECK_FEATURE(JPEG, [jpeg library], jpeg, [
|
|||
AC_SUBST(JPEG_LIBS)
|
||||
])
|
||||
|
||||
dnl *** lame ***
|
||||
translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
|
||||
AG_GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
|
||||
AG_GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, $LIBM, lame/lame.h,
|
||||
[
|
||||
HAVE_LAME="yes"
|
||||
LAME_LIBS="-lmp3lame $LIBM"
|
||||
dnl is lame presets available
|
||||
LAME_CFLAGS=""
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <lame/lame.h>]], [[ int preset = MEDIUM ]])],[LAME_CFLAGS="-DGSTLAME_PRESET"],[LAME_CFLAGS=""
|
||||
])
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <lame/lame.h>]], [[
|
||||
void *ptr = &lame_set_VBR_quality
|
||||
]])],[LAME_CFLAGS="$LAME_CFLAGS -DHAVE_LAME_SET_VBR_QUALITY"],[LAME_CFLAGS="$LAME_CFLAGS"
|
||||
])
|
||||
AC_SUBST(LAME_CFLAGS)
|
||||
AC_SUBST(LAME_LIBS)
|
||||
])
|
||||
])
|
||||
|
||||
dnl *** libcaca ***
|
||||
translit(dnm, m, l) AM_CONDITIONAL(USE_LIBCACA, true)
|
||||
AG_GST_CHECK_FEATURE(LIBCACA, [libcaca coloured ASCII art], cacasink, [
|
||||
|
@ -878,6 +898,7 @@ AM_CONDITIONAL(USE_FLAC, false)
|
|||
AM_CONDITIONAL(USE_GDK_PIXBUF, false)
|
||||
AM_CONDITIONAL(USE_JACK, false)
|
||||
AM_CONDITIONAL(USE_JPEG, false)
|
||||
AM_CONDITIONAL(USE_LAME, false)
|
||||
AM_CONDITIONAL(USE_LIBCACA, false)
|
||||
AM_CONDITIONAL(USE_LIBDV, false)
|
||||
AM_CONDITIONAL(USE_LIBIEC61883, false)
|
||||
|
@ -1021,6 +1042,7 @@ ext/flac/Makefile
|
|||
ext/gdk_pixbuf/Makefile
|
||||
ext/jack/Makefile
|
||||
ext/jpeg/Makefile
|
||||
ext/lame/Makefile
|
||||
ext/libcaca/Makefile
|
||||
ext/libpng/Makefile
|
||||
ext/mpg123/Makefile
|
||||
|
|
|
@ -64,6 +64,7 @@ EXTRA_HFILES = \
|
|||
$(top_srcdir)/ext/jack/gstjackaudiosink.h \
|
||||
$(top_srcdir)/ext/jpeg/gstjpegdec.h \
|
||||
$(top_srcdir)/ext/jpeg/gstjpegenc.h \
|
||||
$(top_srcdir)/ext/lame/gstlamemp3enc.h \
|
||||
$(top_srcdir)/ext/libcaca/gstcacasink.h \
|
||||
$(top_srcdir)/ext/libpng/gstpngdec.h \
|
||||
$(top_srcdir)/ext/libpng/gstpngenc.h \
|
||||
|
|
|
@ -99,6 +99,7 @@
|
|||
<xi:include href="xml/element-jackaudiosrc.xml" />
|
||||
<xi:include href="xml/element-jpegdec.xml" />
|
||||
<xi:include href="xml/element-jpegenc.xml" />
|
||||
<xi:include href="xml/element-lamemp3enc.xml" />
|
||||
<xi:include href="xml/element-level-example.xml" />
|
||||
<xi:include href="xml/element-level.xml" />
|
||||
<xi:include href="xml/element-matroskademux.xml" />
|
||||
|
@ -326,6 +327,7 @@
|
|||
<xi:include href="xml/plugin-isomp4.xml" />
|
||||
<xi:include href="xml/plugin-jack.xml" />
|
||||
<xi:include href="xml/plugin-jpeg.xml" />
|
||||
<xi:include href="xml/plugin-lame.xml" />
|
||||
<xi:include href="xml/plugin-level.xml" />
|
||||
<xi:include href="xml/plugin-matroska.xml" />
|
||||
<xi:include href="xml/plugin-monoscope.xml" />
|
||||
|
|
|
@ -1283,6 +1283,21 @@ GST_TYPE_JPEG_ENC
|
|||
gst_jpeg_enc_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>element-lamemp3enc</FILE>
|
||||
<TITLE>lamemp3enc</TITLE>
|
||||
GstLameMP3Enc
|
||||
<SUBSECTION Standard>
|
||||
GstLameMP3EncClass
|
||||
GST_LAMEMP3ENC
|
||||
GST_LAMEMP3ENC_CLASS
|
||||
GST_IS_LAMEMP3ENC
|
||||
GST_IS_LAMEMP3ENC_CLASS
|
||||
GST_TYPE_LAMEMP3ENC
|
||||
gst_lamemp3enc_get_type
|
||||
gst_lamemp3enc_register
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>element-level</FILE>
|
||||
<TITLE>level</TITLE>
|
||||
|
|
|
@ -24288,3 +24288,63 @@
|
|||
<DEFAULT>NULL</DEFAULT>
|
||||
</ARG>
|
||||
|
||||
<ARG>
|
||||
<NAME>GstLameMP3Enc::bitrate</NAME>
|
||||
<TYPE>gint</TYPE>
|
||||
<RANGE>[8,320]</RANGE>
|
||||
<FLAGS>rwx</FLAGS>
|
||||
<NICK>Bitrate (kb/s)</NICK>
|
||||
<BLURB>Bitrate in kbit/sec (Only valid if target is bitrate, for CBR one of 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 or 320).</BLURB>
|
||||
<DEFAULT>128</DEFAULT>
|
||||
</ARG>
|
||||
|
||||
<ARG>
|
||||
<NAME>GstLameMP3Enc::cbr</NAME>
|
||||
<TYPE>gboolean</TYPE>
|
||||
<RANGE></RANGE>
|
||||
<FLAGS>rwx</FLAGS>
|
||||
<NICK>CBR</NICK>
|
||||
<BLURB>Enforce constant bitrate encoding (Only valid if target is bitrate).</BLURB>
|
||||
<DEFAULT>FALSE</DEFAULT>
|
||||
</ARG>
|
||||
|
||||
<ARG>
|
||||
<NAME>GstLameMP3Enc::encoding-engine-quality</NAME>
|
||||
<TYPE>GstLameMP3EncEncodingEngineQuality</TYPE>
|
||||
<RANGE></RANGE>
|
||||
<FLAGS>rwx</FLAGS>
|
||||
<NICK>Encoding Engine Quality</NICK>
|
||||
<BLURB>Quality/speed of the encoding engine, this does not affect the bitrate!.</BLURB>
|
||||
<DEFAULT>Standard</DEFAULT>
|
||||
</ARG>
|
||||
|
||||
<ARG>
|
||||
<NAME>GstLameMP3Enc::mono</NAME>
|
||||
<TYPE>gboolean</TYPE>
|
||||
<RANGE></RANGE>
|
||||
<FLAGS>rwx</FLAGS>
|
||||
<NICK>Mono</NICK>
|
||||
<BLURB>Enforce mono encoding.</BLURB>
|
||||
<DEFAULT>FALSE</DEFAULT>
|
||||
</ARG>
|
||||
|
||||
<ARG>
|
||||
<NAME>GstLameMP3Enc::quality</NAME>
|
||||
<TYPE>gfloat</TYPE>
|
||||
<RANGE>[0,9.999]</RANGE>
|
||||
<FLAGS>rwx</FLAGS>
|
||||
<NICK>Quality</NICK>
|
||||
<BLURB>VBR Quality from 0 to 10, 0 being the best (Only valid if target is quality).</BLURB>
|
||||
<DEFAULT>4</DEFAULT>
|
||||
</ARG>
|
||||
|
||||
<ARG>
|
||||
<NAME>GstLameMP3Enc::target</NAME>
|
||||
<TYPE>GstLameMP3EncTarget</TYPE>
|
||||
<RANGE></RANGE>
|
||||
<FLAGS>rwx</FLAGS>
|
||||
<NICK>Target</NICK>
|
||||
<BLURB>Optimize for quality or bitrate.</BLURB>
|
||||
<DEFAULT>Quality</DEFAULT>
|
||||
</ARG>
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ GObject
|
|||
GstAudioEncoder
|
||||
GstALawEnc
|
||||
GstFlacEnc
|
||||
GstLameMP3Enc
|
||||
GstMuLawEnc
|
||||
GstSpeexEnc
|
||||
GstWavpackEnc
|
||||
|
|
|
@ -45,6 +45,7 @@ GstIirEqualizer3Bands GstChildProxy GstPreset
|
|||
GstIirEqualizerNBands GstChildProxy
|
||||
GstIirEqualizerNBands GstChildProxy GstPreset
|
||||
GstJpegEnc GstPreset
|
||||
GstLameMP3Enc GstPreset
|
||||
GstMJ2Mux GstTagSetter GstTagXmpWriter
|
||||
GstMJ2Mux GstTagSetter GstTagXmpWriter GstPreset
|
||||
GstMP4Mux GstTagSetter GstTagXmpWriter
|
||||
|
|
34
docs/plugins/inspect/plugin-lame.xml
Normal file
34
docs/plugins/inspect/plugin-lame.xml
Normal file
|
@ -0,0 +1,34 @@
|
|||
<plugin>
|
||||
<name>lame</name>
|
||||
<description>Encode MP3s with LAME</description>
|
||||
<filename>../../ext/lame/.libs/libgstlame.so</filename>
|
||||
<basename>libgstlame.so</basename>
|
||||
<version>1.13.0.1</version>
|
||||
<license>LGPL</license>
|
||||
<source>gst-plugins-good</source>
|
||||
<package>GStreamer Good Plug-ins git</package>
|
||||
<origin>Unknown package origin</origin>
|
||||
<elements>
|
||||
<element>
|
||||
<name>lamemp3enc</name>
|
||||
<longname>L.A.M.E. mp3 encoder</longname>
|
||||
<class>Codec/Encoder/Audio</class>
|
||||
<description>High-quality free MP3 encoder</description>
|
||||
<author>Sebastian Dröge <sebastian.droege@collabora.co.uk></author>
|
||||
<pads>
|
||||
<caps>
|
||||
<name>sink</name>
|
||||
<direction>sink</direction>
|
||||
<presence>always</presence>
|
||||
<details>audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)1; audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)2, channel-mask=(bitmask)0x0000000000000003</details>
|
||||
</caps>
|
||||
<caps>
|
||||
<name>src</name>
|
||||
<direction>source</direction>
|
||||
<presence>always</presence>
|
||||
<details>audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ]</details>
|
||||
</caps>
|
||||
</pads>
|
||||
</element>
|
||||
</elements>
|
||||
</plugin>
|
|
@ -34,6 +34,12 @@ else
|
|||
JPEG_DIR =
|
||||
endif
|
||||
|
||||
if USE_LAME
|
||||
LAME_DIR = lame
|
||||
else
|
||||
LAME_DIR =
|
||||
endif
|
||||
|
||||
if USE_LIBCACA
|
||||
LIBCACA_DIR = libcaca
|
||||
else
|
||||
|
@ -115,6 +121,7 @@ SUBDIRS = \
|
|||
$(GDK_PIXBUF_DIR) \
|
||||
$(JACK_DIR) \
|
||||
$(JPEG_DIR) \
|
||||
$(LAME_DIR) \
|
||||
$(LIBCACA_DIR) \
|
||||
$(LIBDV_DIR) \
|
||||
$(LIBMNG_DIR) \
|
||||
|
@ -136,6 +143,7 @@ DIST_SUBDIRS = \
|
|||
gdk_pixbuf \
|
||||
jack \
|
||||
jpeg \
|
||||
lame \
|
||||
libcaca \
|
||||
libpng \
|
||||
mpg123 \
|
||||
|
|
|
@ -3,7 +3,7 @@ plugin_LTLIBRARIES = libgstlame.la
|
|||
libgstlame_la_SOURCES = gstlamemp3enc.c plugin.c
|
||||
libgstlame_la_CFLAGS = \
|
||||
$(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(LAME_CFLAGS)
|
||||
libgstlame_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) \
|
||||
libgstlame_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) \
|
||||
$(GST_BASE_LIBS) $(GST_LIBS) $(LAME_LIBS)
|
||||
libgstlame_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ if lame_dep.found() and cc.has_header_symbol('lame/lame.h', 'lame_init')
|
|||
endif
|
||||
lame = library('gstlame',
|
||||
['gstlamemp3enc.c', 'plugin.c'],
|
||||
c_args : ugly_args + lame_extra_c_args,
|
||||
c_args : gst_plugins_good_args + lame_extra_c_args,
|
||||
include_directories : [configinc, libsinc],
|
||||
dependencies : [gstaudio_dep, lame_dep],
|
||||
install : true,
|
||||
|
|
|
@ -4,6 +4,7 @@ subdir('flac')
|
|||
subdir('gdk_pixbuf')
|
||||
subdir('jack')
|
||||
subdir('jpeg')
|
||||
subdir('lame')
|
||||
subdir('libcaca')
|
||||
# FIXME: dv plugin fails to link with msvc, wants pthread.lib
|
||||
if cc.get_id() != 'msvc'
|
||||
|
|
|
@ -2,6 +2,7 @@ ext/flac/gstflacdec.c
|
|||
ext/jack/gstjackaudiosink.c
|
||||
ext/jack/gstjackaudiosrc.c
|
||||
ext/jpeg/gstjpegdec.c
|
||||
ext/lame/gstlamemp3enc.c
|
||||
ext/libpng/gstpngdec.c
|
||||
ext/pulse/pulsesink.c
|
||||
ext/shout2/gstshout2.c
|
||||
|
|
|
@ -188,6 +188,12 @@ else
|
|||
check_jpeg =
|
||||
endif
|
||||
|
||||
if USE_LAME
|
||||
check_lame = pipelines/lame
|
||||
else
|
||||
check_lame =
|
||||
endif
|
||||
|
||||
if USE_PLUGIN_LEVEL
|
||||
check_level = elements/level
|
||||
else
|
||||
|
@ -372,6 +378,7 @@ check_PROGRAMS = \
|
|||
$(check_imagefreeze) \
|
||||
$(check_interleave) \
|
||||
$(check_jpeg) \
|
||||
$(check_lame) \
|
||||
$(check_law) \
|
||||
$(check_level) \
|
||||
$(check_matroska) \
|
||||
|
|
|
@ -143,3 +143,15 @@
|
|||
fun:gst_value_deserialize_double
|
||||
}
|
||||
|
||||
## lame
|
||||
|
||||
{
|
||||
<lame Conditional jump or move depends on uninitialised values>
|
||||
Memcheck:Cond
|
||||
fun:L3psycho_anal_vbr
|
||||
fun:lame_encode_mp3_frame
|
||||
...
|
||||
fun:lame_encode_flush
|
||||
fun:gst_lamemp3enc_sink_event
|
||||
}
|
||||
|
||||
|
|
|
@ -94,6 +94,7 @@ good_tests = [
|
|||
[ 'elements/vp8enc', not vpx_dep.found() or not have_vp8_encoder ],
|
||||
[ 'elements/vp8dec', not vpx_dep.found() or not have_vp8_decoder ],
|
||||
[ 'elements/vp9enc', not vpx_dep.found() or not have_vp9_encoder ],
|
||||
[ 'pipelines/lame', not lame_dep.found() ],
|
||||
[ 'pipelines/wavenc' ],
|
||||
[ 'elements/wavpackdec', not wavpack_dep.found() ],
|
||||
[ 'elements/wavpackenc', not wavpack_dep.found() ],
|
||||
|
|
Loading…
Reference in a new issue