avcodec: loongson optimized idctdsp with mmi
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
dcd14db806
commit
0bfa176c64
@ -61,3 +61,4 @@ MMI-OBJS-$(CONFIG_H264DSP) += mips/h264dsp_mmi.o
|
||||
MMI-OBJS-$(CONFIG_H264CHROMA) += mips/h264chroma_mmi.o
|
||||
MMI-OBJS-$(CONFIG_H264PRED) += mips/h264pred_mmi.o
|
||||
MMI-OBJS-$(CONFIG_MPEGVIDEO) += mips/mpegvideo_mmi.o
|
||||
MMI-OBJS-$(CONFIG_IDCTDSP) += mips/idctdsp_mmi.o
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Manojkumar Bhosale (Manojkumar.Bhosale@imgtec.com)
|
||||
* Zhou Xiaoyong <zhouxiaoyong@loongson.cn>
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
@ -40,10 +41,33 @@ static av_cold void idctdsp_init_msa(IDCTDSPContext *c, AVCodecContext *avctx,
|
||||
}
|
||||
#endif // #if HAVE_MSA
|
||||
|
||||
#if HAVE_MMI
|
||||
static av_cold void idctdsp_init_mmi(IDCTDSPContext *c, AVCodecContext *avctx,
|
||||
unsigned high_bit_depth)
|
||||
{
|
||||
if ((avctx->lowres != 1) && (avctx->lowres != 2) && (avctx->lowres != 3) &&
|
||||
(avctx->bits_per_raw_sample != 10) &&
|
||||
(avctx->bits_per_raw_sample != 12) &&
|
||||
(avctx->idct_algo == FF_IDCT_AUTO)) {
|
||||
c->idct_put = ff_simple_idct_put_mmi;
|
||||
c->idct_add = ff_simple_idct_add_mmi;
|
||||
c->idct = ff_simple_idct_mmi;
|
||||
c->perm_type = FF_IDCT_PERM_NONE;
|
||||
}
|
||||
|
||||
c->put_pixels_clamped = ff_put_pixels_clamped_mmi;
|
||||
c->add_pixels_clamped = ff_add_pixels_clamped_mmi;
|
||||
c->put_signed_pixels_clamped = ff_put_signed_pixels_clamped_mmi;
|
||||
}
|
||||
#endif /* HAVE_MMI */
|
||||
|
||||
void ff_idctdsp_init_mips(IDCTDSPContext *c, AVCodecContext *avctx,
|
||||
unsigned high_bit_depth)
|
||||
{
|
||||
#if HAVE_MSA
|
||||
idctdsp_init_msa(c, avctx, high_bit_depth);
|
||||
#endif // #if HAVE_MSA
|
||||
#if HAVE_MMI
|
||||
idctdsp_init_mmi(c, avctx, high_bit_depth);
|
||||
#endif /* HAVE_MMI */
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Manojkumar Bhosale (Manojkumar.Bhosale@imgtec.com)
|
||||
* Zhou Xiaoyong <zhouxiaoyong@loongson.cn>
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
@ -39,4 +40,14 @@ void ff_simple_idct_msa(int16_t *block);
|
||||
void ff_simple_idct_put_msa(uint8_t *dest, int32_t stride_dst, int16_t *block);
|
||||
void ff_simple_idct_add_msa(uint8_t *dest, int32_t stride_dst, int16_t *block);
|
||||
|
||||
void ff_put_pixels_clamped_mmi(const int16_t *block,
|
||||
uint8_t *av_restrict pixels, ptrdiff_t line_size);
|
||||
void ff_put_signed_pixels_clamped_mmi(const int16_t *block,
|
||||
uint8_t *av_restrict pixels, ptrdiff_t line_size);
|
||||
void ff_add_pixels_clamped_mmi(const int16_t *block,
|
||||
uint8_t *av_restrict pixels, ptrdiff_t line_size);
|
||||
void ff_simple_idct_mmi(int16_t *block);
|
||||
void ff_simple_idct_put_mmi(uint8_t *dest, int32_t line_size, int16_t *block);
|
||||
void ff_simple_idct_add_mmi(uint8_t *dest, int32_t line_size, int16_t *block);
|
||||
|
||||
#endif // #ifndef AVCODEC_MIPS_IDCTDSP_MIPS_H
|
||||
|
1003
libavcodec/mips/idctdsp_mmi.c
Normal file
1003
libavcodec/mips/idctdsp_mmi.c
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user