- 博客(226)
- 资源 (3)
- 收藏
- 关注

原创 计算机翻译创建的新词汇收集
英文原版是“default value”,英文意思默认值,中文翻译成“缺省值”。英文原版是“flyweight pattern”,英文愿意是轻量级模式,中文翻译为“享元”。这样重复的对话可能会持续很多年。“老师,啥是缺省值?“缺省值就是默认值。
2024-07-27 12:46:11
337

原创 Win10+CUDA10.0.130+cudnn7.4.1+tensorflow1.13.1+anaconda3 5.2.0+GTX1060
Win10+CUDA10.0.130+cudnn7.4.1+tensorflow1.13.1+anaconda3 5.2.0+GTX1060 安装环境: 系统:win10 1803 显卡:GTX1060 笔记本:微星GL63 我是参照下面博客,完成了CUDA10.0.130+cudnn7.4.1+anaconda3 5.2.0这个博客讲的...
2019-05-16 11:13:08
4187
8
原创 面向对象——程序组成与走读
不管是oopc还是oop的语言,只要是面向对象思想,程序的组织就是各个对象交织在一起了。面向对象的程序,整体感觉,就是由各个对象的属性和方法来组成的。满眼看到的就是各个对象。组织方式就是设计模式。
2024-10-27 06:18:07
126
原创 ffmpeg面向对象——函数接口命名规则探索
虽然都是c语言,但都是采用的面向对象思想,然后又考究了其他oopc源码,也是同样的规则。所以这种规则是oopc的通用规则吧,或者说共识。
2024-10-15 12:21:10
130
原创 ffmpeg面向对象——priv_data设计原理探索
可以在ffmpeg一些数据结构(oopc的类表示)中见到“void *priv_data”这种形式的成员,它有啥作用?
2024-10-08 10:34:46
453
原创 ffmpeg面向对象——AVInputFormat与URLProtocol啥关系
前者是应用层协议,比如rtsp,http等,后者是实际协议的底层承载体,比如open,tcp等。先是匹配输入格式,然后再匹配url协议类。
2024-10-08 08:14:23
407
原创 demux和mux基础理解
说人话的话,那就是从理解的角度看,mux就是融合数据或复合数据,demux就是分离复合数据。开源项目里常把demux或者mux作为前缀或者后缀,比如live555,ffmpeg等。其实还有一种理解,mux就是多合一,放到数学上叫“降维”。demux就是还原,一分多。在流媒体里,mux被翻译成“复用”,demux被翻译成“解复用”。在数学软件(matlab等)或者流媒体开源项目里,常见到它们的身影。
2024-10-05 19:44:34
593
原创 ffmpeg面向对象——拉流协议匹配机制探索
如果让你写个拉流程序,输入的url,如果是本地文件路径,那就读取本地文件,然后输出一帧一帧的音视频数据,如果是网络流媒体传输协议比如http或者rtsp等,那么也得实现。
2024-09-29 20:28:11
1030
原创 ffmpeg面向对象——参数配置机制及其设计模式探索
ffmpeg支持很多配置——拉流配置推流配置等等——那么庞大的繁杂的配置项,如果是你,该如何实现呢?
2024-09-15 13:41:33
745
原创 ffmpeg面向对象-rtsp拉流相关对象
oopc中,这种继承是个老套路,也是经典讨论,linux中,还有rtthread RTOS的内核实现中常用这种套路,这个应该是oopc的经典。可以看到它实际分配的内存是FFFormatContext 然后返回的地址是AVFormatContext *类型的,这就是典型的oopc的。可以看到第1个成员就是AVFormatContext 类型的,avformat_alloc_context返回的就是这个成员的地址,其实。所谓接口继承,就是创建子类返父类的地址,这是多态实现的基础。
2024-09-08 12:57:01
761
原创 0.ffmpeg面向对象oopc
这让我想起来一件好玩的事,有些搞linux内核驱动的只会c的开发人员不知道linux内核是面向对象的,他们看到智能指针,继承,this指针也不认识。因为查rtsp相关问题,接触了下ffmpeg源码,发现它和linux内核一样,虽然都是c写的,但是都是面向对象的思想,c的面向对象称之为oopc。这就是怎么说,这个代码是c写的没错,但是它采用的思想是不受非c面向过程的束缚,非c半生思想——面向过程。也就是说采用的思想超出了这个编程语言的伴生思想,那就不能仅仅会这门语言了。
2024-09-06 08:59:34
562
原创 DP讨论——设计模式分类
结构型,结构是啥意思?就是你们之间的关系。讨论的就是类与类之间的关系,什么适配器啥的属于此类。它们是组合或继承关系等。行为型,感觉就是要干啥的意思,从干什么事的角度说起。访问者——我要访问你,观察者——我要观察你等都体现在做的什么事上。创建型,不用说就是用于创建对象的设计模式,啥单例模式,工厂模式等属于此类。分成啥创建型,结构型,行为型等,啥意思?
2024-07-18 19:50:36
128
原创 DP讨论——适配器、桥接、代理、装饰器模式通用理解
适配器模式和桥接模式,实现上基本没啥区别,怎么区分?只能从上下文理解,看目的是啥。它们,我左看上看下看右看,发现理解可以这么简单:都是A类调用B/C/D等类的方法。它们的关系采用组合关系,也就是基本是A类里包含BCD等类,然后实现方法来调用BCD等类的基类方法。
2024-07-14 20:10:56
226
原创 DP讨论——设计模式怎么来的?
想一想,设计模式的开源是哪里?——碰到这样的事物/问题,用这样一套形式的代码来解决——人类积攒的代码形式(套路)上的解决方案,称之为“设计模式”。才明白,设计模式也不是那么高大上——原来c开发的代码框架上就用了——比如单例模式,模板模式等,只是当时头脑中没有所谓的“设计模式”的概念,这些代码放到我眼前,我也看不见。在这一过程,零零散散的看过大话设计模式什么的,但是总是思想上畏惧,还是觉得高大上还是很排斥。几年前还在搞c开发,觉得设计模式离我太遥远,而且觉得设计模式太复杂太高大上,比较恐惧。
2024-07-11 14:36:48
437
原创 设计模式——程序员的武功招式
但是问题是无限的,对应的招式,你也可以创建,所以现在设计模式还在不断的诞生。在这软件问题的江湖里,没有一技傍身,如何高效解决这些软件问题呢?设计模式是软件行业几十年的应对问题的经验总结——武功招式总结。设计模式,是程序员基本功,就是武林招式。设计模式就是套路,就是武功招式。行走江湖,怎能没有武功招式傍身。碰到什么问题出什么招。大成境界是无招胜有招。
2024-07-04 10:40:47
388
原创 linux内核源码学习所需基础
1.面向对象的思想思想,尤其是oopc的实现方式。2.设计模式。这两点需要内核源码学习者不仅要会c和汇编,还要接触一门面向对象的语言,比如c++/java/python等等,起码要了解面向对象的思想,但是linux内核是c实现的,那么还得接触oopc,看c语言实现面向对象的概念和实现套路。
2024-07-04 09:35:19
1275
原创 DP讨论——模板模式
我的理解就是在抽象类的方法里实现整个算法流程,但是某一个步骤用纯虚方法实现,由继承抽象类的子类来实现——类似于用c写算法时,某一步骤是用一个函数指针来表示——空出来一个接口,由别的模块实现,然后传递函数指针过来。就是开发流程或算法步骤是先绑定和后绑定的问题。
2024-07-04 09:15:15
490
原创 rtsp保活的方法
rtsp协议有建议客户端固定间隔地向服务端发送getparameter信令来保活。比如vlc设置成http模式——就是rtsp over udp模式——下每隔58s会下发get parameter。【linux下使用TCP存活(keepalive)定时器 - 优快云 App】http://t.csdnimg.cn/x1a8H。如果没有采用第1条,那么只能采用第2条了。
2024-05-15 15:33:11
767
原创 网络带宽相关
iperf -c 服务端ip -u -P 4 -b 1000M -l 10K。iperf -c 服务端ip -P 4 -b 200M。2.iperf测试网络带宽。1.tcp重传率计算。
2024-04-23 19:51:43
272
原创 rtthread官方路径
rtt官方文档https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/devicertt官方论坛https://club.rt-thread.org/u/8f33aaa06916b99b/article.htmlrtt官网https://www.rt-thread.org/
2024-04-10 10:15:41
551
原创 rtt的io设备框架面向对象学习-内部调用流程
rt_device_open做的事是把rt_device_find找到的指针转成设备基类的指针,然后调用设备基类规定的open方法——这个是设备驱动框架层的各个类重写的方法,每个类不一样,然后设备驱动层的各类重写的这个open函数里又会调用它们各自对子类定义的方法,这些方法是设备驱动层(各bsp)实现的方法,这些方法不同bsp实现不同。反正注册时注册的函数在io设备管理接口最上层的接口调用会层层的从设备驱动框架层到设备驱动层注册的父类方法。再加上各个设备特有使用方法。参见官方文档查看各个设备的是使用方法。
2024-03-24 16:51:00
331
原创 rtt的IO设备框架面向对象学习-oopc实现特点
其构造函数的实质,是对结构体进行初始化,在C中没有面向对象语言层面的机制,只能采用结构体套用结构体来模拟,这样原先定义好的结构体以及其对象构造函数对新扩展的(包含它的)结构体是解耦的,你新增一个新扩展(包含它的)新结构体,初始化它(面向对象叫父类)时只需要调用它对应的构造函数即可,对于新结构体来说原先的结构体是固定不变的,解耦了。所以这个方式的初始化不像那种把结构体成员挨个赋值这么繁琐,因为rtt规定了这些结构体以及封装了其初始化函数(在c++面向对象中叫构造函数),只需调用即可。
2024-03-23 21:59:01
634
IAR下建立STM32f103zet6工程基于野火霸道开发板
2019-01-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人