自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(125)
  • 资源 (2)
  • 收藏
  • 关注

原创 大小端问题

一、结论:网络传输一般采用大端序,也被称之为网络字节序,或网络序。IP协议中定义大端序为网络字节序。Berkeley套接字定义了一组转换函数,用于16和32bit整数在网络序和本机字节序之间的转换。htonl,htons用于本机序转换到网络序;ntohl,ntohs用于网络序转换到本机序。二、大端序大端序(英:big-endian)或称大尾序。数据以8bit为单位:地址增长方向→ ... 0x0A 0x0B 0x0C 0x0D ...

2022-02-09 10:28:14 204 1

原创 Windows鼠标右键添加cmd

Windows鼠标右键添加cmd_刘远帆的博客-CSDN博客_右键添加cmd1、win+R //打开windows运行2、在文本框输入regedit //搜索3、在HKEY_CLASSES_ROOT当中找到Folder4、在Folder中找到shell5、右键shell新建项cmdPrompt6、点击cmdPrompt并在右侧内容栏(默认)处右键 修改 数值数据 修改为‘你喜欢的中文或者英文’(这里为成功后你右键文件出现的文字)7、在cmdPrompt下再新建项c...

2022-01-20 11:09:37 1936

原创 xcode:导入第三方库头文件不提示代码问题

下面是解决办法:选择target(就是左边你的工程target,最上一层的文件)—— BuildSettings —— search Paths 下的 User Header Search Paths然后再User Header Search Paths,后面的空白处双击,就会弹出窗口点击“+”号,输入$(PODS_ROOT),后面选择 recursive,OK 完毕!去页面添加头文件,会自动提示了xcode:导入第三方库头文件不提示代码问题 - 简书...

2022-01-10 11:12:54 2321 1

原创 Command CompileSwiftSources failed with a nonzero exit code

Xcode错误提示:Command CompileSwiftSources failed with a nonzero exit code,网上找了好多才搞定,通过在Build Setting里面自添加一条user-defined(备注:点击Level 边上的 + 号就可以添加),属性为SWIFT_ENABLE_BATCH_MODE,值为NO。再次编译就能发现编译失败的真正原因。apple的出处为URL:Apple Developer Documentation...

2021-11-25 17:02:54 2238

原创 Building for iOS, but the linked and embedded framework ‘x.framework’ was for iOS + iOSSimulator

完美起航-升级XCode12.3报错Buildingfor,butthelinkedandembeddedframeworkwasbuiltforiOS+iOSSimulator一、报错报错内容大致如下/xxxx/xxx.xcodeproj Building for iOS, but the linked and embedded framework ‘xxx.framework’ was built for iOS + iOS Simulator.诸如此类,可能有些许不同二、原因

2021-11-11 17:22:02 1895

原创 Xcode报错:Undefined symbols for architecture arm64

Xcode报错:Undefined symbols for architecture arm64 - 简书错误分析报错原因是:ISJMemberCenterController这个类在ISJUser`模块中找不到。解决办法1、选中有问题的文件2、打开Xcode右侧窗口,发现该文件不在ISJUser的Target Membership中,如下图所示3、勾选ISJUser,在运行项目,运行成功!...

2021-11-10 18:47:08 3183

原创 memcopy和memmove函数;修复AddressSanitizer:与memmove的strcpy-param-overlap吗?

遇到一个问题,如下:ERROR: AddressSanitizer: strcpy-param-overlap: memory ranges [0x0001102f767c,0x0001102f7687) and [0x0001102f767c, 0x0001102f7687) overlap #0 0x1042d15f4 in wrap_strcpy+0xb8 (/private/var/containers/Bundle/Application/65AC0456-70F4-43F1-B98

2021-11-05 18:45:26 942

原创 三目运算?:

int main(){ float a = 1.0; float b = 0.0; float c = a+ (b==0)?1:5; std::cout << ":%f " << c << "!\n"; return 0;}输出不对:输出1.0修改:#include <iostream>using namespace std;int main(){ float a = 1.0; float b = 0;.

2021-10-29 18:41:02 75

原创 FFmpeg之时间戳详解

这个要链接我之前的文章:ffmpeg的pts之解析_leek5533的博客-CSDN博客结合FFmpeg时间戳详解 - 叶余 - 博客园梳理一下时间戳,首先要有一定的I B P帧概念,和timebase 及timescale的认识,3. FFmpeg 中的时间基与时间戳3.1 时间基与时间戳的概念在 FFmpeg 中,时间基(time_base)是时间戳(timestamp)的单位,时间戳值乘以时间基,可以得到实际的时刻值(以秒等为单位)。例如,如果一个视频帧的 dts 是 40,p

2021-09-24 17:40:27 1392

原创 sizeof()

前段时间和同事讨论这个sizeof(),今天跑了一下记录下来;#include <stdio.h>#include <string.h>int main(int argc, char *argv[]){ char str1[] = "Hello"; str1[2] = 'a'; printf("%s\n", str1); char str2[100]="Hello"; char * p1 = "Hello"; const

2021-09-24 16:50:10 1409

原创 FFmpeg的player之decoder_decode_frame()

目录一、大致逻辑如下:二、发送失败重新发送packet这个函数顾名思义:解码一、大致逻辑如下:1、从video_queue里获取packet,:packet_queue_get();2、发送packet给decoder :decoder_send_packer();3、从decoder去获取,:decoder_receive_frame();这个看代码时候可能顺序不一样,这个是因为一些工程的原因:比如://流连续的情况下,不断调用avcodec_receive.

2021-09-23 17:39:21 598

原创 ffmpeg的player之video_refresh()

目录1、音视频同步的实现2、丢帧的时机3、这部分的代码4、自己打印的log这里有两个地方值得注意1、音视频同步的实现音视频同步关键点在计算显示时间:remaining_time;这个时间是video refresh的sleep时间,默认0.01s,也就是10ms,一刷新,一个fps=24的video,一帧差不多是0.041708s,那么得用4次刷新,但是,第五次怎么办,就得计算remaining_time了,第五次可以让0.001708s后刷新一次,这个计算是(*rema

2021-09-18 18:10:23 468

原创 ffmpeg的pts之解析

目录1、认识AVRational,说白了就是个分数a/b,2、第二个是video_thread()的读帧的一段,每获取一个frame就打印一下log;看pts,3、为什么这么做:1、认识AVRational,说白了就是个分数a/b,下面是定义的结构体:/** * Rational number (pair of numerator and denominator). */typedef struct AVRational{ int num; ///< N..

2021-09-17 13:26:55 2038

原创 printf打印的输出类型

%d 十进制有符号整数%u 十进制无符号整数%f 浮点数%s 字符串%c 单个字符%p 指针的值%e 指数形式的浮点数%x, %X 无符号以十六进制表示的整数%o 无符号以八进制表示的整数%g 把输出的值按照 %e 或者 %f 类型中输出长度较小的方式输出%p 输出地址符%lu 32位无符号整数%llu 64位无符号整数#include <stdio.h>int main(){ char ch = 'A'; char str[20] = "www

2021-09-17 13:07:40 2976

原创 realloc扩展空间的用法

1、和malloc()作用一样(前提是第一次申请空间,传入的是null),api上说扩展后的指针地址前后一样,说也可能会发生改变,但是没有细说为什么会改变,什么时候会改变。(不过也和编译器有关)官方:http://www.cplusplus.com/reference/cstdlib/realloc/?kw=realloc菜鸟:https://www.runoob.com/cprogramming/c-function-realloc.html先看一个菜鸟上的例子: .

2021-09-08 14:05:59 491

原创 初始化 长度不固定 的数组

经常碰到需要初始化长度不固定的数组;注意最后要销毁指针#include "stdafx.h"#include <iostream>using namespace std; int main(){ //数组个数。 int NumOfarray; cout<<"please input number of array!!"<<endl; cin>>NumOfarray; //使用new操作符 动态.

2021-09-07 13:36:56 759

原创 生成日志logger

目录一、主要解决两个问题点:二、解决获取utc time2.1 精确时间到ms级别,用:gettimeofday(&tv, NULL);2.2输出格式 ,localtime(&t)的时间是1970-00-01开始的,所以要有个转换。2.3 返回值问题,一开始自己是char* fun(),返回值不能打印,因为szTime[] 内存出了函数就没有了。所以就用了入参的形式。三、按照想要的顺序格式输出log3.1有个可变参数的问题概念。3.2那么列表表示什么呢?.

2021-09-01 16:02:01 179

原创 github不能登录,The requested URL returned error: 403

忽然发现GitHub用不了了,原来git的账密验证已经弃用,改用 token 或 SSH 密钥错误Git password authentication is shutting downAs previously announced, starting on August 13, 2021, at 09:00 PST, we will no longer accept account passwords when authenticating Git operations on GitHub.co

2021-08-16 17:37:30 542

原创 vim命令

一、为什么用vim经常碰到Terminal用vim输入,搞不定命令;所以专门用一个小时大概看下,记录一下;二、常见命令基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。命令相互切换:ESC最常用的是输入,保存 退出:2.1、底线命令模式在命令模式下按下:(英文冒号)就进入了底线命令模式。底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。在底线命令

2021-08-04 13:20:00 157

原创 iOS15 beta版本安装不成功 || app要求更新

一、原因:缺少DERentitlement解释一下DER:DER is short fro Distinguished Encoding Rules and is a standard by which ASN.1 structures are transferred. ASN.1 is a standard by which data can be encoded and decoded no matter which platform is being used. ASN.1 in this sp.

2021-08-03 10:53:57 3431 2

原创 【ios15 beta】Not able to install enterprise build in iOS 15 beta version

现象:ios15 beta 出现安装不上去ipa, 但是本地xcode 13 beta去debug是可以安装上去的,安装error log:validation failed because of missing DER entitlements0x16b40f000 +[MICodeSigningVerifier _validateSignatureAndCopyInfoForURL:withOptions:error:]: 74: Failed to verify code signature

2021-07-31 22:13:07 912

原创 iOS15以后出现不能安装APP,

解决方法:Delete the app from the phone Clean the Build Folder with:⌘+shift+K Delete derived data Unpair device (from⌘+shift+2window) Disconnect iPhone Restart iPhone Restart Mac Trust

2021-07-27 15:38:39 6680

原创 Fairplay流程

目录一、概念二、流程:三、还可以通过AVContentKeyRequest获取一、概念FairPlay Streaming (FPS)Key security module (KSM)Digital Rights Management (DRM)Server Playback Context (SPC)content key context (ckc)最终结果是获取ckc(内容秘钥文)三个地址:1、流的地址url2、key server的地址:se..

2021-07-20 17:53:47 469

原创 Fairplay之streamingContentKeyRequestDataForApp && makeStreamingContentKeyRequestDataForApp

一、streamingContentKeyRequestDataForApp:官方api:是类 AVAssetResourceLoadingRequest 的方法:@interface AVAssetResourceLoadingRequest (AVAssetResourceLoadingRequestContentKeyRequestSupport)/*! @method streamingContentKeyRequestDataForApp:contentIdentifier..

2021-07-20 16:27:51 207

原创 Fairplay之 generating FairPlay content key request on iOS after 14.6

现象:ios14.6以后不能生成新的spc data,之前可以,生成spc使用的api是:- (void)makeStreamingContentKeyRequestDataForApp:(NSData *)appIdentifier contentIdentifier:(nullable NSData *)contentIdentifier option

2021-07-14 15:03:44 229

原创 c++的unsigned int和int类型

wvoid foo(void){unsigned int a = 6;int b = -20;(a+b > 6) ? puts("> 6") : puts(" <= 6");}无符号整型问题的答案是输出是">6"。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于6。————————————————版权声明:本文为CSDN博主「木木总裁」的原创文章,遵循CC 4.0 B

2021-07-14 14:22:42 4736

原创 HLS tag “CHARACTERISTICS”&&DASH的AudioPurposeCS:

CHARACTERISTICS The value is a quoted-string containing one or more Uniform Type Identifiers [UTI] separated by comma (,) characters. This attribute is OPTIONAL. Each UTI indicates an individual characteristic of the rendition. A SUBTITL.

2021-06-10 16:05:50 123

原创 DASH流mpd文件注释---比较详细

<!--profiles:不同的profile对应不同的MPD要求和Segment格式要求mediaPresentationDuration:整个节目的时长minBufferTime:至少需要缓冲的时间type:点播对应static,直播对应dynamicavailabilityStartTime="2016-06-28T08:16:57Z":如果是直播流的话,则必须提供,代表MPD中所有Seg从该时间开始可以request了minimumUpdatePeriod="PT10H":至少每隔.

2021-06-09 17:35:28 2453 2

原创 DASH流

eg1:<?xml version="1.0" encoding="UTF-8" standalone="yes"?><MPD id="f08e80da-bf1d-4e3d-8899-f0f6155f6efa" profiles="urn:mpeg:dash:profile:isoff-main:2011" type="static" availabilityStartTime="2015-08-04T09:33:14.000Z" publishTime="2015-08-04T10.

2021-06-09 16:49:26 571

原创 enum和 typedef enum

1、首先知道typedef的用法:定义一个别名;不仅仅是定义enum,其他类型都可以,比如typedef unsigned char BYTE;以后就可以BYTE a; === 等价于 unsigned char a;2、同样道理 typedef enum比如 :typedef enum ABC{//ABC可以省略A=1,b,c,}enumName;以后用使用的话把enum{A=1,b,c,}看成一个整体使用用的时候...

2021-06-08 10:48:12 779

原创 iOS 打包移除 i386 和 x86_64 平台动态库

由于 iOS 编译的特殊性,为了方便开发者在模拟器调试,很多 SDK 将i386、x86_64、armv7、arm64几个平台都合并到了一起。在开发阶段都没有问题,但生产编译上传到 App Store 时,需要将i386和x86_64两个平台的库删除,否则无法正常提交审核。// armv7lipo Hyphenate.framework/Hyphenate -thin armv7 -output Hyphenate_armv7// arm64lipo Hyphenate.framework/Hy

2021-05-27 15:27:19 645

原创 clock_gettime

函数"clock_gettime"是基于Linux C语言的时间函数,他可以用于计算精度和纳秒。#include<time.h>int clock_gettime(clockid_t clk_id,struct timespec *tp);使用:struct timespec ts;clock_gettime(CLOCK_MONOTONIC, &ts);clk_id : 检索和设置的clk_id指定的时钟时间。CLOCK_REALTI...

2021-05-12 17:57:36 358

原创 GOP I帧和IDR帧

IDR帧属于I帧。解码器收到IDRframe时,将所有的参考帧队列丢弃(用x264_reference_reset函数实现——在encoder.c文件中)。这点是所有I帧共有的特性,但是收到IDR帧时,解码器另外需要做的工作就是:把所有的PPS和SPS参数进行更新。由此可见,在编码器端,每发一个IDR,就相应地发一个PPS&SPS_nal_unithttps://blog.csdn.net/leek5533/article/details/1049...

2021-04-14 18:04:48 738

原创 C++中的friend class 用法总结

https://blog.csdn.net/weixin_38293850/article/details/80191242对于一个没有定义public访问权限的类,能够让其他的类操作它的私有成员往往是有用的。例如你写了一段binary tree的代码,Node是节点类,如果能够让连接多个节点的函数不需要调用public方法就能够访问到Node的私有成员的话,一定是很方便的。Friend Classes(友元类)C++中的friend关键字其实做这样的事情:在一个类中指明其他的类(或者)函数能够

2021-04-12 13:46:16 435

原创 xcode lldb调试

1、po:print object的缩写,表示显示对象的文本描述,如果对象不存在则打印nil2、p:可以用来打印基本数据类型。3、call:执行一段代码call NSLog(@"%@",@"hello world");4、expr:动态执行指定表达式expr i = 3.14 输出:(int)$0 = 3.145、bt:打印当前线程堆栈信息如果要打印所在线程堆栈信息,使用:bt all即可。6、image:常用来寻找栈地址对应代码位置:应用场景(数组越界)模.

2021-04-01 13:58:07 116

原创 在OC中,方法分为类方法和实例方法两种

在OC中,方法分为类方法和实例方法两种。前置加号(+)的方法为类方法,这类方法是可以直接用类名来调用的。前置减号(-)的方法为实例方法,必须使用这个类的实例才可以调用它。

2021-03-15 15:11:48 152

原创 g++编译

更普遍的做法是通过 -o 选项指定可执行程序的文件名。下面的命令将产生名为 helloworld 的可执行文件: $ g++ helloworld.cpp -o helloworld 在命令行中输入程序名可使之运行: 12 $ ./helloworldhello, world https://www.cnblogs.com/cocox/p/388...

2021-03-10 13:29:17 69

原创 iOS获取设备的唯一标识的方法

iOS获取设备的唯一标识的方法总结以及最好的方法https://dcsnail.blog.csdn.net/article/details/53068304?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=1328593.11646.16147594426385543&depth_1-utm_source=distribut

2021-03-03 17:38:53 258 1

原创 [C/C++]C语言中字符串常量存储在哪里

[C/C++]C语言中字符串常量存储在哪里char str1[] = "abcd";char str2[] = "abcd";const char str3[] = "abcd";const char str4[] = "abcd";const char *str5 = "abcd";const char *str6 = "abcd";char *str7 = "abcd";char *str8 = "abcd";cout << ( str1 == str2 )

2021-02-24 17:30:33 805

原创 对于容器的去重复操作swap,sort,erase

std::vector中swap()函数使用解析以及去重复操作现象:首先,vector与deque不同,其内存占用空间只会增长,不会减小。比如你首先分配了10,000个字节,然后erase掉后面9,999个,则虽然有效元素只有一个,但是内存占用仍为10,000个。所有空间在vector析构时回收。  在用vector时,输入完一组数据处理完后,调用clear()进行清理,如果此时打印vector[0],会发现仍然输出之前vector所存的内容,但是如果调用.empty()函数又会返回1,告诉我们这

2021-02-04 17:33:36 157

avplayer_pdf.pdf

AVPlayer介绍、mainfest详解、player的demo,可以让初学者轻松入门学习,Video Streaming on iOS

2020-01-28

tcp/ip基础

01-以太网基础-简介.ppt

2018-07-20

空空如也

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

TA关注的人

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