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
vp3_bfin.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 <string.h>
22
23
#include "
libavutil/attributes.h
"
24
#include "
libavcodec/avcodec.h
"
25
#include "
libavcodec/vp3dsp.h
"
26
#include "
libavcodec/dsputil.h
"
27
#include "
dsputil_bfin.h
"
28
#include "
vp3_bfin.h
"
29
30
/* Intra iDCT offset 128 */
31
static
void
bfin_vp3_idct_put
(
uint8_t
*dest,
int
line_size, int16_t *
block
)
32
{
33
const
uint8_t
*
cm
=
ff_cropTbl
+
MAX_NEG_CROP
+ 128;
34
int
i,j;
35
36
ff_bfin_vp3_idct
(block);
37
38
for
(i=0;i<8;i++)
39
for
(j=0;j<8;j++)
40
dest[line_size*i + j] = cm[block[j*8 + i]];
41
42
memset(block, 0, 128);
43
}
44
45
/* Inter iDCT */
46
static
void
bfin_vp3_idct_add
(
uint8_t
*dest,
int
line_size, int16_t *
block
)
47
{
48
const
uint8_t
*
cm
=
ff_cropTbl
+
MAX_NEG_CROP
;
49
int
i, j;
50
51
ff_bfin_vp3_idct
(block);
52
for
(i = 0; i < 8; i++)
53
for
(j = 0; j < 8; j++)
54
dest[line_size*i + j] = cm[dest[line_size*i + j] + block[j*8 + i]];
55
56
memset(block, 0, 128);
57
}
58
59
av_cold
void
ff_vp3dsp_init_bfin
(
VP3DSPContext
*
c
,
int
flags
)
60
{
61
if
(!(flags &
CODEC_FLAG_BITEXACT
)) {
62
c->
idct_add
=
bfin_vp3_idct_add
;
63
c->
idct_put
=
bfin_vp3_idct_put
;
64
}
65
}
Generated on Sat Jan 25 2014 19:51:45 for FFmpeg by
1.8.2