diff options
author | 周晓勇 <zhouxiaoyong@loongson.cn> | 2015-07-16 15:07:14 +0800 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2015-07-16 14:27:53 +0200 |
commit | 0bfa176c64c228435e832d4e5ebee974c23d8256 (patch) | |
tree | 3943db3e1bbfe7885c260ede4ef39a1b57d49e27 /libavcodec/mips/idctdsp_init_mips.c | |
parent | dcd14db80670866377a880cb3e03c372c5b2ebd5 (diff) |
avcodec: loongson optimized idctdsp with mmi
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/mips/idctdsp_init_mips.c')
-rw-r--r-- | libavcodec/mips/idctdsp_init_mips.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libavcodec/mips/idctdsp_init_mips.c b/libavcodec/mips/idctdsp_init_mips.c index c964340869..3d2192e273 100644 --- a/libavcodec/mips/idctdsp_init_mips.c +++ b/libavcodec/mips/idctdsp_init_mips.c @@ -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 */ } |