[FFmpeg-devel] [PATCH 1/2] avcodec: loongson add constant definition

周晓勇 zhouxiaoyong at loongson.cn
Thu Jul 16 09:06:27 CEST 2015


>From 2e7ab3de30e342a42f00fe85ba3e70c350b05f6f Mon Sep 17 00:00:00 2001
From: ZhouXiaoyong <zhouxiaoyong at loongson.cn>
Date: Thu, 16 Jul 2015 13:22:06 +0800
Subject: [PATCH 1/2] avcodec: loongson add constant definition


Signed-off-by: ZhouXiaoyong <zhouxiaoyong at loongson.cn>
---
 libavcodec/mips/Makefile    |  1 +
 libavcodec/mips/constants.c | 53 ++++++++++++++++++++++++++++++++++++++++++
 libavcodec/mips/constants.h | 56 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 110 insertions(+)


diff --git a/libavcodec/mips/Makefile b/libavcodec/mips/Makefile
index 9eb815a..93ac2dc 100644
--- a/libavcodec/mips/Makefile
+++ b/libavcodec/mips/Makefile
@@ -56,6 +56,7 @@ MSA-OBJS-$(CONFIG_IDCTDSP)                += mips/idctdsp_msa.o           \
 MSA-OBJS-$(CONFIG_MPEGVIDEO)              += mips/mpegvideo_msa.o
 MSA-OBJS-$(CONFIG_MPEGVIDEOENC)           += mips/mpegvideoencdsp_msa.o
 MSA-OBJS-$(CONFIG_ME_CMP)                 += mips/me_cmp_msa.o
+MMI-OBJS                                  += mips/constants.o
 MMI-OBJS-$(CONFIG_H264DSP)                += mips/h264dsp_mmi.o
 MMI-OBJS-$(CONFIG_H264CHROMA)             += mips/h264chroma_mmi.o
 MMI-OBJS-$(CONFIG_H264PRED)               += mips/h264pred_mmi.o
diff --git a/libavcodec/mips/constants.c b/libavcodec/mips/constants.c
new file mode 100644
index 0000000..135b9d4
--- /dev/null
+++ b/libavcodec/mips/constants.c
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2015 Loongson Technology Corporation Limited
+ * Copyright (c) 2015 Zhou Xiaoyong <zhouxiaoyong at loongson.cn>
+ *
+ * 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 "config.h"
+#include "libavutil/mem.h"
+#include "constants.h"
+
+const uint64_t __attribute__ ((aligned(8))) ff_pw_1 =       {0x0001000100010001ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_4 =       {0x0004000400040004ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_5 =       {0x0005000500050005ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_3 =       {0x0003000300030003ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_8 =       {0x0008000800080008ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_9 =       {0x0009000900090009ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_16 =      {0x0010001000100010ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_18 =      {0x0012001200120012ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_28 =      {0x001C001C001C001CULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_32 =      {0x0020002000200020ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_53 =      {0x0035003500350035ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_64 =      {0x0040004000400040ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_128 =     {0x0080008000800080ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_m8tom5 =  {0xFFFBFFFAFFF9FFF8ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_m4tom1 =  {0xFFFFFFFEFFFDFFFCULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_1to4 =    {0x0004000300020001ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_5to8 =    {0x0008000700060005ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_0to3 =    {0x0003000200010000ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pw_4to7 =    {0x0007000600050004ULL};
+
+const uint64_t __attribute__ ((aligned(8))) ff_pb_1 =       {0x0101010101010101ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pb_3 =       {0x0303030303030303ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pb_80 =      {0x8080808080808080ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_pb_A1 =      {0xA1A1A1A1A1A1A1A1ULL};
+
+const uint64_t __attribute__ ((aligned(8))) ff_rnd =        {0x0004000400040004ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_rnd2 =       {0x0040004000400040ULL};
+const uint64_t __attribute__ ((aligned(8))) ff_rnd3 =       {0x0020002000200020ULL};
diff --git a/libavcodec/mips/constants.h b/libavcodec/mips/constants.h
new file mode 100644
index 0000000..26b19f0
--- /dev/null
+++ b/libavcodec/mips/constants.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2015 Loongson Technology Corporation Limited
+ * Copyright (c) 2015 Zhou Xiaoyong <zhouxiaoyong at loongson.cn>
+ *
+ * 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_MIPS_CONSTANTS_H
+#define AVCODEC_MIPS_CONSTANTS_H
+
+#include <stdint.h>
+
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_1;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_3;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_4;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_5;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_8;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_9;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_16;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_18;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_28;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_32;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_53;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_64;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_128;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_m8tom5;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_m4tom1;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_1to4;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_5to8;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_0to3;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pw_4to7;
+
+extern const uint64_t __attribute__ ((aligned(8))) ff_pb_1;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pb_3;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pb_80;
+extern const uint64_t __attribute__ ((aligned(8))) ff_pb_A1;
+
+extern const uint64_t __attribute__ ((aligned(8))) ff_rnd;
+extern const uint64_t __attribute__ ((aligned(8))) ff_rnd2;
+extern const uint64_t __attribute__ ((aligned(8))) ff_rnd3;
+
+#endif /* AVCODEC_MIPS_CONSTANTS_H */
-- 
2.1.0



More information about the ffmpeg-devel mailing list