RTPStream()->setSendOnly(true) is good solution.
Stefan, thank you.

On 19.05.2010 15:24, Stefan Sayer wrote:
Hi,


Самусенко Андрей wrote:
I want to receive dtmfs.
2833/4733 RTP packets i guess (in-band is more complicated, you need to support the codec etc).

Where i can set the buffering?
if you don't set anything, fifo buffering is activated.


Index: core/AmRtpAudio.cpp
===================================================================
--- core/AmRtpAudio.cpp (revision 1772)
+++ core/AmRtpAudio.cpp (working copy)
@@ -34,7 +34,7 @@
 AmRtpAudio::AmRtpAudio(AmSession* _s)
   : AmRtpStream(_s), AmAudio(0),
     /*last_ts_i(false),*/ use_default_plc(true),
-    send_only(false), playout_buffer(new AmPlayoutBuffer(this)),
+   send_only(false), playout_buffer(new AmAdaptivePlayout(this)),
     last_check(0),last_check_i(false),send_int(false)
has no effect.
that would set adaptive playout - you definitely don't want to do that (btw, you can set playout buffer with RTPStream()->setPlayoutType()).

I think that there is something wrong with the packet length and the timestamp in the playout buffer, which is not surprising, because the encoded frames are shorter than PCM... so, looking at the code, I think the best is to do RTPStream()->setSendOnly(true), this way the DTMF is still received, but the received packets are not processed further.

If you wanted to record encoded RTP, I think you would need to change PlayoutBuffer to have a mode without PLC.

Stefan


I have some questions:
1. Why
inline bool ts_less::operator()(const unsigned int& l,
                const unsigned int& r) const
{
  return (l - r > (unsigned int)(1<<31));
}
instead "l > r"?

2. recv_offset, rtp_ts, ref_ts is unsigned.
recv_offset = rtp_ts - ref_ts;
It's ok? Timestamp of SJphone's first RTP packet is equal 0.


On 17.05.2010 17:17, Stefan Sayer wrote:
Hi Andrey,

if you want to receive and e.g. record the encoded RTP, you need to set the buffering to fifo buffer - otherwise it tries to do packet loss concealment there, which of course does not work with encoded RTP. If you have set adaptive playout, it event tries to stretch the voice.

Additionally, I think you may need to set the packet size correctly in the other direction (receiving).

Regards
Stefan


Самусенко Андрей wrote:
Hello.

If

*Index: PrecodedAnnounce.cpp
===================================================================
--- PrecodedAnnounce.cpp    (revision 1772)
+++ PrecodedAnnounce.cpp    (working copy)
@@ -103,7 +103,7 @@
   }

   setOutput(file);
-  setReceiving(false);
+  setReceiving(true);
 }*

then log look like
(29306) DEBUG: [7fe286ed4710] conceal_loss (AmRtpAudio.cpp:182): default PLC (ts_diff = 144; s = 160) (29306) DEBUG: [7fe286ed4710] conceal_loss (AmRtpAudio.cpp:182): default PLC (ts_diff = 144; s = 160) (29306) DEBUG: [7fe286ed4710] conceal_loss (AmRtpAudio.cpp:182): default PLC (ts_diff = 144; s = 160) (29306) DEBUG: [7fe286ed4710] conceal_loss (AmRtpAudio.cpp:182): default PLC (ts_diff = 144; s = 160) (29306) DEBUG: [7fe286ed4710] conceal_loss (AmRtpAudio.cpp:182): default PLC (ts_diff = 144; s = 160) (29306) DEBUG: [7fe286ed4710] conceal_loss (AmRtpAudio.cpp:182): default PLC (ts_diff = 144; s = 160) (29306) DEBUG: [7fe286ed4710] conceal_loss (AmRtpAudio.cpp:182): default PLC (ts_diff = 144; s = 160) (29306) DEBUG: [7fe286ed4710] conceal_loss (AmRtpAudio.cpp:182): default PLC (ts_diff = 144; s = 160) (29306) DEBUG: [7fe286ed4710] conceal_loss (AmRtpAudio.cpp:182): default PLC (ts_diff = 144; s = 160) (29306) DEBUG: [7fe286ed4710] conceal_loss (AmRtpAudio.cpp:182): default PLC (ts_diff = 144; s = 160) (29306) DEBUG: [7fe286ed4710] conceal_loss (AmRtpAudio.cpp:182): default PLC (ts_diff = 144; s = 160) (29306) DEBUG: [7fe286ed4710] conceal_loss (AmRtpAudio.cpp:182): default PLC (ts_diff = 144; s = 160)
.................

Sorry for repeat of this question.


------------------------------------------------------------------------

_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev




_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to