[FFmpeg-devel] [PATCH] intmath: remove av_ctz.

James Almer jamrial at gmail.com
Tue Oct 13 04:41:41 CEST 2015

On 10/12/2015 3:15 PM, Andreas Cadhalpun wrote:
> On 11.10.2015 23:37, James Almer wrote:
>> On 10/11/2015 6:26 PM, Andreas Cadhalpun wrote:
>>> Anyway, please also remove the entry for av_ctz from APIchanges.
>>> It's not public API, so it never belonged there.
>> Huh, even an APIChanges line? Wonder if intmath.h was public at some
>> point, or if whoever added this wasn't aware it was an internal header.
> I guess it's slightly embarrassing, but this is unfortunately not the
> only exported symbol, which is not declared in an installed header.
> It seems several headers are intended to be installed, but actually aren't:
> libavutil/des.h:
>  av_des_alloc
>  av_des_crypt
>  av_des_init
>  av_des_mac
> libavutil/rc4.h:
>  av_rc4_alloc
>  av_rc4_crypt
>  av_rc4_init

These two definitely were meant to be installed. WTF.

> On the other hand apparently nobody missed these headers...
> Maybe these functions don't need to be public?

They are meant to be public crypto modules, like aes, sha, etc.

> Then some avpriv functions don't need to be exported:
> libavcodec/ac3_parser.h:
>  avpriv_ac3_parse_header (replaced by avpriv_ac3_parse_header2)
> libavcodec/internal.h:
>  avpriv_color_frame (only used in libavcodec)
> libavcodec/mpegaudiodecheader.h:
>  avpriv_mpa_decode_header2 (libavformat/mp3dec.c uses avpriv_mpa_decode_header)
> libavcodec/put_bits.h:
>  avpriv_put_string (only used in libavcodec)

Assuming none of these really need to be exported, we can still rename
them to ff_ prefix if we do it asap.

> libavutil/float_dsp.h:
>  avpriv_float_dsp_init (only used in libavutil/float_dsp.c)

This one was used until a year or so ago when avpriv_float_dsp_alloc()
was introduced. I guess it could be renamed with an ff_ prefix (or
merged into the new function, much like its fixed counterpart), since
the new function is preferred to allocate and init the context.

> Finally several seemingly internal symbols are needlessly exported:
> libavformat/url.h:
>  ffurl_read_complete
>  ffurl_seek
>  ffurl_size

These are either used by ffprobe, or "other applications" as michaelni
mentioned when i tried to make them fully internal last year.

> libswscale/swscale_internal.h:
>  sws_alloc_set_opts
>  sws_context_class
>  sws_rgb2rgb_init
> libavfilter/formats.h:
>  avfilter_make_format64_list
> libavfilter/formats.c:
>  avfilter_all_channel_layouts
> Or did I miss something?
> Best regards,
> Andreas
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

More information about the ffmpeg-devel mailing list