intel gpu 解码
来源:互联网 发布:怎样制作一个软件 编辑:程序博客网 时间:2024/06/07 04:04
背景
在linux上使用intel的gpu加速解码h264,根据以往的经验往往需要将intel gpu的demo集成到我们自己代码当中, 但是这样局限性很大, 每一代的gpu加速的修改, 我们代码都需要调整,得不偿失。
封装接口
- 接口类
class SRH264DecInterface{public: virtual int InitDecode() = 0; virtual int Decode(const SRDec_H264Data &/*[in]*/ h264_data, SRDec_YuvData &/*[out]*/ yuv_data) = 0;public: SRH264DecInterface(){}; virtual ~SRH264DecInterface(){};};
- 实现类
class H264IntelDecode: public SRH264DecInterface{public: H264IntelDecode(); ~H264IntelDecode(); int InitDecode(); int Decode(const SRDec_H264Data &/*[in]*/ h264_data, SRDec_YuvData &/*[out]*/ yuv_data);private: bool _init_flag;protected: mfxStatus CreateHWDevice();private: int Release(); mfxStatus InitMfxParams(); mfxStatus AllocFrames(); mfxStatus CreateAllocator(); int DecConvertSurfaceToBistream(mfxFrameSurface1 *surface); int DecExtendBitstream(int new_size, mfxBitstream *pbs); mfxStatus MFXDecodeHeader(); mfxStatus MFXDecodePacket(SRDec_YuvData &/*[out]*/ yuv_data);private: bool m_bExternalAlloc; // use memory allocator as external for Media SDK MFXVideoSession m_mfxSession; mfxIMPL m_impl; MFXVideoDECODE* m_pmfxDEC; mfxVideoParam m_mfxVideoParams; GeneralAllocator* m_pGeneralAllocator; mfxFrameAllocResponse m_mfxResponse; mfxAllocatorParams* m_pmfxAllocatorParams; mfxFrameSurface1* m_pmfxSurfaces; MemType m_memType; mfxBitstream m_mfxBS; CHWDevice *m_hwdev; bool _initParaSucc; int width; int height; mfxI32 m_monitorType; FILE * fp_yuv; mfxBitstream * frame_bs;};
注意
这里结合了sample_decode这个demo, windows版本和Linux版本都调试通了
联系
qq群 h264学习过程交流 191884149
阅读全文
0 0
- intel gpu 解码
- intel GPU tools
- Intel-gpu-tools
- 'clinfo'找不到Intel GPU(Intel HD graphics)
- GPU硬解码---CUVID
- GPU硬解码---DXVA
- IOS 硬件GPU解码
- GPU Analyzer 神器:Intel INDE
- GPU编解码 - 硬解码---CUVID
- GPU编解码 - 硬解码 - CUVID
- 【视频开发】GPU编解码:GPU硬解码---DXVA
- GPU编解码 - 硬编码
- GPU视频解码之CUVID
- VPU?APU?GPU?折腾从AMD-GPU回到Intel核显
- Nvidia搞笑Intel:CPU vs GPU
- Intel GMA500显卡硬解码VAAPI
- stage video 【利用Gpu解码视频】
- OpenCV利用GPU解码高清视频
- maven的学习---聚合工程的创建(四)
- 借记卡、贷记卡、预付卡、准贷记卡、信用卡
- 解决DataSet不支持System.nullable
- canvas 学习 第一部份
- 链表
- intel gpu 解码
- 使用eclipse通过jboss开发简单的ejb应用(jboss7.x & ejb3.x)
- Lucene6入门教程(一)简介和学习流程
- hdu 6148 (数位dp)
- HDU 6143 Killer Names(容斥原理)
- js实现动图效果
- Java-基本注解入门(Annotation)
- opencv获取编码fourcc
- 超过指定高度出现滚动条