FFmpeg
4.4.6
libavcodec
blockdsp.c
Go to the documentation of this file.
1
/*
2
* This file is part of FFmpeg.
3
*
4
* FFmpeg is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* FFmpeg is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with FFmpeg; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
19
#include <stdint.h>
20
#include <string.h>
21
22
#include "
config.h
"
23
#include "
libavutil/attributes.h
"
24
#include "
avcodec.h
"
25
#include "
blockdsp.h
"
26
#include "
version.h
"
27
28
static
void
clear_block_c
(int16_t *
block
)
29
{
30
memset(
block
, 0,
sizeof
(int16_t) * 64);
31
}
32
33
static
void
clear_blocks_c
(int16_t *blocks)
34
{
35
memset(blocks, 0,
sizeof
(int16_t) * 6 * 64);
36
}
37
38
static
void
fill_block16_c
(
uint8_t
*
block
,
uint8_t
value
, ptrdiff_t line_size,
39
int
h
)
40
{
41
int
i
;
42
43
for
(
i
= 0;
i
<
h
;
i
++) {
44
memset(
block
,
value
, 16);
45
block
+= line_size;
46
}
47
}
48
49
static
void
fill_block8_c
(
uint8_t
*
block
,
uint8_t
value
, ptrdiff_t line_size,
50
int
h
)
51
{
52
int
i
;
53
54
for
(
i
= 0;
i
<
h
;
i
++) {
55
memset(
block
,
value
, 8);
56
block
+= line_size;
57
}
58
}
59
60
av_cold
void
ff_blockdsp_init
(
BlockDSPContext
*
c
,
AVCodecContext
*avctx)
61
{
62
c
->clear_block =
clear_block_c
;
63
c
->clear_blocks =
clear_blocks_c
;
64
65
c
->fill_block_tab[0] =
fill_block16_c
;
66
c
->fill_block_tab[1] =
fill_block8_c
;
67
68
if
(
ARCH_ALPHA
)
69
ff_blockdsp_init_alpha
(
c
);
70
if
(
ARCH_ARM
)
71
ff_blockdsp_init_arm
(
c
);
72
if
(
ARCH_PPC
)
73
ff_blockdsp_init_ppc
(
c
);
74
if
(
ARCH_X86
)
75
ff_blockdsp_init_x86
(
c
, avctx);
76
if
(
ARCH_MIPS
)
77
ff_blockdsp_init_mips
(
c
);
78
}
attributes.h
Macro definitions for various function/variable attributes.
av_cold
#define av_cold
Definition:
attributes.h:88
uint8_t
uint8_t
Definition:
audio_convert.c:194
avcodec.h
Libavcodec external API header.
blockdsp.h
ff_blockdsp_init_x86
void ff_blockdsp_init_x86(BlockDSPContext *c, AVCodecContext *avctx)
Definition:
blockdsp_init.c:36
ff_blockdsp_init_mips
void ff_blockdsp_init_mips(BlockDSPContext *c)
Definition:
blockdsp_init_mips.c:25
ff_blockdsp_init_alpha
av_cold void ff_blockdsp_init_alpha(BlockDSPContext *c)
Definition:
blockdsp_alpha.c:46
ff_blockdsp_init_arm
av_cold void ff_blockdsp_init_arm(BlockDSPContext *c)
Definition:
blockdsp_init_arm.c:27
config.h
ARCH_PPC
#define ARCH_PPC
Definition:
config.h:30
ARCH_X86
#define ARCH_X86
Definition:
config.h:39
ARCH_ARM
#define ARCH_ARM
Definition:
config.h:20
ARCH_MIPS
#define ARCH_MIPS
Definition:
config.h:27
ARCH_ALPHA
#define ARCH_ALPHA
Definition:
config.h:19
value
double value
Definition:
eval.c:98
i
int i
Definition:
input.c:407
ff_blockdsp_init
av_cold void ff_blockdsp_init(BlockDSPContext *c, AVCodecContext *avctx)
Definition:
blockdsp.c:60
clear_blocks_c
static void clear_blocks_c(int16_t *blocks)
Definition:
blockdsp.c:33
fill_block8_c
static void fill_block8_c(uint8_t *block, uint8_t value, ptrdiff_t line_size, int h)
Definition:
blockdsp.c:49
clear_block_c
static void clear_block_c(int16_t *block)
Definition:
blockdsp.c:28
fill_block16_c
static void fill_block16_c(uint8_t *block, uint8_t value, ptrdiff_t line_size, int h)
Definition:
blockdsp.c:38
ff_blockdsp_init_ppc
av_cold void ff_blockdsp_init_ppc(BlockDSPContext *c)
Definition:
blockdsp.c:145
version.h
swscale version macros
AVCodecContext
main external API structure.
Definition:
avcodec.h:536
BlockDSPContext
Definition:
blockdsp.h:35
block
static int16_t block[64]
Definition:
dct.c:116
h
h
Definition:
vp9dsp_template.c:2038
c
static double c[64]
Definition:
vsrc_mptestsrc.c:92
Generated on Sun May 18 2025 06:58:54 for FFmpeg by
1.9.1