[FFmpeg-devel] [PATCH 2/6] lavf/rtp: replace linked list with array

wm4 nfxjfg at googlemail.com
Wed Jan 3 17:28:11 EET 2018


On Wed, 3 Jan 2018 00:42:45 +0000
Josh de Kock <josh at itanimul.li> wrote:

> ---
>  libavformat/allformats.c |   4 --
>  libavformat/rdt.c        |   8 +--
>  libavformat/rdt.h        |   3 +
>  libavformat/rtpdec.c     | 157 ++++++++++++++++++++++++++++++-----------------
>  libavformat/rtpdec.h     |  29 ++++++++-
>  libavformat/version.h    |   4 +-
>  6 files changed, 136 insertions(+), 69 deletions(-)
> 
> diff --git a/libavformat/allformats.c b/libavformat/allformats.c
> index 6a9b988..593baf3 100644
> --- a/libavformat/allformats.c
> +++ b/libavformat/allformats.c
> @@ -283,10 +283,6 @@ static void register_all(void)
>      REGISTER_DEMUXER (SDR2,             sdr2);
>      REGISTER_DEMUXER (SDS,              sds);
>      REGISTER_DEMUXER (SDX,              sdx);
> -#if CONFIG_RTPDEC
> -    ff_register_rtp_dynamic_payload_handlers();
> -    ff_register_rdt_dynamic_payload_handlers();
> -#endif
>      REGISTER_DEMUXER (SEGAFILM,         segafilm);
>      REGISTER_MUXER   (SEGMENT,          segment);
>      REGISTER_MUXER   (SEGMENT,          stream_segment);
> diff --git a/libavformat/rdt.c b/libavformat/rdt.c
> index b69827f..4d6321e 100644
> --- a/libavformat/rdt.c
> +++ b/libavformat/rdt.c
> @@ -554,7 +554,7 @@ rdt_close_context (PayloadContext *rdt)
>  }
>  
>  #define RDT_HANDLER(n, s, t) \
> -static RTPDynamicProtocolHandler rdt_ ## n ## _handler = { \
> +RTPDynamicProtocolHandler ff_rdt_ ## n ## _handler = { \
>      .enc_name         = s, \
>      .codec_type       = t, \
>      .codec_id         = AV_CODEC_ID_NONE, \
> @@ -570,10 +570,8 @@ RDT_HANDLER(live_audio, "x-pn-multirate-realaudio-live", AVMEDIA_TYPE_AUDIO);
>  RDT_HANDLER(video,      "x-pn-realvideo",                AVMEDIA_TYPE_VIDEO);
>  RDT_HANDLER(audio,      "x-pn-realaudio",                AVMEDIA_TYPE_AUDIO);
>  
> +#if FF_API_RTP_NEXT
>  void ff_register_rdt_dynamic_payload_handlers(void)
>  {
> -    ff_register_dynamic_payload_handler(&rdt_video_handler);
> -    ff_register_dynamic_payload_handler(&rdt_audio_handler);
> -    ff_register_dynamic_payload_handler(&rdt_live_video_handler);
> -    ff_register_dynamic_payload_handler(&rdt_live_audio_handler);
>  }
> +#endif

You did too much work here. ff_* API is strictly internal, so it
doesn't need deprecation. You can just change all callers.

So just keep ff_rtp_handler_iterate() and kill the old iteration and
registration functions.


More information about the ffmpeg-devel mailing list