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
libavcodec
videodsp.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2012 Ronald S. Bultje
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
/**
22
* @file
23
* Core video DSP helper functions
24
*/
25
26
#ifndef AVCODEC_VIDEODSP_H
27
#define AVCODEC_VIDEODSP_H
28
29
#include <stddef.h>
30
#include <stdint.h>
31
32
#define EMULATED_EDGE(depth) \
33
void ff_emulated_edge_mc_ ## depth(uint8_t *dst, const uint8_t *src, \
34
ptrdiff_t dst_stride, ptrdiff_t src_stride, \
35
int block_w, int block_h,\
36
int src_x, int src_y, int w, int h);
37
38
EMULATED_EDGE
(8)
39
40
typedef struct
VideoDSPContext
{
41
/**
42
* Copy a rectangular area of samples to a temporary buffer and replicate
43
* the border samples.
44
*
45
* @param dst destination buffer
46
* @param dst_stride number of bytes between 2 vertically adjacent samples
47
* in destination buffer
48
* @param src source buffer
49
* @param dst_linesize number of bytes between 2 vertically adjacent
50
* samples in the destination buffer
51
* @param src_linesize number of bytes between 2 vertically adjacent
52
* samples in both the source buffer
53
* @param block_w width of block
54
* @param block_h height of block
55
* @param src_x x coordinate of the top left sample of the block in the
56
* source buffer
57
* @param src_y y coordinate of the top left sample of the block in the
58
* source buffer
59
* @param w width of the source buffer
60
* @param h height of the source buffer
61
*/
62
void (*emulated_edge_mc)(uint8_t *dst,
const
uint8_t *
src
,
63
ptrdiff_t dst_linesize,
64
ptrdiff_t src_linesize,
65
int
block_w,
int
block_h,
66
int
src_x,
int
src_y,
int
w
,
int
h
);
67
68
/**
69
* Prefetch memory into cache (if supported by hardware).
70
*
71
* @param buf pointer to buffer to prefetch memory from
72
* @param stride distance between two lines of buf (in bytes)
73
* @param h number of lines to prefetch
74
*/
75
void (*
prefetch
)(
const
uint8_t *buf, ptrdiff_t
stride
,
int
h
);
76
}
VideoDSPContext
;
77
78
void
ff_videodsp_init
(
VideoDSPContext
*
ctx
,
int
bpc);
79
80
/* for internal use only (i.e. called by ff_videodsp_init() */
81
void
ff_videodsp_init_aarch64
(
VideoDSPContext
*
ctx
,
int
bpc);
82
void
ff_videodsp_init_arm
(
VideoDSPContext
*
ctx
,
int
bpc);
83
void
ff_videodsp_init_ppc
(
VideoDSPContext
*
ctx
,
int
bpc);
84
void
ff_videodsp_init_x86
(
VideoDSPContext
*
ctx
,
int
bpc);
85
void
ff_videodsp_init_mips
(
VideoDSPContext
*
ctx
,
int
bpc);
86
void
ff_videodsp_init_loongarch
(
VideoDSPContext
*
ctx
,
int
bpc);
87
88
#endif
/* AVCODEC_VIDEODSP_H */
w
uint8_t w
Definition:
llviddspenc.c:38
ff_videodsp_init_arm
void ff_videodsp_init_arm(VideoDSPContext *ctx, int bpc)
Definition:
videodsp_init_arm.c:26
ff_videodsp_init_loongarch
void ff_videodsp_init_loongarch(VideoDSPContext *ctx, int bpc)
Definition:
videodsp_init.c:42
ff_videodsp_init_x86
void ff_videodsp_init_x86(VideoDSPContext *ctx, int bpc)
Definition:
videodsp_init.c:220
ff_videodsp_init_mips
void ff_videodsp_init_mips(VideoDSPContext *ctx, int bpc)
Definition:
videodsp_init.c:45
ctx
AVFormatContext * ctx
Definition:
movenc.c:48
prefetch
#define prefetch(p)
Definition:
asm.h:103
ff_videodsp_init_ppc
void ff_videodsp_init_ppc(VideoDSPContext *ctx, int bpc)
Definition:
videodsp.c:33
ff_videodsp_init_aarch64
void ff_videodsp_init_aarch64(VideoDSPContext *ctx, int bpc)
Definition:
videodsp_init.c:26
EMULATED_EDGE
#define EMULATED_EDGE(depth)
Definition:
videodsp.h:32
stride
#define stride
Definition:
h264pred_template.c:537
VideoDSPContext
Definition:
videodsp.h:40
src
INIT_CLIP pixel * src
Definition:
h264pred_template.c:418
h
h
Definition:
vp9dsp_template.c:2038
ff_videodsp_init
void ff_videodsp_init(VideoDSPContext *ctx, int bpc)
Definition:
videodsp.c:39
Generated on Thu Apr 18 2024 22:42:12 for FFmpeg by
1.8.17