diff --git a/libavcodec/huffyuvdec.c b/libavcodec/huffyuvdec.c index c68eadd933..5572b9819f 100644 --- a/libavcodec/huffyuvdec.c +++ b/libavcodec/huffyuvdec.c @@ -297,7 +297,7 @@ static av_cold int decode_init(AVCodecContext *avctx) if (ret < 0) return ret; - ff_huffyuvdsp_init(&s->hdsp, avctx); + ff_huffyuvdsp_init(&s->hdsp, avctx->pix_fmt); ff_llviddsp_init(&s->llviddsp); memset(s->vlc, 0, 4 * sizeof(VLC)); diff --git a/libavcodec/huffyuvdsp.c b/libavcodec/huffyuvdsp.c index e770923bb2..7b865fe40c 100644 --- a/libavcodec/huffyuvdsp.c +++ b/libavcodec/huffyuvdsp.c @@ -80,12 +80,12 @@ static void add_hfyu_left_pred_bgr32_c(uint8_t *dst, const uint8_t *src, left[A] = a; } -av_cold void ff_huffyuvdsp_init(HuffYUVDSPContext *c, AVCodecContext *avctx) +av_cold void ff_huffyuvdsp_init(HuffYUVDSPContext *c, enum AVPixelFormat pix_fmt) { c->add_int16 = add_int16_c; c->add_hfyu_median_pred_int16 = add_hfyu_median_pred_int16_c; c->add_hfyu_left_pred_bgr32 = add_hfyu_left_pred_bgr32_c; if (ARCH_X86) - ff_huffyuvdsp_init_x86(c, avctx); + ff_huffyuvdsp_init_x86(c, pix_fmt); } diff --git a/libavcodec/huffyuvdsp.h b/libavcodec/huffyuvdsp.h index f9af09e602..e5f5b05466 100644 --- a/libavcodec/huffyuvdsp.h +++ b/libavcodec/huffyuvdsp.h @@ -20,8 +20,8 @@ #define AVCODEC_HUFFYUVDSP_H #include +#include "libavutil/pixfmt.h" #include "config.h" -#include "avcodec.h" #if HAVE_BIGENDIAN #define B 3 @@ -46,7 +46,7 @@ typedef struct HuffYUVDSPContext { intptr_t w, uint8_t *left); } HuffYUVDSPContext; -void ff_huffyuvdsp_init(HuffYUVDSPContext *c, AVCodecContext *avctx); -void ff_huffyuvdsp_init_x86(HuffYUVDSPContext *c, AVCodecContext *avctx); +void ff_huffyuvdsp_init(HuffYUVDSPContext *c, enum AVPixelFormat pix_fmt); +void ff_huffyuvdsp_init_x86(HuffYUVDSPContext *c, enum AVPixelFormat pix_fmt); #endif /* AVCODEC_HUFFYUVDSP_H */ diff --git a/libavcodec/x86/huffyuvdsp_init.c b/libavcodec/x86/huffyuvdsp_init.c index f72d759ef2..26cf6214d8 100644 --- a/libavcodec/x86/huffyuvdsp_init.c +++ b/libavcodec/x86/huffyuvdsp_init.c @@ -34,10 +34,10 @@ void ff_add_hfyu_left_pred_bgr32_sse2(uint8_t *dst, const uint8_t *src, intptr_t w, uint8_t *left); void ff_add_hfyu_median_pred_int16_mmxext(uint16_t *dst, const uint16_t *top, const uint16_t *diff, unsigned mask, int w, int *left, int *left_top); -av_cold void ff_huffyuvdsp_init_x86(HuffYUVDSPContext *c, AVCodecContext *avctx) +av_cold void ff_huffyuvdsp_init_x86(HuffYUVDSPContext *c, enum AVPixelFormat pix_fmt) { int cpu_flags = av_get_cpu_flags(); - const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(avctx->pix_fmt); + const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(pix_fmt); if (ARCH_X86_32 && EXTERNAL_MMX(cpu_flags)) { c->add_hfyu_left_pred_bgr32 = ff_add_hfyu_left_pred_bgr32_mmx;