dedecms微电影网站模板,上海谷歌推广,电子公章印章在线制作网站,wordpress 百度云插件介绍 在本系列#xff0c;我打算花大篇幅讲解我的 gitee 项目音视频播放器#xff0c;在这个项目#xff0c;您可以学到音视频解封装#xff0c;解码#xff0c;SDL渲染相关的知识。您对源代码感兴趣的话#xff0c;请查看基于FFmpeg和SDL的音视频播放器
如果您不理解本… 介绍 在本系列我打算花大篇幅讲解我的 gitee 项目音视频播放器在这个项目您可以学到音视频解封装解码SDL渲染相关的知识。您对源代码感兴趣的话请查看基于FFmpeg和SDL的音视频播放器
如果您不理解本文可参考我的前一篇文章音视频项目—基于FFmpeg和SDL的音视频播放器解析十八 解析 接着上文我们继续解析 videooutput 的函数
首先我们看构造函数
VideoOutput::VideoOutput(AVSync* avsync, AVRational time_base, AVFrameQueue* frame_queue, int video_width, int video_height){this-avsync avsync;this-time_base time_base;this-frame_queue frame_queue;this-video_width video_width;this-video_height video_height;
}
这比较好理解就是一些私有成员变量的赋值 Init 函数
int VideoOutput::Init(){if(SDL_Init(SDL_INIT_VIDEO)){return -1;}win SDL_CreateWindow(player, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, video_width, video_height, SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE);if(!win){return -1;}renderer SDL_CreateRenderer(win, -1, 0);if(!renderer){return -1;}texture SDL_CreateTexture(renderer, SDL_PIXELFORMAT_IYUV, SDL_TEXTUREACCESS_STREAMING, video_width, video_height);if(!texture){return -1;}yuv_buf_size video_width * video_height * 1.5;yuv_buf new uint8_t[yuv_buf_size];
}
SDL_Init 初始化视频设备
SDL_CreateWindow 创建窗口后面是参数这里不做深究。
SDL_CreateRenderer 创建渲染器后面的参数也不做深究
SDL_CreateTexture 创建纹理
然后赋值 yuv 数组长度为 1.5 倍这设计到 YUV420 原理这篇文章不做深究
最后创建 yuv 数组 好了今天就解析到这里。下文解析后面的函数。
欲知后事如何请听下回分解。