[FFmpeg-devel] [PATCH]lavf:Constify AVOutputFormat pointer

James Almer jamrial at gmail.com
Wed Mar 20 19:50:12 EET 2019


On 3/20/2019 2:41 PM, Carl Eugen Hoyos wrote:
> 2019-02-09 15:46 GMT+01:00, Carl Eugen Hoyos <ceffmpeg at gmail.com>:
>> 2019-02-09 15:44 GMT+01:00, Carl Eugen Hoyos <ceffmpeg at gmail.com>:
>>> 2019-02-09 15:42 GMT+01:00, James Almer <jamrial at gmail.com>:
>>>> On 2/9/2019 11:23 AM, Carl Eugen Hoyos wrote:
>>>>> Hi!
>>>>>
>>>>> Attached patch is supposed to constify all occurrences of
>>>>> AVOutputFormat in libavformat.
>>>>>
>>>>> Please comment, Carl Eugen
>>>>>
>>>>>
>>>>> 0001-lavf-Constify-AVOutputFormat-pointer.patch
>>>>>
>>>>> From ba32f41824df07b7a6cb45964ef912c5fc05b276 Mon Sep 17 00:00:00 2001
>>>>> From: Carl Eugen Hoyos <ceffmpeg at gmail.com>
>>>>> Date: Sat, 9 Feb 2019 15:21:17 +0100
>>>>> Subject: [PATCH] lavf: Constify AVOutputFormat pointer.
>>>>>
>>>>> ---
>>>>>  libavformat/allformats.c         |    4 ++++
>>>>>  libavformat/avformat.h           |   15 ++++++++++-----
>>>>>  libavformat/fifo.c               |    4 ++--
>>>>>  libavformat/format.c             |    6 +++---
>>>>>  libavformat/hdsenc.c             |    2 +-
>>>>>  libavformat/hlsenc.c             |    4 ++--
>>>>>  libavformat/mux.c                |    4 ++--
>>>>>  libavformat/rtp.c                |    2 +-
>>>>>  libavformat/rtpenc_chain.c       |    2 +-
>>>>>  libavformat/rtpenc_mpegts.c      |    4 ++--
>>>>>  libavformat/segment.c            |    2 +-
>>>>>  libavformat/smoothstreamingenc.c |    2 +-
>>>>>  libavformat/version.h            |    3 +++
>>>>>  libavformat/webm_chunk.c         |    2 +-
>>>>>  14 files changed, 34 insertions(+), 22 deletions(-)
>>>>>
>>>>> diff --git a/libavformat/allformats.c b/libavformat/allformats.c
>>>>> index 0684498..64d0f02 100644
>>>>> --- a/libavformat/allformats.c
>>>>> +++ b/libavformat/allformats.c
>>>>> @@ -595,7 +595,11 @@ AVOutputFormat *av_oformat_next(const
>>>>> AVOutputFormat
>>>>> *f)
>>>>>      ff_thread_once(&av_format_next_init, av_format_init_next);
>>>>>
>>>>>      if (f)
>>>>> +#if FF_API_AVIOFORMAT
>>>>> +        return (AVOutputFormat *) f->next;
>>>>> +#else
>>>>>          return f->next;
>>>>> +#endif
>>>>>      else {
>>>>>          void *opaque = NULL;
>>>>>          return (AVOutputFormat *)av_muxer_iterate(&opaque);
>>>>> diff --git a/libavformat/avformat.h b/libavformat/avformat.h
>>>>> index fdaffa5..52922c0 100644
>>>>> --- a/libavformat/avformat.h
>>>>> +++ b/libavformat/avformat.h
>>>>> @@ -532,7 +532,12 @@ typedef struct AVOutputFormat {
>>>>>       * New public fields should be added right above.
>>>>>       *****************************************************************
>>>>>       */
>>>>> -    struct AVOutputFormat *next;
>>>>> +#if FF_API_AVIOFORMAT
>>>>> +#define av_const59 const
>>>>> +#else
>>>>> +#define av_const59
>>>>> +#endif
>>>>
>>>> Shouldn't it be the other way around? FF_API_AVIOFORMAT
>>>> evaluates to 1 when major is < 59.
>>>
>>> Yes, I had realized this in the meantime, new patch attached.
>>
>> And with the correct version in version.h
> 
> Patch applied with "ff_const59".
> 
> Carl Eugen

Could you add a comment stating that, much like the FF_API_ defines,
this ff_const59 define is not part of the public API and will eventually
disappear without warning?


More information about the ffmpeg-devel mailing list