基于FFmpeg+SDL的视频播放器的制作——雷霄骅

1.SDL2安装和测试

视频教程:基于FFmpeg+SDL的视频播放器的制作——雷霄骅

SDL2安装

sudo apt-get install libsdl2-dev # 基本开发包
sudo apt-get install libsdl2-image-dev # 图像开发包
sudo apt-get install libsdl2-mixer-dev # 音频开发包
sudo apt-get install libsdl2-ttf-dev # 文字开发包

vscode远程链接服务器,开发SDL应用

test_sdl2.cpp:测试sdl2是否安装成功。

extern "C"
{
#include "SDL2/SDL.h"
}
int main(int argc, char* argv[]){
    if(SDL_Init(SDL_INIT_VIDEO)) { 
        printf( "Could not initialize SDL - %s\n", SDL_GetError()); 
    } else{
        printf("Success init SDL");
    }
    return 0;
}

2.SDL简介

SDL视频显示的流程图如下所示

SDL视频显示函数简介:
▫ SDL_Init():初始化SDL系统
▫ SDL_CreateWindow():创建窗口SDL_Window
▫ SDL_CreateRenderer():创建渲染器SDL_Renderer
▫ SDL_CreateTexture():创建纹理SDL_Texture
▫ SDL_UpdateTexture():设置纹理的数据
▫ SDL_RenderCopy():将纹理的数据拷贝给渲染器
▫ SDL_RenderPresent():显示
▫ SDL_Delay():工具函数,用于延时。
▫ SDL_Quit():退出SDL系统

SDL视频显示的数据结构:

SDL数据结构简介
▫ SDL_Window:代表了一个“窗口”
▫ SDL_Renderer:代表了一个“渲染器”
▫ SDL_Texture:代表了一个“纹理”
▫ SDL_Rect:一个简单的矩形结构,指定yuv现在的windows的位置,比如左上角、右下角等

SDL中事件和多线程

  • SDL多线程
    • SDL_CreateThread():创建一个线程
    • SDL_Thread:线程的句柄
  • SDL事件
    • SDL_WaitEvent()等待一个事件
    • SDL_PushEvent()发送一个事件
    • SDL_Event:代表一个事件
posted @ 2023-07-16 20:05  好人~  阅读(255)  评论(0)    收藏  举报