当前位置: 首页 > news >正文

厦门网站开发网站建设网站登封免费网站建设

厦门网站开发网站建设网站,登封免费网站建设,网址地址,汕头论坛网介绍 在本系列,我打算花大篇幅讲解我的 gitee 项目音视频播放器,在这个项目,您可以学到音视频解封装,解码,SDL渲染相关的知识。您对源代码感兴趣的话,请查看基于FFmpeg和SDL的音视频播放器 如果您不理解本…

介绍

在本系列,我打算花大篇幅讲解我的 gitee 项目音视频播放器,在这个项目,您可以学到音视频解封装,解码,SDL渲染相关的知识。您对源代码感兴趣的话,请查看基于FFmpeg和SDL的音视频播放器

如果您不理解本文,可参考我的前一篇文章音视频项目—基于FFmpeg和SDL的音视频播放器解析(十九)

解析

接着上文,我们继续解析 videooutput 的函数。

videoRefresh
void VideoOutput::videoRefresh(double* remaining_time){AVFrame* frame = nullptr;frame = frame_queue->Front();if(frame){double pts = frame->pts * av_q2d(time_base);double diff = pts - avsync->GetClock();if(diff > 0){*remaining_time = FFMIN(*remaining_time, diff);return;}rect.x = 0;rect.y = 0;rect.w = video_width;rect.h = video_height;SDL_UpdateTexture(texture, &rect, frame->data[0], frame->linesize[0],frame->data[1], frame->linesize[1],frame->data[2], frame->linesize[2]);SDL_RenderClear(renderer);SDL_RenderCopy(renderer, texture, NULL, &rect);SDL_RenderPresent(renderer);frame = frame_queue->Pop(1);av_frame_free(&frame);}
}

这个函数负责渲染帧。

首先,frame = frame_queue->Front();取出视频帧队列的头部数据。

然后,double pts = frame->pts * av_q2d(time_base); 计算出这一帧在时间的显示位置

diff 是该帧显示时间与当前时间的差值

当 diff 大于 0 时,说明当前帧比较快,要等一会播放。FFMIN 是取最小值的宏定义

#define FFMIN(a,b) ((a) > (b) ? (b) : (a))

remaining_time 就是取两者的最小值。然后返回,等待。

rect.x = 0;窗口的左上角的横向偏移值为 0 

rect.y = 0;窗口的左上角的纵向偏移值为 0 

rect.w = video_width;设置窗口的宽度

rect.h = video_height;设置窗口的高度

SDL_UpdateTexture 更新纹理

SDL_RenderClear 清除屏幕上的旧内容,为绘制新的帧做准备

SDL_RenderCopy 用于将一个表面(surface)复制到当前的渲染目标(destination)。这通常用于在屏幕上显示图像或纹理。

SDL_RenderPresent 该函数将渲染器上下文中的内容显示到屏幕上,通常在渲染循环的末尾调用以完成绘制并显示结果。

最后,弹出帧队列数据,并释放数据。

好了,先讲到这里。

欲知后事如何,请听下回分解。

http://www.yayakq.cn/news/173693/

相关文章:

  • 织梦网站内容怎么做付费可见wordpress视频页面
  • 上海金融网站制作网站制作公司好做片视频在线观看网站
  • 四川大良网站建设去掉wordpress版权
  • 沈阳做网站哪家最便宜企业没有网站怎样做推广方案
  • 网站建设设计图专业
  • 深圳住房建设局网站首页装修公司做网站有用吗
  • 贷款网站平台有哪些网页制作培训网站
  • 做门户网站的营业范围最专业的做音乐网站
  • 旅游网站制作素材百度网盘客户端
  • 找网站建设公司好jsp网站服务建设开题报告
  • wordpress站点语言免费网站建设自带后台管理程序
  • 东莞市官网网站建设报价网站如何提高流量
  • 深圳建立网站公司网站宝安的医院网站建设
  • 公司网站设计与实现的项目建议书尤溪县建设局网站
  • 手机网站建设制作教程视频教程宁波建站价格
  • 企业网站服务器广州电商聚集地
  • 怎么做推广和宣传企业做网站我做的网站在手机里滑动怎么这里卡
  • 鲁谷做网站的公司易语言怎么做网站自动登录
  • 南翔企业网站开发建设学企业网站开发
  • 网站开发算互联网公司吗常德房产网
  • 网站开发商业计划书菠菜导航网站可以做
  • 网站一直维护意味着什么wordpress 建设论坛
  • 电子商务网站建设的整体规划什么是专业建设
  • 青岛网站建设公司在哪江门装修公司排名前十名
  • 教育网站报名怎么给网站做关键词搜索
  • 做个个人网站多少钱网站中的作用
  • 做网站的任务书开发公司与物业公司前期合同
  • 牧星网站建立昆明小程序公司
  • 购物建设网站零基础网站建设教学视频
  • 新媒体包不包括公司网站的建设住房和城乡建设部监理工程师网站