twolame: hook up to build system

https://bugzilla.gnome.org/show_bug.cgi?id=774252
This commit is contained in:
Tim-Philipp Müller 2017-08-26 09:41:13 +01:00
parent f3f9e13c12
commit 02af0e857b
13 changed files with 234 additions and 1 deletions

View file

@ -164,6 +164,12 @@ DebianPackage: libtag1-dev
Plugins: taglib (id3v2mux) Plugins: taglib (id3v2mux)
URL: http://taglib.github.io/ URL: http://taglib.github.io/
Package: twolame
Version: >= 0.3.13
DebianPackage: libtwolame-dev
Plugins: twolame (twolamemp2enc)
URL: http://www.twolame.org
Package: zlib Package: zlib
DebianPackage: zlib1g-dev DebianPackage: zlib1g-dev
Plugins: isomp4 (qtdemux), matroska (matroskademux) Plugins: isomp4 (qtdemux), matroska (matroskademux)

View file

@ -810,6 +810,18 @@ AG_GST_CHECK_FEATURE(TAGLIB, [taglib tagging library], taglib, [
fi fi
]) ])
dnl *** twolame ***
translit(dnm, m, l) AM_CONDITIONAL(USE_TWOLAME, true)
AG_GST_CHECK_FEATURE(TWOLAME, [twolame], twolame, [
PKG_CHECK_MODULES(TWOLAME, twolame >= 0.3.10, [
HAVE_TWOLAME="yes"], [
HAVE_TWOLAME="no"
])
AC_SUBST(TWOLAME_CFLAGS)
AC_SUBST(TWOLAME_LIBS)
])
dnl *** vpx *** dnl *** vpx ***
translit(dnm, m, l) AM_CONDITIONAL(USE_VPX, vpx) translit(dnm, m, l) AM_CONDITIONAL(USE_VPX, vpx)
AG_GST_CHECK_FEATURE(VPX, [VPX decoder], vpx, [ AG_GST_CHECK_FEATURE(VPX, [VPX decoder], vpx, [
@ -913,6 +925,7 @@ AM_CONDITIONAL(USE_SHOUT2, false)
AM_CONDITIONAL(USE_SOUP, false) AM_CONDITIONAL(USE_SOUP, false)
AM_CONDITIONAL(USE_SPEEX, false) AM_CONDITIONAL(USE_SPEEX, false)
AM_CONDITIONAL(USE_TAGLIB, false) AM_CONDITIONAL(USE_TAGLIB, false)
AM_CONDITIONAL(USE_TWOLAME, false)
AM_CONDITIONAL(USE_VPX, false) AM_CONDITIONAL(USE_VPX, false)
AM_CONDITIONAL(USE_WAVEFORM, false) AM_CONDITIONAL(USE_WAVEFORM, false)
AM_CONDITIONAL(USE_WAVPACK, false) AM_CONDITIONAL(USE_WAVPACK, false)
@ -1052,6 +1065,7 @@ ext/shout2/Makefile
ext/soup/Makefile ext/soup/Makefile
ext/speex/Makefile ext/speex/Makefile
ext/taglib/Makefile ext/taglib/Makefile
ext/twolame/Makefile
ext/vpx/Makefile ext/vpx/Makefile
ext/wavpack/Makefile ext/wavpack/Makefile
sys/Makefile sys/Makefile

View file

@ -74,6 +74,7 @@ EXTRA_HFILES = \
$(top_srcdir)/ext/soup/gstsouphttpsrc.h \ $(top_srcdir)/ext/soup/gstsouphttpsrc.h \
$(top_srcdir)/ext/taglib/gstapev2mux.h \ $(top_srcdir)/ext/taglib/gstapev2mux.h \
$(top_srcdir)/ext/taglib/gstid3v2mux.h \ $(top_srcdir)/ext/taglib/gstid3v2mux.h \
$(top_srcdir)/ext/twolame/gsttwolamemp2enc.h \
$(top_srcdir)/ext/pulse/pulsesink.h \ $(top_srcdir)/ext/pulse/pulsesink.h \
$(top_srcdir)/ext/pulse/pulsesrc.h \ $(top_srcdir)/ext/pulse/pulsesrc.h \
$(top_srcdir)/ext/speex/gstspeexenc.h \ $(top_srcdir)/ext/speex/gstspeexenc.h \

View file

@ -263,6 +263,7 @@
<xi:include href="xml/element-streaktv.xml" /> <xi:include href="xml/element-streaktv.xml" />
<xi:include href="xml/element-taginject.xml" /> <xi:include href="xml/element-taginject.xml" />
<xi:include href="xml/element-testsink.xml" /> <xi:include href="xml/element-testsink.xml" />
<xi:include href="xml/element-twolamemp2enc.xml" />
<xi:include href="xml/element-udpsink.xml" /> <xi:include href="xml/element-udpsink.xml" />
<xi:include href="xml/element-udpsrc.xml" /> <xi:include href="xml/element-udpsrc.xml" />
<xi:include href="xml/element-v4l2radio.xml" /> <xi:include href="xml/element-v4l2radio.xml" />
@ -353,6 +354,7 @@
<xi:include href="xml/plugin-spectrum.xml" /> <xi:include href="xml/plugin-spectrum.xml" />
<xi:include href="xml/plugin-speex.xml" /> <xi:include href="xml/plugin-speex.xml" />
<xi:include href="xml/plugin-taglib.xml" /> <xi:include href="xml/plugin-taglib.xml" />
<xi:include href="xml/plugin-twolame.xml" />
<xi:include href="xml/plugin-udp.xml" /> <xi:include href="xml/plugin-udp.xml" />
<xi:include href="xml/plugin-video4linux2.xml" /> <xi:include href="xml/plugin-video4linux2.xml" />
<xi:include href="xml/plugin-videobox.xml" /> <xi:include href="xml/plugin-videobox.xml" />

View file

@ -3874,6 +3874,20 @@ GST_TYPE_TEST
gst_test_get_type gst_test_get_type
</SECTION> </SECTION>
<SECTION>
<FILE>element-twolamemp2enc</FILE>
<TITLE>twolame</TITLE>
GstTwoLame
<SUBSECTION Standard>
GstTwoLameClass
GST_TWO_LAME
GST_TWO_LAME_CLASS
GST_IS_TWO_LAME
GST_IS_TWO_LAME_CLASS
GST_TYPE_TWO_LAME
gst_two_lame_get_type
</SECTION>
<SECTION> <SECTION>
<FILE>element-udpsink</FILE> <FILE>element-udpsink</FILE>
<TITLE>udpsink</TITLE> <TITLE>udpsink</TITLE>

View file

@ -24348,3 +24348,153 @@
<DEFAULT>Quality</DEFAULT> <DEFAULT>Quality</DEFAULT>
</ARG> </ARG>
<ARG>
<NAME>GstTwoLame::ath-level</NAME>
<TYPE>gfloat</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>ATH Level</NICK>
<BLURB>ATH Level in dB.</BLURB>
<DEFAULT>0</DEFAULT>
</ARG>
<ARG>
<NAME>GstTwoLame::bitrate</NAME>
<TYPE>gint</TYPE>
<RANGE>[8,384]</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Bitrate (kb/s)</NICK>
<BLURB>Bitrate in kbit/sec (8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 192, 224, 256, 320, 384).</BLURB>
<DEFAULT>192</DEFAULT>
</ARG>
<ARG>
<NAME>GstTwoLame::copyright</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Copyright</NICK>
<BLURB>Mark as copyright.</BLURB>
<DEFAULT>FALSE</DEFAULT>
</ARG>
<ARG>
<NAME>GstTwoLame::emphasis</NAME>
<TYPE>GstTwoLameEmphasis</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Emphasis</NICK>
<BLURB>Pre-emphasis to apply to the decoded audio.</BLURB>
<DEFAULT>No emphasis</DEFAULT>
</ARG>
<ARG>
<NAME>GstTwoLame::energy-level-extension</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Energy Level Extension</NICK>
<BLURB>Write peak PCM level to each frame.</BLURB>
<DEFAULT>FALSE</DEFAULT>
</ARG>
<ARG>
<NAME>GstTwoLame::error-protection</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Error protection</NICK>
<BLURB>Adds checksum to every frame.</BLURB>
<DEFAULT>FALSE</DEFAULT>
</ARG>
<ARG>
<NAME>GstTwoLame::mode</NAME>
<TYPE>GstTwoLameMode</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Mode</NICK>
<BLURB>Encoding mode.</BLURB>
<DEFAULT>Joint Stereo</DEFAULT>
</ARG>
<ARG>
<NAME>GstTwoLame::original</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Original</NICK>
<BLURB>Mark as original.</BLURB>
<DEFAULT>TRUE</DEFAULT>
</ARG>
<ARG>
<NAME>GstTwoLame::padding</NAME>
<TYPE>GstTwoLamePadding</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Padding</NICK>
<BLURB>Padding type.</BLURB>
<DEFAULT>No Padding</DEFAULT>
</ARG>
<ARG>
<NAME>GstTwoLame::psymodel</NAME>
<TYPE>gint</TYPE>
<RANGE>[G_MAXULONG,4]</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Psychoacoustic Model</NICK>
<BLURB>Psychoacoustic model used to encode the audio.</BLURB>
<DEFAULT>3</DEFAULT>
</ARG>
<ARG>
<NAME>GstTwoLame::quick-mode</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Quick mode</NICK>
<BLURB>Calculate Psymodel every frames.</BLURB>
<DEFAULT>FALSE</DEFAULT>
</ARG>
<ARG>
<NAME>GstTwoLame::quick-mode-count</NAME>
<TYPE>gint</TYPE>
<RANGE>>= 0</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Quick mode count</NICK>
<BLURB>Calculate Psymodel every n frames.</BLURB>
<DEFAULT>10</DEFAULT>
</ARG>
<ARG>
<NAME>GstTwoLame::vbr</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>VBR</NICK>
<BLURB>Enable variable bitrate mode.</BLURB>
<DEFAULT>FALSE</DEFAULT>
</ARG>
<ARG>
<NAME>GstTwoLame::vbr-level</NAME>
<TYPE>gfloat</TYPE>
<RANGE>[-10,10]</RANGE>
<FLAGS>rw</FLAGS>
<NICK>VBR Level</NICK>
<BLURB>VBR Level.</BLURB>
<DEFAULT>5</DEFAULT>
</ARG>
<ARG>
<NAME>GstTwoLame::vbr-max-bitrate</NAME>
<TYPE>gint</TYPE>
<RANGE>[0,384]</RANGE>
<FLAGS>rw</FLAGS>
<NICK>VBR max bitrate</NICK>
<BLURB>Specify maximum VBR bitrate (0=off, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 192, 224, 256, 320, 384).</BLURB>
<DEFAULT>0</DEFAULT>
</ARG>

View file

@ -36,6 +36,7 @@ GObject
GstLameMP3Enc GstLameMP3Enc
GstMuLawEnc GstMuLawEnc
GstSpeexEnc GstSpeexEnc
GstTwoLame
GstWavpackEnc GstWavpackEnc
GstAudioVisualizer GstAudioVisualizer
GstGoom GstGoom

View file

@ -88,6 +88,7 @@ GstSwitchSink GstChildProxy
GstSwitchSrc GstChildProxy GstSwitchSrc GstChildProxy
GstTagLibMux GstTagSetter GstTagLibMux GstTagSetter
GstTagMux GstTagSetter GstTagMux GstTagSetter
GstTwoLame GstPreset
GstUDPSink GstURIHandler GstUDPSink GstURIHandler
GstUDPSrc GstURIHandler GstUDPSrc GstURIHandler
GstV4l2Radio GstURIHandler GstImplementsInterface GstTuner GstPropertyProbe GstV4l2Radio GstURIHandler GstImplementsInterface GstTuner GstPropertyProbe

View file

@ -0,0 +1,34 @@
<plugin>
<name>twolame</name>
<description>Encode MP2s with TwoLAME</description>
<filename>../../ext/twolame/.libs/libgsttwolame.so</filename>
<basename>libgsttwolame.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>twolamemp2enc</name>
<longname>TwoLAME mp2 encoder</longname>
<class>Codec/Encoder/Audio</class>
<description>High-quality free MP2 encoder</description>
<author>Sebastian Dröge &lt;sebastian.droege@collabora.co.uk&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string){ F32LE, S16LE }, layout=(string)interleaved, rate=(int){ 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)1; audio/x-raw, format=(string){ F32LE, S16LE }, layout=(string)interleaved, rate=(int){ 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)2, rate=(int){ 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ]</details>
</caps>
</pads>
</element>
</elements>
</plugin>

View file

@ -101,6 +101,12 @@ else
TAGLIB_DIR = TAGLIB_DIR =
endif endif
if USE_TWOLAME
TWOLAME_DIR = twolame
else
TWOLAME_DIR =
endif
if USE_VPX if USE_VPX
VPX_DIR=vpx VPX_DIR=vpx
else else
@ -132,6 +138,7 @@ SUBDIRS = \
$(SOUP_DIR) \ $(SOUP_DIR) \
$(SPEEX_DIR) \ $(SPEEX_DIR) \
$(TAGLIB_DIR) \ $(TAGLIB_DIR) \
$(TWOLAME_DIR) \
$(VPX_DIR) \ $(VPX_DIR) \
$(WAVPACK_DIR) $(WAVPACK_DIR)
@ -153,6 +160,7 @@ DIST_SUBDIRS = \
soup \ soup \
speex \ speex \
taglib \ taglib \
twolame \
vpx \ vpx \
wavpack wavpack

View file

@ -23,5 +23,6 @@ if cc.get_id() == 'msvc'
else else
subdir('taglib') subdir('taglib')
endif endif
subdir('twolame')
subdir('vpx') subdir('vpx')
subdir('wavpack') subdir('wavpack')

View file

@ -3,7 +3,7 @@ twolame_dep = dependency('twolame', version : '>= 0.3.10', required : false)
if twolame_dep.found() if twolame_dep.found()
twolame = library('gsttwolame', twolame = library('gsttwolame',
['gsttwolamemp2enc.c'], ['gsttwolamemp2enc.c'],
c_args : ugly_args, c_args : gst_plugins_good_args,
include_directories : [configinc, libsinc], include_directories : [configinc, libsinc],
dependencies : [gstaudio_dep, twolame_dep], dependencies : [gstaudio_dep, twolame_dep],
install : true, install : true,

View file

@ -7,6 +7,7 @@ ext/libpng/gstpngdec.c
ext/pulse/pulsesink.c ext/pulse/pulsesink.c
ext/shout2/gstshout2.c ext/shout2/gstshout2.c
ext/soup/gstsouphttpsrc.c ext/soup/gstsouphttpsrc.c
ext/twolame/gsttwolamemp2enc.c
gst/audioparsers/gstwavpackparse.c gst/audioparsers/gstwavpackparse.c
gst/avi/gstavidemux.c gst/avi/gstavidemux.c
gst/avi/gstavimux.c gst/avi/gstavimux.c