Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
24641185
F
Ffmpeg
项目概览
小白菜888
/
Ffmpeg
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Ffmpeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
24641185
编写于
3月 06, 2003
作者:
M
Michael Niedermayer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more dox
Originally committed as revision 1630 to
svn://svn.ffmpeg.org/ffmpeg/trunk
上级
2a5700de
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
36 addition
and
0 deletion
+36
-0
libavcodec/dsputil.h
libavcodec/dsputil.h
+36
-0
未找到文件。
libavcodec/dsputil.h
浏览文件 @
24641185
...
...
@@ -16,12 +16,20 @@
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/**
* @file dsputil.h
* @brief DSP utils
*
*/
#ifndef DSPUTIL_H
#define DSPUTIL_H
#include "common.h"
#include "avcodec.h"
//#define DEBUG
/* dct code */
typedef
short
DCTELEM
;
...
...
@@ -100,6 +108,9 @@ typedef int (*op_pixels_abs_func)(uint8_t *blk1/*align width (8 or 16)*/, uint8_
typedef
int
(
*
me_cmp_func
)(
void
/*MpegEncContext*/
*
s
,
uint8_t
*
blk1
/*align width (8 or 16)*/
,
uint8_t
*
blk2
/*align 1*/
,
int
line_size
)
/* __attribute__ ((const))*/
;
/**
* DSPContext.
*/
typedef
struct
DSPContext
{
/* pixel ops : interface with DCT */
void
(
*
get_pixels
)(
DCTELEM
*
block
/*align 16*/
,
const
uint8_t
*
pixels
/*align 8*/
,
int
line_size
);
...
...
@@ -152,8 +163,28 @@ typedef struct DSPContext {
/* (I)DCT */
void
(
*
fdct
)(
DCTELEM
*
block
/* align 16*/
);
/**
* block -> idct -> clip to unsigned 8 bit -> dest.<br>
* (-1392, 0, 0, ...) -> idct -> (-174, -174, ...) -> put -> (0, 0, ...)
* @param line_size size in pixels of a horizotal line of dest
*/
void
(
*
idct_put
)(
uint8_t
*
dest
/*align 8*/
,
int
line_size
,
DCTELEM
*
block
/*align 16*/
);
/**
* block -> idct -> add dest -> clip to unsigned 8 bit -> dest.
* @param line_size size in pixels of a horizotal line of dest
*/
void
(
*
idct_add
)(
uint8_t
*
dest
/*align 8*/
,
int
line_size
,
DCTELEM
*
block
/*align 16*/
);
/**
* idct input permutation.<br>
* an example to avoid confusion:
* - (->decode coeffs -> zigzag reorder -> dequant -> reference idct ->...)
* - (x -> referece dct -> reference idct -> x)
* - (x -> referece dct -> simple_mmx_perm = idct_permutation -> simple_idct_mmx -> x)
* - (->decode coeffs -> zigzag reorder -> simple_mmx_perm -> dequant -> simple_idct_mmx ->...)
*/
uint8_t
idct_permutation
[
64
];
int
idct_permutation_type
;
#define FF_NO_IDCT_PERM 1
...
...
@@ -171,6 +202,11 @@ void dsputil_init(DSPContext* p, AVCodecContext *avctx);
*/
void
ff_block_permute
(
DCTELEM
*
block
,
uint8_t
*
permutation
,
const
uint8_t
*
scantable
,
int
last
);
/**
* Empty mmx state.<br>
* this must be called between any dsp function and float/double code.
* for example sin(); dsp->idct_put(); emms_c(); cos()
*/
#define emms_c()
/* should be defined by architectures supporting
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录