mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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.
This commit is contained in:
parent
c7904af057
commit
af607b7e07
@ -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));
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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(HuffYUVDSPContext *c, enum AVPixelFormat pix_fmt);
|
||||||
void ff_huffyuvdsp_init_x86(HuffYUVDSPContext *c, AVCodecContext *avctx);
|
void ff_huffyuvdsp_init_x86(HuffYUVDSPContext *c, enum AVPixelFormat pix_fmt);
|
||||||
|
|
||||||
#endif /* AVCODEC_HUFFYUVDSP_H */
|
#endif /* AVCODEC_HUFFYUVDSP_H */
|
||||||
|
@ -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…
Reference in New Issue
Block a user