FFmpeg
Loading...
Searching...
No Matches
vf_removegrain_init.c
Go to the documentation of this file.
1/*
2 * Copyright (c) 2015 James Darnley
3 *
4 * This file is part of FFmpeg.
5 *
6 * FFmpeg is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * FFmpeg is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with FFmpeg; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
22#include "libavutil/cpu.h"
23#include "libavutil/x86/cpu.h"
25
26void ff_rg_fl_mode_1_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
27void ff_rg_fl_mode_10_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
28void ff_rg_fl_mode_11_12_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
29void ff_rg_fl_mode_13_14_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
30void ff_rg_fl_mode_19_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
31void ff_rg_fl_mode_20_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
32void ff_rg_fl_mode_21_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
33void ff_rg_fl_mode_22_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
34#if ARCH_X86_64
35void ff_rg_fl_mode_2_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
36void ff_rg_fl_mode_3_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
37void ff_rg_fl_mode_4_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
38void ff_rg_fl_mode_5_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
39void ff_rg_fl_mode_6_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
40void ff_rg_fl_mode_7_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
41void ff_rg_fl_mode_8_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
42void ff_rg_fl_mode_9_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
43void ff_rg_fl_mode_15_16_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
44void ff_rg_fl_mode_17_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
45void ff_rg_fl_mode_18_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
46void ff_rg_fl_mode_23_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
47void ff_rg_fl_mode_24_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels);
48#endif
49
51{
52#if CONFIG_GPL
54 int i;
55
56 for (i = 0; i < rg->nb_planes; i++) {
58 switch (rg->mode[i]) {
59 case 1: rg->fl[i] = ff_rg_fl_mode_1_sse2; break;
60 case 10: rg->fl[i] = ff_rg_fl_mode_10_sse2; break;
61 case 11: /* fall through */
62 case 12: rg->fl[i] = ff_rg_fl_mode_11_12_sse2; break;
63 case 13: /* fall through */
64 case 14: rg->fl[i] = ff_rg_fl_mode_13_14_sse2; break;
65 case 19: rg->fl[i] = ff_rg_fl_mode_19_sse2; break;
66 case 20: rg->fl[i] = ff_rg_fl_mode_20_sse2; break;
67 case 21: rg->fl[i] = ff_rg_fl_mode_21_sse2; break;
68 case 22: rg->fl[i] = ff_rg_fl_mode_22_sse2; break;
69#if ARCH_X86_64
70 case 2: rg->fl[i] = ff_rg_fl_mode_2_sse2; break;
71 case 3: rg->fl[i] = ff_rg_fl_mode_3_sse2; break;
72 case 4: rg->fl[i] = ff_rg_fl_mode_4_sse2; break;
73 case 5: rg->fl[i] = ff_rg_fl_mode_5_sse2; break;
74 case 6: rg->fl[i] = ff_rg_fl_mode_6_sse2; break;
75 case 7: rg->fl[i] = ff_rg_fl_mode_7_sse2; break;
76 case 8: rg->fl[i] = ff_rg_fl_mode_8_sse2; break;
77 case 9: rg->fl[i] = ff_rg_fl_mode_9_sse2; break;
78 case 15: /* fall through */
79 case 16: rg->fl[i] = ff_rg_fl_mode_15_16_sse2; break;
80 case 17: rg->fl[i] = ff_rg_fl_mode_17_sse2; break;
81 case 18: rg->fl[i] = ff_rg_fl_mode_18_sse2; break;
82 case 23: rg->fl[i] = ff_rg_fl_mode_23_sse2; break;
83 case 24: rg->fl[i] = ff_rg_fl_mode_24_sse2; break;
84#endif /* ARCH_x86_64 */
85 }
86 }
87#endif /* CONFIG_GPL */
88}
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
Definition dsp.h:87
#define i(width, name, range_min, range_max)
Definition cbs_h264.c:63
Macro definitions for various function/variable attributes.
#define av_cold
Definition attributes.h:117
static atomic_int cpu_flags
Definition cpu.c:56
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
Definition cpu.c:109
#define EXTERNAL_SSE2(flags)
Definition cpu.h:53
void(* fl[4])(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels)
Definition removegrain.h:40
#define stride
#define src
Definition vp8dsp.c:248
void ff_rg_fl_mode_21_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels)
void ff_rg_fl_mode_22_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels)
void ff_rg_fl_mode_10_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels)
void ff_rg_fl_mode_19_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels)
void ff_rg_fl_mode_20_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels)
void ff_rg_fl_mode_1_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels)
av_cold void ff_removegrain_init_x86(RemoveGrainContext *rg)
void ff_rg_fl_mode_13_14_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels)
void ff_rg_fl_mode_11_12_sse2(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int pixels)