- 博客(191)
- 资源 (6)
- 收藏
- 关注
原创 VLC ABLoop实现原理
player/innput.c 检查是否到了B点,到B点后重新从A点执行。src/player/player.c实现。追踪到最后发现精度为250ms。vlc_player.h声明。设置完后会有状态回调。
2024-10-04 07:24:56
273
1
原创 linux 信号量sem
信号量如同一盏红绿信号灯,用于临界资源(如公路、人行道)的管理。信号量是一种特殊的变量,访问具有原子性。P等待:信号量的值为0时,不能减,则进行阻塞休眠。相当于绿灯变红灯,不可以走。V信号:信号量加1,则信号量的值变大,如果为1,则可以唤醒其他阻塞的线程。相当于有红灯变带有秒数的绿灯。三、二值信号量相当于一盏红绿灯,只有红或绿两种状态(绿灯是没有带秒数的)。 作锁使用,信号量初始值为1,但不同线程的临界区不同。追踪线程,信号量初始值为0,如主线启动子线程后,进入sem_wait()进
2022-07-01 22:44:46
1009
原创 七、WebRTC中的SDP
格式:=SDP:会话层、媒体层、媒体音频/媒体视频“m=”行中描述媒体类型、传输类型、PlayloadType"a=rtpmap"属性可以描述编解码器记录传输媒体数据时使用的网络信息。如IP、端口号、连接复用等信息“a=group:BUNDLE”属性用于描述媒体数据可以复用同一端口号“a=sendrecv”属性用于指明媒体数据传输方向是双向的。“a=rtcp-fb”m = audio 9 UDP/TLS/RTP/SAVPF 111a = rtpmap:111 opus/48000/...
2022-06-13 08:57:26
406
原创 六、WebRTC中ICE的实现
高到底:host、srflx、prflx、relay.同一局域网内通过host类型的Candidate在内网建立连接。非同一局域网,隔断从STUN、TURN服务器中收集srflx和relay类型的Candidate。收集srflx类型Candidate时,ICE会尝试NAT打洞。如果打洞成功则使用P2P传输,否则使用TURN服务器中转数据。RTCPeerConnection对象,输入参数RTCconfiguration是json格式。NAT就是一种地址映射技术,在内网地址和外网地址之间建立映射关系。内网主机
2022-06-12 11:14:38
1322
原创 五、WebRTC实现一对一通信
Chrome\Safari\FireFox等主流浏览器对WebRTC的支持。三、采集音视频数据四、MediaTream与MediaStreamTrackMediaTream 流MediaStreamTrack 轨六、信令状态机Initjoinjoined离开--->Initother_jointed-->join_connbyte--->join_unbind多个功能模块组成(网络处理、服务质量模块、音视频引擎模块)2、RTCPeerConnection与本地视频数据绑定..
2022-06-11 19:17:29
364
原创 WebRTC信令服务器
驱动系统运转,控制各个模块的前后调用关系。客户端:join、leave、message服务端:joined、left、other_joined、byte、fullHTTP/HTTPS 、WS/WSS实现业务层管理(创建、加入、推出房间)通信双方交换信息(交换双方IP地址和端口号)接受或发送方 交换双方的外网IP地址和端口 获取各自终端的外网IP地址和端口终端知道对方的IP地址后通过NAT穿越进行P2P连接和传输Apache、Nginx、NodeJs(Offer/Answer、Ca
2022-06-11 08:27:12
1444
原创 rtmp推流nginx服务器环境搭建
Mac下命令行下homebrew进行安装nginx一、安装 nginx1:先更新homebrewbrew update2: 查看nginx信息brew search nginx3:安装nginxbrewinstallnginx二、安装rtmp-module1、nginx克隆的本地$ brew tap denji/homebrew-nginx2、安装nginx-full和rtmp$ brew install nginx-full ...
2021-07-09 07:25:56
374
原创 2021-05-24
分别按照二叉树先序,中序和后序打印所有的节点。https://www.nowcoder.com/practice/a9fec6c46a684ad5a3abd4e365a9d362?tpId=117&tqId=37819&rp=1&ru=%2Fta%2Fjob-code-high&qru=%2Fta%2Fjob-code-high%2Fquestion-ranking&tab=answerKey/*** struct TreeNode {* ...
2021-05-24 22:28:49
96
原创 AIDL结合Binder跨进程通信实例分析
AIDL结合Binder跨进程通信实例分析一、Demo目录截图二、在src/main目录下新建aidl文件夹用于存放aidl接口类(Book.aidl和IBookManger.aidl)// Book.aidlpackage com.test.aidl.bean;parcelable Book;// IBookManager.aidlpackage com.test....
2019-07-10 08:44:54
314
原创 Handler消息机制源码分析
Hander消息机制源码分析一、Hander消息简单使用 findViewById(R.id.threadlocal_btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ...
2019-07-06 22:11:30
269
原创 ThreadLocal源码分析
ThreadLocal源码分析threadlocal是一个线程内部的数据存储类。某线程储存的数据,只有这个线程中才能获取到存储的数据。而其他线程是无法获取到这个数据的。一、ThreadLocal的使用 private ThreadLocal<Integer> mThreadLocal = new ThreadLocal<Integer>(); /...
2019-07-06 10:22:55
154
原创 Android GPUImage源码分析(四) Lookup滤镜的使用
Android GPUImage源码分析(四) Lookup滤镜的使用一、lookup滤镜输入双纹理输入滤镜/**** * 双纹理输入滤镜 */public class GPUImageTwoInputFilter extends GPUImageFilter { /**顶点坐标shader**/ private static final String VERTE...
2019-06-27 07:17:42
940
原创 Android GPUImage源码分析(三) GPUImageFilterGroup源码分析
/** * Resembles a filter that consists of multiple filters applied after each * other. */public class GPUImageFilterGroup extends GPUImageFilter { private List<GPUImageFilter> filters;...
2019-06-27 06:33:32
894
原创 SparseArray 稀疏数组
SparseArray 稀疏数组一、几个重要的成员变量 private static final Object DELETED = new Object();/**用于标记已被删除value**/ private boolean mGarbage = false; /**是否存在垃圾**/ private int[] mKeys; /***键keys整型数组**...
2019-06-15 22:02:25
175
原创 Android GPUImage源码分析(二) Brightness滤镜的使用
Android GPUImage源码分析(二) Brightness滤镜的使用以GALLERY选图添加Brightess滤镜为例一、点击CHOOSE FILTER按钮,会拥有很多滤镜选项的弹框,选中Brightness滤镜。 private fun createFilterForType(context: Context, type: FilterType): GPUImageFil...
2019-06-13 08:42:11
502
翻译 Android GPUImage源码分析(一)简介
Android GPUImage源码分析(一) 简介cats-oss/android-gpuimageAndroid filters based on OpenGL (idea fromGPUImagefor iOS)源码链接GPUImage广泛用于图片处理摄像头摄影视频处理,比如添加滤镜、动态贴纸等功能要求:Android 2.2 or higher (OpenGL ...
2019-06-12 22:09:12
1231
原创 HTTP POST和GET区别
HTTP POST和GET区别 Http方法有Post、Get、Put、Delete,Post、Get最常用到,区别: 一、 原理: GET:常用于信息的获取,安全(只能从服务器中获取信息,不能修改服务器中信息)、幂等(每次获取的信息都是相同的)。 POST获取信息或提交修改信息 二、形式: HTTP 的
2017-05-18 22:07:09
434
转载 RxJava的使用
RxJava的使用1、app build.gradle中添加 compile 'io.reactivex.rxjava2:rxjava:2.0.0' compile 'org.reactivestreams:reactive-streams:1.0.0'2、测试package com.test.main;import android.os.Bundle;im
2017-04-12 18:17:24
725
转载 Spring MVC的使用
Spring MVC的使用来源:http://www.cnblogs.com/ruiati/p/5501585.html1、新建Web工程2、添加jar包Properties-->java Build Path -Libraries-->Add External JarsD:\software\studyWork\webIde\spring3.2最少
2017-04-08 18:10:27
446
转载 RxJava
RxJava 简单实用来源:http://blog.youkuaiyun.com/qq_35064774/article/details/530573321、app build.gradle中添加dependencies { compile 'io.reactivex.rxjava2:rxjava:2.0.0' compile 'org.reactivestreams:rea
2017-04-01 13:47:11
1141
转载 单例模式
多一点真诚,多一点套路,少一点随意---单例模式package com.pattern.Singleton;import android.util.Log;public class Singleton { private static final String TAG = "Singleton"; private static Singleton instance =
2017-03-31 10:24:18
385
转载 观察者模式
多一点真诚,多一点套路,少一点随意---观察者模式文章来源:http://blog.youkuaiyun.com/caihongdao123/article/details/518787601、首先实现观察者接口Observer和接口中的方法update();package com.test.observer;public interface Observer { public
2017-03-31 10:18:45
308
转载 EventBus3.0的使用
EventBus3.0的使用相关文章:http://greenrobot.org/eventbus/documentation/http://blog.youkuaiyun.com/qq_28746251/article/details/51476389http://www.jianshu.com/p/1eaca34e53141、定义消息类型packag
2017-03-30 11:34:44
347
转载 Android AIDL的使用
Android AIDL的使用文章来源:http://blog.youkuaiyun.com/luoyanglizi/article/details/51980630在Activity和Sevice之间跨进程通信获取自定义对象数据类型1、在Activity新建Book类,要实现Parcelable接口package com.aidl.entity;import an
2017-03-30 10:08:59
432
原创 工厂模式Factory
多一点真诚、多一点套路、少一点随意--- 工厂模式Factorypackage com.pattern.entityIn;public interface Sender { public void Send();}package com.pattern.entityImpl;import android.util.Log;import com
2017-03-29 10:14:12
390
原创 适配器模式
多一点真诚、多一点套路、少一点随意--- 适配器模式Adapter文章来源:http://blog.youkuaiyun.com/guolin_blog/article/details/9400141package com.pattern.count;public interface ServerPlayerCount { String getServerName();//服务器名
2017-03-29 10:06:16
455
原创 MVP设计模式
多一点真诚,多一点套路,少一点随意 MVP设计模式Modelpackage com.test.model;/** * Created by Admin on 2016/9/1. */public class User {//Model,就是数据、模型 private String name; private String password; publ
2017-03-28 14:48:01
330
原创 构建者模式Builder
多一点真诚、多一点套路、少一点随意--- 构建者模式Builder Android设计模式之建造者模式(Builder Pattern) http://blog.youkuaiyun.com/hp910315/article/details/49405311package com.pattern.entity;public c
2017-03-28 14:37:06
341
原创 反编译工具的使用
可参考http://blog.youkuaiyun.com/vipzjyno1/article/details/21039349/http://blog.youkuaiyun.com/xia09222826/article/details/37909421apktool命令使用的时候1、反编译:2、重新编译3、classes.dex 转 jar
2017-03-01 14:52:14
646
转载 嵌套滑动 NestedScrolling
写的比较简单易懂 NestedScrolling机制(一)——概述http://blog.youkuaiyun.com/al4fun/article/details/53888990NestedScrolling机制(二)——实例http://blog.youkuaiyun.com/al4fun/article/details/53889075
2017-02-14 11:52:30
350
原创 JNI C调用Java
JNI C调用Java1、在Java里写好要被C调用的方面public class JNI { private static final String TAG = "JNI"; static { // 静态初始化代码块,这里加载的库名称要和 gradle 中定义的 moduleName 名称一致 System.loadLibra
2017-02-08 10:00:49
332
原创 NDK Java 调用 C代码
package com.lwb.testndk;public class JNI { static { // 静态初始化代码块,这里加载的库名称要和 gradle 中定义的 moduleName 名称一致 System.loadLibrary("LwbLib"); } public static native int add(int
2017-02-06 18:24:40
312
转载 使用Android Studio开发NDK
使用Android Studio开发NDK参考http://blog.youkuaiyun.com/zhuwentao2150/article/details/52075902?locationNum=2&fps=1产生头文件的命令行:D:\app\android\TestNdk>cd app\build\intermediates\classes\debugD:\app\
2017-02-06 13:48:27
258
转载 Android java web 环境变量配置
jdk:C:\Program Files\Java\jdk1.7.0_17C:\Program Files\Java\jre7\系统变量JAVA_HOMEC:\Program Files\Java\jdk1.7.0_17系统变量Path%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;系统变量→新建 CLASSP
2016-03-24 18:06:08
532
转载 开源代码学习集合
greenDao----简介和快速使用(1)http://blog.youkuaiyun.com/a284266978/article/details/44937211 greenDAO系列http://m.oschina.net/u/1052509
2015-08-03 12:21:42
479
转载 gethub示例网址
gethub示例网址http://blog.youkuaiyun.com/shulianghan/article/details/18046021http://hunankeda110.iteye.com/blog/2103569
2015-04-23 09:39:20
4287
转载 Eclipse搭建Android开发环境
1、Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目(Windows平台)http://www.cnblogs.com/allenzheng/archive/2012/11/10/2762379.html2、
2015-04-13 20:24:18
394
转载 ViewPager的使用
1、《ViewPager 详解(一)---基本入门》2、《ViewPager 详解(二)---详解四大函数》3、《ViewPager 详解(三)---PagerTabStrip与PagerTitleStrip添加标题栏的异同》4、《ViewPager 详解(四)----自主实现滑动指示条》5、《ViewPager 详解(五)-----使用Fragment实现View
2015-03-16 15:56:34
449
Android AIDL 学习Demo
2017-03-30
反编译工具 dex2jar 和jd-gui
2017-03-01
反编译工具 apktool
2017-03-01
OpenGLES 2.0 for android 开发教程 从入门到精通和Demo
2015-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人