OLD | NEW |
1 /* | 1 /* |
2 * idct_mmx.c | 2 * idct_mmx.c |
3 * Copyright (C) 1999-2001 Aaron Holtzman <aholtzma@ess.engr.uvic.ca> | 3 * Copyright (C) 1999-2001 Aaron Holtzman <aholtzma@ess.engr.uvic.ca> |
4 * | 4 * |
5 * This file is part of mpeg2dec, a free MPEG-2 video stream decoder. | 5 * This file is part of mpeg2dec, a free MPEG-2 video stream decoder. |
6 * See http://libmpeg2.sourceforge.net/ for updates. | 6 * See http://libmpeg2.sourceforge.net/ for updates. |
7 * | 7 * |
8 * mpeg2dec is free software; you can redistribute it and/or modify | 8 * mpeg2dec is free software; you can redistribute it and/or modify |
9 * it under the terms of the GNU General Public License as published by | 9 * it under the terms of the GNU General Public License as published by |
10 * the Free Software Foundation; either version 2 of the License, or | 10 * the Free Software Foundation; either version 2 of the License, or |
11 * (at your option) any later version. | 11 * (at your option) any later version. |
12 * | 12 * |
13 * mpeg2dec is distributed in the hope that it will be useful, | 13 * mpeg2dec is distributed in the hope that it will be useful, |
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 * GNU General Public License for more details. | 16 * GNU General Public License for more details. |
17 * | 17 * |
18 * You should have received a copy of the GNU General Public License | 18 * You should have received a copy of the GNU General Public License |
19 * along with mpeg2dec; if not, write to the Free Software | 19 * along with mpeg2dec; if not, write to the Free Software |
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | 20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
21 */ | 21 */ |
22 | 22 |
23 #include "libavutil/common.h" | 23 #include "libavutil/common.h" |
24 #include "libavcodec/dsputil.h" | 24 #include "libavcodec/dsputil.h" |
25 | 25 |
| 26 #include "dsputil_mmx.h" |
26 #include "mmx.h" | 27 #include "mmx.h" |
27 | 28 |
28 #define ATTR_ALIGN(align) __attribute__ ((__aligned__ (align))) | 29 #define ATTR_ALIGN(align) __attribute__ ((__aligned__ (align))) |
29 | 30 |
30 #define ROW_SHIFT 11 | 31 #define ROW_SHIFT 11 |
31 #define COL_SHIFT 6 | 32 #define COL_SHIFT 6 |
32 | 33 |
33 #define round(bias) ((int)(((bias)+0.5) * (1<<ROW_SHIFT))) | 34 #define round(bias) ((int)(((bias)+0.5) * (1<<ROW_SHIFT))) |
34 #define rounder(bias) {round (bias), round (bias)} | 35 #define rounder(bias) {round (bias), round (bias)} |
35 | 36 |
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
587 idct_row_mid (block, 6*8, 3*8, table35); \ | 588 idct_row_mid (block, 6*8, 3*8, table35); \ |
588 idct_row (table35, rounder3); \ | 589 idct_row (table35, rounder3); \ |
589 idct_row_mid (block, 3*8, 5*8, table35); \ | 590 idct_row_mid (block, 3*8, 5*8, table35); \ |
590 idct_row (table35, rounder5); \ | 591 idct_row (table35, rounder5); \ |
591 idct_row_tail (block, 5*8); \ | 592 idct_row_tail (block, 5*8); \ |
592 \ | 593 \ |
593 idct_col (block, 0); \ | 594 idct_col (block, 0); \ |
594 idct_col (block, 4); \ | 595 idct_col (block, 4); \ |
595 } | 596 } |
596 | 597 |
597 void ff_mmx_idct(DCTELEM *block); | |
598 void ff_mmxext_idct(DCTELEM *block); | |
599 | |
600 declare_idct (ff_mmxext_idct, mmxext_table, | 598 declare_idct (ff_mmxext_idct, mmxext_table, |
601 mmxext_row_head, mmxext_row, mmxext_row_tail, mmxext_row_mid) | 599 mmxext_row_head, mmxext_row, mmxext_row_tail, mmxext_row_mid) |
602 | 600 |
603 declare_idct (ff_mmx_idct, mmx_table, | 601 declare_idct (ff_mmx_idct, mmx_table, |
604 mmx_row_head, mmx_row, mmx_row_tail, mmx_row_mid) | 602 mmx_row_head, mmx_row, mmx_row_tail, mmx_row_mid) |
605 | 603 |
OLD | NEW |