On Wed, May 22, 2019 at 12:03:55 +0200, Olivier Maignial wrote:
> In SDP provided by my RTSP server I had this fmtp line:
>     a=fmtp:98 streamType=5; profile-level-id=40; mode=AAC-hbr; config=1188; 
> sizeLength=13; indexLength=3; indexDeltaLength=3;
>
> In FFmpeg code, I found a check introduced by commit 
> 24130234cd9dd733116d17b724ea4c8e12ce097a. It disallow values greater than 32 
> for fmtp line parameters.
> However, In RFC-6416 (RTP Payload Format for MPEG-4 Audio/Visual Streams) 
> give examples of "profile-level-id" values for AAC, up to 55.
> Furthermore, RFC-4566 (SDP: Session Description Protocol) do not give any 
> limit of size on interger parameters given in fmtp line.

This explanation is much more concise than before. Thanks. Thus,
understanding the intent, I can now finally comment on the code:

> Using INT_MIN, LONG_MIN, INT_MAX and LON_MAX definitions ensure that it will 
> work whatever the size of int/long given by compiler.
[...]
> +                    long int val = strtol(value, &end_ptr, 10);

According to your comment, you do realize that this depends on the
compiler. I actually believe it depends mainly on the platform, but
that's an academic discussion. Either way, why not support the same
range regardless of compiler or platform? I.e. avoid "long int", which
is sometimes 32 bits, sometimes 64.

(Anything else could lead to
unexpected behavior. In other words, an observation such as: "That's
peculiar, my [64 bit] PC handles this stream just fine, but my [32 bit]
RaspPi doesn't.")

> +                               "Value of field %s overflow maximum integer 
> value.\n",

Singular: "underflows".

> +                               "Value of field %s underflow minimum integer 
> value.\n",

Ditto.

Moritz
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to