硬件加速

FFmpeg视频解码硬件加速

瘦欲@ 提交于 2019-12-27 05:13:15
《 音视频应用开发系列文章目录 》 ffmpeg支持的硬件解码器 enum AVHWDeviceType { AV_HWDEVICE_TYPE_NONE, AV_HWDEVICE_TYPE_VDPAU, AV_HWDEVICE_TYPE_CUDA, AV_HWDEVICE_TYPE_VAAPI, AV_HWDEVICE_TYPE_DXVA2, AV_HWDEVICE_TYPE_QSV, AV_HWDEVICE_TYPE_VIDEOTOOLBOX, AV_HWDEVICE_TYPE_D3D11VA, AV_HWDEVICE_TYPE_DRM, AV_HWDEVICE_TYPE_OPENCL, AV_HWDEVICE_TYPE_MEDIACODEC, }; 获取当前环境支持的硬件解码器 std::vector<std::string> get_vdec_support_hwdevices() { std::vector<std::string> hwdevs; hwdevs.clear(); enum AVHWDeviceType type = AV_HWDEVICE_TYPE_NONE; while ((type = av_hwdevice_iterate_types(type)) != AV_HWDEVICE_TYPE_NONE) { hwdevs.push_back(av

WebView播放html5视频和全屏。

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-08 00:57:55
2019独角兽企业重金招聘Python工程师标准>>> 首先需要在Activity或Applictaion中开启硬件加速。在Activity或Appliction加入 android:hardwareAccelerated="true" 开启硬件加速。开启后就可以播放视频,不过如果要播放全屏还得加入以下代码。 wvBrowser.getSettings().setJavaScriptEnabled(true);// 启用js wvBrowser.setWebChromeClient(chromeClient); WebChromeClient.CustomViewCallback mCallBack = null; View videoView; WebChromeClient chromeClient = new WebChromeClient() { public void onShowCustomView(View view, CustomViewCallback callback) { // 全屏是调用的方法 if (videoView != null) { callback.onCustomViewHidden(); return; } if (listener != null) { listener.onFullVideo(); } flVideo

硬件加速

偶尔善良 提交于 2019-12-06 06:42:59
前言 谈起浏览器的硬件加速,想必大家都知道的一个技巧就是在用CSS3做动画时,给元素添加transform: translateZ(0)或者transform: translate3d(0, 0, 0)就会开启GPU的硬件加速,将本来应该是浏览器处理的动画效果转交给GPU处理,从而使得动画看起来更加顺畅,在移动端体验更好。本文将进一步探索其中的奥秘,例如哪些条件可以触发GPU硬件加速?硬件加速背后的工作原理是什么?是不是开启GPU硬件加速的动画应该越多越好? 首先让我们来看一个动画效果,通过CSS3的animation属性来实现让一个小球从坐到右移动200px的距离。现在有两种实现方式: 第一种方法通过改变该元素的top属性来实现: .ball1{ width:100px; height:100px; border-radius: 100px; background:red; } .ball1{ animation:mymove 3s infinite linear; -moz-animation:mymove 3s infinite linear; -webkit-animation:mymove 3s infinite linear; -o-animation:mymove 3s infinite linear; } @keyframes mymove{ from {top

浏览器渲染简述

风格不统一 提交于 2019-12-05 16:31:21
singsong: 文本是自己看了一些不错资料整理出来的,对该知识点感兴趣的同学可以查看 参考文章 小节。 ✏️最新内容请以github上的为准❗️ 为什么要写这篇文章? 主要为 CSS 优化工作打一下基础。要编写高性能的网站和应用,除了确保编写的代码尽可能高效地运行外,还需要确保页面性能,刷新频率尽量到达 60FPS。这就需要了解浏览器是如何进行渲染的。而浏览器渲染与 CSS 密切相关,因此只有了解其中工作原理才能让 CSS 更好地工作。 另外,接下来会出一篇优化实战文章,会涉及 JavaScript 和 CSS 一些优化。其中关于 JavaScript 的优化之前已进行过介绍: 常见的 JavaScript 内存泄露 。本文是对 CSS 优化进行一个补充。 Contents 浏览器 DOM tree CSSOM tree RenderObject tree(也称为 Render tree) Layout(布局) RenderLayer tree Rendering(渲染方式) GrphicsLayer tree Tiled Rendering(瓦片渲染) High Performance Animations(流畅动画) 总结 参考文章 浏览器 用户界面(User Interface):包括地址栏、前进/后退按钮、书签菜单等。除了浏览器主窗口显示的您请求的页面外

Android8.0硬件加速的重绘流程

戏子无情 提交于 2019-12-02 13:50:46
几个PFLAG的作用 PFLAG_DRAW_ANIMATION:表示当前view在做Animation动画。 PFLAG_HAS_BOUNDS:表示此view是否layout过。 PFLAG_DRAWN :当invalidate时会把此标记删除,当调用draw方法(包括软件硬件两个都设置了), PFLAG_DRAWING_CACHE_VALID: 表示当前cache是否有效, 如果父view是soft layer,那么在把绘制分发到此view时,会用这个flag来判断是否进行重建drawing cache,不管该view的layerType是hard/soft。 PFLAG_INVALIDATED :指示当前view明确是invalidated,而不只是因为其子view invalidate而dirty。该标志用于确定何时需要重新创建view的 display list(而不是仅仅返回对其现有 display list的引用)。 好像软件绘制没有判断PFLAG_INVALIDATED的,但在硬件加速中view.mRecreateDisplayList是根据此标记来设置。 PFLAG_DIRTY:View flag indicating whether this view was invalidated (fully or partially.)

Your WebGL implementation doesn't seem to support hardware accelerated rendering. Check your browser

我的未来我决定 提交于 2019-11-29 21:39:39
报错原因 电脑不支持gpu硬件加速 首先检查电脑是否支持硬件加速,检查方法见以下链接 https://jingyan.baidu.com/article/148a1921f009fb4d70c3b171.html 如果显示已经开启硬件加速还是不行,请看以下 解决办法 https://superuser.com/questions/836832/how-can-i-enable-webgl-in-my-browser 一、检查浏览器设置(以下为chrome浏览器) 1.chrome浏览器输入chrome://settings 高级-》打开使用硬件加速 2.chrome浏览器输入chrome://gpu Graphics Feature Status下面的两个webgl是否支持硬件加速(如果显示不支持,可能是电脑驱动的原因) 3.chrome浏览器输入chrome://flags 搜索webgl,启用(我的为不启用也可以,此项可以忽略) 二、检查电脑是否安装驱动 可以使用驱动精灵、360、腾讯电脑管家等软件检测并安装驱动 ———————————————— 原文链接:https://blog.csdn.net/fyzhu01/article/details/86512667 来源: https://blog.csdn.net/wml00000/article/details

[译]Windows 中的 2D 绘图 API

走远了吗. 提交于 2019-11-26 21:43:05
原文链接 : 2D Drawing APIs in Windows 背景知识 : Windows 图形编程 在 Windows 7 操作系统中,微软花费了很大的力气构建了一套新的 2D 绘图 API。我们称之为 Direct2D ,隶属于 DirectX 家族。这个 API 的开发填补了 Windows 图形平台的一些缺陷。其中非常重要的一点就是普通的 2D 程序渲染不再缺乏硬件加速。而在 Windows Vista 中,我们知道 GDI 是无法进行硬件加速的。微软寄望于开发的这个 API 具备很多现代特性。比如支持抗锯齿和 Alpha Blend 的 2D 渲染,和其它现代图形 API 交互,服务器端渲染,诸如此类。 为了方便理解微软为何开发 Direct2D ,我们先来回顾一下当初开发 Windows 时的历史。最初的渲染系统叫做 GDI (图形设备接口),今天仍然存在。它最初为 16 位 Windows 写就,随后升级到 32 位 Windows (Windows 95 和 Windows NT)。因为 GDI 是为很久以前那些计算能力低下的计算机而开发的,所以它并没有诸如抗锯齿之类的特性,大多数 API 亦不支持 Alpha 通道。 在 Windows 95 期间,DirectX 发布了第一版。DirectDraw 是其中最早的组件之一。当初的本意是在硬件加速启用的情况下

浏览器渲染简述

筅森魡賤 提交于 2019-11-26 10:19:43
singsong: 文本是自己看了一些不错资料整理出来的,对该知识点感兴趣的同学可以查看 参考文章 小节。 ✏️最新内容请以github上的为准❗️ 为什么要写这篇文章? 主要为 CSS 优化工作打一下基础。要编写高性能的网站和应用,除了确保编写的代码尽可能高效地运行外,还需要确保页面性能,刷新频率尽量到达 60FPS。这就需要了解浏览器是如何进行渲染的。而浏览器渲染与 CSS 密切相关,因此只有了解其中工作原理才能让 CSS 更好地工作。 另外,接下来会出一篇优化实战文章,会涉及 JavaScript 和 CSS 一些优化。其中关于 JavaScript 的优化之前已进行过介绍: 常见的 JavaScript 内存泄露 。本文是对 CSS 优化进行一个补充。 Contents 浏览器 DOM tree CSSOM tree RenderObject tree(也称为 Render tree) Layout(布局) RenderLayer tree Rendering(渲染方式) GrphicsLayer tree Tiled Rendering(瓦片渲染) High Performance Animations(流畅动画) 总结 参考文章 浏览器 用户界面(User Interface):包括地址栏、前进/后退按钮、书签菜单等。除了浏览器主窗口显示的您请求的页面外