[FFmpeg-devel] [PATCH] RTP depacketizer for AMR
Wed Jan 27 19:23:56 CET 2010
On 27/01/10 18:22, Ronald S. Bultje wrote:
>>> typedef int (*DynamicPayloadPacketHandlerProc) (AVFormatContext *ctx,
>>> PayloadContext *s,
>>> AVStream *st,
>>> AVPacket * pkt,
>>> uint32_t *timestamp,
>>> const uint8_t * buf,
>>> int len, int flags);
>>> If they were not intended to set the timestamp, the timestamp parameter
>>> wouldn't be a pointer.
>> I believe that the timestamp parameter should not eve exist here ;-)
>> But at this point I leave this to the maintainer.
> Isn't that you? :-).
Uhm... No. I maintain the RTP muxer (rtpenc*.c), not the demuxer. But
looking at the MAINTAINERS file, I now see that there is currently no
maintainer, so I have noone for leaving this stuff to :)
> I forgot who made timestamp a pointer, was that me?
My impression is that it has been there forever, and I never understood why.
> I think it was,
> and I think I applied it then changed rmdec.c so it wasn't necessary
> (because it wasn't actually used anyways), and now it's just sitting
> there. Anyone mind making it a non-pointer again?
If you make it a non-pointer, then you can just remove this parameter...
> I think the best thing here is to return whole packets since the
> decoder handles that anyway.
If this (returning all the frames at the same time) works, I agree.
After all, this is what the AAC payload parser is doing (I remember
people complaining about this behaviour, but I do not know if there was
a real problem and if/how it was fixed).
> RTP depacketizers should not mess with timestamps, it's the wrong
I agree ;-)
But let's see if and how the AMR decoder can cope with the data produced
by this demuxer if the payload handler does not set the timestamps.
More information about the ffmpeg-devel