summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--REQUIREMENTS6
-rw-r--r--configure.ac14
-rw-r--r--docs/plugins/Makefile.am1
-rw-r--r--docs/plugins/gst-plugins-good-plugins-docs.sgml2
-rw-r--r--docs/plugins/gst-plugins-good-plugins-sections.txt14
-rw-r--r--docs/plugins/gst-plugins-good-plugins.args150
-rw-r--r--docs/plugins/gst-plugins-good-plugins.hierarchy1
-rw-r--r--docs/plugins/gst-plugins-good-plugins.interfaces1
-rw-r--r--docs/plugins/inspect/plugin-twolame.xml34
-rw-r--r--ext/Makefile.am8
-rw-r--r--ext/meson.build1
-rw-r--r--ext/twolame/meson.build2
-rw-r--r--po/POTFILES.in1
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 &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> \ 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