自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(539)
  • 资源 (17)
  • 收藏
  • 关注

原创 [Android] NDK 里 ANativeWindow 和 Surface 之间的关系

在MediaCodec里面可以看到 Configure 和 SetSurface 都是接收一个 sp<Surface> 入参的,而回归到 NDK 侧,则可以发现,传递给 AMediaCodec_Configure 和 AMediaCodec_SetSurface 的确是 ANativeWindow 指针,因此 ndk 里面必然进行了某种转换。由此可见, Surface 类是 ANativeWindow 的子类。

2024-08-06 16:59:18 257

原创 [Android] Surface SurfaceView SurfaceHolder 三者之间的关系

Surface 是绘制对象,SurfaceView是一个组件,SurfaceHolder是SurfaceView操作Surface的接口。虽然SurfaceView里面包含Surface,但是SurfaceView无法直接操作Surface,需要借由SurfaceHolder这个接口类来操作。

2024-07-26 14:06:33 230

原创 [FFmpeg] windows下安装带gpu加速的ffmpeg

目前只有 NIVIDIA 支持 ffmpeg 的 gpu加速(AMD貌似也陆续开始支持)。在下述网站中查找自己的显卡能够支持的编解码格式。

2024-07-05 17:38:19 634

原创 [Qt] Qt for android, gradle-8.3-bin.zip (No such file or directory)

android 工程需要 gradle 作为打包工具,Qt for android 如果想要打包 apk 同样需要使用 gradle,但是 包括 Android studio 在内的诸多 Android IDE 工具都没有自带的 gradle 工具,可能是因为 gradle 的版本迭代较快,因此各个 IDE 均采用从服务器实时下载 gradle 的方式。

2024-07-01 15:13:41 1096

原创 [modern c++] copy elision

有两种对象构造方法,一是在指定内存上构造对象,另一个是先构造一个临时对象,然后把对象拷贝到指定内存上。

2024-07-01 11:22:23 128

原创 [Gstreamer] 消息处理handler的设置

Gstreamer 提供以 GstMessage 和 GstBus 为基础的消息传递机制,所有GstMessage 发送的时候都需要指定 GstBus 用来明确当前 message 将在哪条 Bus 上流转。所有的 GstMessage 最终都会进入一个handler,这个handler函数可以通过两种方式设置 gst_bus_set_sync_handler 和 gst_bus_add_watch。如果没有设置 handler 函数,那么GstMessage将永远不会被处理,从而造成内存泄漏。

2024-06-27 17:24:08 270

原创 [Gstreamer] gstbasesink 里的 jitter

这个值表示当前到达 gstbasesink chain 函数(push mode) 的 GstBuffer 的系统事件 与 这个 buffer 被期望到达的系统时间的差值。jitter 除了被用在配合处理 同步问题外,还被用来处理 qos 问题,比如 qos 的 throttle event type 就需要结合 jitter 的值来进行综合判断。,则表示 GstBuffer 到晚了,当前 GstBuffer 或多或少属于 late了,可能存在被 drop的可能,还需要根据 segment 来做综合判断。

2024-06-26 16:12:02 236

原创 [Gstreamer] gstbasesink 的 QOS 机制

gstreamer里很多element都提供 QOS 机制,src,filter 和 sink 都有。Sink element 的 QOS 机制由 gstbasesink 统一提供。

2024-06-26 09:54:05 202

原创 [modern c++][11] 非类型模板参数

我们再使用 std::get 的时候发现其模板并不是一个类型,而是一个整数值,用来标识从某个位置获取值,比如 std::pair 类型的数据 tmppair,那么就可以通过 std::get(tmppair)来获取key的值,通过 std::get(tmppair)来获取value的值。这就是非类型模板参数的一个用例。非类型模板参数允许我们使用值作为模板类型,这个值可以是整数,引用,指针等等。既然是使用值(左值/右值) 作为模板的某个参数,那么为什么不把这个值直接函数入参传递给函数呢?

2024-06-24 17:39:40 391

原创 [modern c++] 库列表

C++ library headers <algorithm> <iomanip> <list> <ostream> <streambuf> <bitset> <ios> <locale> <queue> <string> <complex> <iosfwd> <map> &l

2024-06-19 11:42:20 342

原创 [modern c++][17] 任意数据类型 any

c++17里引入了std::any类型,这个类型类似于union类型,但是比union功能多且能容纳所有类型(内置类型/自定义类型),同时提供 type 方法用于获取一个 type_info 实例,进而用于准确判断入参的准确类型。

2024-06-19 11:41:22 237

原创 [modern c++][11] 类型描述库 typeindex

头文件:#include typeindex库 包含两个类 std::type_info 和 std::type_index。

2024-06-19 11:28:37 266

原创 [modern c++] 类型萃取 type_traits

type_traits 又叫类型萃取,是一个在编译阶段用于进行类型判断/类型变更的库,在c++11中引入。因为其工作阶段是在编译阶段,因此被大量应用在模板编程中,同时也可以结合 constexpr 这种在编译阶段就进行计算的语句进行编译阶段的运算。

2024-06-19 11:15:22 331

原创 [Android] Binder 里的 Service 和 Interface 分别是什么

在使用 Binder 的时候,会使用到两个常量字符串,一个是 ServiceName ,一个是 InterfaceName,他们格式如下:ServiceName通常不携带 @1.0 这种类似于版本号的东西,InterfaceName会携带。

2024-06-14 19:29:25 354

原创 [modern c++] 如何在h/hpp头文件中定义一个常量,并限制其不被没有include本头文件的编译单元访问到

c++98 提出了匿名namesapce ,所有定义在匿名namespace中的变量都具备内部连接属性,所以可以把续要定义的值放在匿名namespace里,再把相关代码放入源文件里,这样做的缺点在于无法在h/hpp头文件中访问到这些变量,因此头文件无法获知源文件里的值。//1.hpp//错误//由于无法访问cpp中的符号,所以这里没法定义arr的尺寸。//1.cpp。

2024-06-11 16:40:54 324

原创 [modern c++] 使用shared_mutex , shared_lock完成读写锁,Need C++ 17

C++ 17开始,引入了两个新的同步组件, shared_mutex 和 shared_lock ,这两个组件的一个典型使用案例就是实现读写锁。

2024-06-04 10:16:55 384

原创 [Android] MediaCodec configure过程中的 profile 和 level

由于这些值定义在java层,因此流程进入mediacodec 的 native 端后,这些值将以整形的方式存在,所以如果希望获取到具体含义,那么可以通过 jni 来获取这些枚举值的实际意义。Android 的 MediaCodec 组件会在 configure 的过程中携带 profile 和 level 信息,比如。这些信息表明将要到来的stream的编码profile 和 level,因此底层在分配硬件解码器资源的时候是需要结合。分辨率,帧率,profile,level ,编码格式。

2024-05-30 11:23:30 364

原创 [modern c++] 使用 chrono 处理 c++ 中时间相关问题

c++ 11 引入了 chrono 用以处理时间/时区相关的问题。

2024-05-29 18:39:16 101

原创 [工程构建] ubuntu里如何找到某个库使用的头文件和链接库

【代码】[工程构建] ubuntu里如何找到某个库使用的头文件和链接库。

2024-05-27 09:49:36 599

原创 [GStreamer] gst_element_link 及 pad 在继承体系中如何存在

pad 是每个 element实例都有的,是 elemenet 之间沟通的代理人,没有 pad 的 element 没法于其他element交流。考虑到gstreamer存在继承体系,那么如果继承类element不在init函数里创建pad,那么在gst_element_link的时候是否可以使用父类element实例的pad呢?下面从源码来找答案。在gstutils.c找到的实现。直接调用同样在gstutils.c,入参为上有element和下游element。实现同样在。

2024-05-24 11:49:14 747

原创 [工程构建] 使用pkg-config协助工程搭建

上面提到的 --cflags 和 --libs 选项是如何获得结果中的信息呢?其实,pkg-config 工作的原理是每个库都要提供自己的 .pc文件,这个文件里描述了在使用这个库时需要用到的链接选项是什么,头文件路径又在哪里。比如。

2024-05-08 14:44:10 471

原创 [Linux使用] apt dpkg 常用包管理命令

查找头文件信息:sudo apt install apt-filesudo apt-file updateapt-file search gst.h查找库文件位置:whereis gstreamer查找已安装的库:dpkg -l |grep gstreamer

2024-05-08 11:07:14 244

原创 [Android] 使用 android 自带的 hidl 共享内存接口,Ashmem

Android 提供了 一个共享内存服务 android::hidl::allocator::V1_0::IAllocator / android::hidl::memory::V1_0::IMemory, 通过这个接口可以向 android 直接请求共享内存。使用此方法可以更加方便和安全地在 android 系统中使用共享内存,而不需要使用 posix c 的共享内存模块。

2024-04-29 11:17:16 513

原创 [Android] 基于binder的共享内存

Android里的binder机制是基于共享内存实现的跨进程间通讯,其作为驱动程序为上层应用提供高效的IPC。Android同样提供了基于 binder 的实际内存管理和使用模块。通过这个模块可以按照binder的框架写法直接使用 raw 共享内存。这是 binder 机制的一种共享内存泛化使用,而不仅仅是使用共享内存实现IPC和RPC。

2024-04-28 12:06:56 276 2

原创 [common c++] 为何纯虚父类可以在子类的构造函数初始化列表进行实例化

纯虚类(抽象类) 是只至少拥有一个纯虚函数的类,这种类可以有成员变量,但是不能进行单独的实例化(new,局部变量,智能指针构造等等)。其根本原因是由于纯虚类提供了未实现的成员函数,所以编译器无法知道如何处理这种悬空的成员函数符号表,就好像一个dangling function pointer一样,没有指向任何 .text section。所以一旦授权实例化形成实例,那么就会出现类似于访问悬垂指针的情况。因此是禁止实例化的。

2024-04-23 14:28:03 348 1

原创 [git] 使用git和github工作思路和经验

有时候在本地修改代码时,会涉及到一些拼写错误和编译错误,这个过程可能反复操作很久,因此会产生很多意义不大的commit,如果不对这些commit进行合并就直接上传到github上对应的远程分支,那么远程分支里同样会出现一些无意义的commit。git --amend 经常用来修补上一次提交,但是如果上一次提交已经被 git push 到远程仓库了,那么本次 --amend 的提交在被 push 到远程仓库的时候就会被要求先从远程仓库merge代码才可以进行本次提交。如果确实发生了这个问题,可以通过。

2024-04-17 14:35:14 551

原创 [Android] Binder Native端如何获取Binder Proxy端的 pid

IPCThreadState::self()->getCallingPid()

2024-04-11 10:33:25 153

原创 [Android] 使用gbinder与Android的service进行native层的IPC通讯

Android 框架是以 Binder 为基础搭建起来的,处处都离不开 Binder IPC, Android的native binder库为libbinder。其他第三方的binder库有libgbinder。

2024-04-09 15:45:17 502

原创 [Android] MediaPlayer SDK API glance

音视频的 playback。创建 MediaPlayer 的线程必须和调用 SDK 接口的线程是同一个。注册 callback 给 MediaPlayer SDK 的 thread 必须自带一个 running Looper,比如 main UI thread。回调函数:常用 :回调函数说明。

2024-03-05 11:06:25 609

原创 [SD] stable diffusion webui forge 安装

stable diffusion webui forge 是 stable diffusion webui 的定制版,其主要面向快速图像生成。

2024-03-01 15:32:35 1836

原创 [SD] 安装使用stable diffusion webui

后面启动可以使用run.bat,也可以使用 webui-user.bat ,这里建议使用 webui-user.bat,因为有些时候安装插件后会需要更新一些python库,而run.bat无法看到进度,会误以为没有启动成功,而webui-user.bat会把更新安装进度打印出来。这里建议手动安装,即到对应的git仓库下,手动下载zip包,丢到externsions目录下解压,重启webui即可。如果启动浏览器以后发现有Error提示,则可能是代理的问题,需要关闭代理即可。

2024-03-01 15:28:53 592

原创 [多媒体服务器] 通过nginx搭建 rtmp/hls/dash 媒体服务器,支持点播和直播

rtmp://localhost/live/stream 中的 localhost 代表本机,不用动,live是nginx.conf文件里的 application live,如果是 application live1,那么这里就是 live1 , stream 是当前流的标识,可以自定义为任何字符串。nginx,nginx rtmp插件,OBS,ffmpeg,ubuntu,youtube-dl。增加如下内容到nginx配置文件 nginx.conf。nginx重新加载配置文件nginx.conf。

2024-03-01 11:53:50 2087

原创 [Linux 使用] 使用addr2line分析二进制文件,输出指定地址对应的函数名

addr2line-CSDN博客

2024-02-20 13:54:54 502

原创 [Android] Client->NuPlayer

startuml@enduml。

2024-02-07 18:02:24 1204

原创 [common c++] 关于虚函数表

25.6 — The virtual table – Learn C++

2024-02-06 10:54:27 598

原创 [Android] NuPlayer回调通知直至App

font color="green">处理来自Client的回调。

2024-02-05 17:06:09 776

原创 [Android Audio] 框架

https://source.android.com/docs/core/audio?hl=zh-cn

2024-02-04 19:17:07 421

原创 [Android Studio] Failed to apply plugin [id ‘com.android.application‘]

1.检查settings.gradle里的 maven 仓库是否存在,正常内容如下。

2024-02-01 15:34:38 1319

原创 [Android] SDK->NuPlayer

[Android] SDK->NuPlayer。

2024-01-30 16:19:19 700

原创 [Android] libmedia-libmediaplayerservice 框架

【代码】[Android] libmedia-libmediaplayerservice 框架。

2024-01-26 18:41:16 438

TEST6.2.404.485.3.SXANDROID_TVAPP.0.0_Pre_Release.apk.1

TEST6.2.404.485.3.SXANDROID_TVAPP.0.0_Pre_Release.apk.1

2023-08-10

hpplay-happytest-release-v8.12.37.apk.1

hpplay-happytest-release-v8.12.37.apk.1

2023-07-03

Python实现算法和数据结构

Python实现算法和数据结构

2021-10-20

ALL-HEADS.7z

c-ares : 1.14.0版本 exosip2 : 5.0.0版本 osip2 : 5.0.0版本 ffmpeg : 4.2.2版本

2020-10-19

ALL-DLLS.7z

c-ares : 1.14.0版本 exosip2 : 5.0.0版本 osip2 : 5.0.0版本 ffmpeg : 4.2.2版本

2020-10-19

ALL-LIBS.7z

c-ares : 1.14.0版本 exosip2 : 5.0.0版本 osip2 : 5.0.0版本 ffmpeg : 4.2.2版本

2020-10-19

ffmpeg windows sdk 和 动态库

ffmpeg 4.2.2版本 的 windows win64动态库,从官网下载的,目前再想找不大好找了,这里留一个做备份,此外还有配套的 sdk lib文件。 ffmpeg-4.2.2-win64-dev : sdk ffmpeg-4.2.2-win64-shared : 动态库

2020-10-17

ffmpeg windows sdk 和 动态库

ffmpeg 4.2.2版本 的 windows win32动态库,从官网下载的,目前再想找不大好找了,这里留一个做备份,此外还有配套的 sdk lib文件。 ffmpeg-4.2.2-win32-dev : sdk ffmpeg-4.2.2-win32-shared : 动态库

2020-10-17

vcruntime140_1.dll

windows的vc运行库,mysql运行时可能会提示缺少此文件,直接下载放到Windows/System32 和 Windows/SysWOW64 下即可

2020-05-18

excel文件转换为Qt的ts文件

具体细节:https://blog.csdn.net/ykun089/article/details/106100149

2020-05-13

Qt的ts文件转换成excel文件

使用python将ts文件格式化为excel文件,使用方法,将需要操作的ts文件改名为en2zh.ts,置于exe同级目录下,执行exe即可,输出文件为en2zh.xlsx。 ****** 注:如有定制化处理需求,或者任何相关问题可通过邮箱联系本人 ykun089@163.com *****

2020-05-12

ts2excel.exe

使用python将ts文件格式化为excel文件,使用方法,将需要操作的ts文件改名为en2zh.ts,置于exe同级目录下,执行exe即可,输出文件为en2zh.xlsx。 源码见:https://github.com/obentul/PythonPROJ/tree/master/xmlAndexcel 源码见:https://github.com/obentul/PythonPROJ/tree/master/xmlAndexcel 源码见:https://github.com/obentul/PythonPROJ/tree/master/xmlAndexcel

2020-05-12

ts2excel.exe

使用python将ts文件格式化为excel文件,使用方法,将需要操作的ts文件改名为en2zh.ts,置于exe同级目录下,执行exe即可,输出文件为en2zh.xlsx。 源码见:https://github.com/obentul/PythonPROJ/tree/master/xmlAndexcel 源码见:https://github.com/obentul/PythonPROJ/tree/master/xmlAndexcel 源码见:https://github.com/obentul/PythonPROJ/tree/master/xmlAndexcel

2020-05-12

makefile精炼版

精炼的makefile学习指南,无废话,经典清晰。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2018-05-13

tipc网络通讯协议栈源代码

实测可用,丢入内核根目录直接编译即可,输出ko文件,使用modprobe tipc来启动。如编译过程中遇到任何问题,可私信联系我

2018-05-11

rfc3261 sip协议

SIP协议官方文档,rfc3261。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2018-05-05

spring framework reference-4.3.10

spring framework reference 4.3.10 的epud格式和mobi格式,内含两个文件

2017-07-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除