mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avcodec/svq1enc: Move initializing DSP out of svq1enc.c
Otherwise svq1enc.o gets pulled in by the svq1encdsp checkasm test and it in turn pulls the rest of lavc in. Besides being bad size-wise this also has the downside that it pulls in avpriv_(cga|vga16)_font from libavutil which are marked as being imported from another library when building libavcodec as a DLL and this breaks checkasm because it links both lavc and lavu statically. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
parent
88b3b09afa
commit
4460cb485b
@ -137,16 +137,6 @@ static void svq1_write_header(SVQ1EncContext *s, PutBitContext *pb, int frame_ty
|
||||
#define QUALITY_THRESHOLD 100
|
||||
#define THRESHOLD_MULTIPLIER 0.6
|
||||
|
||||
static int ssd_int8_vs_int16_c(const int8_t *pix1, const int16_t *pix2,
|
||||
intptr_t size)
|
||||
{
|
||||
int score = 0, i;
|
||||
|
||||
for (i = 0; i < size; i++)
|
||||
score += (pix1[i] - pix2[i]) * (pix1[i] - pix2[i]);
|
||||
return score;
|
||||
}
|
||||
|
||||
static int encode_block(SVQ1EncContext *s, uint8_t *src, uint8_t *ref,
|
||||
uint8_t *decoded, int stride, unsigned level,
|
||||
int threshold, int lambda, int intra)
|
||||
@ -760,16 +750,3 @@ const FFCodec ff_svq1_encoder = {
|
||||
AV_PIX_FMT_NONE },
|
||||
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
|
||||
};
|
||||
|
||||
void ff_svq1enc_init(SVQ1EncDSPContext *c)
|
||||
{
|
||||
c->ssd_int8_vs_int16 = ssd_int8_vs_int16_c;
|
||||
|
||||
#if ARCH_PPC
|
||||
ff_svq1enc_init_ppc(c);
|
||||
#elif ARCH_RISCV
|
||||
ff_svq1enc_init_riscv(c);
|
||||
#elif ARCH_X86
|
||||
ff_svq1enc_init_x86(c);
|
||||
#endif
|
||||
}
|
||||
|
@ -23,14 +23,38 @@
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "config.h"
|
||||
|
||||
typedef struct SVQ1EncDSPContext {
|
||||
int (*ssd_int8_vs_int16)(const int8_t *pix1, const int16_t *pix2,
|
||||
intptr_t size);
|
||||
} SVQ1EncDSPContext;
|
||||
|
||||
void ff_svq1enc_init(SVQ1EncDSPContext *c);
|
||||
void ff_svq1enc_init_ppc(SVQ1EncDSPContext *c);
|
||||
void ff_svq1enc_init_riscv(SVQ1EncDSPContext *c);
|
||||
void ff_svq1enc_init_x86(SVQ1EncDSPContext *c);
|
||||
|
||||
static int ssd_int8_vs_int16_c(const int8_t *pix1, const int16_t *pix2,
|
||||
intptr_t size)
|
||||
{
|
||||
int score = 0;
|
||||
|
||||
for (intptr_t i = 0; i < size; i++)
|
||||
score += (pix1[i] - pix2[i]) * (pix1[i] - pix2[i]);
|
||||
return score;
|
||||
}
|
||||
|
||||
static inline void ff_svq1enc_init(SVQ1EncDSPContext *c)
|
||||
{
|
||||
c->ssd_int8_vs_int16 = ssd_int8_vs_int16_c;
|
||||
|
||||
#if ARCH_PPC
|
||||
ff_svq1enc_init_ppc(c);
|
||||
#elif ARCH_RISCV
|
||||
ff_svq1enc_init_riscv(c);
|
||||
#elif ARCH_X86
|
||||
ff_svq1enc_init_x86(c);
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* AVCODEC_SVQ1ENCDSP_H */
|
||||
|
Loading…
Reference in New Issue
Block a user