diff options
-rw-r--r-- | REQUIREMENTS | 6 | ||||
-rw-r--r-- | configure.ac | 14 | ||||
-rw-r--r-- | docs/plugins/Makefile.am | 1 | ||||
-rw-r--r-- | docs/plugins/gst-plugins-good-plugins-docs.sgml | 2 | ||||
-rw-r--r-- | docs/plugins/gst-plugins-good-plugins-sections.txt | 14 | ||||
-rw-r--r-- | docs/plugins/gst-plugins-good-plugins.args | 150 | ||||
-rw-r--r-- | docs/plugins/gst-plugins-good-plugins.hierarchy | 1 | ||||
-rw-r--r-- | docs/plugins/gst-plugins-good-plugins.interfaces | 1 | ||||
-rw-r--r-- | docs/plugins/inspect/plugin-twolame.xml | 34 | ||||
-rw-r--r-- | ext/Makefile.am | 8 | ||||
-rw-r--r-- | ext/meson.build | 1 | ||||
-rw-r--r-- | ext/twolame/meson.build | 2 | ||||
-rw-r--r-- | po/POTFILES.in | 1 |
13 files changed, 234 insertions, 1 deletions
diff --git a/REQUIREMENTS b/REQUIREMENTS index 0c5accd53..140e8245c 100644 --- a/REQUIREMENTS +++ b/REQUIREMENTS @@ -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) diff --git a/configure.ac b/configure.ac index ea1c91c13..3aaa27d51 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am index ae34a1ce1..942a0bd4d 100644 --- a/docs/plugins/Makefile.am +++ b/docs/plugins/Makefile.am @@ -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 \ diff --git a/docs/plugins/gst-plugins-good-plugins-docs.sgml b/docs/plugins/gst-plugins-good-plugins-docs.sgml index 2ba9612ea..d1371c88f 100644 --- a/docs/plugins/gst-plugins-good-plugins-docs.sgml +++ b/docs/plugins/gst-plugins-good-plugins-docs.sgml @@ -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" /> diff --git a/docs/plugins/gst-plugins-good-plugins-sections.txt b/docs/plugins/gst-plugins-good-plugins-sections.txt index 506f63a0e..880f3eb9e 100644 --- a/docs/plugins/gst-plugins-good-plugins-sections.txt +++ b/docs/plugins/gst-plugins-good-plugins-sections.txt @@ -3875,6 +3875,20 @@ 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> GstUDPSink diff --git a/docs/plugins/gst-plugins-good-plugins.args b/docs/plugins/gst-plugins-good-plugins.args index 4a6b3c6bd..33910b233 100644 --- a/docs/plugins/gst-plugins-good-plugins.args +++ b/docs/plugins/gst-plugins-good-plugins.args @@ -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> + diff --git a/docs/plugins/gst-plugins-good-plugins.hierarchy b/docs/plugins/gst-plugins-good-plugins.hierarchy index 6e101cbf2..7e17ed3aa 100644 --- a/docs/plugins/gst-plugins-good-plugins.hierarchy +++ b/docs/plugins/gst-plugins-good-plugins.hierarchy @@ -36,6 +36,7 @@ GObject GstLameMP3Enc GstMuLawEnc GstSpeexEnc + GstTwoLame GstWavpackEnc GstAudioVisualizer GstGoom diff --git a/docs/plugins/gst-plugins-good-plugins.interfaces b/docs/plugins/gst-plugins-good-plugins.interfaces index 2025f2b4a..1c6eca527 100644 --- a/docs/plugins/gst-plugins-good-plugins.interfaces +++ b/docs/plugins/gst-plugins-good-plugins.interfaces @@ -88,6 +88,7 @@ GstSwitchSink GstChildProxy GstSwitchSrc GstChildProxy GstTagLibMux GstTagSetter GstTagMux GstTagSetter +GstTwoLame GstPreset GstUDPSink GstURIHandler GstUDPSrc GstURIHandler GstV4l2Radio GstURIHandler GstImplementsInterface GstTuner GstPropertyProbe diff --git a/docs/plugins/inspect/plugin-twolame.xml b/docs/plugins/inspect/plugin-twolame.xml new file mode 100644 index 000000000..5f0a9bdb6 --- /dev/null +++ b/docs/plugins/inspect/plugin-twolame.xml @@ -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 <sebastian.droege@collabora.co.uk></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>
\ No newline at end of file diff --git a/ext/Makefile.am b/ext/Makefile.am index fee653f55..7d3490205 100644 --- a/ext/Makefile.am +++ b/ext/Makefile.am @@ -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 diff --git a/ext/meson.build b/ext/meson.build index 3bc8c8212..2758877a5 100644 --- a/ext/meson.build +++ b/ext/meson.build @@ -23,5 +23,6 @@ if cc.get_id() == 'msvc' else subdir('taglib') endif +subdir('twolame') subdir('vpx') subdir('wavpack') diff --git a/ext/twolame/meson.build b/ext/twolame/meson.build index 029a00eb4..cabab63ad 100644 --- a/ext/twolame/meson.build +++ b/ext/twolame/meson.build @@ -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, diff --git a/po/POTFILES.in b/po/POTFILES.in index 895c7fe0b..d99dfde4e 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -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 |