大佬教程收集整理的这篇文章主要介绍了windows – FFMPEG框架到DirectX表面硬件加速,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
AVFrame *frame; avcodec_decode_video(_ffcontext,frame,etc...); lockYourSurface(); uint8_t *buf = getPointerToYourSurfacePixels(); // Create an AVPicture structure which contains a pointer to the RGB surface. AVPicture pict; memset(&pict,sizeof(pict)); avpicture_fill(&pict,buf,PIX_FMT_RGB32,_ffcontext->width,_ffcontext->height); // Convert the imagE into RGB and copy to the surface. img_convert(&pict,(AVPicture *)frame,_context->pix_fmt,_context->width,_context->height); unlockYourSurface();
在代码中,我使用sws_scale而不是img_convert.
当我将表面数据指针传递给sws_scale时(事实上在avpicture_fill中),似乎数据指针实际上在RAM而不是GPU内存上,当我想显示表面时,似乎数据被移动到GPU和然后显示.据我所知,在RAM和GPU内存之间复制数据时,cpu利用率很高.
我如何tel ffmpeg直接渲染到GPU内存上的表面(而不是RAM上的数据指针)?
以上是大佬教程为你收集整理的windows – FFMPEG框架到DirectX表面硬件加速全部内容,希望文章能够帮你解决windows – FFMPEG框架到DirectX表面硬件加速所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。