Question on decoder creation for L16 to LPCM

341 views
Skip to first unread message

J.W.F. Thirion

unread,
Nov 23, 2009, 6:26:26 AM11/23/09
to UniMRCP
Dear Arsen,

I tried running the unimrcpclient example program with the codecs
parameter set to the following in unimrcpclient.xml:

<param name="codecs" value="L16/96/8000 PCMU PCMA PCMU/97/16000
telephone-event/101/8000"/>

In the unimrcp logs, I get the following statement:

2009-11-23 13:21:42:397074 [INFO] Source->[L16/8000/1]->Decoder->
[LPCM/8000/1]->Bridge->[LPCM/8000/1]->Sink

Why would it say it transcodes? Is this only going to fall "through"
during the decoding, or did I miss something here? I would have
throught that it would see L16 as being LPCM and not create a decoder
before the bridge.

If you could shed some light on this for me, I'd really appreciate it.

Kind regards,
Derik Thirion

2009-11-23 13:21:40:008801 [NOTICE] UniMRCP Client [0.8.0]
2009-11-23 13:21:40:008963 [INFO] APR [1.3.8]
2009-11-23 13:21:40:009022 [NOTICE] Create MRCP Client
2009-11-23 13:21:40:009124 [NOTICE] Open Config File [../conf/
unimrcpclient.xml]
2009-11-23 13:21:40:045027 [NOTICE] Register Resource [speechsynth]
2009-11-23 13:21:40:045052 [NOTICE] Register Resource [speechrecog]
2009-11-23 13:21:40:045061 [NOTICE] Register Resource [recorder]
2009-11-23 13:21:40:045074 [INFO] Register Resource Factory
2009-11-23 13:21:40:045100 [NOTICE] Create SofiaSIP Agent
[1.12.10devel] 192.168.1.2:5090 -> 192.168.1.3:5060 udp
2009-11-23 13:21:40:045109 [INFO] Register Signaling Agent [SIP-
Agent-1]
2009-11-23 13:21:40:045158 [NOTICE] Create UniRTSP Agent
192.168.1.3:4900 [100]
2009-11-23 13:21:40:045169 [INFO] Register Signaling Agent [RTSP-
Agent-1]
2009-11-23 13:21:40:045182 [NOTICE] Create TCP/MRCPv2 Connection Agent
[100]
2009-11-23 13:21:40:045191 [INFO] Register Connection Agent [MRCPv2-
Agent-1]
2009-11-23 13:21:40:045216 [INFO] Register Codec [PCMU]
2009-11-23 13:21:40:045228 [INFO] Register Codec [PCMA]
2009-11-23 13:21:40:045233 [INFO] Register Codec [L16]
2009-11-23 13:21:40:045241 [NOTICE] Create Media Processing Engine
2009-11-23 13:21:40:045259 [INFO] Register Media Engine [Media-
Engine-1]
2009-11-23 13:21:40:045288 [NOTICE] Create RTP Termination Factory
192.168.1.2:[4000,5000]
2009-11-23 13:21:40:045295 [INFO] Register RTP Termination Factory
[RTP-Factory-1]
2009-11-23 13:21:40:045302 [INFO] Loading Profile signaling-agent
[SIP-Agent-1]
2009-11-23 13:21:40:045310 [INFO] Loading Profile connection-agent
[MRCPv2-Agent-1]
2009-11-23 13:21:40:045318 [INFO] Loading Profile media-engine
[Media-Engine-1]
2009-11-23 13:21:40:045325 [INFO] Loading Profile rtp-factory [RTP-
Factory-1]
2009-11-23 13:21:40:045331 [NOTICE] Create Profile [MRCPv2-Default]
2009-11-23 13:21:40:045337 [INFO] Register Profile [MRCPv2-Default]
2009-11-23 13:21:40:045343 [INFO] Loading Profile signaling-agent
[RTSP-Agent-1]
2009-11-23 13:21:40:045353 [INFO] Loading Profile media-engine
[Media-Engine-1]
2009-11-23 13:21:40:045359 [INFO] Loading Profile rtp-factory [RTP-
Factory-1]
2009-11-23 13:21:40:045389 [NOTICE] Create Profile [MRCPv1-Default]
2009-11-23 13:21:40:045397 [INFO] Register Profile [MRCPv1-Default]
2009-11-23 13:21:40:045409 [NOTICE] Create Application
2009-11-23 13:21:40:045415 [INFO] Register Application [synth]
2009-11-23 13:21:40:045420 [NOTICE] Create Application
2009-11-23 13:21:40:045425 [INFO] Register Application [recog]
2009-11-23 13:21:40:045436 [NOTICE] Create Application
2009-11-23 13:21:40:045442 [INFO] Register Application [bypass]
2009-11-23 13:21:40:045448 [NOTICE] Create Application
2009-11-23 13:21:40:045452 [INFO] Register Application [discover]
2009-11-23 13:21:40:045477 [INFO] Start Framework Task
2009-11-23 13:21:40:045536 [INFO] Start MRCP Client
>2009-11-23 13:21:40:045602 [NOTICE] Run Demo Framework
2009-11-23 13:21:40:045613 [INFO] Start SofiaSIP Agent
2009-11-23 13:21:40:045934 [INFO] Start UniRTSP Agent
2009-11-23 13:21:40:046012 [INFO] Start TCP/MRCPv2 Connection Agent
2009-11-23 13:21:40:046085 [INFO] Start Media Processing Engine
2009-11-23 13:21:40:048481 [NOTICE] MRCP Client Started
2009-11-23 13:21:40:048612 [INFO] Receive SIP Event
[nua_r_set_params] Status 200 OK
run synth
>2009-11-23 13:21:42:301321 [NOTICE] Run Demo Application Scenario [synth]
2009-11-23 13:21:42:301360 [NOTICE] Create MRCP Handle 0x9b301e0
[MRCPv2-Default]
2009-11-23 13:21:42:301379 [INFO] Create Channel 0x9b301e0 <new>
2009-11-23 13:21:42:301397 [INFO] Receive App Request 0x9b301e0
<new> [2]
2009-11-23 13:21:42:301479 [INFO] Add MRCP Handle 0x9b301e0
2009-11-23 13:21:42:301515 [NOTICE] Add Control Channel 0x9b301e0
<new@speechsynth>
2009-11-23 13:21:42:307097 [INFO] Send Offer 0x9b301e0 <new> [c:1 a:
1 v:0]
2009-11-23 13:21:42:307132 [INFO] Local SDP 0x9b301e0 <new>
v=0
o=UniMRCPClient 0 0 IN IP4 192.168.1.2
s=-
c=IN IP4 192.168.1.2
t=0 0
m=application 9 TCP/MRCPv2 1
a=setup:active
a=connection:new
a=resource:speechsynth
a=cmid:1
m=audio 4000 RTP/AVP 96 0 8 97 101
a=rtpmap:96 L16/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:97 PCMU/16000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=recvonly
a=mid:1

2009-11-23 13:21:42:308063 [INFO] Receive SIP Event [nua_i_state]
Status 0 INVITE sent
2009-11-23 13:21:42:308123 [NOTICE] SIP Call State 0x9b301e0 [calling]
2009-11-23 13:21:42:390890 [INFO] Receive SIP Event [nua_r_invite]
Status 200 OK
2009-11-23 13:21:42:391076 [INFO] Receive SIP Event [nua_i_state]
Status 200 OK
2009-11-23 13:21:42:391126 [NOTICE] SIP Call State 0x9b301e0 [ready]
2009-11-23 13:21:42:391173 [INFO] Remote SDP 0x9b301e0 <new>
v=0
o=- 1258975279 1258975279 IN IP4 192.168.1.3
s=MRCP session
c=IN IP4 192.168.1.3
t=0 0
m=application 6075 TCP/MRCPv2 1
a=channel:318@speechsynth
a=cmid:1
a=connection:new
a=setup:passive
m=audio 7892 RTP/AVP 96 0 8 101
a=rtpmap:96 l16/8000
a=rtpmap:0 pcmu/8000
a=rtpmap:8 pcma/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendonly
a=mid:1

2009-11-23 13:21:42:391323 [INFO] Receive Answer 0x9b301e0 <new> [c:
1 a:1 v:0]
2009-11-23 13:21:42:391324 [INFO] Receive SIP Event [nua_i_active]
Status 200 Call active
2009-11-23 13:21:42:391923 [NOTICE] Established TCP/MRCPv2 Connection
192.168.1.2:42171 <-> 192.168.1.3:6075
2009-11-23 13:21:42:391983 [INFO] Add Control Channel
<318@speechsynth> 192.168.1.2:42171 <-> 192.168.1.3:6075 [1]
2009-11-23 13:21:42:397015 [INFO] Enable RTP Session
192.168.1.2:4000
2009-11-23 13:21:42:397062 [INFO] Open RTP Receiver 192.168.1.2:4000
<- 192.168.1.3:7892 playout [50 ms]
2009-11-23 13:21:42:397074 [INFO] Source->[L16/8000/1]->Decoder->
[LPCM/8000/1]->Bridge->[LPCM/8000/1]->Sink

Arsen Chaloyan

unread,
Nov 23, 2009, 9:05:52 AM11/23/09
to uni...@googlegroups.com
Hi Derik,

L16 as well as PCMU and PCMA are RFC3551 defined codecs, which are
transmitted in network byte order.
LPCM is linear PCM defined for internal use. LPCM is in host order.

A decoder would be required to transform encoded data from L16, PCMU
or PCMA to LPCM.
In case of L16 decoder does nothing, but swaps bytes from network order.

Hope it's clear.
--
Arsen Chaloyan
The author of UniMRCP
http://www.unimrcp.org

J.W.F. Thirion

unread,
Nov 23, 2009, 9:44:57 AM11/23/09
to UniMRCP
Thank you! Makes sense now.
Reply all
Reply to author
Forward
0 new messages