- 博客(25)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 C++线程池
C++系列第一章 C++单例模式第二章 数据流对象CData第三章 基于基础数据类型的封解包模板第四章 FIFO单链列表第五章 C++线程第六章 C++线程池第七章 定时器第八章 消息中心第九章 网络访问器第十章 HttpClient第十一章 FTPClient第十二章 Socket客户端第十三章 Socket服务端第十四章 WebSocket 大部分章节不会详细讲解,基本是以源码形式展现给大家,欢迎各路大侠搬砖和点评^_^目录C++系列前言元素构成信号量类CCondit
2021-03-17 16:24:32
748
2
原创 C++线程
C++系列第一章 C++单例模式第二章 数据流对象CData第三章 基于基础数据类型的封解包模板第四章 FIFO单链列表第五章 C++线程第六章 C++线程池第七章 定时器第八章 消息中心第九章 网络访问器第十章 HttpClient第十一章 FTPClient第十二章 Socket客户端第十三章 Socket服务端第十四章 WebSocket 大部分章节不会详细讲解,基本是以源码形式展现给大家,欢迎各路大侠搬砖和点评^_^前言CThread线程是基于原始系统库编写的
2021-03-17 15:11:00
712
原创 批量修改/替换文件名称和内容
批量修改/替换文件和文件名称字符暂时不支持空格和特殊字符,有大佬知悉的求告知,非常感谢!纯小白编写,大神请略过,仅作为个人备用和分享使用.#!/bin/sh#原始字符串,越特殊的替换越需要放前面modifySrcArray=("ZJBaseUtilsDef""ZJBaseUtils""zj_""ZJ")#替换后的字符串,和前面一一对应modifyDstArray=("TestAAUtilsDef""TestAASmartUtils""ts_""TS")SHELL
2020-11-25 18:45:30
521
原创 Maven公有库发布流程
注册JFrog账号这个网上教程较多,在此不再描述,官网:[https://bintray.com](https://bintray.com)混淆代码纯Java或包含核心功能及Java代码需要使用深度混淆功能,防止外部组织/公司轻易破解,建议核心层代码能使用C、C++代码替换的,使用C等语言打包成二进制SO库,或者使用Jni反射机制。项目仓库配置在Github或Gitlab上面创建Public公有库,比如JimiTest:https://github.com/JimiPlatform/JimiT
2020-10-09 13:36:26
961
原创 CocoaPods库搭建和发布流程
CocoaPods库搭建和管理文章目录CocoaPods库搭建和管理CocoaPods私有库发布流程建立公开库Repo仓库创建Github公开库本地关联远程索引库查看本地索引库建立库文件存储仓库发布私有库配置podspec文件验证校验库推送代码至私有仓库打包库安装打包工具打包动态Framework库打包静态a库推送库文件至远程存储仓库发布私有库使用CocoaPods私有库CocoaPods公有库发布流程代码闭源节省步骤基本步骤代码开源CocoaPods私有库发布流程建立公开库Repo仓库创建Gith
2020-07-29 13:41:26
301
原创 C++单例模式(Singleton)的实现
在程序编程中,经常需要某个类在程序的声明周期中只需要一个实例存在,可不同模块中共享某个函数接口、功能或数据,这种设计模式被称为单例模式。单例模式的书面定义如下:也叫单子模式,是一种常用的软件设计模式。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例(即一个类只有一个对象实例)。CSingleton.hpp#ifndef CCSingleton_hpp#define CCSingl...
2019-10-29 10:58:59
3997
原创 iOS项目使用CocoaPods集成第三方库Bitcode设置无效的解决方案
问题编译环境Mac: Catalina 10.15,其他Mac低版本也试过Xcode: Version 11.1 (11A1027)Cocopods: 1.8.4,1.8.3情况描述工程A使用Pod集成了第三方库B,项目B依赖Framework C,因此在集成B的时候,依赖C 会使用Pod进行导入;工程A不管是编译还是调试运行均无问题,但是Archive的时候无法通过;Fra...
2019-10-26 09:35:23
2640
原创 低版本ReactNative在XCode11启动时异常问题的解决方案
在升级Xcode11之后,使用低于0.59.9版本的React Native,启动时必将出现问题:模拟器运行报红如下:Xcode运行错误如下:2019-09-25 15:16:47.784 [error][tid:main][RCTModuleMethod.mm:376] Unknown argument type '__attribute__' in method -[RCTApp...
2019-09-25 15:37:42
2337
原创 PCM音频播放器模组(iOS)
PCM音频播放器在网上已经有较多的教程及代码,各有千秋,在此不再做过多的描述和讲解。此文章及代码是基于iOS原生系统的接口进行扩展和封装的,支持各种PCM采样率,支持音频数据缓存,支持PCM纯数据流及CMSampleBufferRef结构接口。此模块仅支持单声道,稍有遗憾。PCM播放器确实是比较基础的东西,代码已经过长期验证及测试,可直接拿来使用及参考。若有优化及漏洞,尽情留言告知,非常感谢!...
2019-07-25 21:03:48
1010
原创 基于FFmpeg进行PCM重采样
此文章基于FFmpeg 3.4.2版本,对PCM的采样率、帧格式、通道数进行重采样功能封装。 /** PCM音频重采样 @param audio_in_ctx 音频解码上下文 @param pInFrame 输入帧 @param out_sample_fmt 输出音频格式 @param out_channels 输出音频通道数 ...
2019-07-23 16:31:52
1830
4
转载 Git因commit的记录太大导致push失败解决方法
git因commit的记录太大导致push失败解决方法1 看哪个文件占的大2 重写commit,删除大文件需要注意的是,此处可能会报错解决方案:执行`git stash`即可解决。3 推送修改后的repo4 清理和回收空间1 看哪个文件占的大报错信息:Cou...
2019-06-28 18:01:22
4429
原创 RN调试问题及解决方案(持续更新)
问题:RN项目真机调试,Windows电脑无法识别连接的手机方案:更新USB电脑驱动,可下载360驱动大师安装更新问题:官方TextInput 组件文字不居中方案:加上属性paddingVertical: 0问题:官方SectionList组件默认高度是100%方案:在外一层用view标签包裹, 高度由内容自动撑开问题:this.setState()方法是异步而不...
2019-03-28 09:44:46
986
1
原创 React-Native在Mac上的安装步骤
此文章主要记录React-Native在Mac上的安装过程,以便工作后期查找,对于老手及已会的童鞋直接忽略。可以直接查看React-Native官网中文文档:https://reactnative.cn/安装RN工具库Mac上的命令行工具,在此不做介绍,默认使用Homebrew。安装Nodebrew install node安装Watchmanbrew install watchm...
2019-03-20 17:23:13
2358
原创 C++定时器CTimer的实现
有过使用Objective-C、Java等语言开发项目的同学会发现,网络或社区有存在众多的开源库或组建。个人在使用C++11进行项目开发时,想找一些比较完善、系统化的基本功能库却很少,比如定时器。这里,主要利用thread、mutex、condition_variable_any、function来实现定时器,可现实同步、异步、单次、循序执行任务。代码中附带了简单的注释,若有疑问或建议欢迎留言。...
2018-10-26 17:01:02
40577
25
转载 Bitcode适配指南
Bitcode适配指南:随着XCode7的发布,Apple提供了一项新的技术来支持App瘦身功能,那就是Bitcode。本文章将会结合自己在支持bitcode过程中遇到的问题,来阐述支持bitcode的过程。
2018-10-23 11:38:00
303
原创 解析H264的SPS信息
在做音视频开发的时候,存在不解码视频帧的前提下需要获取视频宽高、帧率等信息,而H.264中的SPS数据可为我们提供这些相关的信息。在此之前,我们需要对一些协议和算法有一定的初步了解,后文中有完整的代码展示。H.264协议我们在此不讲解H.264协议,但是我们需要了解NAL单元语法(NAL unit syntax)、序列参数集数据语法(Sequence parameter set data synt...
2018-07-10 15:57:31
22960
15
原创 iOS重定向输出打印(NSLog、printf)
注:本文是重定向日志输出到项目的其他模块,非重定向直接输出到文件。 在项目开发的时候,碰到一个很纠结的问题:因本人做的是iOS SDK层,同事做的是App层,因分工不同,在调试和修复Bug的时候需要提供明确清晰的日志。若把项目中的全部日志都输出到一个文件中,查找杂乱而繁琐,而我也只需要SDK层的日志,因此日志重定向到文件在此已不再合适(使用freopen重定向stdout、stder...
2018-07-04 17:40:54
3672
原创 iOS硬解码H264视频流
苹果在iOS 8.0系统之前若要做音视频开发需使用第三方软件进行编解码(FFmpeg软解码H264视频流可看到这里),学习成本较大,项目开发进度也可能超出预期。在iOS 8.0之后开放了视频编解码框架VideoToolbox,在此之后对于音视频开发变得相对简单。 一、硬解码名词(结构)解释1、VTDecompressionSessionRef:解码器对象数据...
2018-06-27 16:50:15
7339
15
原创 H264关于一帧完整帧被分切成多个Slice时的合并思路
在对H264进行编解码分析时,碰到一个完整视频帧被切分成多个Slice用于网络媒体传输的情况。而且接收端进行解码时需要一个完整帧(FFmpeg解码不需要拼接,内部已实现),因此怎么拼接多个Slice呢? 对于H264视频流中关于NAL Unit句法、Slice Header结构等不是本文讲述的重点,相关资料可在网上查询,但需要对H264流媒体协议格式中的AVCC及Annex B格式有...
2018-06-22 16:10:31
12751
16
原创 Mac下编译FFmpeg(Android平台)
说在前面的话:之前一直在iOS平台上面做音视频开发,用得较多的是iOS的FFmpeg编译以及裁减等。因工作需要,现在要编译Android环境下的FFmpeg,本想偷懒直接使用网上现成的资源,后发现现成的脚本针对NDK或FFmpeg版本较低。为了统一不同平台(iOS、Android、arm嵌入式等)之间的代码及版本之间的兼容性,自己动手写了一份,不需要配置复杂环境,大家可做参考。 整个...
2018-06-13 15:46:38
1491
2
原创 Mac下编译FFmpeg(iOS平台)
环境 Mac:10.13.5 Xcode:9.4 iOS Target:8.0脚本#!/bin/sh#armv7xcode9.1,#sudo xcode-select -switch pathToXcode9.1/Contents/Developer#xcode-select --print-path#需要编译FFpmeg版本号FF_VERSION="3.4.2"if [...
2018-06-13 11:50:25
1059
原创 FFmpeg解码H264视频裸流(直接可用)
此文章主要包含解码H264视频流数据:Annex B格式、H264视频裸流、支持输出RGB24或YUV420格式;
2018-05-29 14:44:37
24008
18
原创 Speex最新库编译脚本(iOS)
1、新建文本为speex_build.sh2、复制以下内容到上面文本中:#!/bin/shZJ_OGG_VERSION=1.3.3ZJ_SPEEX_VERSION=1.2.0ZJ_SPEEXDSP_VERSION=1.2rc3ZJ_IOS_MIN_VERSION=8.0ZJ_SAVE_DIR=`pwd`/SpeexCompileZJ_IOS_SDK_VERSION=`xcrun -...
2018-02-27 13:58:03
694
原创 Speex编译脚本(iOS)
1、新建文本为speex_build.sh2、复制以下内容到上面文本中。#!/bin/shZJ_OGG_VERSION=1.3.0ZJ_SPEEX_VERSION=1.2rc1ZJ_IOS_MIN_VERSION=8.0ZJ_SAVE_DIR=`pwd`/SpeexCompileZJ_IOS_SDK_VERSION=`xcrun --sdk iphoneos --show-sdk-ve...
2018-02-09 14:47:19
617
x264 for Android
2018-06-15
Mac下编译x264(Android平台)脚本
2018-06-15
Mac下编译FFmpeg(Android平台)脚本
2018-06-13
FFmpeg for Android(静态库)
2018-06-13
FFmpeg for Android
2018-06-13
FFmpeg for iOS
2018-06-13
Android主工程及Module共用一个仓库的不同版本?
2019-07-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人