FFmpeg
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
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
typedef
struct
VideoDSPContext
{
33
/**
34
* Copy a rectangular area of samples to a temporary buffer and replicate
35
* the border samples.
36
*
37
* @param buf destination buffer
38
* @param src source buffer
39
* @param linesize number of bytes between 2 vertically adjacent samples
40
* in both the source and destination buffers
41
* @param block_w width of block
42
* @param block_h height of block
43
* @param src_x x coordinate of the top left sample of the block in the
44
* source buffer
45
* @param src_y y coordinate of the top left sample of the block in the
46
* source buffer
47
* @param w width of the source buffer
48
* @param h height of the source buffer
49
*/
50
void
(*
emulated_edge_mc
)(
uint8_t
*buf,
const
uint8_t
*src,
51
ptrdiff_t linesize,
int
block_w,
int
block_h,
52
int
src_x,
int
src_y,
int
w,
int
h);
53
54
/**
55
* Prefetch memory into cache (if supported by hardware).
56
*
57
* @buf pointer to buffer to prefetch memory from
58
* @stride distance between two lines of buf (in bytes)
59
* @h number of lines to prefetch
60
*/
61
void
(*
prefetch
)(
uint8_t
*buf, ptrdiff_t
stride
,
int
h);
62
}
VideoDSPContext
;
63
64
void
ff_videodsp_init
(
VideoDSPContext
*ctx,
int
bpc);
65
66
/* for internal use only (i.e. called by ff_videodsp_init() */
67
void
ff_videodsp_init_arm
(
VideoDSPContext
*ctx,
int
bpc);
68
void
ff_videodsp_init_ppc
(
VideoDSPContext
*ctx,
int
bpc);
69
void
ff_videodsp_init_x86
(
VideoDSPContext
*ctx,
int
bpc);
70
71
#endif
/* AVCODEC_VIDEODSP_H */
Generated on Sat May 25 2013 03:58:42 for FFmpeg by
1.8.2