- 博客(39)
- 资源 (98)
- 收藏
- 关注
原创 OpenGL之显卡、GPU、显存之间的关系(八)
本篇目的:显卡、GPU、显存之间的关系显卡 = GPU + 显存。2.什么是显卡?显卡(Video card,Graphics card)全称显示接口卡,又称显示适配器。是电脑进行数模信号转换的设备,承担输出显示图形的任务。显卡接在电脑主板上,它将电脑的数字信号转换成模拟信号让显示器显示出来,同时显卡还是有图像处理能力,可协助CPU工作,提高整体的运行速度。3.什么是GPU?GPU:GPU是显卡的处理器(相当于CPU)(Graphic Processing Unit,图形处理单元。
2020-12-30 20:35:37 893
原创 OpenGL调用GPU(七)
本篇目的:理解OpenGL如何调用GPU。PS: 其实最新版本的Mesa3D图形库也支持Direct3D9的, Mesa3D除此之外还支持OpenCl, OpenGL ES等等.
2020-12-30 19:41:51 3613
原创 Gstreamer之跨平台element(十六)
1.Androideglglessink视频sink是基于OpenGLES和EGLopenslessink音频sink基于OpenSL ESandroidmediaandroid.media.MediaCodec支持在设备侧编解码包括硬件编解码,Android4.1以后支持。2.Linuxximagesink标准基于X11视频sink,支持缩放需借助videoscale element。xvimagesink基于X11系统的视频sink,支持在GPU上进行高.
2020-12-29 23:59:13 393
原创 Gstreamer离线版官方文档(十五)
鉴于Gstreamer官网访问比较缓慢,构建一个本地离线官方文档,方便学习查阅。1.配置编译环境# sudo apt instll python3-dev libxml2-dev libxslt1-dev cmake libyaml-dev libclang-dev llvm-dev libglib2.0-dev libjson-glib-dev flex# pip3 install hotdoc2.下载Gstreamer Doc# git clone https://github.co.
2020-12-29 23:33:12 539
原创 Linux通过域名查ip(四十六)
dig :它是一个用于查询 DNS 名称服务器的灵活命令行工具。host :它是用于执行 DNS 查询的简单程序。nslookup :它用于查询互联网域名服务器。fping :它用于向网络主机发送 ICMP ECHO_REQUEST 数据包。ping :它用于向网络主机发送 ICMP ECHO_REQUEST 数据包。...
2020-12-28 22:56:16 2806
转载 闲聊Framebuffer
背景接触过图形相关的同学应该对Framebuffer这个名词不陌生,但Framebuffer究竟是什么,用来做什么,在我接触图形相关工作以前,对我来说一直是模糊的。本文主要闲聊Framebuffer。什么是Framebuffer?Framebuffer,也叫帧缓冲,其内容对应于屏幕上的界面显示,可以将其简单理解为屏幕上显示内容对应的缓存,修改Framebuffer中的内容,即表示修改屏幕上的内容,所以,直接操作Framebuffer可以直接从显示器上观察到效果。但Framebuffer并
2020-12-25 17:10:29 805
原创 Ubuntu18.04安装Android Studio
1.安装、配置Open JDK8# sudo apt-get install openjdk-8-jdk# sudo emacs /etc/profileexport PATH=/usr/lib/jvm/java-8-openjdk-amd64/bin:$PATHexport JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:${JR.
2020-12-25 13:42:40 1048
原创 Ubuntu18.04上AS运行模拟器报错:/dev/kvm device: permission denied
# whoamiubuntu# sudo chown ubuntu:ubuntu /dev/kvm# sudo chmod 777 /dev/kvm
2020-12-25 13:19:46 437
原创 Android Studio报错: Alternatively, to transfer the license agreements from one workstation to another
1.Android Studio报错: Alternatively, to transfer the license agreements from one workstation to another, see http://d.android.com/r/studio-ui/export-licenses.html2.解决进入Android Sdk# cd ~/Android/Sdk/tools/bin# ./sdkmanager --licenses一路选"y"即可....
2020-12-25 11:44:42 832
原创 mp4格式封装工具MP4Box(十一)
1.下载MP4Box源码# git clone https://github.com/gpac/gpac.git# cd gpac-1.0.1# emacs +499 src/utils/downloader.cvoid *gf_ssl_server_context_new(const char *cert, const char *key)注释:- SSL_CTX_set_ecdh_auto(ctx, 1);}# ./configure# make -j4# make instal.
2020-12-23 19:00:17 2387
原创 Ubuntu18.04有线+离线划词翻译GoldenDict(四十五)
1.安装GoldenDict//得到鼠标选中内容sudo apt-get install xclip//翻译工具的命令行版本sudo apt-get install sdcv//作为系统通知用sudo apt-get install notify-send# sudo apt-get install goldendict2.打开屏幕取词---->编辑 ---->首选项 ---->屏幕取词3.配置在线取词翻译---->编辑 ---->辞典 .
2020-12-23 11:47:58 1325
原创 FFmpeg之wav/aac转pcm(十一)
1.wav转pcm# ffmpeg -i Young.wav -f s16be -ar 44100 -ac 2 -acodec pcm_s16be Young.pcm2.播放pcm# ffplay -ar 44100 -channels 2 -f s16be -i Young.pcm
2020-12-23 10:40:09 3097
原创 Android/Linux性能分析工具推荐(一百零二)
iostat: 输出CPU的统计信息和所有I/O设备的输入输出(I/O)统计信息。mpstat: 关于CPU的详细信息(单独输出或者分组输出)。pidstat: 关于运行中的进程/任务、CPU、内存等的统计信息。sar: 保存并输出不同系统资源(CPU、内存、IO、网络、内核等。。。)的详细信息。sadc: 系统活动数据收集器,用于收集sar工具的后端数据。sa1: 系统收集并存储sadc数据文件的二进制数据,与sadc工具配合使用sa2: 配合sar工具使用,产生每日的摘要报告。sadf:.
2020-12-22 19:49:25 485 1
原创 Linux/Android之sar查看IO/CPU占用率(一百零一)
# sudo apt install sar1.查看内存利用率信息# sar -r2.CPU 利用率信息# sar -u3.交换空间利用率信息# sar -S4.内核表统计信息 # sar -v5.交换信息# sar -W6.任务创建与系统转换信息# sar -w7.TTY 设备信息# sar -y8.队列长度和平均负载# sar -q...
2020-12-22 19:47:51 1327
原创 Linux/Android之perf追内存泄漏工具(api级别)(一百)
一、安装# sudo apt install linux-tools-common# sudo apt install linux-tools-5.4.0-59-generic# perf topperf list查看当前系统支持的性能事件;perf bench对系统性能进行摸底;perf test对系统进行健全性测试;perf stat对全局性能进行统计;perf top可以实时查看当前系统进程函数占用率情况;perf probe可以自定义动态事件;perf kmem针对slab子.
2020-12-22 19:33:51 2201
原创 Android/Linux之procrank查内存工具(九十九)
1.procrank_linux for Linux# git clone https://github.com/lanxinyuchs/procrank_linux# cd procrank_linux# make # sudo cp procrank /usr/local/bin# sudo procrank2.procrank for Android# cd procrank_linux# mm # su# ./procrank
2020-12-22 19:13:12 447
原创 make install到指定安装目录
1.Makefile工程# make install DESTDIR=/path2.QT工程make install INSTALL_ROOT=/path3.ninja工程DESTDIR=/path ninja -C . install注意:./path为绝对路径
2020-12-22 17:33:47 13047
原创 Ubuntu18.04开机自启动脚本systemctl方式(四十四)
1.创建test.service,使之启动auto_start服务# sudo vi /etc/systemd/system/auto_start.service[Unit]Description=/etc/rc.local CompatibilityConditionPathExists=/etc/auto_start [Service]Type=forkingExecStart=/etc/auto_start startTimeoutSec=0StandardOutput=tty.
2020-12-21 20:44:12 3110
原创 ffmpeg+rtmp推流/拉流(十)
一、搭建rtmp服务器1.下载nginxhttps://github.com/nginx/nginx/archive/release-1.19.6.zip2.下载nginx-rtmp-modulehttps://github.com/arut/nginx-rtmp-module/archive/v1.2.1.zip3.编译安装nginx将两个包解压到同一个文件夹下# cd nginx-master/auto# ./auto/configure --add-module=../nginx-
2020-12-20 03:23:29 2633 1
原创 Ubuntu18.04安装BeyondCompare(四十二)
# axel http://www.scootersoftware.com/bcompare-4.3.7.25118_amd64.deb -n 100# sudo dpkg -i bcompare-4.3.7.25118_amd64.deb# bcompare
2020-12-18 23:54:36 2238 1
原创 librtmp之rtmpdump推流/拉流(九)
1.安装zlib和openssl<1>.安装编译openssl 1.0.1,版本太新rtmpdump编译不了# git clone https://github.com/openssl/openssl/tree/OpenSSL_1_0_1-stable# cd openssl-OpenSSL_1_0_1-stable# ./config --prefix=/usr/# make -j4# sudo make install //彻底替换高版本的openssl1.1为openss.
2020-12-18 18:30:47 1393 1
原创 libvpx将yuv转vp8/vp9(八)
1.下载Google编解码器libvpx Code# git clone https://github.com/webmproject/libvpx2.编译# sudo apt install yasm nasm# cd libvpx-master# ./configure# make -j4编译后生成:vpxdec:可以直接使用的解码VP8,VP9命令行程序vpxenc:可以直接使用的编码VP8,VP9命令行程序libvpx.a:可以用于程序开发的编码VP8,VP9的类库# .
2020-12-18 01:22:49 767
原创 x265命令将yuv转h265(七)
1.下载x265 code# git clone https://github.com/videolan/x265.git2.编译# cd x265-master/build/linux# ./make-Makefiles.bash# make # make install# sudo mkdir -p /lib/x86_64-linux-gnu/tls/x86_64/x86_64/# sudo cp libx265.so.198 /lib/x86_64-linux-gnu/tls/.
2020-12-17 23:44:43 915 1
原创 Linux wifi优先级高于ethernet
设置wifi优先级高于以太网# sudo route del default gw 192.168.12.254# ip routedefault via 192.168.12.254 dev enp0s31f6 proto dhcp metric 20100 //以太网优先级:20100 > 20600default via 172.16.205.254 dev wlp0s20f3 proto dhcp metric 20600 //wifi:20600169.254.0.0/16 de.
2020-12-14 20:15:02 765
转载 Android OpenGL/Gralloc到framebuffer和LCD流程(六)
一、OpenGL ES与EGL Android的GUI系统是基于OpenGL/EGL来实现的。由于OpenGL是通用函数库,在不同平台系统上需要被“本土化”——把它与具体平台的窗口系统建立起关联,FramebufferNativeWindow是负责OpenGL ES在Android平台上本地化的中介之一。为OpenGL ES配置本地窗口的是EGL,EGL介于本地窗口系统和Rendering API(即OPenGL ES)之间的一层接口。 与OpenGL相关的模块可分为: (1)配置类...
2020-12-14 01:18:21 1395
转载 图像从程序到GPU再到LCD显示的流程:GPU渲染管线(五)
1. 模型坐标变换这个阶段主要是将各个物体的建模坐标系转换到世界坐标系。在程序中不同物体他们建模坐标系是不一样,有些适合球坐标有些适合直角坐标。但是为了将他们整合在一起,最终程序需要将他们转换到世界坐标。在游戏里面你开第一人称视角,那就是以你为原点设计了一个建模坐标系,但是你开枪击中别人以及你位于地图哪个位置。这些都是需要转换到世界坐标中统一进行计算。2. 视图变换虽然经过步骤1可以把所有物体都转换到统一的世界坐标。但是这些物体在屏幕上显示的只是某个视角的所观察到的。你打游戏开第一人称视角,移动
2020-12-14 01:14:20 747
原创 pstack: Input/output error failed to read target解决
1.pstack获取进程死锁堆栈信息报错# sudo pstack 3200 //pid3200: ./a.outpstack: Input/output errorfailed to read target.2.pstack是gdb封装的shell脚本:# sudo emacs pstack#!/bin/shif test $# -ne 1; then echo "Usage: `basename $0 .sh` <process-id>" 1>&2.
2020-12-12 12:52:26 3880 1
转载 线程死锁分析思路(九十七)
定位方法:(1)如系统存在运行日志,首先分析日志信息。(2)利用pstack工具打印出此时系统的存在线程堆栈快照。(3)有些阻塞栈可能是因为它需要等待前面的线程执行结束才可以执行,所以要先确定依赖关系。(4)若问题可以复现,可以利用gdb调试系统,但若不确定问题是否可以复现,则推荐不要使用gdb,因为会破坏问题产生的环境,gdb在一定程度上会影响系统运行导致卡住的因素由成立变成不成立。示例代码:#include <unistd.h>#include <pthrea.
2020-12-12 01:01:42 433
原创 Android/Linux线程死锁demo分析(九十六)
1.线程死锁#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <unistd.h>pthread_mutex_t m;void *runodd(void *d){ int i=0; for(i=1;;i+=2){ pthread_mutex_lock(&m); printf("奇数:%d\n",i); usleep(100); pthr.
2020-12-12 00:42:37 367
转载 删除Github仓库某一次commit信息/历史
前言本文旨在说明:1)在本地github仓库中删除某一次commit 提交信息/历史/记录;2)如何同步到远程github仓库(使其不显示该commit的信息)。之所以记这个,因为我在百度上没有看到合适的解决方案,所以感觉有必要在这里记录一下。解决方案话不多说,直接上解决方案。(精简一点,以前都要说好些废话,说些场景之类的,以后我感觉得酌情说,看情况,没必要说一些废话)假定现在的情况是:有10个commit,然后git log查看commit信息:commit-A 10月com
2020-12-10 16:12:23 1662
转载 markdown语法笔记(二)
markdown是轻文本编辑器,并不像word那么强大,所以画图也是轻量级的,功能并不全。如使用mermaid画图时不能从上往下,同时又从右往左。推荐markdown编辑软件 -typoramermaidgraph(流程图)节点名不能与关键字同名 使用引号可以避免一些不必要的麻烦,如避免与关键字同名关键字graph表示一个流程图的开始,同时需要指定该图的方向图方向TB,从上到下 TD,从上到下 BT,从下到上 RL,从右到左 LR,从左到右T = TOP,B..
2020-12-09 22:53:33 635
原创 ubuntu18.04 有线未托管解决(四十一)
# sudo vim /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf在unmanaged-devices,在最后添加",except:type:ethernet"# sudo systemctl restart NetworkManager
2020-12-08 19:08:21 1166
原创 查看进程被哪个进程杀掉(九十五)
1.demo.c#include <unistd.h>#include <sys/syscall.h>#include <stdio.h>int main(){ pid_t tid; while(1){ sleep(1); tid = syscall(SYS_gettid); printf("tid(hex) = %#x, tid(dex) = %d\n",tid,tid); }}# gcc demo.c # ps aux | gre.
2020-12-05 22:51:54 1271
转载 valgrind内存泄露和线程竞态检测
valgrind通常用来成分析程序性能及程序中的内存泄露错误一Valgrind工具集简绍Valgrind包含下列工具:1、memcheck:检查程序中的内存问题,如泄漏、越界、非法指针等。2、callgrind:检测程序代码的运行时间和调用过程,以及分析程序性能。3、cachegrind:分析CPU的cache命中率、丢失率,用于进行代码优化。4、helgrind:用于检查多线程程序的竞态条件。5、massif:堆栈分析器,指示程序...
2020-12-03 21:19:59 1017
原创 C语言之pthread_cond_wait()和pthread_cond_timedwait()区别(十五)
线程等待和唤醒函数比较平台提供了线程等待相关函数,这些函数之间用法也有些差异:sleep 线程等待,等待期间线程无法唤醒。 pthread_cond_wait 线程等待信号触发,如果没有信号触发,无限期等待下去。 pthread_cond_timedwait 线程等待一定的时间,如果超时或有信号触发,线程唤醒。 pthread_cond_timedwait():可以设置超时自动唤醒。sleep的缺陷是当有紧急事件到达时,线程无法及时唤醒。pthread_co...
2020-12-03 10:38:50 1276
原创 Ubuntu18.04截屏编辑工具flameshot(四十)
# sudo apt install flameshot启动# flameshot gui添加快捷键 ---->设置 ---->设备 ---->键盘 ---->最下边"+",新建快捷键
2020-12-02 22:54:07 757 1
原创 RK3399 Mali-T860占用率(九十四)
查看GPU频率范围# cat /sys/class/devfreq/ff9a0000.gpu/available_frequencies 200000000 300000000 400000000 600000000 800000000 查看GPU工作模式# cat /sys/class/devfreq/ff9a0000.gpu/available_governors userspace powersave performance simple_ondemand查看GPU最大频率# ca.
2020-12-01 22:05:22 3676
转载 Linux内存buffer与cache区别
一、首先大概了解一下计算机CPU、Cache、Buffer、内存、硬盘、SWAP CPU也称为中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。中央处理器主要由三核心部件组成,运算器、控制器和总线(BUS),运算器又主要由算术逻辑单元(ALU)和寄存器(RS)组成。 CPU Cache(缓存区)即高速缓冲存储器,集成在CP
2020-12-01 21:24:12 315
原创 sendevent/getevent模拟Power键(九十三)
1.显示event设备# getevent -t add device 1: /dev/input/event6 name: "rk29-keypad"add device 2: /dev/input/event5 name: "rockchip_headset"add device 3: /dev/input/event4 name: "compass"add device 4: /dev/input/event3 name: "eGalax_T.
2020-12-01 20:10:57 665 1
H.264标准协议(官方中文版)
2020-10-28
HxD_Hex编辑器中文版.zip
2020-09-12
MultimediaFrameworkOverview.zip
2020-09-01
Gstreamer-Openmax-gst-openmax.zip
2020-08-17
GStreamer中文开发手册.zip
2020-07-22
win10removeAll.zip
2020-06-25
vcxsrv-64.1.20.8.1.zip
2020-06-20
debug_hybris_demo.zip
2020-06-03
手写Fuchsia第一个app
2020-03-16
第五代加固技术ARM VMP原理实现与应用.zip
2020-03-01
AUDIO CODEC DAPM详解.zip
2019-12-30
蓝牙Audio调试.zip
2019-12-27
Universal Serial Bus Device Class Definition for Audio Devices.zip
2019-11-16
802.11 Reason Code中文说明(全)
2019-05-21
彻底禁掉Win10 Defender自启动
2022-12-24
Elecard HEVC Analyzer_For_Windows.zip
2021-01-06
JM-H264参考手册
2020-10-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人