mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
alpha/me_cmp: move code out of dsputil
Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
95a2d705cd
commit
277e5ca617
@ -1,7 +1,6 @@
|
||||
OBJS-$(CONFIG_BLOCKDSP) += alpha/blockdsp_alpha.o
|
||||
OBJS-$(CONFIG_DSPUTIL) += alpha/dsputil_alpha.o \
|
||||
alpha/motion_est_alpha.o \
|
||||
alpha/motion_est_mvi_asm.o
|
||||
OBJS-$(CONFIG_ME_CMP) += alpha/me_cmp_alpha.o \
|
||||
alpha/me_cmp_mvi_asm.o
|
||||
OBJS-$(CONFIG_HPELDSP) += alpha/hpeldsp_alpha.o \
|
||||
alpha/hpeldsp_alpha_asm.o
|
||||
OBJS-$(CONFIG_IDCTDSP) += alpha/idctdsp_alpha.o \
|
||||
|
@ -1,40 +0,0 @@
|
||||
/*
|
||||
* Alpha optimized DSP utils
|
||||
* Copyright (c) 2002 Falk Hueffner <falk@debian.org>
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include "libavutil/attributes.h"
|
||||
#include "libavcodec/dsputil.h"
|
||||
#include "dsputil_alpha.h"
|
||||
#include "asm.h"
|
||||
|
||||
av_cold void ff_dsputil_init_alpha(DSPContext *c, AVCodecContext *avctx)
|
||||
{
|
||||
/* amask clears all bits that correspond to present features. */
|
||||
if (amask(AMASK_MVI) == 0) {
|
||||
c->sad[0] = pix_abs16x16_mvi_asm;
|
||||
c->sad[1] = pix_abs8x8_mvi;
|
||||
c->pix_abs[0][0] = pix_abs16x16_mvi_asm;
|
||||
c->pix_abs[1][0] = pix_abs8x8_mvi;
|
||||
c->pix_abs[0][1] = pix_abs16x16_x2_mvi;
|
||||
c->pix_abs[0][2] = pix_abs16x16_y2_mvi;
|
||||
c->pix_abs[0][3] = pix_abs16x16_xy2_mvi;
|
||||
}
|
||||
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
/*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVCODEC_ALPHA_DSPUTIL_ALPHA_H
|
||||
#define AVCODEC_ALPHA_DSPUTIL_ALPHA_H
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
int pix_abs8x8_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h);
|
||||
int pix_abs16x16_mvi_asm(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h);
|
||||
int pix_abs16x16_x2_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h);
|
||||
int pix_abs16x16_y2_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h);
|
||||
int pix_abs16x16_xy2_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h);
|
||||
|
||||
|
||||
#endif /* AVCODEC_ALPHA_DSPUTIL_ALPHA_H */
|
@ -19,9 +19,12 @@
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include "dsputil_alpha.h"
|
||||
#include "libavutil/attributes.h"
|
||||
#include "libavcodec/me_cmp.h"
|
||||
#include "asm.h"
|
||||
|
||||
int pix_abs16x16_mvi_asm(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h);
|
||||
|
||||
static inline uint64_t avg2(uint64_t a, uint64_t b)
|
||||
{
|
||||
return (a | b) - (((a ^ b) & BYTE_VEC(0xfe)) >> 1);
|
||||
@ -41,7 +44,7 @@ static inline uint64_t avg4(uint64_t l1, uint64_t l2, uint64_t l3, uint64_t l4)
|
||||
return r1 + r2;
|
||||
}
|
||||
|
||||
int pix_abs8x8_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
|
||||
static int pix_abs8x8_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
|
||||
{
|
||||
int result = 0;
|
||||
|
||||
@ -116,7 +119,7 @@ int pix_abs16x16_mvi(uint8_t *pix1, uint8_t *pix2, int line_size)
|
||||
}
|
||||
#endif
|
||||
|
||||
int pix_abs16x16_x2_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
|
||||
static int pix_abs16x16_x2_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
|
||||
{
|
||||
int result = 0;
|
||||
uint64_t disalign = (size_t) pix2 & 0x7;
|
||||
@ -189,7 +192,7 @@ int pix_abs16x16_x2_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, in
|
||||
return result;
|
||||
}
|
||||
|
||||
int pix_abs16x16_y2_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
|
||||
static int pix_abs16x16_y2_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
|
||||
{
|
||||
int result = 0;
|
||||
|
||||
@ -242,7 +245,7 @@ int pix_abs16x16_y2_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, in
|
||||
return result;
|
||||
}
|
||||
|
||||
int pix_abs16x16_xy2_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
|
||||
static int pix_abs16x16_xy2_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h)
|
||||
{
|
||||
int result = 0;
|
||||
|
||||
@ -298,3 +301,17 @@ int pix_abs16x16_xy2_mvi(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, i
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
av_cold void ff_me_cmp_init_alpha(MECmpContext *c, AVCodecContext *avctx)
|
||||
{
|
||||
/* amask clears all bits that correspond to present features. */
|
||||
if (amask(AMASK_MVI) == 0) {
|
||||
c->sad[0] = pix_abs16x16_mvi_asm;
|
||||
c->sad[1] = pix_abs8x8_mvi;
|
||||
c->pix_abs[0][0] = pix_abs16x16_mvi_asm;
|
||||
c->pix_abs[1][0] = pix_abs8x8_mvi;
|
||||
c->pix_abs[0][1] = pix_abs16x16_x2_mvi;
|
||||
c->pix_abs[0][2] = pix_abs16x16_y2_mvi;
|
||||
c->pix_abs[0][3] = pix_abs16x16_xy2_mvi;
|
||||
}
|
||||
}
|
@ -19,7 +19,6 @@
|
||||
*/
|
||||
|
||||
#include "libavutil/attributes.h"
|
||||
#include "libavcodec/dsputil.h"
|
||||
#include "libavcodec/pixblockdsp.h"
|
||||
#include "asm.h"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user