自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Android系统攻城狮

CSDN博客专家,专注Android/Linux系统、多媒体技术分享!

  • 博客(4987)
  • 资源 (98)
  • 收藏
  • 关注

原创 Android15 手机+车载 音频性能实战课(无声/杂音/断音/爆音解决方案):正式上线了(二百七十)

Android15车载手机音频性能实战课<无声/杂音/断音/爆音>等22种高频音频性能问题解决方案。更多原创,欢迎关注:Android系统攻城狮。

2026-02-02 06:30:00 1914

原创 【Android15 手机+车载 音频策略实战课】:正式上线了(二百六十四)

本篇目的:本课程基于Android15最新版本,深度讲解音频策略系统的设计架构与实战应用。从音频策略树的基础结构入手,逐步深入核心骨架、音量曲线等关键模块。再通过7个真实项目案例(Speaker改向、USB无损播放、蓝牙空间音效、定制音量曲线、Gain转换、数字耳机适配等)完整演示策略开发全流程。最后涵盖系统APP与MediaProjection的音频截取对比,帮助开发者掌握系统级音频策略定制能力。

2025-11-26 16:17:36 923

原创 【Android15快速自定义与集成音效实战课】:正式上线了(二百六十二)

本篇目的:给大家介绍一下:我的【Android15快速自定义与集成音效实战课】:正式上线了,希望可以帮助大家!这是一个在企业开发中,Android音效自定义、集成、调试快速上手的实战课。【Android15快速自定义与集成音实战课】,就是为了解决Android APP、Framework、音频开发者遇到音效问题的一个上手实战课,帮助开发者快速上手领导给的音效集成、调试、问题定位。软件 + 硬件开发环境源码环境:android - 15.0 . 0 _r32硬件环境:Pixel6。

2025-10-17 15:49:16 1037 1

原创 我的新书《Android系统多媒体进阶实战》正式发售了!!!

新书发售:《Android系统多媒体进阶实战》

2024-07-22 19:20:40 6081 1

原创 Linux FFmpeg深度解析之avdevice_configuration调用流程与实战(五十)

本篇目的:理解如何返回FFmpeg构建时记录的配置字符串,并通过程序查看该字符串,分清构建配置和运行时设备状态。排查设备支持问题时,开发者常需要确认当前使用的FFmpeg构建包含哪些配置选项。返回构建阶段写入的配置字符串,供程序查看编译配置。它不会探测本机设备,也不会注册或打开输入输出设备。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;

2026-11-15 05:15:00 306

原创 Linux FFmpeg深度解析之av_probe_input_buffer调用流程与实战(四十九)

本篇目的:理解如何通过输入格式回调或恢复媒体读取,并用RTSP场景观察暂停与恢复的调用关系。位于libavformat输入读取控制层。它根据当前使用的输入格式选择恢复路径:优先调用 demuxer 的read_play回调;没有该回调时,再尝试恢复底层。它不负责解码数据,也不维护播放器界面上的暂停状态。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em。

2026-11-15 05:00:00 180

原创 Linux FFmpeg深度解析之av_probe_input_format调用流程与实战(四十八)

本篇目的:理解如何根据选择输入格式,并通过构造WAV探测数据观察demuxer评分与格式返回结果。FFmpeg需要先确定输入数据属于哪种封装格式,才能选择对应的demuxer读取文件头和媒体包。接收调用者准备好的探测数据,遍历可用输入格式并返回匹配的。它只负责根据现有探测数据猜测格式,不负责从文件或网络读取数据,也不负责打开输入和解析媒体流。fill:#333;important;important;fill:none;color:#333;color:#333;important;

2026-11-14 05:15:00 350

原创 Linux FFmpeg深度解析之av_read_play调用流程与实战(四十七)

本篇目的:理解如何通过输入格式回调或恢复媒体读取,并用RTSP场景观察暂停与恢复的调用关系。位于libavformat输入读取控制层。它根据当前使用的输入格式选择恢复路径:优先调用 demuxer 的read_play回调;没有该回调时,再尝试恢复底层。它不负责解码数据,也不维护播放器界面上的暂停状态。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em。

2026-11-14 05:00:00 168

原创 Linux FFmpeg深度解析之swr_convert调用流程与实战(四十六)

本篇目的:理解如何使用已初始化的SwrContext读取输入音频样本、生成输出样本并保留重采样延迟。音频转换不一定能在一次调用中输出与输入采样数按采样率比例换算出的全部样本。重采样器可能需要等待滤波数据,也可能因输出Buffer容量不足而暂存输入。会在内部维护转换状态,调用者需要按返回值处理实际输出,并在输入结束后刷新延迟数据。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;

2026-11-13 05:15:00 244

原创 Linux FFmpeg深度解析之swr_alloc_set_opts2调用流程与实战(四十五)

本篇目的:理解如何创建或复用SwrContext并设置输入输出参数,明确它与swr_init()和的职责边界。音频重采样需要确定输入、输出的声道布局、采样格式和采样率。把这些参数写入SwrContext,但不会初始化转换器,也不会处理音频样本。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;输入输出音频参数SwrContext保存转换配置。

2026-11-13 05:00:00 249

原创 Linux FFmpeg深度解析之sws_scale_frame调用流程与实战(四十三)

本篇目的:理解如何使用AVFrame完成图像缩放和像素格式转换,梳理它进入切片处理接口的过程,并通过一个完整帧转换示例观察输入帧与输出帧的关系。FFmpeg的libswscale负责视频图像缩放和像素格式转换。接收源AVFrame和目标AVFrame,调用者不需要逐个传递平面指针和行跨度。它负责执行图像转换,不负责解码视频,也不负责创建缩放上下文。调用者需要先准备SwsContext和有效的源帧。fill:#333;important;important;fill:none;color:#333;

2026-11-12 05:15:00 366

原创 Linux FFmpeg深度解析之sws_scale调用流程与实战(四十四)

本篇目的:理解如何接收源图像平面、行跨度和切片范围,分析它如何把缩放结果写入目标图像缓冲区,并通过整帧示例观察返回行数。是libswscale的切片式图像转换接口。调用者把源图像的各平面指针、每行跨度、当前切片位置和目标平面指针传入函数。它负责按既定的SwsContext执行缩放和像素格式转换,不负责创建图像缓冲区,也不负责管理源、目标图像内存。fill:#333;important;important;fill:none;color:#333;color:#333;important;

2026-11-12 05:15:00 185

原创 Linux FFmpeg深度解析之av_packet_pack_dictionary调用流程与实战(四十二)

本篇目的:理解如何将编码为字节序列,分析序列内存的所有权,并通过Packet侧数据完成打包与解包。FFmpeg需要把字典形式的元数据附加到AVPacket时,不能直接把结构体作为Packet字节数据传递。按键和值的顺序生成一段由NUL字符分隔的字节序列,供调用者添加为Packet侧数据。它只负责生成序列,不会创建AVPacket、修改原字典或自动把序列附加到Packet。fill:#333;important;important;fill:none;color:#333;color:#333;

2026-11-11 05:15:00 351

原创 Linux FFmpeg深度解析之av_new_packet调用流程与实战(四十一)

本篇目的:理解如何为AVPacket分配带引用计数的数据缓冲区,分析它初始化哪些字段,以及如何在实战中填充和释放Packet数据。解复用器、码流过滤器和应用层代码都可能需要创建一个新的AVPacket来承载压缩数据。按指定字节数分配Packet负载,并建立管理的数据所有权。它只负责分配和初始化Packet,不负责读取文件、编码数据或设置时间戳。负载内容仍由调用者写入。fill:#333;important;important;fill:none;color:#333;color:#333;

2026-11-11 05:00:00 393

原创 Linux FFmpeg深度解析之avio_enum_protocols调用流程与实战(四十)

本篇目的:理解如何遍历FFmpeg当前构建中可用的URL协议,并用输入、输出方向分别枚举协议名称。FFmpeg通过URL协议处理数据读写,例如filehttp和udp。排查程序为什么支持某类媒体地址时,需要先确认当前构建实际包含哪些协议,以及协议能否用于读取或写入。返回协议名称供调用者检查。它不解析媒体格式,不打开URL,也不保证远端服务或本地设备可用。fill:#333;important;important;fill:none;color:#333;color:#333;important;

2026-11-10 05:15:00 247

原创 Linux FFmpeg深度解析之avformat_network_init调用流程与实战(三十九)

本篇目的:理解初始化了什么、它与网络协议打开流程的关系,以及应用如何正确处理初始化和反初始化。。但它不是创建网络连接的函数,也不会打开URL或读取媒体数据。它负责显式初始化libavformat使用的网络与TLS组件。在较新的构建中,网络协议打开时会自动初始化网络组件,因此这个接口通常是可选的。它主要用于兼容旧版GnuTLS或OpenSSL的线程安全问题。fill:#333;important;important;fill:none;color:#333;color:#333;important;

2026-11-10 05:00:00 305

原创 Linux FFmpeg深度解析之avio_open调用流程与实战(三十八)

本篇目的:理解如何根据URL和访问标志创建,梳理它进入FFmpeg协议层的过程,并用独立文件读写验证打开、缓冲和关闭的关系。FFmpeg读写媒体数据时,格式层需要通过统一的IO接口访问文件或其他URL资源。提供带缓冲的字节读写能力,负责根据URL创建并初始化这个对象。只建立IO通道,不解析容器、不创建音视频流,也不编码数据。输出封装通常由及其muxer完成。fill:#333;important;important;fill:none;color:#333;color:#333;important;

2026-11-09 05:15:00 314

原创 Android17车载音频进阶之H2XML定制Module(一百七十七)

目的:理解H2XML如何把Module接口和Key定义转换为ARC可用的元数据,并通过Graph、GKV、CKV和TKV驱动AudioReach用例配置。H2XML根据带注解的C头文件生成XML元数据。ARC使用这些元数据配置Module、Graph和参数,ACDB保存对应的Graph定义与Calibration数据,运行时由GSL和AML按Key Vector查询数据。H2XML负责生成配置所需的元数据,不负责执行CAPI Module中的算法。fill:#333;important;

2026-11-09 05:15:00 1802

原创 Linux FFmpeg深度解析之av_guess_codec调用流程与实战(三十七)

本篇目的:理解如何根据输出封装格式和媒体类型选择默认编码器ID,并通过最小程序检查选择结果与编码器查找之间的关系。FFmpeg写文件时,输出封装格式和编码器是两个不同对象。描述容器格式及其默认音视频编码器,AVCodecID标识具体编码格式。根据已选定的输出格式和媒体类型返回默认编码器ID。它不创建编码器,也不检查对应编码器是否已编译进当前FFmpeg;后续还要调用查找编码器实现。fill:#333;important;important;fill:none;color:#333;color:#333。

2026-11-09 05:00:00 249

原创 Linux FFmpeg深度解析之av_guess_format调用流程与实战(三十六)

本篇目的:理解如何根据格式名、文件名扩展名和MIME类型查找输出封装格式,并通过独立案例观察查找结果如何用于创建输出上下文。创建FFmpeg输出上下文前,需要确定使用哪种复用器。调用者可以直接指定格式名,也可以让FFmpeg根据文件名或MIME类型进行匹配。负责在已注册的输出格式中查找最合适的。它只返回格式描述对象,不创建,也不会打开文件。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;

2026-11-08 05:15:00 196

原创 Linux FFmpeg深度解析之av_write_trailer调用流程与实战(三十五)

本篇目的:理解如何完成复用收尾,分析它如何刷新待写数据、调用封装格式的收尾逻辑,并通过写入WAV文件的案例观察调用顺序。FFmpeg写输出文件时,写入容器头部,后续的提交编码后的数据包。所有数据包提交后,还需要调用完成容器收尾。这个函数负责刷新复用链路中的待处理数据并调用封装格式的收尾回调。它不会关闭底层,也不会释放整个。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;

2026-11-08 05:00:00 412

原创 Linux FFmpeg深度解析之av_interleaved_write_frame调用流程与实战(三十四)

本篇目的:理解如何接收多个流的AVPacket并由libavformat安排交织,分析包缓存与所有权变化,并通过多流Remux案例观察完整写包路径。多路音视频封装时,音频包和视频包各自有独立的时间基,不能只按读取先后直接写入。允许libavformat根据包时间戳组织交织顺序,并在需要时暂存包。调用者仍需提供正确的流索引和时间戳。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;

2026-11-07 05:15:00 417

原创 Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)

本篇目的:理解如何把AVPacket送入封装器,分析它对包顺序和所有权的要求,并通过单流Remux案例观察写包流程。编码器或解复用器提供的AVPacket还需要经过封装,才能成为容器文件中的数据。把包直接交给封装器,不负责缓存或重排包。调用者必须安排封装所需的包顺序,并在调用后自行管理包的引用。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;

2026-11-07 05:00:00 390

原创 Linux FFmpeg深度解析之avformat_init_output调用流程与实战(三十二)

本篇目的:理解如何初始化输出格式上下文和流参数,分析它与的分工,并通过MPEG-TS封装示例观察两阶段初始化结果。封装输出时,应用先创建和AVStream,再配置编码参数与时间基。用于提前初始化封装器及流相关状态,便于在写入文件头之前确认初始化阶段是否已经完成。它不会打开输出IO,也不会调用封装器的写文件头。输出IO由调用者准备;写文件头仍由负责。fill:#333;important;important;fill:none;color:#333;color:#333;important;

2026-11-06 05:15:00 186

原创 Linux FFmpeg深度解析之avformat_write_header调用流程与实战(三十一)

本篇目的:理解如何根据输出上下文初始化Muxer并写入容器头,并通过WAV输出案例观察它与Stream参数、IO和写尾接口的关系。封装输出时,应用先创建和输出Stream,并填好每条Stream的codecpar等参数。Muxer需要这些信息初始化内部状态,随后才能接收Packet。负责初始化输出并让Muxer写入文件头。它不负责编码音视频,也不负责写入后续媒体Packet。fill:#333;important;important;fill:none;color:#333;color:#333;

2026-11-06 05:00:00 344

原创 Linux FFmpeg深度解析之avformat_new_stream调用流程与实战(三十)

本篇目的:理解如何在中创建并登记一个AVStream,并通过创建音视频输出流的示例检查流索引和参数对象。复用或封装媒体时,输出容器需要知道文件中包含哪些音视频轨道。负责管理整个媒体文件的格式和多个Stream;每条AVStream保存轨道级信息,codecpar保存该轨道的编解码参数。负责创建并登记AVStream,不会自动完成编码器配置,也不会写入容器文件。fill:#333;important;important;fill:none;color:#333;color:#333;important;

2026-11-05 05:15:00 315

原创 Linux FFmpeg深度解析之avcodec_align_dimensions调用流程与实战(二十九)

本篇目的:理解如何根据解码器和像素格式调整图像缓冲区宽高,并通过最小程序观察对齐前后的尺寸变化。解码器输出图像的显示宽高,不一定适合直接作为底层图像缓冲区的分配尺寸。像素格式的色度采样方式、编解码器的边界访问要求和行跨度对齐,都可能要求缓冲区比图像可见区域更大。根据已打开的Codec上下文调整传入的宽高。它只计算对齐尺寸,不分配图像内存,也不修改图像的显示尺寸。fill:#333;important;important;fill:none;color:#333;color:#333;important。

2026-11-05 05:00:00 168

原创 Linux FFmpeg深度解析之avcodec_default_get_encode_buffer调用流程与实战(二十八)

本篇目的:理解如何为编码器输出包分配带引用计数的缓冲区,分析它与自定义回调和AVPacket生命周期的关系,并通过回调包装示例观察默认分配器的调用位置。编码器生成压缩数据时,需要一块可写的输出内存。FFmpeg通过回调提供这块内存,默认实现就是。默认实现会根据分配,再让指向缓冲区数据。它只负责建立输出包缓冲区,不调用编码器,也不负责写文件或封装容器。fill:#333;important;important;fill:none;color:#333;color:#333;important;

2026-11-04 05:15:00 175

原创 Linux FFmpeg深度解析之avcodec_receive_packet调用流程与实战(二十七)

本篇目的:理解如何从编码器读取压缩数据,分析内部包缓存、编码器输出和调用者持有的AVPacket之间的关系,并通过收包循环验证编码输出的读取方式。编码器接收原始AVFrame后,不一定马上输出压缩包。编码器可能积累输入,执行帧重排序,或等待更多数据。负责读取当前已经可用的编码结果。成功返回时,输出包是引用计数的AVPacket。下一次调用该接口前,FFmpeg会先对传入的包执行,因此调用者应在再次收包前处理或转移上一次包的数据。fill:#333;important;important;

2026-11-04 05:00:00 344

原创 Linux FFmpeg深度解析之avcodec_send_frame调用流程与实战(二十六)

本篇目的:理解如何把原始音视频帧提交给FFmpeg编码器,分析它与内部输入缓存、编码输出之间的关系,并通过发送帧和排空编码器的代码观察调用语义。编码器输入是未压缩的AVFrame,输出是压缩后的AVPacket。负责提交输入帧,并不保证一次调用就产生一个输出包。编码器可能需要积累多帧,或因重排序和内部延迟暂存数据。调用成功后,AVFrame所有权仍属于调用者。编码器可能引用帧数据,因此调用者应使用带引用计数的帧缓冲区;需要复用帧时,先调用确认数据可写。fill:#333;important;

2026-11-04 04:45:00 333

原创 Linux FFmpeg深度解析之avcodec_parameters_copy调用流程与实战(二十五)

本篇目的:理解如何把一个对象的参数复制到另一个对象,并通过实战检查动态数据是否独立。封装格式中的AVStream通过codecpar保存流的编码参数。转封装或创建过滤器链时,常常需要把一条流的参数复制到另一对象。会先重置目标对象,再复制参数,并为外部数据分配独立存储。它不复制音视频帧,也不负责把参数写入容器。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;

2026-11-03 05:15:00 330

原创 Linux FFmpeg深度解析之avcodec_find_encoder_by_name调用流程与实战(二十四)

本篇目的:理解如何按编码器名称精确查找AVCodec描述符,并通过创建编码上下文验证查找结果。按AVCodecID查找时,FFmpeg会从匹配格式的实现中选择一个编码器。如果应用已经确定要使用哪个具体实现,例如构建中注册的mpeg4编码器,就可以按名称查找。只查找名称完全匹配的编码器描述符,不会创建上下文,也不会打开或运行编码器。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;

2026-11-03 05:00:00 331

原创 Linux FFmpeg深度解析之avcodec_find_encoder调用流程与实战(二十三)

本篇目的:理解如何根据AVCodecID查找FFmpeg编码器,并通过创建编码上下文验证查找结果的用途。一个编码任务通常先确定目标格式,例如MPEG-4视频,再选择能够处理该编码格式的编码器。按编码ID查找已注册的编码器描述符,返回AVCodec指针或NULL。它只负责查找编码器,不会创建、配置编码参数或启动编码。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;

2026-11-03 04:45:00 327

原创 Android17车载音频进阶之CAPI Module开发流程(一百七十六)

目的:掌握从CAPI封装到ARE实例运行的开发流程,理解Module接口、AMDB、ARC与Container之间的关系。CAPI(Common Audio Processor Interface)是ARE与音频算法之间的接口。算法库通过CAPI Module向ARE提供输入输出端口、参数和事件接口,ARE通过AMDB查找Module实现,再由Container创建并运行Module实例。Android17是系统版本,具体CAPI接口和构建方式以项目集成的AudioReach版本为准。

2026-11-02 05:00:00 1642

原创 Linux FFmpeg深度解析之av_parser_init调用流程与实战(二十一)

本篇目的:理解如何根据AVCodecID查找并创建解析器上下文,分析解析器注册表、私有状态和之间的关系。压缩码流可能以任意字节块到达,输入块边界不一定与视频帧或音频帧边界重合。按编码格式创建对应的,供后续解析调用使用。它只创建解析器状态,不读取输入数据,也不拆分数据包。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;编码格式AVCodecID。

2026-11-02 05:00:00 330

原创 Linux FFmpeg深度解析之av_parser_parse2调用流程与实战(二十二)

本篇目的:理解如何把任意输入字节块交给对应解析器,分析输入消耗量、输出帧数据和时间戳状态之间的关系。裸码流的读取块不一定与压缩帧边界一致。接收一段输入数据,调用解析器识别已完成的帧,并报告本次消耗的输入字节数。它负责解析码流边界,不负责解码压缩帧。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;输入压缩字节块编码格式解析器输出帧指针和大小。

2026-11-02 05:00:00 172

原创 Linux FFmpeg深度解析之avcodec_default_get_buffer2调用流程与实战(二十)

本篇目的:理解如何为AVFrame分配带引用计数的音视频缓冲区,并梳理解码器回调、内部缓冲池与帧数据之间的关系。解码器处理压缩数据时,需要为解码后的帧准备数据平面。是FFmpeg提供的默认缓冲分配实现,通常由调用。它负责申请和填充AVFrame的数据缓冲,不负责解析码流或执行解码。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;

2026-11-02 04:45:00 360

原创 Linux FFmpeg深度解析之avcodec_flush_buffers调用流程与实战(十九)

本篇目的:理解如何重置解码器内部状态,说明它在seek和切换码流时的位置,并通过跳转后清理旧状态的流程验证使用边界。解码器会保存压缩包、参考帧、时间戳修正和线程状态等内部信息。播放位置跳转或切换到另一条码流后,继续使用旧状态可能让新位置的数据受到旧帧影响。用于清理解码器内部状态;它不负责在媒体文件中定位,也不替代demuxer的seek操作。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none。

2026-11-01 05:30:00 343

原创 Linux FFmpeg深度解析之avcodec_receive_frame调用流程与实战(十八)

本篇目的:理解如何从解码器取出一帧音视频数据,分析返回值对应的解码状态,并通过接收循环验证帧读取边界。调用提交压缩包后,解码器可能立即产出帧,也可能需要更多输入,或暂存重排序所需的数据。负责从解码器当前状态中取出可用的AVFrame。它不负责读取媒体文件,也不负责把压缩包送入解码器。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;有数据。

2026-11-01 05:15:00 216

原创 Linux FFmpeg深度解析之avcodec_send_packet调用流程与实战(十七)

本篇目的:理解如何把压缩数据包提交给解码器,分析输入何时被接受、何时需要重试,并通过发送循环验证EAGAIN的处理方式。Demuxer从媒体文件中取出压缩数据后,应用需要把AVPacket交给解码器。负责提交输入,并不保证一次调用就能立即产出AVFrame。如果解码器内部暂时无法接收新包,调用者需要先取出已有输出,再重试同一个包。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;

2026-11-01 05:00:00 194

Universal Serial Bus Device Class Definition for Audio Devices.zip

Universal Serial Bus Device Class Definition for Audio Devices(UAC2.0协议文档),研究usb audio必读,欢迎下载!

2019-11-16

GStreamer中文开发手册.zip

GStreamer是一个通用的跨平台的流媒体应用程序框架,基于GObject,以C语言写成。 GStreamer并不受限于音频和视频处理,它能够处理任意类型的数据流,因此任意一种流媒体应用都可以支持,如:MeidaPlayer、A/V Editor、VOIP、RTSP、A/V Coder等等。 GStreamer框架是基于插件(plugin)和管道(pipeline)的体系结构,框架中所有功能模块都是可插拔的组件,可随意安装到任意管道上

2020-07-22

Pixel ROM(sailfish)

最近在玩Pixel,自己花了一周时间下载Android源码,编译出来Pixel root版的ROM,分享给爱玩机的朋友!

2019-10-20

H.264标准协议(官方中文版)

H.264是一种视频压缩标准,其只规定了符合标准的码流的格式,以及码流中各个语法元素的解析方法。 H.264标准协议是每个从事多媒体工作的码农必备的参考书,欢迎下载。

2020-10-28

手写Fuchsia第一个app

在研究GN和Ninja时,发现Fuchsia也是用的GN和ninja来构建编译系统的,值得一提的是Android7.0以后放弃了Makefile,开始使用ninja来构建编译系统!

2020-03-16

JM-H264参考手册

JM:JM通常被认为是H.264标准制定团队所认可的官方参考软件,基本实现了H.264标准的全部特征。JM在运行时的运算过程较为复杂,而且没有采用汇编优化等加速方法,因此运行速度较慢,很难达到实时编解码。通常主要用于编解码技术的科学研究领域。

2020-10-28

Audition 2019版

Audition是做音频开发不可或缺的重要的开发工具,分享一个Win10 2019免注册版备用,也欢迎下载。

2019-06-13

第五代加固技术ARM VMP原理实现与应用.zip

随着Android逆向开发的升级,Android应用的安全越来越被重视,第五代加固技术ARM VMP原理实现与应用正在探索中发展。

2020-03-01

AUDIO CODEC DAPM详解.zip

本文目的帮助理解音频系统ALSA中的dapm机制建立和触发过程,在这之中,涉及到音频路径的搭建和选择(相信这部分对于大家来说更有应用意义)。在dapm机制深入分析中,会展现alsa设计者的各种理念及实现技巧,很多细节上的考虑和处理值得我们去学习。

2019-12-30

debug_hybris_demo.zip

libhybris主要作用是为了解决libc库的兼容问题,目的是为了在基于GNU C library的系统运行那些用bionic编译的库(主要是Android下的闭源HAL库)。因为这些系统都是基于glibc生态的,然而现有的硬件厂商提供的driver多是为Android而写的,自然也是用bionic编译的。如何让基于glibc的系统能够重用现有Android的driver呢?这就需要像libhybris这样的兼容层。

2020-06-03

基于域名路由策略.zip

目前使用主流的Linux配置都是基于ip设置路由策略,此篇讲解怎么基于域名路由策略,仅供参考!

2019-07-17

Linux内核内存Cache机制原理

Linux内核内存Cache机制原理从源码的角度来分析流程,可以帮助Linux内核学习者了结Cache的内存机制!

2020-03-14

vcxsrv-64.1.20.8.1.zip

VcXsrv是微软Windows的开源显示服务器。 它使Windows操作系统的用户能够运行为X Window System设计的GUI程序。 VcXsrv可以运行安装了WSL(Linux子系统Linux)的Linux GUI程序。 在bash for Windows中,设置DISPLAY环境变量允许WSL程序使用Windows GUI。

2020-06-20

最新windows和linux的adb工具

下载了一份最新windows和linux平台的adb工具,以此提供给更多开发者方便使用!

2019-07-30

Gstreamer-Openmax-gst-openmax.zip

OpenMAX is a royalty-free, cross-platform API that provides abstractions for routines especially useful for computer graphics, video, and audio.

2020-08-17

MultimediaFrameworkOverview.zip

音视频多媒体框架GStreamer、PulseAudio采用插件式架构,支持多格式编解码器,支持不同编码器、解析器、分离器和复用器作为插件式架构!

2020-09-01

HxD_Hex编辑器中文版.zip

HxD is a carefully designed and fast hex editor which, additionally to raw disk editing and modifying of main memory (RAM), handles files of any size. The easy to use interface offers features such as searching and replacing, exporting, checksums/digests, insertion of byte patterns, a file shredder

2020-09-12

win10removeAll.zip

Win10彻底关闭windows defender,解决无故占用大量CPU和内存问题! 建议保留一个杀毒软件,不管是360、火绒还是什么,至少安装一个保证电脑的安全。

2020-06-25

busybox.zip

Android debug的时候由于android原生的命令太少,编译了一个busybox分享出来,欢迎下载。

2019-06-25

蓝牙Audio调试.zip

蓝牙协议栈有很多种profile,像HFP、A2DP、HSP等等,他们通讯都是蓝牙模块和CPU或者DSP之间,通过AT指令来发送信息,这篇文档介绍各种profile及支持采样率和通道数据,还有调试方式!

2019-12-27

Android64位gdbserver与Win10-32位gdb.exe与Ubuntu64位gdb可执行bin

一、在Win10平台和Ubuntu22.04远程在线调试Android系统 1.Android系统ARM64位gdbserver文件 2.Win10系统32位gdb.exe文件 3.Ubuntu系统64位gdb文件

2024-10-15

H266(VVC)视频编码协议标准pdf

H266(VVC)视频编码协议标准最新版 T-REC-H.266-202204-I!!PDF-E.pdf

2023-10-05

ISO 13818-7 AAC标准协议文档

ISO 13818-7 AAC标准是MPEG-2标准中定义的一部分,详细描述了AAC在MPEG-2传输流中的编码和解码方法。

2023-09-03

word2010中输入简谱

word2010中输入简谱

2023-04-25

Picture auto gen tools

Picture auto gen tools for wechat

2023-03-27

AIDL for HALs测试客户端

AIDL for HALs测试客户端

2023-01-10

彻底禁掉Win10 Defender自启动

彻底禁掉Win10 Defender自启动! 彻底禁掉Win10 Defender自启动! 彻底禁掉Win10 Defender自启动! 开机内存不会占用特别高! 开机内存不会占用特别高! 开机内存不会占用特别高!

2022-12-24

免费DLL修复工具For WIn10/Win11

免费DLL修复工具

2022-10-22

Typora free版本for Ubuntu22.04

Typora free版本for Ubuntu22.04

2022-10-22

gnome-boxes虚拟机跨平台工具

gnome-boxes虚拟机工具 1.Windows和Linux剪切版共享工具 2.Windows和Linux文件共享工具

2022-10-12

android10以上源码中编译java及UI代码

1.增加Android.mk编译方式 2.增加Android.bp编译方式

2022-07-18

微信for Ubuntu18.04

微信for Ubuntu18.04

2022-06-22

企业微信for Linux

企业微信forLinux

2022-06-22

java-7-openjdk-amd64.tar.gz

目前OpenJDK-7-JDK的源已经被废弃了,手动安装的花需要安装一系列的依赖,特别麻烦,这里提供给需要的开发人员.

2021-01-22

Elecard HEVC Analyzer_For_Windows.zip

分享一个Elecard h265分析工具,大家都知道Elecard很贵,不多说了,内附registor.

2021-01-06

deepin.com.wechat_2.6.8.65deepin0_i386-OK.zip

deepin for wechat

2021-03-22

qt_audio_record.tar.gz

花了一天时间研究,在x86与ARM平台验证可用,备忘!

2021-04-28

qt_audio_play.tar.gz

QT之QMediaPlayer播放音频demo

2021-04-28

capture_test.zip

在Android6.0平台上,UVC Camera使用标准V4L2接口获取视频数据,并保存文件,测试debug调试使用。

2021-03-09

push_stream_test.zip

此mp4文件为h264编码格式,用于推流使用.

2020-12-23

空空如也

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

TA关注的人

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