FFMPEG学习【libavcodec】:编解码器:硬件加速器桥:XvMC
来源:互联网 发布:双色球走势图软件 编辑:程序博客网 时间:2024/04/29 10:29
一、文件
xvmc.h
公共libavcodec XvMC头文件。
二、数据结构
struct xvmc_pix_fmt{
int xvmc_id;
该字段包含特殊常数值AV_XVMC_ID。
它被用作应用程序正确使用API的测试,并且没有由像素例程导致的损坏。
应用程序 - 在初始化时设置
libavcodec - 未改变
short * data_blocks;
指向由XvMCCreateBlocks()分配的块数组的指针。
数组必须被XvMCDestroyBlocks()释放。 每组64个值表示差分像素信息(以MoCo模式)或IDCT的系数的一个数据块。
应用程序 - 在初始化时设置指针
libavcodec - 将系数/像素数据填充到阵列中
XvMCMacroBlock * mv_blocks;
指向由XvMCCreateMacroBlocks()分配的宏块描述数组,并由XvMCDestroyMacroBlocks()释放。
应用程序 - 在初始化时设置指针
libavcodec - 将描述数据填充到数组中
int allocated_mv_blocks;
可以存储在mv_blocks数组中的宏块描述数。
应用程序 - 在初始化时设置
libavcodec - 未改变
int allocated_data_blocks;
可以在data_blocks数组中一次存储的块数。
应用程序 - 在初始化时设置
libavcodec - 未改变
int idct;
表明硬件会将data_block解释为IDCT系数,并对它们执行IDCT。
应用程序 - 在初始化时设置
libavcodec - 未改变
int unsigned_intra;
在MoCo模式中,它表示帧内宏块被假定为无符号格式; 与XVMC_INTRA_UNSIGNED标志相同。
应用程序 - 在初始化时设置
libavcodec - 未改变
XvMCSurface * p_surface;
指向XvMCCreateSurface()分配的表面的指针。
它必须在应用程序退出时被XvMCDestroySurface()释放。 它识别视频硬件上的帧及其状态。
应用程序 - 在初始化时设置
libavcodec - 未改变
XvMCSurface * p_past_surface;
在调用ff_draw_horiz_band()之前由解码器设置,被XvMCRenderSurface函数需要。
指向表面的指针用作过去的参考
应用程序 - 未改变
libavcodec - 设置
XvMCSurface * p_future_surface;
指向表面用作未来参考。
应用程序 - 未改变
libavcodec - 设置
unsigned int picture_structure;
顶部/底部字段或帧。
应用程序 - 未改变
libavcodec - 设置
unsigned int flags;
XVMC_SECOND_FIELD - 序列中的第1或第2个字段。
应用程序 - 未改变
libavcodec - 设置
int start_mv_blocks_num;
已经传递到硬件的mv_blocks数组中的宏块描述数。
应用程序 - 在get_buffer()上调零。 一个成功的ff_draw_horiz_band()可以用fill_mb_block_num或者二者来增加它们。
libavcodec - 未改变
int filled_mv_blocks_num;
mv_blocks数组中的新宏块描述数(在start_mv_blocks_num之后)由libavcodec填充并必须传递到硬件。
应用程序 - 在get_buffer()或ff_draw_horiz_band()成功后将其置零。
libavcodec - 每个存储的MB之一增加
应用程序 - 在get_buffer()或ff_draw_horiz_band()成功后将其置零。
libavcodec - 每个存储的MB之一增加
int next_free_data_block_num;
下一个空闲数据块的数量; 一个数据块由data_blocks数组中的64个短值组成。
已经通过将它们的位置放置在相应的块描述结构字段中,这些字段是mv_blocks数组的一部分,已经声明了此前的所有块。
应用程序 - 在在get_buffer()上调零。 成功的ff_draw_horiz_band()可能与start_mb_blocks_num一起归零。
libavcodec - 每个解码的宏块将其包含的编码块的数量增加。
}
三、宏
#define AV_XVMC_ID 0x1DC711C0
- FFMPEG学习【libavcodec】:编解码器:硬件加速器桥:XvMC
- FFMPEG学习【libavcodec】:编解码器:硬件加速器桥:Direct3D11
- FFMPEG学习【libavcodec】:编解码器:硬件加速器桥:DXVA2
- FFMPEG学习【libavcodec】:编解码器:硬件加速器桥:VA API Decoding
- FFMPEG学习【libavcodec】:编解码器:硬件加速器桥:VDA
- FFMPEG学习【libavcodec】:编解码器:硬件加速器桥:VDPAU解码器和渲染器
- FFMPEG学习【libavcodec】:解码
- FFMPEG学习【libavcodec】:编码
- FFMPEG学习【libavcodec】:解码:帧解析
- FFMPEG学习【libavcodec】:音频重采样
- FFMPEG学习【libavcodec】:实用函数(一)
- FFMPEG学习【libavcodec】:实用函数(二)
- 树莓派编译安装FFmpeg(添加H.264硬件编解码器支持)
- 硬件加速器
- FFMPEG学习【libavcodec】:发送/接收编码和解码API概述
- FFMPEG学习【libavcodec】:核心函数以及结构体(一)
- FFMPEG学习【libavcodec】:核心函数以及结构体(二)
- mplayer ffmpeg libavcodec
- JavaScript中获取当月的所有天数
- Java常量、变量、数据类型
- 练习题 No.13 最小堆
- 51单片机完成时钟形式显示
- javaNIO使用
- FFMPEG学习【libavcodec】:编解码器:硬件加速器桥:XvMC
- 二维数组中的查找
- 软件二次开发-解密开发板
- UEStudio编辑lua语法高亮方法
- 【Oracle】ORA 01810 格式代码出现两次
- SpringMVC中使用Interceptor拦截器
- genymotion 模拟器联网问题
- 环信 获取通知栏推送消息
- 资源文件路径 && classpath