自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

...

  • 博客(37)
  • 资源 (8)
  • 收藏
  • 关注

原创 {Fixed} Android TV / Google TV国内开机不会自动连接WIFI / 连接国内网络不会更新时间

引用:使用usb adb、网络adb、串口敲以下命令修改安卓全局数据库。

2023-08-04 16:28:11 1629

原创 【Android Audio】Framework Audio 调试替换文件

编译:frameworks/base/services目录下mm -j替换:/system/framework/services.jar。

2023-08-04 10:46:57 649

原创 【Bug-Fixes】【Android Audio】{surround mode设置Manual,打开DD/DDP之后重启平台,exoplayer播放Dolby输出是PCM} [OTT-41237]

根据打印分析,当前开机过程中,AudioService的surround format刷新早于connect hdmitx,导致surround format无法刷新到APM的mManualSurroundFormats变量;

2023-06-09 13:15:56 384

原创 Android apk手动签名

Jenkins上面编译的安卓镜像版本中所包含的apk签名跟本地编译安卓代码生成的apk签名不一致,导致push进去自己编译的apk到平台上之后apk无法使用。

2023-05-30 16:24:40 289

原创 【Android Audio】TimeCheck机制

TimeCheck守护线程的作用:当audioserver中IAudioFlinger,IAudioPolicyService,IEffect中的每一个binder函数调用时间超过5s (kDefaultTimeOutMs = 5000)就会触发audioserver进程自杀行为。(最新Google trunk修改为2s)TimeCheck线程属于audioserver进程,在每次Binder通信时创建一个TimeCheck的对象,同时创建守护线程,在每次调用结束之后销毁。

2023-04-17 20:59:51 1527

原创 【Android Audio】onAudioPortListUpdate 和 onAudioPatchListUpdate回调流程

当系统的output和input发生变化、output device和input device发生变化时都会触发该函数的调用当系统的audio patch发生变化,切换、新增、删除时都会触发该函数

2022-07-06 16:55:28 1198

原创 格式(这里写自定义目录标题)

这里写自定义目录标题欢迎使用Markdown编辑器功能快捷键项目场景:问题描述:项目场景:问题描述:原因分析:解决方案:原因分析:解决方案:合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次

2022-01-20 15:07:16 146

原创 bmp的24bit位宽转16bit

转载来自:https://blog.csdn.net/youyoufengxinzi/article/details/1516523#include <stdio.h#include <stdlib.h>#include <string.h>#define BMP_TYPE 0x424D#define BI_RGB 0#define BMP1555_BYTE 2#define BMP24_BYTE 3#de

2021-09-29 14:25:03 707

原创 【Android Audio】dumpsys audio分析【不定期更新文章】

dumpsys audio显示当前所有stream type的音量状态显示AudioDeviceBroker状态命令:dumpsys audioMessage handler (watch for unhandled messages): Handler (com.android.server.audio.AudioService$AudioHandler) {4adb93d} @ 5038924 Looper (AudioService, tid 87) {e96a532}

2021-07-19 16:51:53 2714

原创 【Bug-Fixes】【Audio】{断开蓝牙音箱时收不到AudioService的Routes信息} [SWPL-52581]

项目场景: Android TV,Android R 1、连接蓝牙音箱,进入LiveTv播放DVB节目,然后断开蓝牙音箱,预期TV的Speaker正常播放声音。问题描述:非ms12版本,连接蓝牙音箱,进入LiveTv播放非Dolby的DVB节目,然后断开蓝牙音箱,TV的Speaker无声。 frameworks/base/services/core/java/com/android/server/audio/AudioService.java /* 这里是TV平台所以是STR

2021-06-17 10:10:39 656

原创 【Android Audio】安卓音量管理

安卓音量管理1、Android音量的保存AudioService.javaAudioSystem.java1、Android音量的保存存放到数据库AudioHandler.persistVolumeprivate void persistVolume(VolumeStreamState streamState, int device) {... System.putIntForUser(mContentResolver, streamState.getSet

2021-06-04 16:40:19 2599

原创 【Android Audio】dumpsys media.audio_policy分析【不定期更新文章】

命令:dumpsys media.audio_policyAudioPolicyManager: 0xf1e5a000Command Thread: 0xf1ff3300Supported System Usages:AudioCommandThread 0xf1ff3300 Dump- Commands: Command Time Wait pParam Last Command 01 014581.648 0 0xf19e5440Aud.

2021-05-31 20:07:40 3708 6

原创 【Bug-Fixes】【Audio】{Launcher下遥控器按mute,然后再按音量+,之后无按键音} [SWPL-26283]

项目场景: Android TV,Android Q 1、在Launcher下通过遥控器按mute,然后再按音量+,之后系统音无声音(按键音) 2、在Launcher下通过遥控器按mute,然后再按mute,之后系统音是正常有声音的问题描述:在Launcher下通过遥控器按mute,然后再按音量+,之后系统音无声音(按键音) frameworks/base/services/core/java/com/android/server/audio/AudioService.

2020-12-11 15:24:33 359

原创 【Android Audio】4、音频设备管理 【基于Android Q 】

4、音频设备管理 【基于Android Q 】​audio policy xml里面有2种角色:source和sink,每种角色又分为devicePorts和mixPorts。type为AUDIO_PORT_TYPE_DEVICEdevicePorts(source):为实际的硬件输入设备,对应安卓的role为AUDIO_PORT_ROLE_SOURCE ;devicePorts(sink):为实际的硬件输出设备,对应安卓的role为AUDIO_PORT_ROLE_SINK ;type为AUDI

2020-12-03 20:19:50 2096

原创 【Multi Media】Android多媒体播放

多媒体和编解码器(组件)之前交互流程分为两个,对于组件端来说,一个是输入一个是输出,以音频解码器流程为例:输入流程:mNuPlayer::Decoder::fetchInputData MediaCodec 从source中获取音频流A(从Source获取音频流)AmNuPlayer::Decoder::onInputBufferFetched 将音频流送入指定index的bufferMediaCodec::queueInputBuffer 发送MediaCodec::kWhatQueueInp

2020-11-13 19:59:16 1005

原创 【Linux】1、内存管理

1、内存管理1.1、虚拟内存与物理内存1.1、虚拟内存与物理内存64位系统的虚拟地址分配0x0000000000000000~0x00007fffffffffff 表示用户空间(128T), 0xFFFF800000000000~ 0xFFFFFFFFFFFFFFFF 表示内核空间(128T)64位Linux一般使用48位来表示虚拟地址空间,40位表示物理地址(512G)32位系统的虚拟地址分配0x0000 0000~0xC000 0000(3G)为用户空间,0xC000 0000~0xFFFF

2020-10-16 15:14:55 161

原创 【Android Audio】5、EngineBase加载音量曲线和策略 【基于Android Q 】

5、音量曲线 【基于Android Q 】5.1、音量曲线加载code5.2、音量转换5.1、音量曲线加载code路径:frameworks/av/services/audiopolicy/managerdefault/engine/common/src/EngineBase.cppengineConfig::ParsingResult EngineBase::loadAudioPolicyEngineConfig(){... auto loadVolumeGroups = [](auto

2020-10-13 14:35:53 2626

原创 三个线程ABC,依次打印

#include <stdio.h>#include <stddef.h>#include <stdlib.h>#include <semaphore.h>#include <unistd.h>sem_t signal_thread[3];#define PRINT_CNT (9)static int g_s32Cnt = 0;static void *printThread(void *pArg) { int index

2020-09-28 15:49:16 91

原创 【C++】3、new、malloc、delete、delete[]、free

3、new、malloc、delete、delete[]、free3.1、malloc3.2、new3.2.1、new单个实例3.2.2、new一个数组64位机器平台实验3.1、mallocchar *pValue = (char *)malloc(10);free(pValue);malloc实际分配内存比实际要多一个header,header里面包含了内存的大小等信息;malloc返回的地址为实际data的地址,header存储在data之前;free的时候会根据pValue 向前偏

2020-09-28 13:52:39 108

原创 【C++】2、虚函数表和虚继承

2、虚函数表和虚继承2.1、虚函数表2.2、虚继承2.1、虚函数表class CBase{ public: CBase() : m_s64Value(0){} virtual void FunTest0(){printf("[%s:%d]:%p, () CBase\n", __func__, __LINE__, this);} virtual void FunTest1(){printf("[%s:%d]:%p, CBase\n", __func

2020-09-26 18:35:52 190

原创 【C++】1、C++ 11新特性

1、C++ 11新特性1.1、移动构造和移动赋值1.1、移动构造和移动赋值OOOOOOOOO类和机构体YHC_TEMP_T定义typedef struct { int s32Value; int s32Str;} YHC_TEMP_T;class OOOOOOOOO{public: OOOOOOOOO() {// m_pstData = new YHC_TEMP_T(); m_pstData = nullptr; pr

2020-09-26 16:11:16 298

原创 【Android Debug】Android 加堆栈打印信息

Android O/P/Q在native 层加堆栈打印信息1、步骤1.1、包含头文件 #include "utils/CallStack.h"1.2、引用动态库1.3、然后在要打印堆栈处加入android::CallStack cs("haha")2、差异原因Native C++层加堆栈打印:1、步骤1.1、包含头文件 #include “utils/CallStack.h”1.2、引用动态库Andorid P / QAndroid.mk: LOCAL_SHARED_LIBRARIES里包含li

2020-09-09 12:05:59 2459 2

原创 【Android Audio】dumpsys media.audio_flinger 分析【基于Android Q 】【不定期更新文章】

AudioFlinger dumpsys1、第一部分​​​​2、第二部分dumpsys media.audio_flinger 1、第一部分​​​​1、Output thread:表示当前线程为输出流的线程2、I/O handle:表示当前的线程handle3、Standby:no表示当前线程在运行。4、Sample rate:采样率6、HAL foramt:送给audio hal的格式13、Output device:当前线程处理的数据输出到的音频设备30、flags:标记输出流hal

2020-09-08 16:25:11 7064 2

原创 【ALSA音频】一、音频定位手段

1、音频定位手段1.1、查看音频声卡1.1.1、查看当前Soc的声卡状态1.1.2、查看当前声卡工作状态1.2、tinymix使用1.2.1、可通过该命令查看当前音频运行状态1.2.2、可通过该命令debug1.1、查看音频声卡1.1.1、查看当前Soc的声卡状态 cat /proc/asound/cards 例如,插入USB声卡之后,会新增声卡节点,USB声卡无声可优先查看该状态。1.1.2、查看当前声卡工作状态声卡分两种通道,一种是Capture、一种是Playback。Captu

2020-09-08 16:05:04 4548

原创 【Android Audio】audioserver与audio hal hidl通信

安卓primary设备调用流程Hal audio系统上下文Hal audio第一步AudioFlingereg: AudioFlinger::PatchPanel::createAudioPatchframeworks/av/services/audioflinger/PatchPanel.cpp/system/lib/ibaudioflinger.so第二步libaudiohaleg: DeviceHalHidl::createAudioPatchAndroid P:framew

2020-09-03 17:19:41 2659

原创 【Android Audio】XXX Android Q音频 hal 架构

2020-07-21 19:28:24 611 2

原创 安卓音频同步头分析

音频流中的同步头分两个version同步头,version number=1时,为16字节同步头;version number=2时,为20字节同步头。0 - 2字节:0x55 0x55 0x00 (固定)3字节:version number,为1或者24 - 7字节:帧大小,当前帧头所带音频数据帧的大小8 - 15字节:apt值,单位为ns16 - 19字节:保留位,只有version number为2时才有...

2020-07-06 19:48:25 662

原创 【Android Audio】Audio系统架构图

原流程图下载地址:https://download.csdn.net/download/u013120422/11937942

2020-04-09 20:37:05 732

原创 【Android Audio】AudioTrack和AudioFlinger之间数据通信架构,以及内存分配

1、AF中最多支持32个Track;2、一个应用进程创建多个AT时只会拥有一个Client,多个AT申请内存由该进程的Client从ClientSharedHeapSize大小的内存中分配;3、一个Client管理的空间是固定的,由变量ClientSharedHeapSize决定;4、每一个创建AT的进程都会创建一个Client,分配ClientSharedHeapSize大小的内存;获取...

2019-10-28 16:35:26 679

原创 【Android Audio】AAudio 架构讲解以及实现范例 (附带visio流程图)

Google官方网站:Audio Hal 适配: https://source.android.google.cn/devices/audio/aaudioAAudio 上层应用使用说明:https://developer.android.google.cn/ndk/guides/audio/aaudio/aaudioAAudio API说明文档:https://developer.andr...

2019-10-21 17:34:03 7657 16

原创 【Android Audio】AudioRecord数据流处理详细流程

1.1 AudioRecord重采样处理流程mPipeSource 为null, 将hal数据in_read到mRsmpInBuffer中, mInput->stream->read();获取track的share buffer,activeTrack->getNextBuffer(&activeTrack->mSink);activeTrack-&gt...

2019-06-20 16:38:17 2291

原创 【Android Audio】Android Tv中Audio Output Format 开机刷新流程

可通过粘性广播获取audio format。 /*------------------hippo encode -------------------------------*/ Intent temp = context.registerReceiver( /* receiver= */ null, new IntentFilter(AudioManager.ACTION_HDMI_AUDIO_PLUG)); int[] formats = temp.getIn

2019-05-31 17:15:21 378

原创 Linux常用工具及命令

1、从网站FTP下载文件到当前目录wget命令wget http://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz2、Linux卸载软件方法一、如果你知道要删除软件的具体名称,可以使用               sudo apt-get remove --purge 软件名称  sudo apt-get autoremove --purge 软...

2017-10-14 10:54:27 466

转载 TensorFlow安装

AI这个概念好像突然就火起来了,年初大比分战胜李世石的AlphaGo成功的吸引了大量的关注,但其实看看你的手机上的语音助手,相机上的人脸识别,今日头条上帮你自动筛选出来的新闻,还有各大音乐软件的歌曲“每日推荐”……形形色色的AI早已进入我们生活的方方面面。深刻的影响了着我们,可以说,这是一个AI的时代。其实早在去年年底,谷歌就开源了其用来制作AlphaGo的深度学习系统Tensorflow

2017-10-13 23:35:19 162

转载 Android.mk 文件语法详解

转:http://blog.sina.com.cn/s/blog_602f8770010148ce.html=====================================================================================0. Android.mk简介:Android.mk文件用来告知NDK Build 系统关于Sou

2017-04-07 23:11:19 161

原创 Git在LINUX上安装

2. 设置Git(1)设置用户名和email。git config --global user.name "Your Name"git config --global user.email "[email protected]"此时,Home目录下会新建一个.gitconfig文件3. 为GitHub账号添加SSH Keys以公钥认证方式访问SSH协议的

2017-03-10 21:41:41 113

原创 Samba的命令

useradd +用户名命令新建用户samba服务器里,命令是smbpasswd -a (记得一定要加-a)+用户名。/etc/init.d/smbd restart 重启Samba

2017-03-03 22:00:39 381

ISO-IEC-11172-3 MPEG-1_Audio_CD.xls

将后缀.xls修改为.zip之后解压,解压之后将解压的文件后缀.pdf再修改为.doc 就可以打开。 CD 11172-3 CODING OF MOVING PICTURES AND ASSOCIATED AUDIO FOR DIGITAL STORAGE MEDIA AT UP TO ABOUT 1.5 MBIT/s

2020-04-27

MPEG2_CHS中文版

后缀修改为.ZIP之后解压即可 MPEG2_CHS标准中文版_mpeg2标准(中文) mpeg 2中文标准,第一部分 系统,MPEG2_CHS标准中文版

2020-04-27

ISO-IEC-13818-3

后缀修改为.ZIP之后解压即可 后缀修改为.ZIP之后解压即可 INTERNATIONAL ORGANISATION FOR STANDARDISATIONORGANISATION INTERNATIONALE DE NORMALISATIONISOIEC JTC1/SC29/WG11CODING OF MOVING PICTURES AND AUDICISOЛECJTCISC29/WGIIN151920 February 1997AudioINFORMATION TECHNOLOGYGENERIC CODING OF MOVING PICTURES ANDAUDIO: AUDIOISO/EC 13818-3Second EditionPrinted 20 February 1997

2020-04-27

ISO-IEC-14496-3. MPEG-4 Part 3 Audio

请添加文件后缀为.zip之后解压 Information technology — Coding of audio-visual objects — Part 3: Audio Technologies de l'information — Codage des objets audiovisuels — Partie 3: Codage audio

2020-04-27

ISO-IEC-13818-1

请添加文件后缀为.zip之后解压 Information technology — Generic coding of moving pictures and associated audio information: Systems

2020-04-27

ISO IEC 13818-7

后缀修改为.ZIP之后解压即可 后缀修改为.ZIP之后解压即可 后缀修改为.ZIP之后解压即可 ADIF:Audio Data Interchange Format 音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。故这种格式常用在磁盘文件中。 ADTS:Audio Data Transport Stream 音频数据传输流。这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始。它的特征类似于mp3数据流格式。这种格式可以用于广播电视。

2020-04-24

Audio Framework.vsdx

AudioPolicyService和AudioFLinger、AudioPolicyManager、AudioPolicyClient之间的调用关系

2019-10-29

Android AAudio 架构.vsdx

AAudio 数据流架构, AAudio 是在 Android 8.0 版本中引入的一种音频 API。Android 8.1 版本具有增强功能,可在与支持 MMAP 的 HAL 和驱动程序结合使用时缩短延迟时间。本文档说明了需要进行哪些硬件抽象层 (HAL) 及驱动程序方面的更改才能在 Android 中支持 AAudio 的 MMAP 功能。

2019-10-29

空空如也

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

TA关注的人

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