Thursday, May 08, 2008

AMR Muxer for RTP

AMR Muxer for RTP:
--------------------
1.Input : AMR File
2.Output : AMR RTP Packet Data ( which contains 500 ms of data..
25 Frames * 20 ms)
Read 25 Frames and make it as like RTP amr data as follows:
i) F0,25 frames header and AMR Data
ii)


I have to test the RTP Muxer completely;

RTP Muxer is having problem;
RTP Demuxer will do the following:
1.F0 BC BC BC ... 3C
2.Number of BC's indicate the number of frames + 1 is number of frames in a RTP packet;
RTP muxer will have 24 BCs and 1 3C

About this BC value;
we can generate this value according the selected type:
3C refers 12.2 kbps
0111
1 0111 1 00

F FT Q 00
1 0111 1 00
F indicates the continuation of another Speech frame;
if F is 0 means that is the last speech frame;
After BC's, 3C is the last speech frame;
the Upper most bit is zero , so it is the last frame;
1 indicates continuation;

In case of 3C just check it...
0 0111 1 00


RTP Stack is sending the data correctly;
_ Working welland I have received the data properly

1 comment:

Nitin Goyal said...

I have the Payload as the following bytes, So we can see we dont have F0, BC or 3C bytes and these bytes are after i remove the RTP header bytes of 12 bytes.

F3F91B5CE5311C0018217B4BC8C45191 600016B7684299FE00014B36E4392954
F3D099E1E2FA18C1480D2A328A8F214103E0E190326F03FF7C9E00175FA02120
F3F8399AA2FBC500680D49EE1B19C683023FC0ADB4CE87ADF911105F6D362D18
F3CA16C8EB83FE0C20122C23F259426F2FC0168EFF56DAA13205A4EFFD6CAD1C

We can see if the above bytes are interpreted then the CMR is 15--> No Mode Request;
F bit is zero, so its the last frame; FT bits are 0111, so its 12.2 kbps data and left is the speech data.

Now, I am not sure how i can convert this content into the AMR file as just by adding the AMR header bytes 2321414D520A, is not making this content playable.
Cna you help me out whre is the missing thing or How i need ot modify this data to run this content as a playable file.