<div>Hi, all:</div>
<div> I am ChenJianming, a student major in communication engineering in Mainland China.</div>
<div>Recently I have always been reading some source codes of RAT(rat-4.2.23) on the purpose </div>
<div>of interpreting well of mutil-layers speech signal coding over IP conference, which is a homework</div>
<div>project assigned by our teacher. But when I traced some source code, it confused me so much.</div>
<div> As I know, in the definition of s_session structure, there is a statement of</div>
<div>" struct rtp *rtp_session[MAX_LAYERS] ", and I think this just is basement of multi-layer </div>
<div>signal processing.</div>
<div> Staring from here, I found that in the "main_engine.c", at about 295th line, it called the</div>
<div>function "rtp_recv(sp[i]->rtp_session[j], &timeout, rtp_time))". On using of this function, it got</div>
<div>each layer's data for the same speech chunck. The following flow is the processing sequence:</div>
<div>rtp_recv-->rtp_recv_data()-->process_rtp()-->session->callback()-->process_rtp_data()--></div>
<div>source_add_packet()-->pktbuf_enqueue()-->pb_add().</div>
<div> For the last function, in the implementation of it, we could find out these statements:</div>
<div> if (curr != stop && ts_eq(curr->playout, playout)) {<br> debug_msg("Add failed - unit already exists\n");<br> return FALSE;<br> }</div>
<div> So, for different layers of the same speech chunck, the timestamp of each packet should be</div>
<div>the same. And from the above statement. we can found that RAT would never successfully insert</div>
<div>the other layer's data because of equal in the timestamp. This is just a wired result...</div>
<div> Does this version of RAT(4.2.23) still not support the real multi-layer transmitting? Or I have made</div>
<div>some mistakes on the above?</div>
<div> Any suggestion will be appreciated. Thanks in advance.</div>
<div> <br clear="all"><br>-- <br><br>Sincerely Yours,<br>ChenJianming </div>