[vlc-devel] AMR streaming

Alex Antropoff alant at transtelecom.md
Fri Mar 17 08:36:41 CET 2006


Hello, I've made patch, which fixes streaming amr, now it possible to see
vod streams on some Nokia models(which doesn't have AAC support,only AMR).

PS. As I see, AMR support in rtp in live555 library is broken, 
ffmpeg got chunks of real amr frames, 

...
[00000320] ffmpeg decoder warning: amr frame too short (10, should be 14)
 (amr_nb at 0xa44a8d0)
 [00000320] ffmpeg decoder warning: cannot decode one frame (10 bytes)
[00000320] ffmpeg decoder warning: amr frame too short (9, should be 14)
 (amr_nb at 0x8ffd8c0)
 [00000320] ffmpeg decoder warning: cannot decode one frame (9 bytes)
...

The same stream is correctly played with mobiles/other rtsp clients.

-- 
Regards, 
Alex Antropoff
-------------- next part --------------
--- vlc-svn-20060315.orig/modules/stream_out/rtp.c	2006-03-15 01:56:47.000000000 +0200
+++ vlc-svn-20060315/modules/stream_out/rtp.c	2006-03-17 01:23:28.000000000 +0200
@@ -2335,12 +2335,12 @@
                               (in->i_pts > 0 ? in->i_pts : in->i_dts) );
         /* Payload header */
         out->p_buffer[12] = 0xF0; /* CMR */
-        out->p_buffer[13] = 0x00; /* ToC */ /* FIXME: frame type */
+        out->p_buffer[13] = p_data[0]&0x7C; /* ToC */ /* FIXME: frame type */
 
         /* FIXME: are we fed multiple frames ? */
-        memcpy( &out->p_buffer[14], p_data, i_payload );
+        memcpy( &out->p_buffer[14], p_data+1, i_payload-1 );
 
-        out->i_buffer   = 14 + i_payload;
+        out->i_buffer   = 14 + i_payload-1;
         out->i_dts    = in->i_dts + i * in->i_length / i_count;
         out->i_length = in->i_length / i_count;
 


More information about the vlc-devel mailing list