FFmpeg
2.1.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
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
}
VP3DSPContext::idct_put
void(* idct_put)(uint8_t *dest, int line_size, int16_t *block)
Definition:
vp3dsp.h:41
ff_cropTbl
#define ff_cropTbl
Definition:
motionpixels_tablegen.c:26
vp3dsp.h
ff_bfin_vp3_idct
void ff_bfin_vp3_idct(int16_t *block)
MAX_NEG_CROP
#define MAX_NEG_CROP
Definition:
dsputil.h:44
av_cold
#define av_cold
Definition:
avcodec.h:653
ff_vp3dsp_init_bfin
av_cold void ff_vp3dsp_init_bfin(VP3DSPContext *c, int flags)
Definition:
vp3_bfin.c:59
uint8_t
uint8_t
Definition:
audio_convert.c:194
VP3DSPContext
Definition:
vp3dsp.h:25
CODEC_FLAG_BITEXACT
#define CODEC_FLAG_BITEXACT
Use only bitexact stuff (except (I)DCT).
Definition:
avcodec.h:714
cm
#define cm
Definition:
dvbsubdec.c:34
vp3_bfin.h
bfin_vp3_idct_put
static void bfin_vp3_idct_put(uint8_t *dest, int line_size, int16_t *block)
Definition:
vp3_bfin.c:31
VP3DSPContext::idct_add
void(* idct_add)(uint8_t *dest, int line_size, int16_t *block)
Definition:
vp3dsp.h:42
bfin_vp3_idct_add
static void bfin_vp3_idct_add(uint8_t *dest, int line_size, int16_t *block)
Definition:
vp3_bfin.c:46
flags
static int flags
Definition:
cpu.c:45
c
static double c[64]
Definition:
vsrc_mptestsrc.c:87
dsputil.h
DSP utils.
dsputil_bfin.h
block
static int16_t block[64]
Definition:
dct-test.c:198
Generated on Wed Nov 20 2013 08:49:54 for FFmpeg by
1.8.5