[FFmpeg-devel] [PATCH 06/18] lavc/dv: do not pass DVVideoContext to ff_dv_init_dynamic_tables()

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Wed Aug 24 15:28:42 EEST 2022


Anton Khirnov:
> It only needs work_chunks from it, so pass that directly.
> 
> This is done in preparation to splitting DVVideoContext.
> ---
>  libavcodec/dv.c    | 6 +++---
>  libavcodec/dv.h    | 2 +-
>  libavcodec/dvdec.c | 2 +-
>  libavcodec/dvenc.c | 2 +-
>  4 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/libavcodec/dv.c b/libavcodec/dv.c
> index 9e05aa8927..b5e54de5dd 100644
> --- a/libavcodec/dv.c
> +++ b/libavcodec/dv.c
> @@ -162,7 +162,7 @@ static inline void dv_calc_mb_coordinates(const AVDVProfile *d, int chan,
>      }
>  }
>  
> -int ff_dv_init_dynamic_tables(DVVideoContext *ctx, const AVDVProfile *d)
> +int ff_dv_init_dynamic_tables(DVwork_chunk *work_chunks, const AVDVProfile *d)
>  {
>      int j, i, c, s, p;
>  
> @@ -174,8 +174,8 @@ int ff_dv_init_dynamic_tables(DVVideoContext *ctx, const AVDVProfile *d)
>                  p += !(j % 3);
>                  if (!(DV_PROFILE_IS_1080i50(d) && c != 0 && s == 11) &&
>                      !(DV_PROFILE_IS_720p50(d) && s > 9)) {
> -                    dv_calc_mb_coordinates(d, c, s, j, &ctx->work_chunks[i].mb_coordinates[0]);
> -                    ctx->work_chunks[i++].buf_offset = p;
> +                    dv_calc_mb_coordinates(d, c, s, j, &work_chunks[i].mb_coordinates[0]);
> +                    work_chunks[i++].buf_offset = p;
>                  }
>                  p += 5;
>              }
> diff --git a/libavcodec/dv.h b/libavcodec/dv.h
> index 2b082d0140..286b267de2 100644
> --- a/libavcodec/dv.h
> +++ b/libavcodec/dv.h
> @@ -95,7 +95,7 @@ enum dv_pack_type {
>   */
>  #define DV_MAX_BPM 8
>  
> -int ff_dv_init_dynamic_tables(DVVideoContext *s, const AVDVProfile *d);
> +int ff_dv_init_dynamic_tables(DVwork_chunk *work_chunks, const AVDVProfile *d);
>  
>  static inline int dv_work_pool_size(const AVDVProfile *d)
>  {
> diff --git a/libavcodec/dvdec.c b/libavcodec/dvdec.c
> index daee2347e6..1e2c097ed0 100644
> --- a/libavcodec/dvdec.c
> +++ b/libavcodec/dvdec.c
> @@ -626,7 +626,7 @@ static int dvvideo_decode_frame(AVCodecContext *avctx, AVFrame *frame,
>      }
>  
>      if (sys != s->sys) {
> -        ret = ff_dv_init_dynamic_tables(s, sys);
> +        ret = ff_dv_init_dynamic_tables(s->work_chunks, sys);
>          if (ret < 0) {
>              av_log(avctx, AV_LOG_ERROR, "Error initializing the work tables.\n");
>              return ret;
> diff --git a/libavcodec/dvenc.c b/libavcodec/dvenc.c
> index 8027feb9b3..712ca325de 100644
> --- a/libavcodec/dvenc.c
> +++ b/libavcodec/dvenc.c
> @@ -67,7 +67,7 @@ static av_cold int dvvideo_encode_init(AVCodecContext *avctx)
>          return AVERROR(EINVAL);
>      }
>  
> -    ret = ff_dv_init_dynamic_tables(s, s->sys);
> +    ret = ff_dv_init_dynamic_tables(s->work_chunks, s->sys);
>      if (ret < 0) {
>          av_log(avctx, AV_LOG_ERROR, "Error initializing work tables.\n");
>          return ret;

LGTM.

- Andreas


More information about the ffmpeg-devel mailing list