On 4/24/2021 9:52 AM, Andreas Rheinhardt wrote:
James Almer:
Signed-off-by: James Almer <jamr...@gmail.com>
---
  fftools/ffmpeg_opt.c      |  13 ---
  libavformat/avformat.h    |   8 +-
  libavformat/dump.c        |  24 ------
  libavformat/isom.c        |  12 +--
  libavformat/mov.c         |  17 ----
  libavformat/movenc.c      |  38 +--------
  libavformat/mux.c         |  27 -------
  libavformat/sdp.c         |  18 -----
  libavformat/segment.c     |   6 --
  libavformat/utils.c       | 164 +-------------------------------------
  libavformat/version.h     |   3 -
  libavformat/yuv4mpegenc.c |   7 --
  12 files changed, 7 insertions(+), 330 deletions(-)

diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 28069d45dc..3e307efb16 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -839,13 +839,7 @@ typedef struct AVStream {
       * encoding: set by the user, replaced by libavformat if left unset
       */
      int id;
-#if FF_API_LAVF_AVCTX
-    /**
-     * @deprecated use the codecpar struct instead
-     */
-    attribute_deprecated
-    AVCodecContext *codec;
-#endif

The documentation of avformat_new_stream() must also be updated. E.g.:
"User is required to call avcodec_close() and avformat_free_context() to
clean up the allocation by avformat_new_stream()."

Will do.

Furthermore, the AVCodec parameter is currently only used for the public
AVCodecContext that is about to be removed and not the private
AVCodecContext, so I wonder whether this should be changed or if we
should add a avformat_new_stream2() without this useless parameter.

Adding a new public API function just to remove a unused parameter is not a good idea. It's forcing library users to migrate for no gain. And i really dislike functions with a 2 suffix.

Any reason it's not being used for the private AVCodecContext, for that matter?


+
      void *priv_data;
/**
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 2f66f539a6..49bf19b2b0 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -158,13 +158,6 @@ int ff_copy_whiteblacklists(AVFormatContext *dst, const 
AVFormatContext *src)
static const AVCodec *find_decoder(AVFormatContext *s, const AVStream *st, enum AVCodecID codec_id)
  {
-#if FF_API_LAVF_AVCTX
-FF_DISABLE_DEPRECATION_WARNINGS
-    if (st->codec->codec)
-        return st->codec->codec;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
      switch (st->codecpar->codec_type) {
      case AVMEDIA_TYPE_VIDEO:
          if (s->video_codec)    return s->video_codec;
@@ -354,12 +347,6 @@ static int set_codec_from_probe_data(AVFormatContext *s, 
AVStream *st,
                  st->codecpar->codec_id   = fmt_id_type[i].id;
                  st->codecpar->codec_type = fmt_id_type[i].type;
                  st->internal->need_context_update = 1;
-#if FF_API_LAVF_AVCTX
-FF_DISABLE_DEPRECATION_WARNINGS
-                st->codec->codec_type = st->codecpar->codec_type;
-                st->codec->codec_id   = st->codecpar->codec_id;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
                  return score;
              }
          }
@@ -480,15 +467,6 @@ static int update_stream_avctx(AVFormatContext *s)
          if (ret < 0)
              return ret;
-#if FF_API_LAVF_AVCTX
-FF_DISABLE_DEPRECATION_WARNINGS
-        /* update deprecated public codec context */
-        ret = avcodec_parameters_to_context(st->codec, st->codecpar);
-        if (ret < 0)
-            return ret;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
          st->internal->need_context_update = 0;
      }
      return 0;
@@ -920,13 +898,6 @@ void ff_compute_frame_duration(AVFormatContext *s, int 
*pnum, int *pden, AVStrea
                                                
av_mul_q(av_inv_q(st->internal->avctx->time_base), (AVRational){1, 
st->internal->avctx->ticks_per_frame});
      int frame_size, sample_rate;
-#if FF_API_LAVF_AVCTX
-FF_DISABLE_DEPRECATION_WARNINGS
-    if ((!codec_framerate.den || !codec_framerate.num) && st->codec->time_base.den 
&& st->codec->time_base.num)
-        codec_framerate = av_mul_q(av_inv_q(st->codec->time_base), (AVRational){1, 
st->codec->ticks_per_frame});
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
      *pnum = 0;
      *pden = 0;
      switch (st->codecpar->codec_type) {
@@ -1547,17 +1518,6 @@ static int read_frame_internal(AVFormatContext *s, 
AVPacket *pkt)
                  return ret;
              }
-#if FF_API_LAVF_AVCTX
-FF_DISABLE_DEPRECATION_WARNINGS
-            /* update deprecated public codec context */
-            ret = avcodec_parameters_to_context(st->codec, st->codecpar);
-            if (ret < 0) {
-                av_packet_unref(pkt);
-                return ret;
-            }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
              st->internal->need_context_update = 0;
          }
@@ -1680,10 +1640,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
          av_opt_set_dict_val(s, "metadata", NULL, AV_OPT_SEARCH_CHILDREN);
      }
-#if FF_API_LAVF_AVCTX
-    update_stream_avctx(s);
-#endif
-
      if (s->debug & FF_FDEBUG_TS)
          av_log(s, AV_LOG_DEBUG,
                 "read_frame_internal stream=%d, pts=%s, dts=%s, "
@@ -3632,15 +3588,6 @@ int avformat_find_stream_info(AVFormatContext *ic, 
AVDictionary **options)
          }
/* check if the caller has overridden the codec id */
-#if FF_API_LAVF_AVCTX
-FF_DISABLE_DEPRECATION_WARNINGS
-        if (st->codec->codec_id != st->internal->orig_codec_id) {
-            st->codecpar->codec_id   = st->codec->codec_id;
-            st->codecpar->codec_type = st->codec->codec_type;
-            st->internal->orig_codec_id = st->codec->codec_id;
-        }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
          // only for the split stuff
          if (!st->parser && !(ic->flags & AVFMT_FLAG_NOPARSE) && 
st->internal->request_probe <= 0) {
              st->parser = av_parser_init(st->codecpar->codec_id);
@@ -4123,42 +4070,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
                  goto find_stream_info_err;
          }
-#if FF_API_LAVF_AVCTX
-FF_DISABLE_DEPRECATION_WARNINGS
-        ret = avcodec_parameters_to_context(st->codec, st->codecpar);
-        if (ret < 0)
-            goto find_stream_info_err;
-
-        // The old API (AVStream.codec) "requires" the resolution to be 
adjusted
-        // by the lowres factor.
-        if (st->internal->avctx->lowres && st->internal->avctx->width) {
-            st->codec->lowres = st->internal->avctx->lowres;
-            st->codec->width = st->internal->avctx->width;
-            st->codec->height = st->internal->avctx->height;
-        }
-
-        if (st->codec->codec_tag != MKTAG('t','m','c','d')) {
-            st->codec->time_base = st->internal->avctx->time_base;
-            st->codec->ticks_per_frame = st->internal->avctx->ticks_per_frame;
-        }
-        st->codec->framerate = st->avg_frame_rate;
-
-        if (st->internal->avctx->subtitle_header) {
-            st->codec->subtitle_header = 
av_malloc(st->internal->avctx->subtitle_header_size);
-            if (!st->codec->subtitle_header)
-                goto find_stream_info_err;
-            st->codec->subtitle_header_size = 
st->internal->avctx->subtitle_header_size;
-            memcpy(st->codec->subtitle_header, 
st->internal->avctx->subtitle_header,
-                   st->codec->subtitle_header_size);
-        }
-
-        // Fields unavailable in AVCodecParameters
-        st->codec->coded_width = st->internal->avctx->coded_width;
-        st->codec->coded_height = st->internal->avctx->coded_height;
-        st->codec->properties = st->internal->avctx->properties;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
          st->internal->avctx_inited = 0;
      }
@@ -4368,11 +4279,6 @@ static void free_stream(AVStream **pst) av_dict_free(&st->metadata);
      avcodec_parameters_free(&st->codecpar);
-#if FF_API_LAVF_AVCTX
-FF_DISABLE_DEPRECATION_WARNINGS
-    avcodec_free_context(&st->codec);
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
      av_freep(&st->priv_data);
av_freep(pst);
@@ -4480,16 +4386,6 @@ AVStream *avformat_new_stream(AVFormatContext *s, const 
AVCodec *c)
      if (!st)
          return NULL;
-#if FF_API_LAVF_AVCTX
-FF_DISABLE_DEPRECATION_WARNINGS
-    st->codec = avcodec_alloc_context3(c);
-    if (!st->codec) {
-        av_free(st);
-        return NULL;
-    }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
      st->internal = av_mallocz(sizeof(*st->internal));
      if (!st->internal)
          goto fail;
@@ -4508,13 +4404,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
          goto fail;
if (s->iformat) {
-#if FF_API_LAVF_AVCTX
-FF_DISABLE_DEPRECATION_WARNINGS
-        /* no default bitrate if decoding */
-        st->codec->bit_rate = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
          /* default pts setting is MPEG-like */
          avpriv_set_pts_info(st, 33, 1, 90000);
          /* we set the current DTS to 0 so that formats without any timestamps
@@ -4922,11 +4811,6 @@ void avpriv_set_pts_info(AVStream *s, int pts_wrap_bits,
          return;
      }
      s->time_base     = new_tb;
-#if FF_API_LAVF_AVCTX
-FF_DISABLE_DEPRECATION_WARNINGS
-    s->codec->pkt_timebase = new_tb;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
      s->internal->avctx->pkt_timebase = new_tb;
      s->pts_wrap_bits = pts_wrap_bits;
  }
@@ -5154,16 +5038,8 @@ static int match_stream_specifier(AVFormatContext *s, 
AVStream *st,
              if (*spec && *spec++ != ':')         /* If we are not at the end, 
then another specifier must follow. */
                  return AVERROR(EINVAL);
-#if FF_API_LAVF_AVCTX
-FF_DISABLE_DEPRECATION_WARNINGS
-            if (type != st->codecpar->codec_type
-               && (st->codecpar->codec_type != AVMEDIA_TYPE_UNKNOWN || 
st->codec->codec_type != type))
-                match = 0;
-    FF_ENABLE_DEPRECATION_WARNINGS
-#else
              if (type != st->codecpar->codec_type)
                  match = 0;
-#endif
              if (nopic && (st->disposition & AV_DISPOSITION_ATTACHED_PIC))
                  match = 0;
          } else if (*spec == 'p' && *(spec + 1) == ':') {
@@ -5230,35 +5106,16 @@ FF_DISABLE_DEPRECATION_WARNINGS
              return match && ret;
          } else if (*spec == 'u' && *(spec + 1) == '\0') {
              AVCodecParameters *par = st->codecpar;
-#if FF_API_LAVF_AVCTX
-FF_DISABLE_DEPRECATION_WARNINGS
-            AVCodecContext *codec = st->codec;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
              int val;
              switch (par->codec_type) {
              case AVMEDIA_TYPE_AUDIO:
                  val = par->sample_rate && par->channels;
-#if FF_API_LAVF_AVCTX
-                val = val || (codec->sample_rate && codec->channels);
-#endif
-                if (par->format == AV_SAMPLE_FMT_NONE
-#if FF_API_LAVF_AVCTX
-                    && codec->sample_fmt == AV_SAMPLE_FMT_NONE
-#endif
-                    )
+                if (par->format == AV_SAMPLE_FMT_NONE)
                      return 0;
                  break;
              case AVMEDIA_TYPE_VIDEO:
                  val = par->width && par->height;
-#if FF_API_LAVF_AVCTX
-                val = val || (codec->width && codec->height);
-#endif
-                if (par->format == AV_PIX_FMT_NONE
-#if FF_API_LAVF_AVCTX
-                    && codec->pix_fmt == AV_PIX_FMT_NONE
-#endif
-                    )
+                if (par->format == AV_PIX_FMT_NONE)
                      return 0;
                  break;
              case AVMEDIA_TYPE_UNKNOWN:
@@ -5268,11 +5125,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
                  val = 1;
                  break;
              }
-#if FF_API_LAVF_AVCTX
-            return match && ((par->codec_id != AV_CODEC_ID_NONE || codec->codec_id != 
AV_CODEC_ID_NONE) && val != 0);
-#else
              return match && (par->codec_id != AV_CODEC_ID_NONE && val != 0);
-#endif
          } else {
              return AVERROR(EINVAL);
          }
@@ -5684,15 +5537,8 @@ int avformat_transfer_internal_stream_timing_info(const 
AVOutputFormat *ofmt,
      const AVCodecContext *dec_ctx;
      AVCodecContext       *enc_ctx;
-#if FF_API_LAVF_AVCTX
-FF_DISABLE_DEPRECATION_WARNINGS
-    dec_ctx = ist->codec;
-    enc_ctx = ost->codec;
-FF_ENABLE_DEPRECATION_WARNINGS
-#else
      dec_ctx = ist->internal->avctx;
      enc_ctx = ost->internal->avctx;
-#endif
enc_ctx->time_base = ist->time_base;
      /*
@@ -5748,13 +5594,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
  AVRational av_stream_get_codec_timebase(const AVStream *st)
  {
      // See avformat_transfer_internal_stream_timing_info() TODO.
-#if FF_API_LAVF_AVCTX
-FF_DISABLE_DEPRECATION_WARNINGS
-    return st->codec->time_base;
-FF_ENABLE_DEPRECATION_WARNINGS
-#else
      return st->internal->avctx->time_base;
-#endif
  }
void ff_format_set_url(AVFormatContext *s, char *url)
_______________________________________________
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".


_______________________________________________
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