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)
URL: http://taglib.github.io/
Package: twolame
Version: >= 0.3.13
DebianPackage: libtwolame-dev
Plugins: twolame (twolamemp2enc)
URL: http://www.twolame.org
Package: zlib
DebianPackage: zlib1g-dev
Plugins: isomp4 (qtdemux), matroska (matroskademux)

View file

@ -810,6 +810,18 @@ AG_GST_CHECK_FEATURE(TAGLIB, [taglib tagging library], taglib, [
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 ***
translit(dnm, m, l) AM_CONDITIONAL(USE_VPX, 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_SPEEX, false)
AM_CONDITIONAL(USE_TAGLIB, false)
AM_CONDITIONAL(USE_TWOLAME, false)
AM_CONDITIONAL(USE_VPX, false)
AM_CONDITIONAL(USE_WAVEFORM, false)
AM_CONDITIONAL(USE_WAVPACK, false)
@ -1052,6 +1065,7 @@ ext/shout2/Makefile
ext/soup/Makefile
ext/speex/Makefile
ext/taglib/Makefile
ext/twolame/Makefile
ext/vpx/Makefile
ext/wavpack/Makefile
sys/Makefile

View file

@ -74,6 +74,7 @@ EXTRA_HFILES = \
$(top_srcdir)/ext/soup/gstsouphttpsrc.h \
$(top_srcdir)/ext/taglib/gstapev2mux.h \
$(top_srcdir)/ext/taglib/gstid3v2mux.h \
$(top_srcdir)/ext/twolame/gsttwolamemp2enc.h \
$(top_srcdir)/ext/pulse/pulsesink.h \
$(top_srcdir)/ext/pulse/pulsesrc.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-taginject.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-udpsrc.xml" />
<xi:include href="xml/element-v4l2radio.xml" />
@ -353,6 +354,7 @@
<xi:include href="xml/plugin-spectrum.xml" />
<xi:include href="xml/plugin-speex.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-video4linux2.xml" />
<xi:include href="xml/plugin-videobox.xml" />

View file

@ -3874,6 +3874,20 @@ GST_TYPE_TEST
gst_test_get_type
</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>
<FILE>element-udpsink</FILE>
<TITLE>udpsink</TITLE>

View file

@ -24348,3 +24348,153 @@
<DEFAULT>Quality</DEFAULT>
</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
GstMuLawEnc
GstSpeexEnc
GstTwoLame
GstWavpackEnc
GstAudioVisualizer
GstGoom

View file

@ -88,6 +88,7 @@ GstSwitchSink GstChildProxy
GstSwitchSrc GstChildProxy
GstTagLibMux GstTagSetter
GstTagMux GstTagSetter
GstTwoLame GstPreset
GstUDPSink GstURIHandler
GstUDPSrc GstURIHandler
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 =
endif
if USE_TWOLAME
TWOLAME_DIR = twolame
else
TWOLAME_DIR =
endif
if USE_VPX
VPX_DIR=vpx
else
@ -132,6 +138,7 @@ SUBDIRS = \
$(SOUP_DIR) \
$(SPEEX_DIR) \
$(TAGLIB_DIR) \
$(TWOLAME_DIR) \
$(VPX_DIR) \
$(WAVPACK_DIR)
@ -153,6 +160,7 @@ DIST_SUBDIRS = \
soup \
speex \
taglib \
twolame \
vpx \
wavpack

View file

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

View file

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

View file

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