dtmf: move dtmf plugin from -bad to -good

https://bugzilla.gnome.org/show_bug.cgi?id=687416
This commit is contained in:
Tim-Philipp Müller 2013-03-09 01:18:30 +00:00
parent a4c5aa38ec
commit 694dbcc5a0
20 changed files with 349 additions and 61 deletions

View file

@ -13,6 +13,7 @@ GST_PLUGINS_GOOD_BUILT_SOURCES = \
gst/cutter/Android.mk \
gst/debugutils/Android.mk \
gst/deinterlace/Android.mk \
gst/dtmf/Android.mk \
gst/effectv/Android.mk \
gst/equalizer/Android.mk \
gst/flv/Android.mk \
@ -79,6 +80,7 @@ CONFIGURE_TARGETS += gst-plugins-good-configure
-include $(GST_PLUGINS_GOOD_TOP)/gst/cutter/Android.mk
-include $(GST_PLUGINS_GOOD_TOP)/gst/debugutils/Android.mk
-include $(GST_PLUGINS_GOOD_TOP)/gst/deinterlace/Android.mk
-include $(GST_PLUGINS_GOOD_TOP)/gst/dtmf/Android.mk
-include $(GST_PLUGINS_GOOD_TOP)/gst/effectv/Android.mk
-include $(GST_PLUGINS_GOOD_TOP)/gst/equalizer/Android.mk
-include $(GST_PLUGINS_GOOD_TOP)/gst/flv/Android.mk

View file

@ -317,6 +317,7 @@ AG_GST_CHECK_PLUGIN(avi)
AG_GST_CHECK_PLUGIN(cutter)
AG_GST_CHECK_PLUGIN(debugutils)
AG_GST_CHECK_PLUGIN(deinterlace)
AG_GST_CHECK_PLUGIN(dtmf)
AG_GST_CHECK_PLUGIN(effectv)
AG_GST_CHECK_PLUGIN(equalizer)
AG_GST_CHECK_PLUGIN(flv)
@ -1088,6 +1089,7 @@ gst/autodetect/Makefile
gst/avi/Makefile
gst/cutter/Makefile
gst/deinterlace/Makefile
gst/dtmf/Makefile
gst/debugutils/Makefile
gst/effectv/Makefile
gst/equalizer/Makefile

View file

@ -115,6 +115,9 @@ EXTRA_HFILES = \
$(top_srcdir)/gst/debugutils/gsttaginject.h \
$(top_srcdir)/gst/debugutils/progressreport.h \
$(top_srcdir)/gst/deinterlace/gstdeinterlace.h \
$(top_srcdir)/gst/dtmf/gstdtmfsrc.h \
$(top_srcdir)/gst/dtmf/gstrtpdtmfsrc.h \
$(top_srcdir)/gst/dtmf/gstrtpdtmfdepay.h \
$(top_srcdir)/gst/effectv/gstaging.h \
$(top_srcdir)/gst/effectv/gstdice.h \
$(top_srcdir)/gst/effectv/gstedge.h \

View file

@ -60,6 +60,7 @@
<xi:include href="xml/element-deinterleave.xml" />
<xi:include href="xml/element-dicetv.xml" />
<xi:include href="xml/element-directsoundsink.xml" />
<xi:include href="xml/element-dtmfsrc.xml" />
<xi:include href="xml/element-dv1394src.xml" />
<xi:include href="xml/element-dvdec.xml" />
<xi:include href="xml/element-dvdemux.xml" />
@ -133,6 +134,7 @@
<xi:include href="xml/element-rtspsrc.xml" />
<xi:include href="xml/element-rtpbin.xml" />
<xi:include href="xml/element-rtpdtmfmux.xml" />
<xi:include href="xml/element-rtpdtmfsrc.xml" />
<xi:include href="xml/element-rtpjitterbuffer.xml" />
<xi:include href="xml/element-rtpmux.xml" />
<xi:include href="xml/element-rtpptdemux.xml" />
@ -194,6 +196,7 @@
<xi:include href="xml/plugin-debug.xml" />
<xi:include href="xml/plugin-deinterlace.xml" />
<xi:include href="xml/plugin-directsound.xml" />
<xi:include href="xml/plugin-dtmf.xml" />
<xi:include href="xml/plugin-dv.xml" />
<xi:include href="xml/plugin-equalizer.xml" />
<xi:include href="xml/plugin-effectv.xml" />

View file

@ -603,6 +603,25 @@ GST_DSOUND_LOCK
GST_DSOUND_UNLOCK
</SECTION>
<SECTION>
<FILE>element-dtmfsrc</FILE>
<TITLE>dtmfsrc</TITLE>
GstDTMFSrc
<SUBSECTION Standard>
GstDTMFEventType
GstDTMFSrcEvent
GstDTMFSrcClass
GST_TYPE_DTMF_SRC
GST_DTMF_SRC
GST_DTMF_SRC_CAST
GST_DTMF_SRC_CLASS
GST_DTMF_SRC_GET_CLASS
GST_IS_DTMF_SRC
GST_IS_DTMF_SRC_CLASS
gst_dtmf_src_get_type
gst_dtmf_src_plugin_init
</SECTION>
<SECTION>
<FILE>element-dv1394src</FILE>
<TITLE>dv1394src</TITLE>
@ -1571,6 +1590,40 @@ GST_IS_RTP_DEC_CLASS
gst_rtp_dec_get_type
</SECTION>
<SECTION>
<FILE>element-rtpdtmfdepay</FILE>
<TITLE>rtpdtmfdepay</TITLE>
GstRtpDTMFDepay
<SUBSECTION Standard>
GstRtpDTMFDepayClass
GST_TYPE_RTP_DTMF_DEPAY
GST_IS_RTP_DTMF_DEPAY
GST_IS_RTP_DTMF_DEPAY_CLASS
GST_RTP_DTMF_DEPAY
GST_RTP_DTMF_DEPAY_CLASS
gst_rtp_dtmf_depay_plugin_init
</SECTION>
<SECTION>
<FILE>element-rtpdtmfsrc</FILE>
<TITLE>rtpdtmfsrc</TITLE>
GstRTPDTMFSrc
<SUBSECTION Standard>
GstRTPDTMFSrcClass
GST_TYPE_RTP_DTMF_SRC
GST_IS_RTP_DTMF_SRC
GST_IS_RTP_DTMF_SRC_CLASS
GST_RTP_DTMF_SRC
GST_RTP_DTMF_SRC_CAST
GST_RTP_DTMF_SRC_CLASS
GST_RTP_DTMF_SRC_GET_CLASS
gst_rtp_dtmf_src_get_type
gst_rtp_dtmf_src_plugin_init
GstRTPDTMFPayload
GstRTPDTMFSrcEvent
GstRTPDTMFEventType
</SECTION>
<SECTION>
<FILE>element-rtpj2kpay</FILE>
<TITLE>rtpj2kpay</TITLE>

View file

@ -964,7 +964,7 @@
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>message</NICK>
<BLURB>Post a level message for each passed interval.</BLURB>
<BLURB>Post a 'level' message for each passed interval (deprecated).</BLURB>
<DEFAULT>TRUE</DEFAULT>
</ARG>
@ -988,6 +988,16 @@
<DEFAULT>300000000</DEFAULT>
</ARG>
<ARG>
<NAME>GstLevel::post-messages</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Post Messages</NICK>
<BLURB>Whether to post a 'level' element message on the bus for each passed interval.</BLURB>
<DEFAULT>TRUE</DEFAULT>
</ARG>
<ARG>
<NAME>GstDiceTV::square-bits</NAME>
<TYPE>gint</TYPE>
@ -1114,7 +1124,7 @@
<RANGE><= 255</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Target Blue</NICK>
<BLURB>The Blue target.</BLURB>
<BLURB>The blue color value for custom RGB chroma keying.</BLURB>
<DEFAULT>0</DEFAULT>
</ARG>
@ -1124,7 +1134,7 @@
<RANGE><= 255</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Target Green</NICK>
<BLURB>The Green target.</BLURB>
<BLURB>The green color value for custom RGB chroma keying.</BLURB>
<DEFAULT>255</DEFAULT>
</ARG>
@ -1134,7 +1144,7 @@
<RANGE><= 255</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Target Red</NICK>
<BLURB>The Red target.</BLURB>
<BLURB>The red color value for custom RGB chroma keying.</BLURB>
<DEFAULT>0</DEFAULT>
</ARG>
@ -1153,7 +1163,7 @@
<TYPE>guint</TYPE>
<RANGE><= 128</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Sensitivity</NICK>
<NICK>White Sensitivity</NICK>
<BLURB>Sensitivity to bright colors.</BLURB>
<DEFAULT>100</DEFAULT>
</ARG>
@ -23517,3 +23527,114 @@
<BLURB>Minimum quantity of frames to send in one packet (-1 for maximum allowed by the mtu).</BLURB>
<DEFAULT>0</DEFAULT>
</ARG>
<ARG>
<NAME>GstRTPDTMFSrc::clock-rate</NAME>
<TYPE>guint</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>clockrate</NICK>
<BLURB>The clock-rate at which to generate the dtmf packets.</BLURB>
<DEFAULT>8000</DEFAULT>
</ARG>
<ARG>
<NAME>GstRTPDTMFSrc::packet-redundancy</NAME>
<TYPE>guint</TYPE>
<RANGE>[1,5]</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Packet Redundancy</NICK>
<BLURB>Number of packets to send to indicate start and stop dtmf events.</BLURB>
<DEFAULT>1</DEFAULT>
</ARG>
<ARG>
<NAME>GstRTPDTMFSrc::pt</NAME>
<TYPE>guint</TYPE>
<RANGE><= 128</RANGE>
<FLAGS>rw</FLAGS>
<NICK>payload type</NICK>
<BLURB>The payload type of the packets.</BLURB>
<DEFAULT>96</DEFAULT>
</ARG>
<ARG>
<NAME>GstRTPDTMFSrc::seqnum</NAME>
<TYPE>guint</TYPE>
<RANGE></RANGE>
<FLAGS>r</FLAGS>
<NICK>Sequence number</NICK>
<BLURB>The RTP sequence number of the last processed packet.</BLURB>
<DEFAULT>0</DEFAULT>
</ARG>
<ARG>
<NAME>GstRTPDTMFSrc::seqnum-offset</NAME>
<TYPE>gint</TYPE>
<RANGE>>= G_MAXULONG</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Sequence number Offset</NICK>
<BLURB>Offset to add to all outgoing seqnum (-1 = random).</BLURB>
<DEFAULT>-1</DEFAULT>
</ARG>
<ARG>
<NAME>GstRTPDTMFSrc::ssrc</NAME>
<TYPE>guint</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>SSRC</NICK>
<BLURB>The SSRC of the packets (-1 == random).</BLURB>
<DEFAULT>4294967295</DEFAULT>
</ARG>
<ARG>
<NAME>GstRTPDTMFSrc::timestamp</NAME>
<TYPE>guint</TYPE>
<RANGE></RANGE>
<FLAGS>r</FLAGS>
<NICK>Timestamp</NICK>
<BLURB>The RTP timestamp of the last processed packet.</BLURB>
<DEFAULT>0</DEFAULT>
</ARG>
<ARG>
<NAME>GstRTPDTMFSrc::timestamp-offset</NAME>
<TYPE>gint</TYPE>
<RANGE>>= G_MAXULONG</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Timestamp Offset</NICK>
<BLURB>Offset to add to all outgoing timestamps (-1 = random).</BLURB>
<DEFAULT>-1</DEFAULT>
</ARG>
<ARG>
<NAME>GstRtpDTMFDepay::max-duration</NAME>
<TYPE>guint</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Maximum duration</NICK>
<BLURB>The maxumimum duration (ms) of the outgoing soundpacket. (0 = no limit).</BLURB>
<DEFAULT>0</DEFAULT>
</ARG>
<ARG>
<NAME>GstRtpDTMFDepay::unit-time</NAME>
<TYPE>guint</TYPE>
<RANGE><= 1000</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Duration unittime</NICK>
<BLURB>The smallest unit (ms) the duration must be a multiple of (0 disables it).</BLURB>
<DEFAULT>0</DEFAULT>
</ARG>
<ARG>
<NAME>GstDTMFSrc::interval</NAME>
<TYPE>guint</TYPE>
<RANGE>[10,50]</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Interval between tone packets</NICK>
<BLURB>Interval in ms between two tone packets.</BLURB>
<DEFAULT>50</DEFAULT>
</ARG>

View file

@ -2,7 +2,7 @@ GObject
GInitiallyUnowned
GstObject
GstAllocator
GstDefaultAllocator
GstAllocatorSysmem
GstAudioRingBuffer
GstAudioSinkRingBuffer
GstAudioSrcRingBuffer
@ -60,6 +60,7 @@ GObject
GstGdkPixbufSink
GstV4l2Sink
GstBaseSrc
GstDTMFSrc
GstPushSrc
GstAudioBaseSrc
GstAudioSrc
@ -74,6 +75,7 @@ GObject
GstUDPSrc
GstV4l2Src
GstXImageSrc
GstRTPDTMFSrc
GstSplitFileSrc
GstBaseTransform
GstAudioFilter
@ -180,6 +182,7 @@ GObject
GstRtpAC3Depay
GstRtpAMRDepay
GstRtpCELTDepay
GstRtpDTMFDepay
GstRtpG722Depay
GstRtpG723Depay
GstRtpG726Depay

View file

@ -686,8 +686,6 @@ guint64 arg3
<FLAGS>l</FLAGS>
GstV4l2Src *gstv4l2src
gint arg1
guint arg2
guint arg3
guint arg4
GstCaps *arg2
</SIGNAL>

View file

@ -209,13 +209,13 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)1, layout=(string)interleaved; audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003</details>
<details>audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ], layout=(string)interleaved</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string){ S32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003</details>
<details>audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)2, layout=(string)interleaved</details>
</caps>
</pads>
</element>

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,64 @@
<plugin>
<name>dtmf</name>
<description>DTMF plugins</description>
<filename>../../gst/dtmf/.libs/libgstdtmf.so</filename>
<basename>libgstdtmf.so</basename>
<version>1.1.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>dtmfsrc</name>
<longname>DTMF tone generator</longname>
<class>Source/Audio</class>
<description>Generates DTMF tones</description>
<author>Youness Alaoui &lt;youness.alaoui@collabora.co.uk&gt;</author>
<pads>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)1</details>
</caps>
</pads>
</element>
<element>
<name>rtpdtmfdepay</name>
<longname>RTP DTMF packet depayloader</longname>
<class>Codec/Depayloader/Network</class>
<description>Generates DTMF Sound from telephone-event RTP packets</description>
<author>Youness Alaoui &lt;youness.alaoui@collabora.co.uk&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 0, 2147483647 ], encoding-name=(string)TELEPHONE-EVENT</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)1</details>
</caps>
</pads>
</element>
<element>
<name>rtpdtmfsrc</name>
<longname>RTP DTMF packet generator</longname>
<class>Source/Network</class>
<description>Generates RTP DTMF packets</description>
<author>Zeeshan Ali &lt;zeeshan.ali@nokia.com&gt;</author>
<pads>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 0, 2147483647 ], encoding-name=(string)TELEPHONE-EVENT</details>
</caps>
</pads>
</element>
</elements>
</plugin>

View file

@ -20,7 +20,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>image/jpeg, width=(int)[ 1, 65535 ], height=(int)[ 1, 65535 ], sof-marker=(int){ 0, 1, 2, 5, 6, 7, 9, 10, 13, 14 }</details>
<details>image/jpeg, width=(int)[ 1, 65535 ], height=(int)[ 1, 65535 ]</details>
</caps>
<caps>
<name>src</name>
@ -47,7 +47,7 @@
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>image/jpeg, width=(int)[ 16, 65535 ], height=(int)[ 16, 65535 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
<details>image/jpeg, width=(int)[ 16, 65535 ], height=(int)[ 16, 65535 ], framerate=(fraction)[ 0/1, 2147483647/1 ], sof-marker=(int){ 0, 1, 2, 9 }</details>
</caps>
</pads>
</element>

View file

@ -20,13 +20,13 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string){ S8, S16LE, S32LEF32LE, F64LE }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</details>
<details>audio/x-raw, format=(string){ S8, S16LE, S32LE, F32LE, F64LE }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string){ S8, S16LE, S32LEF32LE, F64LE }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</details>
<details>audio/x-raw, format=(string){ S8, S16LE, S32LE, F32LE, F64LE }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</details>
</caps>
</pads>
</element>

View file

@ -41,7 +41,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)L16; application/x-rtp, media=(string)audio, payload=(int){ 10, 11 }, clock-rate=(int)[ 1, 2147483647 ]</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)L16; application/x-rtp, media=(string)audio, payload=(int){ 10, 11 }, clock-rate=(int)[ 1, 2147483647 ]</details>
</caps>
<caps>
<name>src</name>
@ -83,7 +83,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int){ 32000, 44100, 48000 }, encoding-name=(string)AC3</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int){ 32000, 44100, 48000 }, encoding-name=(string)AC3</details>
</caps>
<caps>
<name>src</name>
@ -125,7 +125,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)AMR, encoding-params=(string)1, octet-align=(string)1, crc=(string){ 0, 1 }, robust-sorting=(string)0, interleaving=(string)0; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)16000, encoding-name=(string)AMR-WB, encoding-params=(string)1, octet-align=(string)1, crc=(string){ 0, 1 }, robust-sorting=(string)0, interleaving=(string)0</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)AMR, encoding-params=(string)1, octet-align=(string)1; application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)AMR-WB, encoding-params=(string)1, octet-align=(string)1</details>
</caps>
<caps>
<name>src</name>
@ -167,7 +167,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)BV16; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)16000, encoding-name=(string)BV32</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)BV16; application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)BV32</details>
</caps>
<caps>
<name>src</name>
@ -209,7 +209,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 32000, 48000 ], encoding-name=(string)CELT</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 32000, 48000 ], encoding-name=(string)CELT</details>
</caps>
<caps>
<name>src</name>
@ -251,7 +251,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string){ video, audio }, payload=(int)[ 96, 127 ], encoding-name=(string)DV, clock-rate=(int)90000, encode=(string){ SD-VCR/525-60, SD-VCR/625-50, HD-VCR/1125-60, HD-VCR/1250-50, SDL-VCR/525-60, SDL-VCR/625-50, 306M/525-60, 306M/625-50, 314M-25/525-60, 314M-25/625-50, 314M-50/525-60, 314M-50/625-50 }</details>
<details>application/x-rtp, media=(string){ video, audio }, encoding-name=(string)DV, clock-rate=(int)90000, encode=(string){ SD-VCR/525-60, SD-VCR/625-50, HD-VCR/1125-60, HD-VCR/1250-50, SDL-VCR/525-60, SDL-VCR/625-50, 306M/525-60, 306M/625-50, 314M-25/525-60, 314M-25/625-50, 314M-50/525-60, 314M-50/625-50 }</details>
</caps>
<caps>
<name>src</name>
@ -293,7 +293,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)G722; application/x-rtp, media=(string)audio, payload=(int)9, clock-rate=(int)[ 1, 2147483647 ]</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)G722; application/x-rtp, media=(string)audio, payload=(int)9, clock-rate=(int)[ 1, 2147483647 ]</details>
</caps>
<caps>
<name>src</name>
@ -335,7 +335,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)G723; application/x-rtp, media=(string)audio, payload=(int)4, clock-rate=(int)8000</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)G723; application/x-rtp, media=(string)audio, payload=(int)4, clock-rate=(int)8000</details>
</caps>
<caps>
<name>src</name>
@ -377,7 +377,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], encoding-name=(string){ G726, G726-16, G726-24, G726-32, G726-40, AAL2-G726-16, AAL2-G726-24, AAL2-G726-32, AAL2-G726-40 }, clock-rate=(int)8000</details>
<details>application/x-rtp, media=(string)audio, encoding-name=(string){ G726, G726-16, G726-24, G726-32, G726-40, AAL2-G726-16, AAL2-G726-24, AAL2-G726-32, AAL2-G726-40 }, clock-rate=(int)8000</details>
</caps>
<caps>
<name>src</name>
@ -419,7 +419,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)G729; application/x-rtp, media=(string)audio, payload=(int)18, clock-rate=(int)8000</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)G729; application/x-rtp, media=(string)audio, payload=(int)18, clock-rate=(int)8000</details>
</caps>
<caps>
<name>src</name>
@ -461,7 +461,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)GSM; application/x-rtp, media=(string)audio, payload=(int)3, clock-rate=(int)8000</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)GSM; application/x-rtp, media=(string)audio, payload=(int)3, clock-rate=(int)8000</details>
</caps>
<caps>
<name>src</name>
@ -503,7 +503,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)application, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)X-GST</details>
<details>application/x-rtp, media=(string)application, clock-rate=(int)90000, encoding-name=(string)X-GST</details>
</caps>
<caps>
<name>src</name>
@ -545,7 +545,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)video, payload=(int)34, clock-rate=(int)90000, encoding-name=(string)H263; application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)H263</details>
<details>application/x-rtp, media=(string)video, payload=(int)34, clock-rate=(int)90000; application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H263</details>
</caps>
<caps>
<name>src</name>
@ -587,7 +587,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)H263-1998; application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)H263-2000</details>
<details>application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)H263-1998; application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)H263-2000</details>
</caps>
<caps>
<name>src</name>
@ -629,7 +629,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)H264</details>
<details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264</details>
</caps>
<caps>
<name>src</name>
@ -671,7 +671,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)ILBC, mode=(string){ 20, 30 }</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)ILBC, mode=(string){ 20, 30 }</details>
</caps>
<caps>
<name>src</name>
@ -713,7 +713,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)JPEG2000</details>
<details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG2000</details>
</caps>
<caps>
<name>src</name>
@ -755,7 +755,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)JPEG; application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000</details>
<details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG; application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000</details>
</caps>
<caps>
<name>src</name>
@ -797,7 +797,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)other, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP1S; application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP1S</details>
<details>application/x-rtp, media=(string)other, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP1S; application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP1S</details>
</caps>
<caps>
<name>src</name>
@ -818,7 +818,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP2T; application/x-rtp, media=(string)video, payload=(int)33, clock-rate=(int)[ 1, 2147483647 ]</details>
<details>application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP2T; application/x-rtp, media=(string)video, payload=(int)33, clock-rate=(int)[ 1, 2147483647 ]</details>
</caps>
<caps>
<name>src</name>
@ -860,7 +860,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4A-LATM</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4A-LATM</details>
</caps>
<caps>
<name>src</name>
@ -902,7 +902,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string){ video, audio, application }, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MPEG4-GENERIC, streamtype=(string){ 4, 5 }, mode=(string){ generic, CELP-cbr, CELP-vbr, AAC-lbr, AAC-hbr }</details>
<details>application/x-rtp, media=(string){ video, audio, application }, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MPEG4-GENERIC, mode=(string){ generic, CELP-cbr, CELP-vbr, AAC-lbr, AAC-hbr }</details>
</caps>
<caps>
<name>src</name>
@ -944,7 +944,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4V-ES</details>
<details>application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4V-ES</details>
</caps>
<caps>
<name>src</name>
@ -986,7 +986,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)MPA; application/x-rtp, media=(string)audio, payload=(int)14, clock-rate=(int)90000</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)90000, encoding-name=(string)MPA; application/x-rtp, media=(string)audio, payload=(int)14, clock-rate=(int)90000</details>
</caps>
<caps>
<name>src</name>
@ -1028,7 +1028,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)MPA-ROBUST; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string){ X-MP3-DRAFT-00, X-MP3-DRAFT-01, X-MP3-DRAFT-02, X-MP3-DRAFT-03, X-MP3-DRAFT-04, X-MP3-DRAFT-05, X-MP3-DRAFT-06 }</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)90000, encoding-name=(string)MPA-ROBUST; application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string){ X-MP3-DRAFT-00, X-MP3-DRAFT-01, X-MP3-DRAFT-02, X-MP3-DRAFT-03, X-MP3-DRAFT-04, X-MP3-DRAFT-05, X-MP3-DRAFT-06 }</details>
</caps>
<caps>
<name>src</name>
@ -1049,7 +1049,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)MPV; application/x-rtp, media=(string)video, payload=(int)32, clock-rate=(int)90000</details>
<details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MPV; application/x-rtp, media=(string)video, payload=(int)32, clock-rate=(int)90000</details>
</caps>
<caps>
<name>src</name>
@ -1091,7 +1091,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)8, clock-rate=(int)8000, encoding-name=(string)PCMA; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)PCMA</details>
<details>application/x-rtp, media=(string)audio, payload=(int)8, clock-rate=(int)8000; application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)PCMA</details>
</caps>
<caps>
<name>src</name>
@ -1133,7 +1133,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)0, encoding-name=(string)PCMU, clock-rate=(int)8000; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], encoding-name=(string)PCMU, clock-rate=(int)[ 1, 2147483647 ]</details>
<details>application/x-rtp, media=(string)audio, payload=(int)0, clock-rate=(int)8000; application/x-rtp, media=(string)audio, encoding-name=(string)PCMU, clock-rate=(int)[ 1, 2147483647 ]</details>
</caps>
<caps>
<name>src</name>
@ -1175,7 +1175,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)QCELP; application/x-rtp, media=(string)audio, payload=(int)12, clock-rate=(int)8000</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)QCELP; application/x-rtp, media=(string)audio, payload=(int)12, clock-rate=(int)8000</details>
</caps>
<caps>
<name>src</name>
@ -1196,7 +1196,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], encoding-name=(string)X-QDM</details>
<details>application/x-rtp, media=(string)audio, encoding-name=(string)X-QDM</details>
</caps>
<caps>
<name>src</name>
@ -1217,7 +1217,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>audio/x-sbc, rate=(int){ 16000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ], mode=(string){ mono, dual, stereo, joint }, blocks=(int){ 4, 8, 12, 16 }, subbands=(int){ 4, 8 }, allocation=(string){ snr, loudness }, bitpool=(int)[ 2, 64 ]</details>
<details>audio/x-sbc, rate=(int){ 16000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ], channel-mode=(string){ mono, dual, stereo, joint }, blocks=(int){ 4, 8, 12, 16 }, subbands=(int){ 4, 8 }, allocation-method=(string){ snr, loudness }, bitpool=(int)[ 2, 64 ]</details>
</caps>
<caps>
<name>src</name>
@ -1238,7 +1238,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)16000, encoding-name=(string)SIREN, dct-length=(int)320</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)SIREN, dct-length=(int)320</details>
</caps>
<caps>
<name>src</name>
@ -1280,7 +1280,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 6000, 48000 ], encoding-name=(string)SPEEX, encoding-params=(string)1</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 6000, 48000 ], encoding-name=(string)SPEEX, encoding-params=(string)1</details>
</caps>
<caps>
<name>src</name>
@ -1322,7 +1322,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string){ X-SV3V-ES, X-SORENSON-VIDEO, X-SORENSONVIDEO, X-SorensonVideo }</details>
<details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string){ X-SV3V-ES, X-SORENSON-VIDEO, X-SORENSONVIDEO, X-SorensonVideo }</details>
</caps>
<caps>
<name>src</name>
@ -1343,7 +1343,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)THEORA</details>
<details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)THEORA</details>
</caps>
<caps>
<name>src</name>
@ -1385,7 +1385,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)VORBIS</details>
<details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)VORBIS</details>
</caps>
<caps>
<name>src</name>
@ -1427,7 +1427,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, payload=(int)[ 96, 127 ], clock-rate=(int)90000, media=(string)video, encoding-name=(string)VP8-DRAFT-IETF-01</details>
<details>application/x-rtp, clock-rate=(int)90000, media=(string)video, encoding-name=(string)VP8-DRAFT-IETF-01</details>
</caps>
<caps>
<name>src</name>
@ -1469,7 +1469,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)RAW</details>
<details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)RAW</details>
</caps>
<caps>
<name>src</name>

View file

@ -20,7 +20,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/ogg; audio/ogg; video/ogg; audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ]; video/webm; audio/webm</details>
<details>application/ogg; audio/ogg; video/ogg; audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ]</details>
</caps>
</pads>
</element>

View file

@ -129,6 +129,7 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/gstreamer-%{majorminor}/libgstshapewipe.so
%{_libdir}/gstreamer-%{majorminor}/libgstvideofilter.so
%{_libdir}/gstreamer-%{majorminor}/libgstaudioparsers.so
%{_libdir}/gstreamer-%{majorminor}/libgstdtmf.so
# sys plugins
@USE_GST_V4L2_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstvideo4linux2.so

View file

@ -1,3 +1,20 @@
/* GStreamer DTMF plugin
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
@ -7,7 +24,6 @@
#include "gstrtpdtmfsrc.h"
#include "gstrtpdtmfdepay.h"
static gboolean
plugin_init (GstPlugin * plugin)
{

View file

@ -1,7 +1,26 @@
/* GStreamer DTMF plugin
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifndef __GST_RTP_DTMF_COMMON_H__
#define __GST_RTP_DTMF_COMMON_H__
#include <gst/math-compat.h>
#define MIN_INTER_DIGIT_INTERVAL 100 /* ms */
#define MIN_PULSE_DURATION 250 /* ms */
@ -13,10 +32,6 @@
#define MIN_EVENT_STRING "0"
#define MAX_EVENT_STRING "15"
#ifndef M_PI
#define M_PI 3.14159265358979323846 /* pi */
#endif
typedef struct
{
unsigned event:8; /* Current DTMF event */

View file

@ -121,6 +121,7 @@ check_PROGRAMS = \
elements/capssetter \
elements/deinterlace \
elements/deinterleave \
elements/dtmf \
elements/equalizer \
elements/flacparse \
elements/flvdemux \
@ -253,6 +254,11 @@ elements_alphacolor_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
elements_deinterlace_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
elements_deinterlace_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(LDADD)
elements_dtmf_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
$(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
elements_dtmf_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-@GST_API_VERSION@ \
$(GST_BASE_LIBS) $(GST_LIBS) $(LDADD)
elements_deinterleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
elements_deinterleave_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD)
elements_interleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)

View file

@ -22,6 +22,7 @@ avisubtitle
capssetter
deinterlace
deinterleave
dtmf
equalizer
gdkpixbufsink
flacparse