php是怎么设计网站的,外贸式响应式网站,wordpress接口发布文章,深圳新闻最新消息今天学习课题#xff1a;逐步构建开发播放器【QT5 FFmpeg6 SDL2】
前言 这一篇内容就是简单的了解一遍一些常用的函数名称和作用#xff0c;混个眼熟。 能看源码的就去看源码#xff01;#xff01;#xff01; 能看源码的就去看源码#xff01;#xff01;#xff01; …学习课题逐步构建开发播放器【QT5 FFmpeg6 SDL2】
前言 这一篇内容就是简单的了解一遍一些常用的函数名称和作用混个眼熟。 能看源码的就去看源码 能看源码的就去看源码 能看源码的就去看源码 技巧 对于ffmpeg 1、函数名字带有alloc的一般都是分配空间分配结构 2、函数名带有free/unref的一般都是跟释放相关的 对于SDL 1、基本上所有函数、结构体都是“SDL_” 开头 FFmpeg6.0
类/结构体 AVFormatContext 用于表示音视频封装格式的上下文信息。该结构体包含了音视频文件的所有相关信息如音视频流的数量、编解码器的参数、采样率、帧率、时长、封装格式等等。 AVCodec 编解码器它定义了一组可供使用的编解码器。通过使用AVCodec我们可以实现对音视频文件的读取、解码、转换和编码等操作。 AVCodecParameters 用于描述音视频编解码器参数的结构体AVPacket 解复用后获取的包结构体AVCodecContext 编解码器上下文包含了编解码器的所有相关信息例如编解码器类型、参数设置、输入输出格式等AVFrame 从AVPacket中读到的帧结构体SwsContext 用于执行图像格式转换和缩放的上下文数据结构。SwrContext 用于执行音频格式转换和采样率调整的上下文数据结构。 【这里Sws....和Swr....就差一个字母注意别写错了】 函数 avformat_alloc_context 分配一个AVFormatContext结构 avformat_free_context 释放AVFormatContext结构体内容 avformat_open_input 打开音视频文件或网络流 avformat_close_input 关闭音视频文件或网络流 avformat_find_stream_info 从AVFormatContext中读取流信息 av_find_best_stream 根据AVFormatContext和参数对应的流找到流索引标识和对应的AVCodec编解码器 av_read_frame 从音视频文件(AVFormatContext)中逐帧读取音视频数据包AVPacketav_packet_unref 释放AVPacket结构体中引用的AVBufferRef缓冲区并重置AVPacket结构体的各个字段 一般在循环内本次用完后调用。av_packet_free 直接释放AVPacket结构体本身占用的内存并将其置为NULL一般是在整个循环完整结束后调用。avcodec_alloc_context3 分配一个AVCodecContext结构体并对其进行初始化。avcodec_parameters_to_context 将AVCodecParameters结构体中的参数值复制到AVCodecContext结构体中。avcodec_open2 初始化AVCodecContext准备使用AVCodec编解码器。av_frame_alloc 分配一个AVFrame结构体。avcodec_send_packet 把AVPacket作为输入交给编解码器进行解码avcodec_receive_frame 返回解码器或编码器解码后的输出数据 sws_scale 对输入图像进行格式转换、尺寸调整等操作得到输出图像。swr_convert 对输入音频进行格式转换、采样率调整、声道数调整等操作得到输出音频。 SDL2.0
类/结构体 SDL_AudioSpec 音频数据格式、采样率、声道数等参数 SDL_AudioFormat SDL中音频数据格式的枚举类 SDL_AudioDeviceID SDL2.0中开始有的表示音频设备的标识符可以用来控制播放暂停和状态判断 SDL_Window 表示窗口的数据结构它提供了一种创建、管理和操作窗口的机制使得开发者可以方便地进行图形界面的设计和实现。 SDL_Renderer 渲染器 SDL_Texture 纹理 SDL_Rect SDL中用于表示一个矩形区域的位置和尺寸。 函数 SDL_Init
初始化SDL库SDL_OpenAudioDevice
SDL2.0开始启用打开音频设备的函数并返回SDL_AudioDeviceID用于音频数据的输入和输出。SDL_OpenAudio
旧版打开音频设备并设置音频参数用于播放和录制音频不返回设备对象。SDL_LockMutex
锁定一个互斥锁用于保护共享资源确保在同一时间只有一个线程可以访问共享资源。
SDL_UnlockMutex
释放互斥锁允许其他线程访问共享资源。SDL_Delay
延迟一定的毫秒数用于控制程序执行速度或实现简单的时间间隔。SDL_PauseAudioDevice
对应SDL_OpenAudioDevice的暂停或恢复音频的播放。
SDL_PauseAudio
对应SDL_OpenAudio的暂停或恢复音频的播放。SDL_CreateWindowFrom
创建一个SDL窗口并从现有的窗口句柄创建用于与其他图形库或窗口系统进行集成。可以与QT封装在一起用的qwidget句柄把SDL播放窗口创建在qt内。SDL_CreateRenderer
创建一个渲染器用于将图像渲染到窗口或纹理上。SDL_CreateTexture
创建一个纹理用于存储和操作图像数据。SDL_UpdateTexture
更新纹理的像素数据用于实时更新纹理上的图像。SDL_UpdateYUVTexture
更新YUV格式的纹理的像素数据用于实时更新纹理上的图像。RGB格式数据是不能用这个函数进行更新的。SDL_RenderCopy
将纹理或部分纹理复制到渲染目标上实现图像的绘制。SDL_RenderPresent
在渲染目标上呈现最终的渲染结果将其显示出来。