Hi!,
I am working with voipong to capture the raw G729 payloads and trying to use the sample: g729idecoder passing as arguments the raw voipong capture and the output file:
./g729idecoder session-enc18-G729-8KHz.raw out
I having two problems, when the first one doesn't occurs, then is the second. I don't know if I can pass the voip raw capture right to the g729idecoder, if I can't please tell me what can I use or how I can do it.
Problems:
1. A Segmentation Fault, I ran:
"ltrace -fiS ./g729fpdecoder session-enc18-G729-8KHz.raw out"
here is the end of the trace:
[0x77a6bd] SYS_uname(0xfee534cc) = 0
[0x77922b] SYS_brk(NULL) = 0x9ba3000
[0x779fd1] SYS_access(0x77b386, 4, 0x77efb4, 0x77b386, 4) = -2
[0x779e94] SYS_open("/etc/ld.so.cache", 0, 00) = 3
[0x779d9b] SYS_fstat64(3, 0xfee52c18, 0x77efb4, 0x77f4d8, 0) = 0
[0x77a5fd] SYS_mmap(0xfee52bf8, 2, 0x77efb4, 3, 0) = 0xf6fef000
[cut output]
[0x804a0e1] __libc_start_main(0x804a392, 3, 0xfee53724, 0x805978c, 0x80597e0
[0x8059597] memset(0xfee52d70, '00', 512) = 0xfee52d70
[0x804a438] ippscGetLibVersion(0, 32, 0, 0, 0x792ad0) = 0xf6a6fce0
[0x804a6ff] fopen("/var/tmp/output/20050527/session"..., "rb"
[0x7697a2] SYS_open("/var/tmp/output/20050527/session"..., 0, 0666) = 3
[0x804a6ff] ... fopen resumed> ) = 0x9ba3968
[0x804a7e8] fseek(0x9ba3968, 0, 2, 0, 32
[0x7697a2] SYS_fstat64(3, 0xfee533f0, 0x8a4ff4, 0x9ba3968, 8192) = 0
[0x7697a2] SYS_mmap2(0, 4096, 3, 34, -1) = 0xf6fff000
[0x7697a2] SYS_fstat64(3, 0xfee534c8, 0x8a4ff4, 3, 0x9ba3968) = 0
[0x7697a2] SYS__llseek(3, 0, 12288, 0xfee53448, 0) = 0
[0x7697a2] SYS_read(3, "310R3633273YI?356344307310361[.230D323s07A26317202256370330353or365177"..., 1984) = 1984
[0x804a7e8] ... fseek resumed> ) = 0
[0x804a7f2] ftell(0x9ba3968, 0x9ba3968, 0, 2, 0) = 14272
[0x804a808] ippsMalloc_8s(14272, 0, 32, 0, 0) = 0x9ba3ae0
[0x804a824] fseek(0x9ba3968, 0, 0, 0, 32
[0x7697a2] SYS__llseek(3, 0, 0, 0xfee53448, 0) = 0
[0x804a824] ... fseek resumed> ) = 0
[0x804a83c] fread(0x9ba3ae0, 1, 14272, 0x9ba3968
[0x7697a2] SYS_read(3, "36L201327F346 302300b246Z2013301^~336241214]l `K26e20215177233"..., 12288) = 12288
[0x7697a2] SYS_read(3, "310R3633273YI?356344307310361[.230D323s07A26317202256370330353or365177"..., 4096) = 1984
[0x804a83c] ... fread resumed> ) = 14272
[0x804a8a8] ippsMalloc_8u(8, 0, 32, 0, 0) = 0x9ba72c0
[0x804b6f2] ippsIIRGetStateSize_32f(2, 0xfee53560, 0, 0, 1) = 0
[0x804b715] ippsWinHybridGetStateSize_G729E_32f(0xfee53560, 0xfee53560, 2, 0xfee53560, 36) = 0
[0x804a8f5] ippsMalloc_8u(9100, 0, 32, 0, 0) = 0x9ba7300
[0x804b6b2] --- SIGSEGV (Segmentation fault) ---
[0xffffffff] +++ killed by SIGSEGV +++
2. The "out" file is always about 160 bytes, with no errors at all. The cmd line is: "./g729idecoder session-enc18-G729-8KHz.raw out"
Any help would be appreciated.
Thanks
Gabor
I am working with voipong to capture the raw G729 payloads and trying to use the sample: g729idecoder passing as arguments the raw voipong capture and the output file:
./g729idecoder session-enc18-G729-8KHz.raw out
I having two problems, when the first one doesn't occurs, then is the second. I don't know if I can pass the voip raw capture right to the g729idecoder, if I can't please tell me what can I use or how I can do it.
Problems:
1. A Segmentation Fault, I ran:
"ltrace -fiS ./g729fpdecoder session-enc18-G729-8KHz.raw out"
here is the end of the trace:
[0x77a6bd] SYS_uname(0xfee534cc) = 0
[0x77922b] SYS_brk(NULL) = 0x9ba3000
[0x779fd1] SYS_access(0x77b386, 4, 0x77efb4, 0x77b386, 4) = -2
[0x779e94] SYS_open("/etc/ld.so.cache", 0, 00) = 3
[0x779d9b] SYS_fstat64(3, 0xfee52c18, 0x77efb4, 0x77f4d8, 0) = 0
[0x77a5fd] SYS_mmap(0xfee52bf8, 2, 0x77efb4, 3, 0) = 0xf6fef000
[cut output]
[0x804a0e1] __libc_start_main(0x804a392, 3, 0xfee53724, 0x805978c, 0x80597e0
[0x8059597] memset(0xfee52d70, '00', 512) = 0xfee52d70
[0x804a438] ippscGetLibVersion(0, 32, 0, 0, 0x792ad0) = 0xf6a6fce0
[0x804a6ff] fopen("/var/tmp/output/20050527/session"..., "rb"
[0x7697a2] SYS_open("/var/tmp/output/20050527/session"..., 0, 0666) = 3
[0x804a6ff] ... fopen resumed> ) = 0x9ba3968
[0x804a7e8] fseek(0x9ba3968, 0, 2, 0, 32
[0x7697a2] SYS_fstat64(3, 0xfee533f0, 0x8a4ff4, 0x9ba3968, 8192) = 0
[0x7697a2] SYS_mmap2(0, 4096, 3, 34, -1) = 0xf6fff000
[0x7697a2] SYS_fstat64(3, 0xfee534c8, 0x8a4ff4, 3, 0x9ba3968) = 0
[0x7697a2] SYS__llseek(3, 0, 12288, 0xfee53448, 0) = 0
[0x7697a2] SYS_read(3, "310R3633273YI?356344307310361[.230D323s07A26317202256370330353or365177"..., 1984) = 1984
[0x804a7e8] ... fseek resumed> ) = 0
[0x804a7f2] ftell(0x9ba3968, 0x9ba3968, 0, 2, 0) = 14272
[0x804a808] ippsMalloc_8s(14272, 0, 32, 0, 0) = 0x9ba3ae0
[0x804a824] fseek(0x9ba3968, 0, 0, 0, 32
[0x7697a2] SYS__llseek(3, 0, 0, 0xfee53448, 0) = 0
[0x804a824] ... fseek resumed> ) = 0
[0x804a83c] fread(0x9ba3ae0, 1, 14272, 0x9ba3968
[0x7697a2] SYS_read(3, "36L201327F346 302300b246Z2013301^~336241214]l `K26e20215177233"..., 12288) = 12288
[0x7697a2] SYS_read(3, "310R3633273YI?356344307310361[.230D323s07A26317202256370330353or365177"..., 4096) = 1984
[0x804a83c] ... fread resumed> ) = 14272
[0x804a8a8] ippsMalloc_8u(8, 0, 32, 0, 0) = 0x9ba72c0
[0x804b6f2] ippsIIRGetStateSize_32f(2, 0xfee53560, 0, 0, 1) = 0
[0x804b715] ippsWinHybridGetStateSize_G729E_32f(0xfee53560, 0xfee53560, 2, 0xfee53560, 36) = 0
[0x804a8f5] ippsMalloc_8u(9100, 0, 32, 0, 0) = 0x9ba7300
[0x804b6b2] --- SIGSEGV (Segmentation fault) ---
[0xffffffff] +++ killed by SIGSEGV +++
2. The "out" file is always about 160 bytes, with no errors at all. The cmd line is: "./g729idecoder session-enc18-G729-8KHz.raw out"
Any help would be appreciated.
Thanks
Gabor
链接已复制
4 回复数
You can't feed an RTPpackets directly tog729decoder executable. For conformance testing purpose it supports bitstream only inITU G.729 bitstream file format.Youneed to extract a pure bitstream out of each RTP packet andfeed it to Decode() function instead with proper frame type indication (active, VAD, untransmitted, lost).
Hope this help.
Vyacheslav
Hi!,
Thanks for your response.
Actually voipong extract the payload of each RTP packet and that is what is saved in the raw file. So, I am passing the pure payload to the g729decoder and NOT the rtp packet. The format is ITU-T, is that the correct format?
Thanks for your response.
Actually voipong extract the payload of each RTP packet and that is what is saved in the raw file. So, I am passing the pure payload to the g729decoder and NOT the rtp packet. The format is ITU-T, is that the correct format?
Message Edited by gesperon on 05-31-2005 12:16 PM
Hi there!
I meant an executable processes bitstream file inITU-T test vector format. The Ref2Bits() function converts ITU format to RTP payload (RFC3551) (in->pBuffer),
in->nbytes==10 (active) , 2(SID) , 0 (untransmitted).
in->frametype == -1(lost), 0 (untransmitted), 1(SID), 2 (6.4), 3 (8), 4 (11.8) for G729I codec.
For G729A codecframe types ==-1, 0,1,3 accordingly.
Vyacheslav
