Tiny4412 Android5.0 定制media codecs相关的格式
tiny4412 4412 Android 5.0系统上,支持以下的media格式,文件位于: device/friendly-arm/tiny4412/media_codecs.xml
打开后我们可以看到这个xml包含相关的音视频编解码支持的格式:
<?xml version="1.0" encoding="utf-8" ?> <!-- Copyright (C) 2012 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- <!DOCTYPE MediaCodecs [ <!ELEMENT MediaCodecs (Decoders,Encoders)> <!ELEMENT Decoders (MediaCodec*)> <!ELEMENT Encoders (MediaCodec*)> <!ELEMENT MediaCodec (Type*,Quirk*)> <!ATTLIST MediaCodec name CDATA #REQUIRED> <!ATTLIST MediaCodec type CDATA> <!ELEMENT Type EMPTY> <!ATTLIST Type name CDATA #REQUIRED> <!ELEMENT Quirk EMPTY> <!ATTLIST Quirk name CDATA #REQUIRED> ]> There's a simple and a complex syntax to declare the availability of a media codec: A codec that properly follows the OpenMax spec and therefore doesn't have any quirks and that only supports a single content type can be declared like so: <MediaCodec name="OMX.foo.bar" type="something/interesting" /> If a codec has quirks OR supports multiple content types, the following syntax can be used: <MediaCodec name="OMX.foo.bar" > <Type name="something/interesting" /> <Type name="something/else" /> ... <Quirk name="requires-allocate-on-input-ports" /> <Quirk name="requires-allocate-on-output-ports" /> <Quirk name="output-buffers-are-unreadable" /> </MediaCodec> Only the three quirks included above are recognized at this point: "requires-allocate-on-input-ports" must be advertised if the component does not properly support specification of input buffers using the OMX_UseBuffer(...) API but instead requires OMX_AllocateBuffer to be used. "requires-allocate-on-output-ports" must be advertised if the component does not properly support specification of output buffers using the OMX_UseBuffer(...) API but instead requires OMX_AllocateBuffer to be used. "output-buffers-are-unreadable" must be advertised if the emitted output buffers of a decoder component are not readable, i.e. use a custom format even though abusing one of the official OMX colorspace constants. Clients of such decoders will not be able to access the decoded data, naturally making the component much less useful. The only use for a component with this quirk is to render the output to the screen. Audio decoders MUST NOT advertise this quirk. Video decoders that advertise this quirk must be accompanied by a corresponding color space converter for thumbnail extraction, matching surfaceflinger support that can render the custom format to a texture and possibly other code, so just DON'T USE THIS QUIRK. --> <MediaCodecs> <Decoders> <MediaCodec name="OMX.SEC.MPEG4.Decoder" type="video/mp4v-es" /> <MediaCodec name="OMX.SEC.H263.Decoder" type="video/3gpp" /> <MediaCodec name="OMX.SEC.AVC.Decoder" type="video/avc" /> <MediaCodec name="OMX.SEC.FP.AVC.Decoder" type="video/avc" /> <MediaCodec name="OMX.SEC.MPEG2.Decoder" type="video/mpeg2" /> <MediaCodec name="OMX.SEC.WMV.Decoder" type="video/vc1" /> <MediaCodec name="OMX.SEC.MP3.Decoder" > <Type name="audio/mpeg" /> <Quirk name="supports-multiple-frames-per-inputbuffer" /> <Quirk name="needs-flush-before-disable" /> </MediaCodec> <MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg" /> <MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp" /> <MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb" /> <MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm" /> <MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw" /> <MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw" /> <MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis" /> <MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" /> <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" /> <MediaCodec name="OMX.google.h264.decoder" type="video/avc" /> <MediaCodec name="OMX.google.vpx.decoder" type="video/x-vnd.on2.vp8" /> <MediaCodec name="FfmpegVideoDecoder" type="video/ffmpeg" /> <MediaCodec name="FfmpegAudioDecoder" type="audio/ffmpeg" /> </Decoders> <Encoders> <MediaCodec name="OMX.SEC.MPEG4.Encoder" type="video/mp4v-es" /> <MediaCodec name="OMX.SEC.H263.Encoder" type="video/3gpp" /> <MediaCodec name="OMX.SEC.AVC.Encoder" type="video/avc" /> <MediaCodec name="OMX.google.amrnb.encoder" type="audio/3gpp" /> <MediaCodec name="OMX.google.amrwb.encoder" type="audio/amr-wb" /> <MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm" /> <MediaCodec name="OMX.google.flac.encoder" type="audio/flac" /> </Encoders> </MediaCodecs>这里面,一部分是Android系统在发布的时候就自带支持的一些格式,而有一些格式是厂商加进去的,如果正式发布产品,有些格式还不是完全免费的,需要支付一定的认证费用才能使用对应的格式,那么再产品定制环节,我们可以根据需求来删除对应的格式,同时也可以添加对应的格式。
至于这部分,后面找到对应的java文件会再做分析:
(未完待补充!)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Tiny4412 Android5.0 定制键值相关的文件
在4412中,开发板上只有四个按键,我们可以根据产品的需求自定义按键的功能。 在KeyEvent.java这个文件中,可以通过发出按键的事件,上报给上层。让上层app或者服务去接收处理。比如,我们可以看到这样的代码: 注释写得非常清楚,按下按键后,可以发出键值,按下的时间等等,也可以通过Android广播的形式去发送这些事件。 /** * Create a new key event. * * @param downTime The time (in {@link android.os.SystemClock#uptimeMillis}) * at which this key code originally went down. * @param eventTime The time (in {@link android.os.SystemClock#uptimeMillis}) * at which this event happened. * @param action Action code: either {@link #ACTION_DOWN}, * {@link #ACT...
- 下一篇
JNI命令行下编译错误解决方案
第一步,找到你的android sdk路径 QQ截图20170612233945.png 第二步,加入到环境变量CLASSPATH QQ截图20170612234346.png 我的android sdk路径为(前面有环境变量路径一定要加;) ;E:\Program Files\Android\Android Studio\plugins\android\lib\android.jar; 第三步,编译java文件 javah 完整包名+类名 例如: javah com.jni.demo.jni_01 com.jni.demo为完整包名,因为jni的语法实现需要用到完整包名,它会自动在项目的相对路径下寻找相应的类文件 jni_01是含有native方法的类
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7安装Docker,走上虚拟化容器引擎之路