- 博客(33)
- 资源 (28)
- 收藏
- 关注
转载 Linux USB 驱动开发(四)—— 热插拔那点事
学习USB热插拔之前,先学习一些USB的硬件知识:一、USB基础概念1、硬件知识(USB插座和插头)在最初的标准里,USB接头有4条线:电源,D-,D+,地线。后来OTG出现了,又增加了miniUSB接头。而miniUSB接头则有5条线,多了一条ID线,用来标识身份用的。标准USB口只有A型和B型,如下:USB插头的地引脚和电源引脚比较长,而两个数据引脚则比较短,(如下图所示: ...
2019-06-28 18:11:33 1444
转载 Linux USB 驱动开发(三)—— 编写USB 驱动程序
前面学习了USB驱动的一些基础概念与重要的数据结构,那么究竟如何编写一个USB 驱动程序呢?编写与一个USB设备驱动程序的方法和其他总线驱动方式类似,驱动程序把驱动程序对象注册到USB子系统中,稍后再使用制造商和设备标识来判断是否安装了硬件。USB 驱动程序依然遵循设备模型 —— 总线、设备、驱动。和I2C 总线设备驱动编写一样,所有的USB驱动程序都必须创建的主要结构体是 struct ...
2019-06-28 10:36:43 1478
转载 Linux USB 驱动开发(二)—— USB 驱动几个重要数据结构
前面《Linux USB 驱动开发(一)—— USB设备基础概念》中,我们学习了USB 驱动的一个描述符,下面来学习 USB 驱动的几个重要数据结构一、struct usb_interface 接口函数struct usb_interface{ struct usb_host_interface *altsetting; struct usb_h...
2019-06-28 10:19:18 1012
转载 Linux USB 驱动开发(一)—— USB设备基础概念
在终端用户看来,USB设备为主机提供了多种多样的附加功能,如文件传输,声音播放等,但对USB主机来说,它与所有USB设备的接口都是一致的。一个USB设备由3个功能模块组成:USB总线接口、USB逻辑设备和功能单元:a – 这里的USB总线接口指的是USB设备中的串行接口引擎(SIE);b – USB逻辑设备被USB系统软件看作是一个端点的集合;c – 功能单元被客户软件看作是一个接口...
2019-06-27 17:35:01 1057
转载 Android下USB Accessory的实现分析 (四)--- AOA上层分析
本文 接着前面的文章 《Android下USB Accessory的实现分析 (三)— Android Open AccessoryProtocol》2.2 Android上层对USBAccessory设备的处理流程下图是g_android.ko驱动检测到USB Accessory设备之后大致的处理流程:首先g_android.ko驱动发现USB Accessory设备发送了“ACC...
2019-06-24 17:24:39 1549
转载 Android下USB Accessory的实现分析 (二)--- 底层驱动设计实现
接着前面的文章 《Android下USB Accessory的实现分析 (一)— AOA背景介绍》2.Android下Usb Accessory的设计实现Android下对Usb Accessory设备的支持包括内核驱动层的支持和Android Framework层的支持,如下是设计架构图:下面就分别从Linux内核驱动,Android Framework层,以及相关的应用层代码来进行分...
2019-06-24 14:30:18 2885
转载 Android下USB Accessory的实现分析 (三)--- Android Open AccessoryProtocol
本文 接着前面的文章 《Android下USB Accessory的实现分析 (二)— 底层驱动设计实现》2.1.4 Android Open AccessoryProtocol为了支持USB Accessory,让USB主从设备双方能够互相识别和兼容对方,Google定义了一套Android OpenAccessory Protocol(简称AOA),此协议目前有两个版本:Version...
2019-06-24 14:26:16 4454
转载 Android下USB Accessory的实现分析 (一)--- AOA背景介绍
摘要本文介绍了USB Accessory的一些背景知识,并从Linux驱动到Android Framework层,阐述了USB accessory的整个实现过程。关键词: Android,USB,Accessory, ADK1. 背景介绍自Android 3.1之后的版本,Google引入了USB Accessories的概念,并提供了相关的开发库。下面是developer.andro...
2019-06-22 11:23:12 2367 2
原创 「 Notes 」 Qualcomm Video Documents Notes
■ Multimedia Driver Development and Bringup Guide – Audio (80-NU323-1)■ Multimedia Driver Development and Bringup Guide – Camera (80-NU323-2)■ Multimedia Driver Development and Bringup Guide – Displ...
2019-06-19 12:11:24 1262
原创 Android Video System[2] --- MediaExtractor, Decoder and Renderer Source Code Analysis
At the beginning, let weLet’s take a look at the catalogue of this chapter:(First)、Multimedia File Parsing - MediaExtractor分离音视频1.1、mMediaPlayer.prepareAsync()1.1.1、MediaPlayer.setVideoSurfaceText...
2019-06-18 10:21:26 682
原创 「 Qualcomm 」 How to enabe Video Turbo Mode
Turbo Mode means OC Mode (超频模式)By default it it disabled.code:/vendor/qcom/proprietary/wfd/utils/data/wfdconfig.xml 和 wfdconfigsink.xml<!-- To configure video core in Turbo mode -->...
2019-06-17 17:49:39 607
原创 「 H264 Decoder 」how to calculate the time of inputbuffer and outputbuffer copy in Decoder
useecho -n ‘omx_vdec_v4l2.cpp +p’ > /sys/kernel/debug/dynamic_debug/controlor add this log in omx_vdec_v4l2.cppthe time between empty_this_buffer_proxy and empty_buffer_done is copy encode dat...
2019-06-17 13:47:22 672 1
原创 「 Kernel Time 」How to print android UTC time in Kernel
There is question that the time of kernel and system is not consistentwhen use ‘logcat -b all’ to capture logs.Here’s how to add code to print system time in kernel:/*******************************...
2019-06-17 12:52:55 866
转载 Android Multimedia Codecs - H264编解码分析
目录(一)、从零了解H264结构(概览)1.0、前言1.0、前言1.1、原理1.1.1. NAL Header1.1.2. RBSP1.2、从NALU出发了解H.264里面的专业词语1.2.1. Slice(片)1.2.2. 宏块(Macroblock)1.2.3. 图像,场和帧1.2.4. I,P,B帧与pts/dts1.2.5. GOP1.2.6 . IDR1.3....
2019-06-16 19:27:06 1467 1
转载 H264基本原理
前言H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的。随着 x264/openh264以及ffmpeg等开源库的推出,大多数使用者无需再对H264的细节做过多的研究,这大降低了人们使用H264的成本。但为了用好H264,我们还是要对H264的基本原理弄清楚才行。今天我们就来看看H264的基本原理。H264概述H264压缩技术主要采用了以下几种方法对视频数据进行压...
2019-06-10 14:37:53 2428
转载 「音视频直播技术」Android下视频H264解码
上一篇文章中介绍了如何使用MediaCodec编码,今天我们再来分析一下如何通过 MediaCodec 进行解码。为了讲解的方便,我们引入了 MediaExtractor 类。它用于打开MP4等媒体文件,并从中抽取出音视频数据。打开媒体文件MediaExtractor,音视频数据分离器。每种媒体文件如MP4, FLV, MOOV等都是一种容器,里边存放了音频数据和视频数据。Medi...
2019-06-10 14:27:05 637
转载 「音视频直播技术」Android下视频H264编码
今天为大家介绍一下音视频直播技术中的视频编码。在移动端通过Camera采集到视频数据后,我们不会直接将它发送出去。因为采集后的视频数据量非常大,比如 1280x720 分辨率的一帧数据,就有可能达到6M大小(码率越高,图像越清晰)。这6M数据如果送到网上传输,会给网络带来非常大的负担。另外,人眼对图像的识别是有限的。拿手机屏幕来说,1K屏与2K屏对于人眼来说是看不出来它们之间的区别的,视频...
2019-06-10 14:15:37 568
转载 Android Multimedia框架总结(十二)CodeC部分之OMXCodec与OMX事件回调流程
前言:上篇文中分析到AwesomePlayer到OMX服务,曾介绍到,OMX服务主要完成三个任务: NodeInstance列表的管理,NodeInstance的操作, 事件的处理。最后这个事件处理就是今天放大看的内容。要一步一步一Codec,事件传递必不可少,看下今天的Agenda:(1)OMXCodec与OMX callback事件的处理时序图(2)如何从OMX中dispatch到O...
2019-06-10 09:48:49 966
转载 Android Multimedia框架总结(十一)CodeC部分之AwesomePlayer到OMX服务
前言:上篇文《Android Multimedia框架总结(十)》总结了音视频的输出过程,从今天开始分析Codec部分,今天分析的是AwesomePlayer到OMX服务过程,也就是开启OpenMax准备相关。先看下今天的Agenda:(1)一张图看清OMX在stagefright中的位置(2)一张图看清OpenMax与Stagefright层级的关系(3)OMX初始化流程(4)O...
2019-06-09 12:55:12 801
转载 Android Multimedia框架总结(十)Stagefright框架之音视频输出过程
前言:上篇文中最后介绍了数据解码放到Buffer过程,今天分析的是stagefright框架中音视频输出过程:先看下今天的Agenda:(1)一张图回顾数据处理过程(2)视频渲染器构建过程(3)音频数据到Buffer过程(4)AudioPlayer在AwesomePlayer运行过程(5)音视频同步(6)音视频输出(7)一张图看音视频输出一、一张图回顾数据处理过程二、视...
2019-06-09 12:33:43 599
转载 Android Multimedia框架总结(九)Stagefright框架之数据处理及到OMXCodec过程
上篇主要介绍了Stagefright框架及AwesomePlayer的数据解析器,最后我们说道,涉及parse及decode部分,将在本篇中介绍,看下今天的Agenda:(1)两张图看数据走向(2)AwesomePlayer中prepare过程(3)AwesomePlayer初始化音视频解码器过程(4)Stagefright的Decode过程(5)Stagefright处理数据过程(...
2019-06-09 11:49:20 688
转载 Android Multimedia框架总结(八)Stagefright框架之AwesomePlayer及数据解析器
前言:前面一篇分析了mediaplayerservice及MediaPlayer中的CS模型,但是对于如何能把数据解析出来,渲染到最终的SurfaceView上显示,并且播放起来,我们依然还不得而知,从今天开始,就开始介绍多媒体框架中数据解析->解码->渲染输出过程,也就是后面几篇都要介绍的stagefright框架。先看下今天的Agenda:(1)Stagefright的整...
2019-06-09 11:09:52 1075
转载 Android Multimedia框架总结(七)C++中MediaPlayer的C/S架构补充及MediaService介绍
前面一篇主要介绍c++中MediaPlayer的C/S架构中和Client相关部分,并中间穿插了mediaplayerservice的部分。但是对于这块C/S部分,没有放大去分析。今天我们把这块C/S模型放大去看下。同样先看下Agenda:(1)C/S模型中的三角关系流程图(2)MediaPlayerService相关联的类图(3)MediaPlayerService的产生过程(4)...
2019-06-08 18:00:14 569
转载 Android Multimedia框架总结(六)C++中MediaPlayer的C/S架构
前面几节中,都是通过java层调用到jni中,jni向下到c++层并未介绍看下Java层一个方法在c++层 MediaPlayer后续过程frameworks/av/media/libmedia/MediaPlayer.cpp找一个我们之前熟悉的setDataResource方法看下C/S模式的过程.先看下Agenda:(1)举例setDataSource方法在mediaplayer.c...
2019-06-08 17:17:35 1165
转载 Android Multimedia框架总结(五)多媒体基础概念
上篇中介绍了MediaPlayer从prepare到playback的其他过程,但是很多的一些音视频的基础概念可能还不是很清楚,今天将介绍下对于多媒体开发时,常常有一些基本概念。看下今天的Agenda:(1)对杂而乱的概念进行归类(2)视频部分相关(3)音频部分相关先看一张图,这样常常在说的,是否真的了解它们真实含义:一、对杂而乱的概念进行归类视频分辨率标清、高清、720P...
2019-06-08 16:41:09 973
转载 Android Multimedia框架总结(四)MediaPlayer中从Java层到C++层类关系及prepare及之后其他过程
前言:在上篇中,分析了MediaPlayer的从创建到setDataSource过程,尽管看了代码,但是没有从MediaPlayer生态上认识各类库之间依赖调用关系,在本篇中将作一个补充整体上的认识。看下今天的Agenda:(1)MediaPlayer各个so库之间关系结构图(2)MediaPlayer各个具体类之间依赖关系图(3)prepare的执行过程(4)prepareAsy...
2019-06-08 16:01:17 903
转载 Android Multimedia框架总结(三)MediaPlayer中创建到setDataSource过程
前言:前一篇的mediaPlayer框架,对于各个模块的关系,得先从核心类MediaPlayer铺开,同样看下今天的Agenda:(1)MediaPlayer从create到setDisplay时序图(2)MediaPlayer的create过程(3)MediaPlayer的setDataSource过程(4)MediaPlayer的setDisplay过程今天分析的是从MediaP...
2019-06-07 17:36:50 2090
转载 Android Multimedia框架总结(二)MediaPlayer框架及播放网络视频案例
前言:前面我们介绍MediaPlayer相关方法,有人说,没有实际例子,看得不是很明白,今天在分析MediaPlayer时,顺带一个播放网络视频例子。可以自行试试。同样先看下今天的Agenda:(1)Android中的MediaPlayer框架(2)MediaPlayer播放视频主要模块(3)播放主要模块对应组件(4)MediaPlayer方法对应有效状态及无效状态(5)案例:M...
2019-06-07 16:53:20 844
转载 Android Multimedia框架总结(一)MediaPlayer介绍之状态图及生命周期
本文转自: Android Multimedia框架总结(一)MediaPlayer介绍之状态图及生命周期前言:从本篇开始,将进入Multimedia框架,包含MediaPlayer, Camera, Surface, MediaRecord, 接下来几篇都是MediaPlayer相关。同样看下Agenda如下:(1):MediaPlayer的状态图(2):Idle 状态(3):En...
2019-06-07 16:26:42 902
转载 android 多媒体框架服务之StagefrightPlayer和OMXCodec实现原理
1. 框架结构1.1 StageFright 、openCore、NuPlayer的关系stagefright是在MediaPlayerService这一层加入的,和opencore是并列的,在选用opencore还是stagefright的代码切换上也非常容易。Android上的MediaPlayer播放底层框架已经经历了多次变动,从最早先的OpenCore到后来的StageFrig...
2019-06-07 12:21:35 2067 1
原创 Win10 远程挂载 Ubuntu16.04的目录
今天把公司电脑带回家了,但同时操作两台电脑太麻烦了所以把 ubuntu 上的代码 映射到 windows 上看代码。Ubuntu 端:选择要分享的文件夹,选择 local network share设置成功后可以看到 共享的 图标:接着给 帐号 设置一个 smb 密码: sudo smbpasswd xxxxx使用 ifconfig 查看下当前的 IP, 记住它。为...
2019-06-07 11:22:44 1653
5-FFmpeg编码YUV420P图片.zip
2020-10-13
4-FFmpeg-SDL视频播放器-音视频播放-更新.zip
2020-10-12
4-FFmpeg-SDL视频播放器-音视频播放.zip
2020-10-12
3-FFmpeg-SDL视频播放器-只能播放视频.zip
2020-10-10
2-VS2019-muxing.c编码视频-工程所有文件.zip
2020-10-09
VS2019-解码视频-工程所有文件.zip
2020-10-09
windows-ffmpeg4.3-dll-build.zip
2020-10-08
linux-ffmpeg4.3-build-带调试信息.zip
2020-10-08
linux-ffmpeg4.3-build-不带调试信息.zip
2020-10-08
bmp图片的快速傅里叶变换.zip
2020-09-10
22.分离RGB24中的RGB分量.zip
2020-08-27
【c代码+素材】分离YUV420P中的YUV分量.zip
2020-08-26
[素材]分离YUV420P像素数据中的Y、U、V分量.zip
2020-08-25
图的创建 --- 十字链表法.zip
2020-08-24
Python简单案例--收集熊猫TV主播人气行榜
2019-02-25
uboot-RK3568编译过程记录.txt
2024-06-19
optee-os.tar.gz
2024-06-19
rkbin.tar.gz
2024-06-19
u-boot-2024.07-rc3-build.tar.gz 编译好的 RK3399 u-boot ,供学习使用
2024-06-02
u-boot-2024.07-rc3.tar.bz2
2024-06-02
optee-build.tar.gz
2024-06-02
atf-bl31-build.tar.gz
2024-06-02
Yocto Kernel编译过程分析完整log
2022-05-07
Native层应用程序实现获取video0数据并进行H264编码-代码实现.zip
2020-11-14
Native层打开 V4L2 video0摄像头 - V4L2_MEMORY_USERPTR - NV12格式 - 2plane.cpp
2020-11-14
Native层打开 V4L2 video0摄像头-V4L2_MEMORY_DMABUF-YUYV格式-1plane.cpp
2020-11-14
Native层打开 V4L2 video0摄像头-V4L2_MEMORY_USERPTR-YUYV格式-1plane.cpp
2020-11-14
Video_Capture.cpp
2020-11-11
H264_Encoder.cpp
2020-11-09
在Native层实现MediaCodec H264 编码.zip
2020-11-02
ffmpeg-4.3-arm64含静态库-动态库-调试信息-(内含三个压缩包).zip
2020-10-23
5-FFmpeg编码YUV420P图片-方法二.zip
2020-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人