FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavcodec
bfin
vp3dsp_init.c
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2007 Marc Hoffman <marc.hoffman@analog.com>
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 <stdint.h>
22
#include <string.h>
23
24
#include "
libavutil/attributes.h
"
25
#include "
libavcodec/avcodec.h
"
26
#include "
libavcodec/mathops.h
"
27
#include "
libavcodec/vp3dsp.h
"
28
29
void
ff_bfin_vp3_idct
(int16_t *
block
);
30
31
/* Intra iDCT offset 128 */
32
static
void
bfin_vp3_idct_put
(
uint8_t
*dest,
int
line_size, int16_t *
block
)
33
{
34
const
uint8_t
*
cm
=
ff_crop_tab
+
MAX_NEG_CROP
+ 128;
35
int
i,j;
36
37
ff_bfin_vp3_idct
(block);
38
39
for
(i=0;i<8;i++)
40
for
(j=0;j<8;j++)
41
dest[line_size*i + j] = cm[block[j*8 + i]];
42
43
memset(block, 0, 128);
44
}
45
46
/* Inter iDCT */
47
static
void
bfin_vp3_idct_add
(
uint8_t
*dest,
int
line_size, int16_t *
block
)
48
{
49
const
uint8_t
*
cm
=
ff_crop_tab
+
MAX_NEG_CROP
;
50
int
i, j;
51
52
ff_bfin_vp3_idct
(block);
53
for
(i = 0; i < 8; i++)
54
for
(j = 0; j < 8; j++)
55
dest[line_size*i + j] = cm[dest[line_size*i + j] + block[j*8 + i]];
56
57
memset(block, 0, 128);
58
}
59
60
av_cold
void
ff_vp3dsp_init_bfin
(
VP3DSPContext
*
c
,
int
flags
)
61
{
62
if
(!(flags &
CODEC_FLAG_BITEXACT
)) {
63
c->
idct_add
=
bfin_vp3_idct_add
;
64
c->
idct_put
=
bfin_vp3_idct_put
;
65
}
66
}
Generated on Mon Jun 2 2014 19:21:00 for FFmpeg by
1.8.2