- 博客(57)
- 资源 (24)
- 收藏
- 关注
原创 Torrent字符串类型合法性检测
// TorrentDataParse.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdlib.h>#include <string.h>#include <string>bool IsValidInt(char * pData, int & nNum){ char * pTemp = pData; int nState = 0; char c = 0; char buf.
2021-07-12 11:50:51 216
原创 Torrent整型数据类型合法性检测
// TorrentDataParse.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdlib.h>#include <string.h>bool IsValidInt(char * pData, int & nNum){ char * pTemp = pData; int nState = 0; char c = 0; char buf[256] = { 0 }; if (!pD.
2021-07-12 11:22:58 212
原创 VLC SDK下载路径
http://download.videolan.org/pub/videolan/vlc/下载文件vlc-3.0.12-win32.7z 解压后:SDK目录SDK目录里面就是开发包。
2021-05-19 20:18:01 423
原创 S5PV210 KEY轮询模式点LED
/* * 文件名: start.S * 作者: 朱老师 * 描述: 演示轮询方式处理按键 */#define WTCON 0xE2700000#define SVC_STACK 0xd0037d80.global _start // 把_start链接属性改为外部,这样其他文件就可以看见_start了_start: // 第1步:关看门狗(向WTCON的bit5写入0即可) ldr r0, =WTCON ldr r1, =0x0 str r1, [r0] //.
2021-03-16 13:35:52 147
原创 S5PV210 UART使用printf和scanf
关键代码:#define GPA0CON 0xE0200000#define UCON0 0xE2900004#define ULCON0 0xE2900000#define UMCON0 0xE290000C#define UFCON0 0xE2900008#define UBRDIV0 0xE2900028#define UDIVSLOT0 0xE290002C#define UTRSTAT0 0xE2900010#define UTXH0 0xE290002
2021-03-14 22:06:36 222
原创 S5PV210初始化DDR
#define GPJ0CON 0xE0200240#define GPJ0DATA 0xE0200244#define GPD0CON 0xE02000A0#define GPD0DATA 0xE02000A4#define SVCSP 0xD0037D80.global _start_start: ldr r0,=0x11111111 ldr r1,=GPJ0CON str r0,[r1] ldr r0,=0x11111111 ldr r1,=GPD0CON str r0,[r.
2021-02-18 11:38:12 283
原创 S5PV210重定位
#define GPJ0CON 0xE0200240#define GPJ0DATA 0xE0200244#define GPD0CON 0xE02000A0#define GPD0DATA 0xE02000A4#define SVCSP 0xD0037D80.global _start_start: ldr r0,=0x11111111 ldr r1,=GPJ0CON str r0,[r1] ldr r0,=0x11111111 ldr r1,=GPD0CON str r0,[r.
2021-02-16 20:57:25 137
原创 S5PV210打开和关闭catche
mrc p15, 0,r0,c1,c0,0bic r0,r0,#(1<<12) //关闭catcheorr r0,r0,#(1<<12) //打开catchemcr p15,0,r0,c1,c0,0
2021-02-14 18:54:10 220
原创 使用C语言
S5pv210默认进入SVC模式,这个模式的CPU可能已经默认初始化了SP,因为代码中,即使不初始化SP,也可以正常使用C语言。#define GPJ0CON 0xE0200240#define GPJ0DATA 0xE0200244#define GPD0CON 0xE02000A0#define GPD0DATA 0xE02000A4#define SVCSP 0xD0037D80.global _start_start: ldr r0,=0x11111111 ldr r1,=GP
2021-02-14 16:17:33 209
原创 4个LED灯流水灯
#define GPJ0CON 0xE0200240#define GPJ0DATA 0xE0200244#define GPD0CON 0xE02000A0#define GPD0DATA 0xE02000A4.global _start_start: ldr r0,=0x11111111 ldr r1,=GPJ0CON str r0,[r1] ldr r0,=0x11111111 ldr r1,=GPD0CON str r0,[r1] flash: ldr r0,=~(1 .
2021-02-13 18:19:35 1740
原创 键盘钢琴发音原理
相信很多喜欢音乐的小伙伴都玩过一款软件,叫做键盘钢琴,这款软件的确做得很棒,这时,可能有一些会开发的小伙伴就要想这个键盘钢琴软件是如何开发的呢?可以这么说,想要开发这款软件需要对乐理有一定的了解,并且对MIDI要非常的熟悉,本篇文章,我们主要介绍一下这个键盘钢琴的发音原理,如果我们要让计算机发生,那么我们需要使用midi设备,所以,我们需要选择要打开的midi设备,然后向设备输出消息,就可以让计算机发出声音,我们主要介绍发音原理,其它的功能,同学们感兴趣可以去看MIDI消息格式。MIDI发音主要使用了两
2020-11-12 15:22:20 838
原创 使用gdb反汇编的方法
话不多说,需要的小伙伴,往下看,可以跟着我一步步地学习如何使用gdb反汇编。#include <stdio.h>#include <locale.h>#include <iostream>int main(){ int i = 3; int k = ++i + ++i + ++i; std::cout << k << std::endl; return 0;}~
2020-08-15 13:11:39 12813
原创 Bridge模式
假设我们要开发一套UI控件库,所有的UI控件都派生于Windows接口,假设控件有100个,而且我们的目标是UI控件库可以跨Widows,Linux,Unix,那么我们该怎么做呢?第一种做法,我们把每个UI控件都实现3遍,分别对应3个平台Linux、Windows、Unix,那么我们一共需要实现300次,非常麻烦,那么是否有更好的方法呢?有,这就是桥模式。第二种方法:桥模式我们首先定义1个Window接口,然后把所有UI控件需要的基本操作定义在Window中,然后再让所有的UI控件都继承WInd
2020-05-09 14:53:46 207
原创 PROTOTYPE模式难点解析
这个模式在C++中什么时候才会使用,为什么不直接new,大家只要明白一个场景,就会知道它的用处。比如,现在让你设计一个游戏,一共有8个关卡,每关的小兵有四种,但是第一关的小兵最弱,第八关的小兵最强,你怎么设计?你可能认为这还不简单,需要小兵的时候,直接new一个相应的小兵,就可以了。但是这样做会遇见一个问题,比如第一关的小兵和最后一关的小兵,他们的属性肯定不一样,因此,如果直接new,导致...
2020-05-06 13:59:30 259
原创 Factory Method 模式难点解析
首先大家要知道什么是框架,为什么使用框架,明白了这个后,大家就知道Factory Method诞生的原因了。什么是框架?1 、是一组相关类的集合。2、具有通用性。3、是半成品。我们为什么使用框架?因为框架是半成品,所以我们使用框架可以降低我们的开发成本,提升开发效率。Factory Method诞生的原因假如我们要开发一个框架,因为框架具有通用性,半成品的特点,所以...
2020-05-04 20:23:30 220
原创 Builder模式
许多同学反映GOF设计模式看不懂,我认为主要两点原因:1、你的工作经验太少,或者根本就没有经验。2、GOF举得的例子,你认为不好理解,我个人也认为GOF举得例子并不是很恰当。我本来想写代码,但是最后还是决定不写了,因为我认为这个代码并不难,关键是明白Builder模式到底讲的是什么,这才是关键,如果大家明白了Builder模式的本质,代码自己就可以写出来。好了,废话不多说,我们言归...
2020-05-03 17:34:30 202
原创 Abstract Factory模式
// AbstractFactory.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"//主板class CMainBoard{public: //显示主板信息 virtual void Print() = 0;};//华硕主板class CAsusBoard :public CMainBoard{public: void Pr...
2020-05-01 16:58:55 246
原创 我的JS富文本编辑器(1)
近来,无事,学习js,感觉很有意思,于是乎想写个自己的富文本编辑器,重在明白它的原理,于是,自己写了一个可以改变文本和插入图片的富文本编辑器的雏形,由于我本人不是前端工程师,所以,错误之处,在所难免,以下是这个富文本编辑器的雏形,喜欢的小伙伴可以看看。源码如下:<!DOCTYPE html><html lang="en"><head> ...
2020-02-28 16:24:39 209
原创 冒泡排序的并行计算
本人也是并行计算的小白,在这里记录下自己的学习笔记。今天做了一下冒泡排序的并行计算比较:串行冒泡排序如下:#include <stdio.h>#include <stdlib.h>#include <windows.h>void BubbleSort(int * pData, int nSize){ if (!pData) { ...
2020-01-04 16:15:43 4298
原创 关键字词法识别
本人想做一个自己的脚本语言,但是又不想使用lex之类的词法分析器,又不想自己画状态转换图,所以,写了下面的一段程序,它的功能是:有如下若干个关键字:char * KeyWords[1024] = { "var", "+", "-", "*", "/", "%", "if", "else", "switch", "case", "while", "do", "fo...
2019-10-16 12:00:13 1135
原创 Direct2D简介
Direct2D是一套高性能、高质量的2D图形渲染接口,它的出现主要是为了满足以下的开发:1 大型的企业级本地应用开发2 控件库或者是控件工具包开发人员3 服务端2D图形渲染4 在D3D中进行2D绘制,主要是为了实现用户接口元素的绘制,比如3D游戏中的菜单元素。运行环境要求:win7或者vista之后的桌面系统windows 2008以后的服务器系统原文:htt...
2019-09-29 20:47:30 1312
原创 Bresenham绘制直线学习笔记
今天学习计算机图形学第三版,使用Bresenham绘制直线,有一些公式推导的不是很细致,自己推导了一番,记录一下,方便自己日后学习。疑惑点:参考图:推导过程:又因为:P0 = 2 * DeltaY * x0 - 2 * DeltaX * y0 + 2 * DeltaY + DeltaX*(2b - 1)因为:所以2 * b * DeltaX = ...
2019-09-25 15:10:19 276
原创 Bresenham画线K>1时的递归公式
算法1 k>1此时y增加1,x增加小于1,所以以y为主。P1在直线的左方假设直线上相邻两点S1,S2 ,S1.x < S2.x, S1在屏幕上逼近P1,S2应该逼近哪个点呢?假设P2.x = p1.x + 1因为S2.x = S1.x + ∆x因为P1.x < S1.x < p1.x + 0.5所以p1.x + ∆x < S1.x + ∆x...
2019-01-15 17:34:38 4200
原创 中点画线算法实践
输入两点,用中点画线算法绘制直线,效果如下:输入两点,计算出斜率k,当斜率k不存在时,就是一条垂直的线段,如果k存在,计算出直线方程的系数A,B,C,这里根据斜率分为3种情况:|k|=1x,y递增一样,直接绘制就可以。|k|<1 B D(M_prev) D(M_next) >0 ...
2019-01-12 13:58:36 1156
原创 关于斜率大于1的中点画线的公式推导
首先还是假设直线L的一般公式为:Ax+By+C=0,并且斜率大于1,那么这个时候代表x变化慢,y变化快,那么这时我们应该让y每次递增1,x是否递增,需要判断,判断方法如下:首先假设直线的起点(x1,y1),终点为(x2,y2),那么从起点开始,起点的下一个点的坐标应该是(x_next,y_next),因为y每次递增1,所以y_next = y1+1,那么x_next应该取哪个点呢?设起点的...
2019-01-10 15:36:36 9050
原创 中点画线中的一些不严谨的地方
我认为对于初学者,特别是自学的人,因为没有老师可以请教,所以任何一点不严谨的地方都会让人困惑很久,我个人认为计算机图学中关于中点画线有如下的不严谨的地方:1、假设直线的一般方程AX+BY+C = 0,那么A=-(deltaY),B=(deltaX),C=-B(deltaX),这个前提是斜率存在的情况下,但是我见过的老师和教材的讲解,却没有前提,具体推导如下:假设直线上的两点(x1,y1),...
2019-01-09 16:28:33 485
原创 用DDA绘制直线
最近在学习计算机图形学,下面是我的DDA效果: 输入斜率k,截距b,就可以绘制出直线,需要的小伙伴,可以从下面的地址下载:https://download.csdn.net/download/u011711997/10904838 ...
2019-01-09 12:32:55 2177
原创 如何用虚拟机VMware和Linux路由器搭建一个虚拟网络
今天为大家介绍一下如何使用虚拟机VMware和Linux路由器搭建一个虚拟网络,具体的网络拓扑如下:一共需要5台虚拟机,其中3台是路由器,它们使用Linux来模拟,另外两台分别是192.168.2.10和192.168.5.10,这两个网段是私网,192.168.1.166和192.168.1.103是我的笔记本和台式机,它们代表公网。下面我说一下关键技术点,因为内容太多了。1)为...
2018-12-26 17:11:26 2612 1
原创 SNAT也不是Full Clone NAT
测试命令如下:iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o ens37 -j SNAT --to-source 192.168.3.1测试命令结果如下:大量测试表明:SNAT大部分是Full Clone NAT,但是不稳定,有时会变化。...
2018-12-26 13:56:11 868
原创 MASQUERADE并不是Full Clone NAT
最近在忙p2p的环境搭建,首先搭建的肯定是Full Clone Nat,网上的大神们说用MASQUERADE就是Full Clone Nat,比如:iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.255.0 -o ens37 -j MASQUERADE实际测试证明,这么配置并不是Full Clone Nat.具体结果如下:...
2018-12-26 11:52:34 610
原创 用Dynamips和虚拟机搭建虚拟网络1
今天和大家分享一个虚拟网络的搭建过程,这个虚拟网络的具体拓扑如下:路由器使用Dynamips,我们使用cisco 3660路由器,虚拟机使用VMware和XP,物理机是Win10,Dynamips安装在物理机Win10上,路由器模拟器的配置文件下载地址如下:https://download.csdn.net/download/u011711997/10852184我的物理机地址:...
2018-12-15 13:04:42 1443
原创 dynamips中网卡参数如何和网络连接中的具体网卡匹配
使用dynamips可以搭建虚拟的网络环境,所以很多人都知道,但是有一个小疑惑,相信很多人都有,就是如何根据网卡参数匹配具体的网卡连接,比如我的机器上的网卡参数如下:那么我们如何根据这些网卡参数来找到对应的网络连接呢?我本机的网络连接如下:大家仔细观察,可以发现,网络连接中的名字和和上面的网卡型号的值并不匹配,那么该如何具体定位呢?下面由我带大家走一圈。首先我们应该知道{5...
2018-12-11 22:33:39 906
原创 关于音频重采样计算的理解
av_rescale_rnd(swr_get_delay(swr_ctx, 48000) + 1024, 44100, 48000, AV_ROUND_UP);这里48000是输入音频A的采样率,44100是输出视频B的采样率,这行代码的意思是说,如果转换1024个音频A,能够生成多少个音频B,那为什么要使用swr_get_delay呢,大家可以这么理解,当我们的项目是一个实时的推流项目的时...
2018-11-07 10:56:43 2814 3
原创 使用nginx搭建windows流媒体服务器
准备工具:nginxhttps://download.csdn.net/download/u011711997/10719195ffmpeghttps://ffmpeg.zeranoe.com/builds/ffmpeg只需要下载static版本。下载nginx后,解压nginx,然后修改conf/nginx-win.conf的内容为自己需要的配置,具体如下:#us...
2018-10-14 12:00:20 3550
原创 ffmpeg-4.0.2版本中ffplay播放器在vs2013下的编译
相信很多想要学习播放器开发的小伙伴都知道ffplay,但是却不知道如何在vs2013下去编译,虽然网上已经有了一些教程,但是都不完整,或者ffmpeg的版本太老,所以就有了今天这篇文章。好了,废话少说,直接上干货。第一步下载ffmpeg源码,下载地址http://ffmpeg.org/download.html,具体界面如下:第2步,下载ffmpeg的二进制版本,有些小伙伴可能会问...
2018-09-16 13:31:42 1374 1
原创 用ffmpeg开发屏幕录制-高延君-专题视频课程
使用VC++和ffmpeg开发屏幕录制,使用D3d录制屏幕,使用Audio Core API实现声卡录制和麦克风的录制,使用ffmpeg实现编码,后保存为mp4文件。
2018-07-25 09:47:47 480
原创 声卡&麦克风实时采集并重采样
上篇文章讲了如何用最新的技术采集声卡和麦克风,但是在工作中通常需要进行重采样为(44100、FLTP),再进行推流,所以本篇是在上次的基础上完成了重采样,重采样的核心代码如下:// audiocap.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "AudioCapT.h"#include <conio.h>extern...
2018-07-13 15:15:29 3816
声卡麦克风采集bug修复
2018-07-13
声卡麦克风采集
2018-07-06
mfc对话框分隔管理器
2014-02-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人