当前位置: 首页 > news >正文

【置顶】 本博博文汇总

文章目录

  • 前言
  • 音视频
    • ijkplayer源码分析
    • FFmpeg、音视频协议
    • Andriod系统音视频框架
    • C、C++
  • Android&Java
    • 源码分析、绘制、渲染
    • Dalvik、Art虚拟机
    • Java并发
  • 计算机基础
    • 操作系统
    • 计算机网络
    • 设计模式、数据结构、算法

前言

23年底了,想来也工作十年,也一直在csdn输出。
这十年,从业务层做到性能优化,再到音视频,再到播放器稳定性相关的native crash。
这十年,也积累了不少文章,在此汇总一下;另外还有大量的深度源码分析草稿,之后也整理发出来吧。

音视频

本系列有一些放到付费专栏里了,都是苦心孤诣研究琢磨的文章,现在也往里面添加了深度性能优化和稳定性方面的内容,欢迎关注。

ijkplayer源码分析

整体概述
read线程流程
视频解码流程
视频渲染流程
音频解码流程
音频播放流程
视频向音频同步
PacketQueue分析
FrameQueue分析
start流程和buffering缓冲策略

FFmpeg、音视频协议

FFmpeg学习 总体介绍
FFmpeg学习 avformat_open_input()函数分析
FFmpeg学习 avformat_find_stream_info()函数分析
FFmpeg学习 av_read_frame()函数分析
FFmpeg学习 avcodec软解码函数分析
音视频 FLV格式解析
音视频 H.264格式介绍
音视频 RTMP协议分析
音视频 HLS协议和m3u8格式分析
音视频 TS格式解析

Andriod系统音视频框架

MediaCodec源码分析 createByCodecName流程
MediaCodec源码分析 configure流程
Android 深入理解SurfaceView
Android 性能优化 命令行查看CPU使用率
Android 创建线程源码分析 JavaThread&NativeThread
Android 设置线程优先级源码分析

C、C++

C内存模型
C语言 基础知识整理
c、c++ 常用API汇总
C++实战笔记
C++ Primer 前六章基础知识笔记
C++ 侯捷课程知识整理
arm体系结构:寄存器
arm体系结构:汇编指令
C语言 非本地跳转 实现native层TryCatch

Android&Java

源码分析、绘制、渲染

JNI原理 System.loadLibrary源码分析
JNI原理 模仿System.loadLibrary和dlopen使用
Android基础 Bitmap基础
硬件加速和软件绘制 invalidate和RequestLayout流程
Android源码分析 理解Refbase
Android 性能优化 Systrace使用

Dalvik、Art虚拟机

  • ART
    Andriod ART虚拟机 启动和初始化
    Android ART虚拟机 关键类
    Android ART虚拟机 堆Heap类构造函数
    Android ART虚拟机 Space类体系
    Android ART虚拟机 对象创建内存分配流程
    Android ART虚拟机 GC流程分析
    Android ART&Dalvik虚拟机 追踪对象分配

  • Dalvik
    Android 虚拟机 内存优化 分析GC日志
    Android Dalvik虚拟机 启动和初始化
    Android Dalvik虚拟机 堆初始化流程
    Android Dalvik虚拟机 GC流程分析
    Android Dalvik虚拟机 堆内存管理 增长&释放

  • 深入理解虚拟机
    深入理解Java虚拟机 第二章 Java运行时数据区域
    深入理解Java虚拟机 第七章 虚拟机类加载器
    深入理解Java虚拟机 第七章 虚拟机类加载时机与过程
    Java虚拟机 对象创建流程、初始化流程

Java并发

EffectiveJava第十章:并发
Java并发 并发编程一定快么
Java并发 基础概念
Java并发 示例
Java并发 并发机制的底层实现原理
Java并发 线程安全的三个条件
Java并发 锁优化和锁升级
Java并发 Java内存模型 happens-before原则
Java并发 lockInterruptibly导致IllegalMonitorStateException异常研究

计算机基础

操作系统

操作系统 定义、特征、用户态、核心态、中断、系统调用
操作系统 CPU调度 定义、分类、时机、方式、调度算法
操作系统 程序如何运行:编译、链接、装入
操作系统 内存管理概念和连续分配方式
操作系统 内存管理概念和连续分配方式
操作系统 进程篇之基本概念、状态和状态转换
操作系统 进程篇之进程间通信
操作系统 线程的概念、属性和实现方式
操作系统 虚拟内存技术
操作系统 死锁和死锁处理策略
操作系统 内存管理单元MMU TLB

计算机网络

计算机网络 TCP/IP模型
计算机网络 TCP协议梳理
计算机网络 UDP协议梳理
计算机网络 网络层梳理
计算机网络 DNS服务介绍
计算机网络 CDN技术介绍
计算机网络 常见的网络性能指标
计算机网络 网络地址转换NAT
计算机网络 浏览器输入url回车后发生了什么
计算机网络 DNS解析命令汇总
计算机网络 网络层 ICMP协议 ping和traceroute介绍

设计模式、数据结构、算法

面向对象设计原则
设计模式 基础概念
设计模式 状态机
设计模式总结
算法 常见的排序算法
算法 二叉树遍历 递归和非递归
算法 字符串匹配算法
算法 字符串匹配算法
算法 有向无环图 拓扑排序
算法 排列、组合 相关

相关文章:

【置顶】 本博博文汇总

文章目录 前言音视频ijkplayer源码分析FFmpeg、音视频协议Andriod系统音视频框架C、C Android&Java源码分析、绘制、渲染Dalvik、Art虚拟机Java并发 计算机基础操作系统计算机网络设计模式、数据结构、算法 前言 23年底了,想来也工作十年,也一直在c…...

react.js源码二

三、调度Scheduler scheduling(调度)是fiber reconciliation的一个过程,主要决定应该在何时做什么?在stack reconciler中,reconciliation是“一气呵成”,对于函数来说,这没什么问题,因为我们只想要函数的运行结果,但对于UI来说还需要考虑以下问题: 并不是所有的state更…...

如何学习英语

前言 首先写一些自己的感言吧,其实从大学的时候就在不断地听英语,学英语,但是到毕业十几年后,英语一直没起到什么作用,当然最有作用的时候就是几次英语面试吧。 工作之后有一段学习英语的经历,当时花费了…...

robot测试自动化

一. 安装 黑羽robot 首先确保你电脑上安装好了 Python 3.7 或者 3.8 版本的解释器 hyrobot 使用说明1 | 白月黑羽 安装RF 黑羽robot基于Robot Framework ,所以必须先安装RobotFramework 直接执行如下Pip命令即可: pip install robotframework...

Linux---重定向命令

1. 重定向命令的介绍 重定向也称为输出重定向,把在终端执行命令的结果保存到目标文件。 2. 重定向命令的使用 命令说明>如果文件存在会覆盖原有文件内容,相当于文件操作中的‘w’模式>>如果文件存在会追加写入文件末尾,相当于文件…...

小区生活污水处理需要哪些设备和工艺

在小区生活中,污水处理是一个非常重要的环节,它关乎到环境的保护和居民的生活质量。因此,了解小区生活污水处理所需要的设备和工艺是至关重要的。 首先,在小区生活污水处理中,需要用到的设备包括污水收集系统、初级沉淀…...

【高性能计算】Cpp + Eigen + Intel MKL + 函数写成传引用

CUDA加速原理:CUDA编程学习:自定义Pytorch+cpp/cuda extension 高质量C++进阶[2]:如何让线性代数加速1000倍? 【gcc, cmake, eigen, opencv,ubuntu】三.eigen和mkl安装和使用 Linux下MKL库的安装部署与使用,并利用cmake编译器调用MKL库去提升eigen库的计算速度 Eigen库…...

【教学类-05-02】20231216 (比大小> <=)X-Y之间的比大小88题(补全88格子,有空格分割提示)

作品展示: 背景需求: 1、以前做过一份比大小的题目 【教学类-05-01】20211018 Python VSC 大班 数字比大小(> <)_vsc比较3位数大小-CSDN博客文章浏览阅读674次。【教学类-05-01】20211018 Python VSC 大班…...

【Spark精讲】Spark与MapReduce对比

目录 对比总结 MapReduce流程 ​编辑 MapTask流程 ReduceTask流程 MapReduce原理 阶段划分 Map shuffle Partition Collector Sort Spill Merge Reduce shuffle Copy Merge Sort 对比总结 Map端读取文件:都是需要通过split概念来进行逻辑切片&…...

SQL错题集3

1.薪水第二多的员工的emp_no以及其对应的薪水salary limit a,b 其中a表示查询数据的起始位置,b表示返回的数量。 (MySQL数据库中的记录是从0开始的) 注意从0开始 2.员工编号emp_no为10001其自入职以来的薪水salary涨幅值growth 聚合函数不能…...

Elasticsearch:使用 OpenAI 生成嵌入并进行向量搜索 - nodejs

在我之前的文章: Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (一)(二)(三)(四)​​​​​ 我详细地描述了如何使用…...

[python高级编程]:02-类

此系列主要用于记录Python学习过程中查阅的优秀文章,均为索引方式。其中内容只针对本作者一人,作者熟悉了解的内容不再重复记录。 目录 01-装饰器 overload -- 方法重载 02-多态 多态和鸭子类型 03-设计模式 抽象基类和接口 01-装饰器 overload -- 方…...

java.lang.UnsupportedOperationException异常解决

在执行如下代码时&#xff0c;发现当apps.add("...");代码执行时&#xff0c;会报java.lang.UnsupportedOperationException错误 List<String> apps Arrays.asList("...");apps.add("..."); 问题出现的原因如下&#xff1a; 1、ArrayLi…...

openmediavault debian linux安装配置企业私有网盘(三 )——raid5与btrfs文件系统无损原数据扩容

一、适用环境 1、企业自有物理专业服务器&#xff0c;一些敏感数据不外流时&#xff0c;使用openmediavault自建NAS系统&#xff1b; 2、在虚拟化环境中自建NAS系统&#xff0c;用于内网办公&#xff0c;或出差外网办公时&#xff0c;企业内的文件共享&#xff1b; 3、虚拟化环…...

Two Phase Termination(两阶段)设计模式

Two Phase Termination设计模式是针对任务由两个环节组成&#xff0c;第一个环节是处理业务相关的内容&#xff0c;第二个阶段是处理任务结束时的同步、释放资源等操作。在进行两阶段终结的时候&#xff0c;需要考虑&#xff1a; 第二阶段终止操作必须保证线程安全。 要百分百…...

闲人闲谈PS之四十九——PLM和SAP集成常见的问题

惯例闲话&#xff1a;天气突变&#xff0c;没想到珠三角也骤降了10几度&#xff0c;昨晚还吹风扇模式&#xff0c;早上起来一下子感觉丝丝凉意。闲人还是喜欢冬天&#xff0c;冷&#xff0c;能让人思维清晰&#xff0c;提高工作效率。趁着天气适宜&#xff0c;赶紧加班擦屁股去…...

帆软BI目录

数据导入ORACLE库 写法 SELECT * FROM (SELECT a.id ,a.expandType,a.parentId,a.displayName,a.sortIndex,LEVEL lv ,replace(sys_connect_by_path(displayName,//),//Dec-Entry_Management//,) AS 路径FROM FINE_AUTHORITY_OBJECT aSTART WITH a.id decision-directory-ro…...

(第8天)保姆级 PL/SQL Developer 安装与配置

PL/SQL Developer 安装与配置(第8天) 咱们前面分享了很多 Oracle 数据库的安装,但是还没有正式使用过 Oracle 数据库,怎么连接 Oracle 数据库?今天就来讲讲我学习中比较常用的 Oracle 数据库连接工具:PL/SQL DEVELOPER。 PL/SQL Developer 的安装和配置对于新手来说还是…...

【CSS】前端点点点加载小点样式css动画过程实现

对话的 ... 加载动画&#xff0c;直接用 CSS 就可以实现&#xff0c;样式可以自己改&#xff0c;逻辑大差不差 <div class"loading-text"><span class"dot1"></span><span class"dot2"></span><span class&quo…...

【LeetCode: 2415. 反转二叉树的奇数层 | BFS + DFS】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机&#xff0c;交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息&#xff0c;系统版本&#xff1a;Ubuntu22.04.5 LTS&#xff1b;内核版本…...