[FFmpeg-devel] [PATCH] rtsp: rename certain options after a deprecation period

Carl Eugen Hoyos ceffmpeg at gmail.com
Mon Feb 5 04:42:48 EET 2018


2018-02-04 15:24 GMT+01:00 wm4 <nfxjfg at googlemail.com>:
> On Thu, 25 Jan 2018 19:00:43 +0100
> wm4 <nfxjfg at googlemail.com> wrote:
>
>> The names inherently clash with the meanings of the HTTP libavformat
>> protocol options. Rename them after a deprecation period to make them
>> compatible with the HTTP ones.
>> ---
>> I see no better way that wouldn't require more effort than justified.
>> The incompatible semantics of the "timeout" option while still clashing
>> with the HTTP one caused major problems to me as API user, and I'm
>> hoping that this will solve itself in 2 years.
>> ---
>>  doc/APIchanges        | 5 +++++
>>  libavformat/rtsp.c    | 9 +++++++++
>>  libavformat/version.h | 5 ++++-
>>  3 files changed, 18 insertions(+), 1 deletion(-)
>>
>> diff --git a/doc/APIchanges b/doc/APIchanges
>> index 59e3b20c08..bf8664c799 100644
>> --- a/doc/APIchanges
>> +++ b/doc/APIchanges
>> @@ -15,6 +15,11 @@ libavutil:     2017-10-21
>>
>>  API changes, most recent first:
>>
>> +2018-01-xx - xxxxxxx - lavf 58.7.100 - avformat.h
>> +  Deprecate the current names of the RTSP "timeout", "stimeout", "user-agent"
>> +  options. Once the deprecation is over, "timeout" will be renamed to
>> +  "listen_timeout", "stimeout" to "timeout", and "user-agent" to "user_agent".
>> +
>>  2018-01-xx - xxxxxxx - lavf 58.6.100 - avformat.h
>>    Add AVFMTCTX_UNSEEKABLE (for HLS demuxer).
>>
>> diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
>> index cf7cdb2f2b..bed5f1ea11 100644
>> --- a/libavformat/rtsp.c
>> +++ b/libavformat/rtsp.c
>> @@ -93,10 +93,19 @@ const AVOption ff_rtsp_options[] = {
>>      RTSP_MEDIATYPE_OPTS("allowed_media_types", "set media types to accept from the server"),
>>      { "min_port", "set minimum local UDP port", OFFSET(rtp_port_min), AV_OPT_TYPE_INT, {.i64 = RTSP_RTP_PORT_MIN}, 0, 65535, DEC|ENC },
>>      { "max_port", "set maximum local UDP port", OFFSET(rtp_port_max), AV_OPT_TYPE_INT, {.i64 = RTSP_RTP_PORT_MAX}, 0, 65535, DEC|ENC },
>> +#if FF_API_OLD_RTSP_OPTIONS
>>      { "timeout", "set maximum timeout (in seconds) to wait for incoming connections (-1 is infinite, imply flag listen)", OFFSET(initial_timeout), AV_OPT_TYPE_INT, {.i64 = -1}, INT_MIN, INT_MAX, DEC },
>>      { "stimeout", "set timeout (in microseconds) of socket TCP I/O operations", OFFSET(stimeout), AV_OPT_TYPE_INT, {.i64 = 0}, INT_MIN, INT_MAX, DEC },
>> +#else
>> +    { "listen_timeout", "set maximum timeout (in seconds) to wait for incoming connections (-1 is infinite, imply flag listen)", OFFSET(initial_timeout), AV_OPT_TYPE_INT, {.i64 = -1}, INT_MIN, INT_MAX, DEC },
>> +    { "timeout", "set timeout (in microseconds) of socket TCP I/O operations", OFFSET(stimeout), AV_OPT_TYPE_INT, {.i64 = 0}, INT_MIN, INT_MAX, DEC },
>> +#endif
>>      COMMON_OPTS(),
>> +#if FF_API_OLD_RTSP_OPTIONS
>>      { "user-agent", "override User-Agent header", OFFSET(user_agent), AV_OPT_TYPE_STRING, {.str = LIBAVFORMAT_IDENT}, 0, 0, DEC },
>> +#else
>> +    { "user_agent", "override User-Agent header", OFFSET(user_agent), AV_OPT_TYPE_STRING, {.str = LIBAVFORMAT_IDENT}, 0, 0, DEC },
>> +#endif
>>      { NULL },
>>  };
>>
>> diff --git a/libavformat/version.h b/libavformat/version.h
>> index 5ff8a89ae0..4285e925cf 100644
>> --- a/libavformat/version.h
>> +++ b/libavformat/version.h
>> @@ -32,7 +32,7 @@
>>  // Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
>>  // Also please add any ticket numbers that you believe might be affected here
>>  #define LIBAVFORMAT_VERSION_MAJOR  58
>> -#define LIBAVFORMAT_VERSION_MINOR   6
>> +#define LIBAVFORMAT_VERSION_MINOR   7
>>  #define LIBAVFORMAT_VERSION_MICRO 100
>>
>>  #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
>> @@ -85,6 +85,9 @@
>>  #ifndef FF_API_LAVF_FFSERVER
>>  #define FF_API_LAVF_FFSERVER            (LIBAVFORMAT_VERSION_MAJOR < 59)
>>  #endif
>> +#ifndef FF_API_OLD_RTSP_OPTIONS
>> +#define FF_API_OLD_RTSP_OPTIONS         (LIBAVFORMAT_VERSION_MAJOR < 59)
>> +#endif
>>
>>
>>  #ifndef FF_API_R_FRAME_RATE
>
> Pushed, with James Almer's change request added.

This is completely unacceptable:
Why are you constantly breaking developer rules?

Carl Eugen


More information about the ffmpeg-devel mailing list