[FFmpeg-devel] [PATCH] RTP depacketizer for AMR
Wed Jan 27 14:09:28 CET 2010
Martin Storsj? wrote:
> Here's the first shot at an RTP depacketizer for AMR. It has been tested
> with libavformat's RTP AMR packetizer, QuickTime Broadcaster and samples
> from Darwin Streaming Server.
Nice work, thanks!
> Currently, this returns the AMR frames from the packet one at a time, by
> buffering up the packet within the depacketizer.
> I also tried returning all frames at once, but ffmpeg.c gives the
> "Multiple frames in a packet from stream" error message (but works fine
> except for that).
I think that if you return all the frames at once, you need an AMR parser
(which I do not think we currently have...).
So, I'd say that returning one frame at time is ok.
I leave the patch review to the maintainer, but it looks almost
fine to me.
The only thing that looks debatable is the fact that the payload parser
touches the timestamp. I believe the timestamp should only be modified
by rtpdec.c::rtp_parse_packet() (in other word, the first frame of the
RTP packet is assigned the RTP timestamp, the other frames get
AV_NOPTS_VALUE). I think libavformat can correctly fill the missing
timestamps... Can you try it and see what happens?
I also am not sure if it is worth introducing a new header
(rtpdec_amr.h) just for two "extern" declarations... Maybe they
can be moved to rtpdec.h?
More information about the ffmpeg-devel