博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
YV12数据与AVFrame的相互转换
阅读量:6463 次
发布时间:2019-06-23

本文共 910 字,大约阅读时间需要 3 分钟。

转自:

void YV12ToAVFrame(BYTE * pData,int nLen,int nWidth,int nHeight,AVFrame * pFrame)

{
avcodec_get_frame_defaults(pFrame);
int size=avpicture_get_size(PIX_FMT_YUV420P,nWidth ,nHeight );
ASSERT(size==nLen);
avpicture_fill( (AVPicture*) pFrame,pData,PIX_FMT_YUV420P , nWidth ,nHeight );
BYTE * ptmp=pFrame->data [1];//U,V互换
pFrame->data [1]=pFrame->data [2];
pFrame->data [2]=ptmp;
}
void AVFrameToYV12(AVFrame * pFrame,int nWidth,int nHeight,BYTE * pData,int * npLen)
{
BYTE * ptmp=pFrame->data [1];//U,V互换
pFrame->data [1]=pFrame->data [2];
pFrame->data [2]=ptmp;
AVPicture pic;
int size=avpicture_get_size(PIX_FMT_YUV420P,nWidth ,nHeight );
if(*npLen<size)
  return;//缓冲区太小
avpicture_fill(&pic, pData, PIX_FMT_YUV420P,
    nWidth, nHeight);
*npLen=size;
img_copy(&pic,(AVPicture *)pFrame,PIX_FMT_YUV420P,nWidth,nHeight);
ptmp=pFrame->data [1];//恢复AVFrame
pFrame->data [1]=pFrame->data [2];
pFrame->data [2]=ptmp;
}

转载地址:http://qwhzo.baihongyu.com/

你可能感兴趣的文章
Linux经常使用命令(十六) - whereis
查看>>
Tomcat
查看>>
插件编译 版本问题
查看>>
android中TextView的阴影设置
查看>>
core dump相关
查看>>
MySQL如何导出带日期格式的文件
查看>>
Linux五种IO模型
查看>>
Bootstrap技术: 模式对话框的使用
查看>>
MongoDB是?
查看>>
小知识,用myeclipes找jar
查看>>
数据库----索引的概念及创建
查看>>
linux下的chm阅读器?
查看>>
[LintCode] Longest Substring Without Repeating Characters
查看>>
in-list expansion
查看>>
设计原则(四):接口隔离原则
查看>>
CSS3常见问题:100vh在移动浏览器中不是固定的,恒定的
查看>>
基于react的滑动图片验证码组件
查看>>
用户认证系统
查看>>
iOS快速清除全部的消息推送
查看>>
ecshop二次开发攻略
查看>>