[FFmpeg-devel] [PATCH] Add support for packetizing AMR into RTP

Luca Abeni lucabe72
Wed Apr 8 09:19:50 CEST 2009


Hi Martin,

Martin Storsj? wrote:
[...]
>> I think in this case the right thing to do is to perform the check in
>> rtp_write_header(), and to fail if the payload size is too small. (I do
>> not like the idea of a function failing without returning an error code)
> 
> Ok, fixed. I had to move the default case for max_frames_per_packet to 
> rtp_write_header in order to get a sensible check for the minimum 
> max_payload_size.
> 
>> If you add the check described above (and remove the useless "else"),
>> the patch would be ok as far as I can see.
> 
> Redundant else removed

Committed, thanks (with few small modifications to make patcheck happier).


> When checking for the corner cases in handling max_payload_size, I found a 
> minor bug that I had inherited from rtp_aac.c; I fixed this in my version, 
> and a fix for the case in rtp_aac.c is attached as a separate patch. 
> 
>      /* test if the packet must be sent */
>      len = (s->buf_ptr - s->buf);
> -    if ((s->num_frames == MAX_FRAMES_PER_PACKET) || (len && (len + size) > max_packet_size)) {
> +    if ((s->num_frames == MAX_FRAMES_PER_PACKET) || (len && (len + size) > s->max_payload_size)) {
> 
> Since s->buf_ptr starts from s->buf + MAX_AU_HEADERS_SIZE, len shouldn't 
> be checked against max_packet_size = s->max_payload_size - 
> MAX_AU_HEADERS_SIZE, but checked against s->max_payload_size instead.
> 
> And the second hunk of the patch fixes cases where the data packet would 
> fit exactly into the space available.

Uh... Looks like you are right. I'll commit this later.


			Thanks again,
				Luca



More information about the ffmpeg-devel mailing list