Browse Source

lavc/huffyuvdsp: only transmit the pix_fmt instead of the whole avctx

Only the pixel format is required in that init function. This will also
simplify the incoming merge.
tags/n3.3
Clément Bœsch 8 years ago
parent
commit
af607b7e07
4 changed files with 8 additions and 8 deletions
  1. +1
    -1
      libavcodec/huffyuvdec.c
  2. +2
    -2
      libavcodec/huffyuvdsp.c
  3. +3
    -3
      libavcodec/huffyuvdsp.h
  4. +2
    -2
      libavcodec/x86/huffyuvdsp_init.c

+ 1
- 1
libavcodec/huffyuvdec.c View File

@@ -297,7 +297,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
if (ret < 0) if (ret < 0)
return ret; return ret;


ff_huffyuvdsp_init(&s->hdsp, avctx);
ff_huffyuvdsp_init(&s->hdsp, avctx->pix_fmt);
ff_llviddsp_init(&s->llviddsp); ff_llviddsp_init(&s->llviddsp);
memset(s->vlc, 0, 4 * sizeof(VLC)); memset(s->vlc, 0, 4 * sizeof(VLC));




+ 2
- 2
libavcodec/huffyuvdsp.c View File

@@ -80,12 +80,12 @@ static void add_hfyu_left_pred_bgr32_c(uint8_t *dst, const uint8_t *src,
left[A] = a; 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_int16 = add_int16_c;
c->add_hfyu_median_pred_int16 = add_hfyu_median_pred_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; c->add_hfyu_left_pred_bgr32 = add_hfyu_left_pred_bgr32_c;


if (ARCH_X86) if (ARCH_X86)
ff_huffyuvdsp_init_x86(c, avctx);
ff_huffyuvdsp_init_x86(c, pix_fmt);
} }

+ 3
- 3
libavcodec/huffyuvdsp.h View File

@@ -20,8 +20,8 @@
#define AVCODEC_HUFFYUVDSP_H #define AVCODEC_HUFFYUVDSP_H


#include <stdint.h> #include <stdint.h>
#include "libavutil/pixfmt.h"
#include "config.h" #include "config.h"
#include "avcodec.h"


#if HAVE_BIGENDIAN #if HAVE_BIGENDIAN
#define B 3 #define B 3
@@ -46,7 +46,7 @@ typedef struct HuffYUVDSPContext {
intptr_t w, uint8_t *left); intptr_t w, uint8_t *left);
} HuffYUVDSPContext; } 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 */ #endif /* AVCODEC_HUFFYUVDSP_H */

+ 2
- 2
libavcodec/x86/huffyuvdsp_init.c View File

@@ -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); 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); 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(); 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)) { if (ARCH_X86_32 && EXTERNAL_MMX(cpu_flags)) {
c->add_hfyu_left_pred_bgr32 = ff_add_hfyu_left_pred_bgr32_mmx; c->add_hfyu_left_pred_bgr32 = ff_add_hfyu_left_pred_bgr32_mmx;


Loading…
Cancel
Save