FFmpeg
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
Functions
Variables
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
c
d
g
h
i
o
q
r
s
v
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
Enumerator
a
d
e
f
h
i
j
l
m
n
p
r
s
v
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
l
m
o
p
q
r
s
t
u
v
w
x
y
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
libavfilter
x86
vf_transpose_init.c
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2019 Paul B Mahol
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
21
#include "
libavutil/attributes.h
"
22
#include "
libavutil/cpu.h
"
23
#include "
libavutil/x86/asm.h
"
24
#include "
libavutil/x86/cpu.h
"
25
#include "
libavfilter/transpose.h
"
26
27
void
ff_transpose_8x8_8_sse2
(uint8_t *
src
,
28
ptrdiff_t src_linesize,
29
uint8_t *
dst
,
30
ptrdiff_t dst_linesize);
31
32
void
ff_transpose_8x8_16_sse2
(uint8_t *
src
,
33
ptrdiff_t src_linesize,
34
uint8_t *
dst
,
35
ptrdiff_t dst_linesize);
36
37
av_cold
void
ff_transpose_init_x86
(
TransVtable
*v,
int
pixstep)
38
{
39
int
cpu_flags
=
av_get_cpu_flags
();
40
41
if
(
EXTERNAL_SSE2
(
cpu_flags
) && pixstep == 1) {
42
v->
transpose_8x8
=
ff_transpose_8x8_8_sse2
;
43
}
44
45
if
(
EXTERNAL_SSE2
(
cpu_flags
) && pixstep == 2) {
46
v->
transpose_8x8
=
ff_transpose_8x8_16_sse2
;
47
}
48
}
cpu.h
av_get_cpu_flags
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
Definition:
cpu.c:109
cpu_flags
static atomic_int cpu_flags
Definition:
cpu.c:56
ff_transpose_init_x86
av_cold void ff_transpose_init_x86(TransVtable *v, int pixstep)
Definition:
vf_transpose_init.c:37
av_cold
#define av_cold
Definition:
attributes.h:90
TransVtable
Definition:
transpose.h:40
ff_transpose_8x8_8_sse2
void ff_transpose_8x8_8_sse2(uint8_t *src, ptrdiff_t src_linesize, uint8_t *dst, ptrdiff_t dst_linesize)
asm.h
dst
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
Definition:
dsp.h:83
cpu.h
attributes.h
EXTERNAL_SSE2
#define EXTERNAL_SSE2(flags)
Definition:
cpu.h:59
transpose.h
ff_transpose_8x8_16_sse2
void ff_transpose_8x8_16_sse2(uint8_t *src, ptrdiff_t src_linesize, uint8_t *dst, ptrdiff_t dst_linesize)
TransVtable::transpose_8x8
void(* transpose_8x8)(uint8_t *src, ptrdiff_t src_linesize, uint8_t *dst, ptrdiff_t dst_linesize)
Definition:
transpose.h:41
src
#define src
Definition:
vp8dsp.c:248
Generated on Sun Mar 23 2025 19:22:41 for FFmpeg by
1.8.17