• Stars
    star
    210
  • Rank 187,585 (Top 4 %)
  • Language
  • License
    GNU General Publi...
  • Created about 6 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

《Android音视频开发》一书源码及勘误

AVBookCode

源码

链接: https://pan.baidu.com/s/1eOIiKz9YNV0_pDxpRoOftg 提取码: c216

码流分析工具

链接: https://pan.baidu.com/s/11kMVuoSpX11BDmoS7R3LBA 提取码: t8dt

勘误列表

  • 1、Page-3,Line-8,错误类型--错别字,AudioTrack 写成 "AudiTrack";
  • 2、Page-6,错误类型--描述错误,关于PCM的采样率和比特率换算,常见的比特率并没有44.1Hz,而是44.1KHz,即使是44.1Hz,16位的精度,换算的比特率也不是4410016kb/s的结果;
  • 3、第一章中关于YUV的概念介绍中说 :“YUV:也被称作YCrCb”, 应为“YCbCr”, 在YUV家族中,YCbCr是在计算机系统中应用最多的成员,其应用领域很广泛,JPEG、MPEG均采用此格式。一般人们所讲的YUV大多是指YCbCr。引用微软对YV12和NV12的描述:https://docs.microsoft.com/en-us/previous-versions/aa904813(v=vs.80)

YV12   All of the Y samples appear first in memory as an array of unsigned char values. This array is followed immediately by all of the V (Cr) samples. The stride of the V plane is half the stride of the Y plane, and the V plane contains half as many lines as the Y plane. The V plane is followed immediately by all of the U (Cb) samples, with the same stride and number of lines as the V plane (Figure 12).

NV12   All of the Y samples are found first in memory as an array of unsigned char values with an even number of lines. The Y plane is followed immediately by an array of unsigned char values that contains packed U (Cb) and V (Cr) samples, as shown in Figure 13. When the combined U-V array is addressed as an array of little-endian WORD values, the LSBs contain the U values, and the MSBs contain the V values. NV12 is the preferred 4:2:0 pixel format for DirectX VA. It is expected to be an intermediate-term requirement for DirectX VA accelerators supporting 4:2:0 video.

可以发现 U (Cb) ,V (Cr),那YUV就是YCbCr.

  • 4、Page-23处libmedia.so库源文件的目录不是frameworks/base/media/libmedia,而是在frameworks/av/media/libmedia
  • 5、Page-15,得到软引用对象,应为“得到弱引用对象”
  • 6、Page-210 metadata,应为“元数据”
  • 7、Page-212 priv_data_size,应为“某种格式文件的数据大小”
  • 8、Page-198 第一个命令写成前面一节降噪命令了,争取画中画命令应为“ffmpeg -i input1 -i input2 -filter_complex overlay=x:y output”
  • 9、Page-46 首先找到入口,在frameworks/base/media/mediaserver/main_mediaserver.cpp中,应为“首先找到入口,在frameworks/av/media/mediaserver/main_mediaserver.cpp中”
  • 10、Page-47 接下来看看interface_cast是什么,其处于frameworks/base/include/binder/IInterface.h中,应为“接下来看看interface_cast是什么,其处于frameworks/native/include/binder/IInterface.h中”
  • 11、Page-48 其处于frameworks/base/include/binder/IServiceManager.h中,应为“接下来看看interface_cast是什么,其处于frameworks/native/include/binder/IServiceManager.h中”
  • 12、Page-49 开始添加服务内部,在frameworks/base/media/libmediaplayerservice/MediaPlayerService.cpp中,应为“开始添加服务内部,在frameworks/av/media/libmediaplayerservice/MediaPlayerService.cpp中”
  • 13、Page-52 其处于frameworks/base/libs/binder/IserviceManager.cpp中,应为“ 其处于frameworks/native/libs/binder/IServiceManager.cpp中”
  • 14、Page-53 继续在BpBinder中寻找实现代码,其处于frameworks/base/libs/binder/BpBinder.cpp中,应为“继续在BpBinder中寻找实现代码,其处于frameworks/native/libs/binder/BpBinder.cpp中”
  • 15、Page-115 有一句翻译”平滑视频帧率>=10fps“,应该是“让视频流畅输出,使之帧率大于等于10FPS”

License

    Copyright (C) <2018>  <hejunlin>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.