Showing preview only (4,470K chars total). Download the full file or copy to clipboard to get everything.
Repository: pkuvcl/davs2
Branch: master
Commit: b41cf117452e
Files: 114
Total size: 4.2 MB
Directory structure:
gitextract_ha5u9txv/
├── .gitattributes
├── .github/
│ └── ISSUE_TEMPLATE/
│ ├── ----.md
│ ├── bug_report.md
│ └── feature_request.md
├── .gitignore
├── .travis.yml
├── COPYING
├── README.md
├── README.zh.md
├── appveyor.yml
├── build/
│ ├── linux/
│ │ ├── Makefile
│ │ ├── config.guess
│ │ ├── config.sub
│ │ └── configure
│ └── vs2013/
│ ├── DAVS2.sln
│ ├── davs2.vcxproj
│ ├── davs2.vcxproj.filters
│ ├── libdavs2.vcxproj
│ ├── libdavs2.vcxproj.filters
│ ├── libdavs2_asm.vcxproj
│ ├── libdavs2_asm.vcxproj.filters
│ ├── libdavs2_intrin_avx.vcxproj
│ ├── libdavs2_intrin_avx.vcxproj.filters
│ ├── libdavs2_intrin_sse.vcxproj
│ ├── libdavs2_intrin_sse.vcxproj.filters
│ ├── nasm.props
│ ├── nasm.targets
│ └── nasm.xml
├── source/
│ ├── common/
│ │ ├── aec.cc
│ │ ├── aec.h
│ │ ├── alf.cc
│ │ ├── alf.h
│ │ ├── bitstream.cc
│ │ ├── bitstream.h
│ │ ├── block_info.cc
│ │ ├── block_info.h
│ │ ├── common.cc
│ │ ├── common.h
│ │ ├── cpu.cc
│ │ ├── cpu.h
│ │ ├── cu.cc
│ │ ├── cu.h
│ │ ├── davs2.cc
│ │ ├── deblock.cc
│ │ ├── deblock.h
│ │ ├── decoder.cc
│ │ ├── decoder.h
│ │ ├── defines.h
│ │ ├── frame.cc
│ │ ├── frame.h
│ │ ├── header.cc
│ │ ├── header.h
│ │ ├── intra.cc
│ │ ├── intra.h
│ │ ├── mc.cc
│ │ ├── mc.h
│ │ ├── memory.cc
│ │ ├── osdep.h
│ │ ├── pixel.cc
│ │ ├── predict.cc
│ │ ├── predict.h
│ │ ├── primitives.cc
│ │ ├── primitives.h
│ │ ├── quant.cc
│ │ ├── quant.h
│ │ ├── sao.cc
│ │ ├── sao.h
│ │ ├── scantab.h
│ │ ├── threadpool.cc
│ │ ├── threadpool.h
│ │ ├── transform.cc
│ │ ├── transform.h
│ │ ├── vec/
│ │ │ ├── intrinsic.cc
│ │ │ ├── intrinsic.h
│ │ │ ├── intrinsic_alf.cc
│ │ │ ├── intrinsic_deblock.cc
│ │ │ ├── intrinsic_deblock_avx2.cc
│ │ │ ├── intrinsic_idct.cc
│ │ │ ├── intrinsic_idct_avx2.cc
│ │ │ ├── intrinsic_inter_pred.cc
│ │ │ ├── intrinsic_inter_pred_avx2.cc
│ │ │ ├── intrinsic_intra-filledge.cc
│ │ │ ├── intrinsic_intra-pred.cc
│ │ │ ├── intrinsic_intra-pred_avx2.cc
│ │ │ ├── intrinsic_pixel.cc
│ │ │ ├── intrinsic_pixel_avx.cc
│ │ │ ├── intrinsic_sao.cc
│ │ │ └── intrinsic_sao_avx2.cc
│ │ ├── vlc.h
│ │ ├── win32thread.cc
│ │ ├── win32thread.h
│ │ └── x86/
│ │ ├── blockcopy8.asm
│ │ ├── const-a.asm
│ │ ├── cpu-a.asm
│ │ ├── dct8.asm
│ │ ├── dct8.h
│ │ ├── ipfilter8.asm
│ │ ├── ipfilter8.h
│ │ ├── mc-a2.asm
│ │ ├── pixeladd8.asm
│ │ ├── quant8.asm
│ │ ├── x86inc.asm
│ │ └── x86util.asm
│ ├── configw.h
│ ├── davs2.h
│ └── test/
│ ├── getopt/
│ │ ├── getopt.c
│ │ └── getopt.h
│ ├── inputstream.h
│ ├── md5.h
│ ├── parse_args.h
│ ├── psnr.h
│ ├── test.c
│ └── utils.h
└── version.sh
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
#common settings that generally should always be used with your language specific settings
# Auto detect text files and perform LF normalization
# http://davidlaing.com/2012/09/19/customise-your-gitattributes-to-become-a-git-ninja/
* text=auto
#
# The above will handle all files NOT found below
#
# Scripts
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf
*.sh text eol=lf
# Documents
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.ppt diff=astextplain
*.PPT diff=astextplain
*.pptx diff=astextplain
*.PPTX diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
*.md text
*.adoc text
*.textile text
*.mustache text
*.csv text
*.tab text
*.tsv text
*.sql text
# Graphics
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.tif binary
*.tiff binary
*.ico binary
# SVG treated as an asset (binary) by default. If you want to treat it as text,
# comment-out the following line and uncomment the line after.
*.svg binary
#*.svg text
*.eps binary
#sources
*.c text eol=crlf
*.cc text eol=crlf
*.cxx text eol=crlf
*.cpp text eol=crlf
*.c++ text eol=crlf
*.hpp text eol=crlf
*.h text eol=crlf
*.h++ text eol=crlf
*.hh text eol=crlf
*.asm text eol=crlf
*.S text eol=crlf
*.cfg text eol=crlf
*.txt text eol=lf
# QT Project files
*.pro text eol=lf
# Compiled Object files
*.slo binary
*.lo binary
*.o binary
*.obj binary
# Precompiled Headers
*.gch binary
*.pch binary
# Compiled Dynamic libraries
*.so binary
*.dylib binary
*.dll binary
# Compiled Static libraries
*.lai binary
*.la binary
*.a binary
*.lib binary
# Executables
*.exe binary
*.out binary
*.app binary
# Custom for Visual Studio
*.sln text eol=crlf
*.csproj text eol=crlf
*.vbproj text eol=crlf
*.fsproj text eol=crlf
*.dbproj text eol=crlf
*.vcproj text eol=crlf
*.vcxproj text eol=crlf
*.sln text eol=crlf
*.vcxitems text eol=crlf
*.props text eol=crlf
*.filters text eol=crlf
================================================
FILE: .github/ISSUE_TEMPLATE/----.md
================================================
---
name: 问题咨询
about: 使用问题/安全问题/其他问题
---
请发送邮件至: sswang@pku.edu.cn
或在应用内“高级设置” - “建议反馈” 填写表单
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report of bug / 如果你认为你发现了一项代码问题
---
**Describe the bug**
A clear and concise description of what the bug is.
请详细的描述这个bug的细节
**To Reproduce**
Steps to reproduce the behavior (including the commond line parameters)
请详细描述重现这个bug的步骤(运行的命令行参数、输入的文件)
**Expected behavior**
A clear and concise description of what you expected to happen.
你认为这个功能本应如何工作
**Screenshots**
If applicable, add screenshots to help explain your problem.
如果有可能,请提供截图
**Desktop (please complete the following information):**
- OS: [e.g. Windows10, Ubuntu 18.04]
- Compiler [e.g. Visual Studio 2013, GCC 5.6.0]
- yasm [e.g. 1.2.0, 1.3.0-luofl]
你的操作系统(包括版本)、编译器(GCC/G++, VS)、汇编器yasm(版本号)。
**Additional context**
Add any other context about the problem here, i.e. video sequences and bitstreams.
额外的材料,例如输入的视频序列、码流文件等。
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project / 功能请求
---
请详细填写以下四项关键元素
## 功能描述
## 功能带来的效应
## 缺少此功能的影响
## 实现的思路与方式
================================================
FILE: .gitignore
================================================
Debug/
Release/
x64_Debug/
x64_Release/
build/linux/cavs2dec*
build/linux/davs2*
My*/
*.user
*.suo
*.ncb
*.aps
*.pdb
*.res
*.dat
*.manifest
*.map
*.dep
*.idb
*.ilk
*.htm
*.exp
*.lib
*.obj
*.dll*
*.exe
*.avs
*.mkv
*.mp4
*.y4m
*.yuv
*.log
*.bak
*.o
*.a
*.so
*.cd
*.sdf
*.opensdf
*.depend
*.pc
*.mak
*.so.*
*.dec
*.txt
config.h
*.iobj
*.ipdb
version.h
================================================
FILE: .travis.yml
================================================
language: c
dist: xenial
install:
- wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.gz -O nasm-2.14.02.tar.gz
- tar -xvf nasm-2.14.02.tar.gz
- pushd nasm-2.14.02 && ./configure --prefix=/usr && make && sudo make install && popd
jobs:
include:
# General Linux build job
- name: Build
script:
- cd build/linux
- ./configure
- make -j
================================================
FILE: COPYING
================================================
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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 2 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, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
This program is also available under a commercial proprietary license.
For more information, contact us at sswang @ pku.edu.cn.
================================================
FILE: README.md
================================================
# davs2
**davs2** is an open-source decoder of `AVS2-P2/IEEE1857.4` video coding standard.
An encoder, **xavs2**, can be found at [Github][2] or [Gitee (mirror in China)][3].
[]()
[](https://github.com/pkuvcl/davs2/issues)
[](https://github.com/pkuvcl/davs2/network)
[](https://github.com/pkuvcl/davs2/stargazers)
Linux(Ubuntu-16.04):[](https://travis-ci.org/pkuvcl/davs2)
Windows(VS2013):[](https://ci.appveyor.com/project/luofalei/davs2/build/artifacts)
Stargazers over time
[](https://starcharts.herokuapp.com/pkuvcl/davs2)
## Compile it
### Windows
Use VS2013 or latest version of visual studio open the `./build/vs2013/davs2.sln` solution
and set the `davs2` as the start project.
#### Notes
1. A `shell executor`, i.e. the bash in git for windows, is needed and should be found in `PATH` variable.
For example, the path `C:\Program Files\Git\bin` can be added if git-for-windows is installed.
2. `nasm.exe` with version `2.13` (or later version) is needed and should be put into the `PATH` directory.
For windows platform, you can downloaded the packege and unpack the zip file to get `nasm.exe`:
https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/win64/nasm-2.14.02-win64.zip
### Linux
```
$ cd build/linux
$ ./configure
$ make
```
## Try it
Decode AVS2 stream `test.avs` with `1` thread and output to a *YUV file* named `dec.yuv`.
```
./davs2 -i test.avs -t 1 -o dec.yuv
```
Decode AVS2 stream `test.avs` and display the decoding result via *ffplay*.
```
./davs2 -i test.avs -t 1 -o stdout | ffplay -i -
```
### Parameter Instructions
| Parameter | Alias | Result |
| :--------: | :---------: | :--------------: |
| --input=test.avs | -i test.avs | Setting the input bitstream file |
| --output=dec.yuv | -o dec.yuv | Setting the output YUV file |
| --psnr=rec.yuv | -r rec.yuv | Setting the reference reconstruction YUV file |
| --threads=N | -t N | Setting the threads for decoding (default: 1) |
| --md5=M | -m M | Reference MD5, used to check whether the output YUV is right |
| --verbose | -v | Enable decoding status every frame (Default: Enabled) |
| --help | -h | Showing this instruction |
## Issue and Pull Request
[Issues should be reported here][6]。
If you have some bugs fixed or features implemented, and would like to share with the public, please [make a Pull Request][7].
## Homepages
[PKU-VCL][1]
`AVS2-P2/IEEE1857.4` Encoder: [xavs2 (Github)][2], [xavs2 (mirror in China)][3]
`AVS2-P2/IEEE1857.4` Decoder: [davs2 (Github)][4], [davs2 (mirror in China)][5]
[1]: http://vcl.idm.pku.edu.cn/ "PKU-VCL"
[2]: https://github.com/pkuvcl/xavs2 "xavs2 github repository"
[3]: https://gitee.com/pkuvcl/xavs2 "xavs2 gitee repository"
[4]: https://github.com/pkuvcl/davs2 "davs2 decoder@github"
[5]: https://gitee.com/pkuvcl/davs2 "davs2 decoder@gitee"
[6]: https://github.com/pkuvcl/davs2/issues "report issues"
[7]: https://github.com/pkuvcl/davs2/pulls "pull request"
================================================
FILE: README.zh.md
================================================
# davs2
遵循 `AVS2-P2/IEEE1857.4` 视频编码标准的解码器.
对应的编码器 **xavs2** 可在 [Github][2] 或 [Gitee (mirror in China)][3] 上找到.
[]()
[](https://github.com/pkuvcl/davs2/issues)
[](https://github.com/pkuvcl/davs2/network)
[](https://github.com/pkuvcl/davs2/stargazers)
Linux(Ubuntu-16.04):[](https://travis-ci.org/pkuvcl/davs2)
Windows(VS2013):[](https://ci.appveyor.com/project/luofalei/davs2/build/artifacts)
[](https://starcharts.herokuapp.com/pkuvcl/davs2)
## 编译方法
### Windows
可使用`VS2013`打开解决方案`./build/win32/DAVS2.sln`进行编译, 也可以使用更新的vs版本打开上述解决方案.
打开解决方案后, 将工程`davs2`设置为启动项, 进行编译即可.
#### 注意
1. 首次编译本项目时, 需要安装一个 `shell 执行器`, 比如 `git-for-windows` 中的 `bash`,
需要将该 `bash` 所在的目录添加到系统环境变量 `PATH` 中.
如上所述, 如果您以默认配置安装了`git-for-windows`,
那么将 `C:\Program Files\Git\bin` 添加到环境变量中即可.
2. 需将 `nasm.exe`放入到系统 `PATH` 目录, `nasm`版本号需为`2.13`或更新.
对于`windows`平台,可下载如下压缩包中,解压得到`nasm.exe`.
https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/win64/nasm-2.14.02-win64.zip
### Linux
对于linux系统, 依次执行如下命令即可完成编译:
```
$ cd build/linux
$ ./configure
$ make
```
## 运行和测试
使用`1`个线程解码AVS2码流文件`test.avs`并将结果输出成YUV文件`dec.yuv`:
```
./davs2 -i test.avs -t 1 -o dec.yuv
```
解码AVS2码流文件`test.avs`并用ffplay播放显示:
```
./davs2 -i test.avs -t 1 -o stdout | ffplay -i -
```
### 参数说明
| 参数 | 等价形式 | 意义 |
| :--------: | :---------: | :--------------: |
| --input=test.avs | -i test.avs | 设置输入码流文件路径 |
| --output=dec.yuv | -o dec.yuv | 设置输出解码YUV文件路径 |
| --psnr=rec.yuv | -r rec.yuv | 设置参考用YUV文件路径, 用于计算PSNR以确定是否匹配 |
| --threads=N | -t N | 设置解码线程数 (默认值: 1) |
| --md5=M | -m M | 设置参考MD5值, 用于验证输出的重构YUV是否匹配 |
| --verbose | -v | 设置每帧是否输出 (默认: 开启) |
| --help | -h | 显示此输出命令 |
## Issue & Pull Request
欢迎提交 issue,请写清楚遇到问题的环境与运行参数,包括操作系统环境、编译器环境等。
如果可能提供原始输入`YUV/码流文件`,请尽量提供以方便更快地重现结果。
[反馈问题的 issue 请按照模板格式填写][6]。
如果有开发能力,建议在本地调试出错的代码,并[提供相应修正的 Pull Request][7]。
## 主页链接
[北京大学-视频编码算法研究室(PKU-VCL)][1]
`AVS2-P2/IEEE1857.4` Encoder: [xavs2 (Github)][2], [xavs2 (mirror in China)][3]
`AVS2-P2/IEEE1857.4` Decoder: [davs2 (Github)][4], [davs2 (mirror in China)][5]
[1]: http://vcl.idm.pku.edu.cn/ "PKU-VCL"
[2]: https://github.com/pkuvcl/xavs2 "xavs2 github repository"
[3]: https://gitee.com/pkuvcl/xavs2 "xavs2 gitee repository"
[4]: https://github.com/pkuvcl/davs2 "davs2 decoder@github"
[5]: https://gitee.com/pkuvcl/davs2 "davs2 decoder@gitee"
[6]: https://github.com/pkuvcl/davs2/issues "report issues"
[7]: https://github.com/pkuvcl/davs2/pulls "pull request"
================================================
FILE: appveyor.yml
================================================
image: Visual Studio 2015
configuration: Release
platform:
- x64
install:
- git submodule update --init
- appveyor DownloadFile https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/win64/nasm-2.14.02-win64.zip -FileName nasm.zip
- ps: Expand-Archive -Path nasm.zip -DestinationPath build/vs2013 -Force:$true
- set PATH=%PATH%;%APPVEYOR_BUILD_FOLDER%/build/vs2013/nasm-2.14.02
build:
project: build\vs2013\DAVS2.sln
artifacts:
- path: build\bin\x64_Release\*.*
name: $(APPVEYOR_PROJECT_NAME)
================================================
FILE: build/linux/Makefile
================================================
# Makefile
include config.mak
vpath %.cc $(SRCPATH)
vpath %.c $(SRCPATH)
vpath %.h $(SRCPATH)
vpath %.S $(SRCPATH)
vpath %.asm $(SRCPATH)
vpath %.rc $(SRCPATH)
CFLAGS += -I$(SRCPATH) -I$(SRCPATH)/.. \
-I$(SRCPATH)/x86 \
-I$(SRCPATH)/vec
GENERATED =
all: default
default:
SRCS = common/aec.cc common/alf.cc \
common/bitstream.cc common/block_info.cc \
common/common.cc common/davs2.cc common/cpu.cc common/cu.cc \
common/deblock.cc common/decoder.cc \
common/frame.cc common/header.cc \
common/intra.cc common/mc.cc \
common/memory.cc \
common/pixel.cc common/predict.cc \
common/quant.cc \
common/sao.cc common/transform.cc \
common/primitives.cc \
common/threadpool.cc common/win32thread.cc
SRCCLI = test/test.c
SRCSO =
OBJS =
OBJAVX =
OBJSO =
OBJCLI =
#OBJCHK = tools/checkasm.o
## CONFIG: $(shell cat config.h)
##
## ifneq ($(findstring HAVE_THREAD 1, $(CONFIG)),)
## SRCS += common/threadpool.cc
## endif
## ifneq ($(findstring HAVE_WIN32THREAD 1, $(CONFIG)),)
## SRCS += common/win32thread.cc
## endif
# MMX/SSE optims
ifneq ($(AS),)
# asm --------------------------------------------------------------
X86SRC = common/x86/const-a.asm \
common/x86/blockcopy8.asm \
common/x86/cpu-a.asm \
common/x86/dct8.asm \
common/x86/mc-a2.asm \
common/x86/pixeladd8.asm \
common/x86/quant8.asm
ifeq ($(SYS_ARCH),X86)
ARCH_X86 = yes
ASMSRC = $(X86SRC)
endif
## Until now, we do not have 64-bit asm
ifeq ($(SYS_ARCH),X86_64)
ARCH_X86 = yes
SRCS += common/vec/intrinsic.cc \
common/vec/intrinsic_alf.cc \
common/vec/intrinsic_sao.cc \
common/vec/intrinsic_deblock.cc \
common/vec/intrinsic_intra-filledge.cc \
common/vec/intrinsic_intra-pred.cc \
common/vec/intrinsic_inter_pred.cc \
common/vec/intrinsic_idct.cc \
common/vec/intrinsic_pixel.cc
SRCSAVX = common/vec/intrinsic_sao_avx2.cc \
common/vec/intrinsic_deblock_avx2.cc \
common/vec/intrinsic_intra-pred_avx2.cc \
common/vec/intrinsic_inter_pred_avx2.cc \
common/vec/intrinsic_pixel_avx.cc \
common/vec/intrinsic_idct_avx2.cc
CFLAGS += -mmmx -msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2 -msse4a -mssse3 -mavx
# ASMSRC = $(X86SRC:-32.asm=-64.asm)
ASMSRC = $(X86SRC)
ASFLAGS += -DARCH_X86_64=1
OBJASM = $(ASMSRC:%.asm=%.o)
$(OBJASM): common/x86/x86inc.asm common/x86/x86util.asm
endif
ifdef ARCH_X86
ASFLAGS += -I$(SRCPATH)/x86/
#SRCS += x86/mc-c.cc x86/predict-c.cc
OBJASM = $(ASMSRC:%.asm=%.o)
$(OBJASM): common/x86/x86inc.asm common/x86/x86util.asm
endif
# AltiVec optims
ifeq ($(SYS_ARCH),PPC)
SRCS += common/ppc/mc.cc common/ppc/pixel.cc common/ppc/dct.cc \
common/ppc/quant.cc common/ppc/deblock.cc \
common/ppc/predict.cc
endif
# NEON optims
ifeq ($(SYS_ARCH),ARM)
# x264 ARM asm sources
# ASMSRC += common/arm/cpu-a.S common/arm/pixel-a.S common/arm/mc-a.S \
# common/arm/dct-a.S common/arm/quant-a.S common/arm/deblock-a.S \
# common/arm/predict-a.S common/arm/bitstream-a.S
# SRCS += common/arm/mc-c.cc common/arm/predict-c.cc
# x265 ARM asm sources
ASMSRC += common/arm/blockcopy8.S common/arm/cpu-a.S common/arm/dct-a.S \
common/arm/ipfilter8.S common/arm/mc-a.S common/arm/pixel-util.S \
common/arm/sad-a.S common/arm/ssd-a.S
OBJASM = $(ASMSRC:%.S=%.o)
endif
# AArch64 NEON optims
ifeq ($(SYS_ARCH),AARCH64)
ASMSRC += common/aarch64/bitstream-a.S \
common/aarch64/cabac-a.S \
common/aarch64/dct-a.S \
common/aarch64/deblock-a.S \
common/aarch64/mc-a.S \
common/aarch64/pixel-a.S \
common/aarch64/predict-a.S \
common/aarch64/quant-a.S
SRCS += common/aarch64/asm-offsets.cc \
common/aarch64/mc-c.cc \
common/aarch64/predict-c.cc
OBJASM = $(ASMSRC:%.S=%.o)
OBJCHK += tools/checkasm-aarch64.o
endif
# MSA optims
ifeq ($(SYS_ARCH),MIPS)
ifneq ($(findstring HAVE_MSA 1, $(CONFIG)),)
SRCS += common/mips/mc-c.cc common/mips/dct-c.cc \
common/mips/deblock-c.cc common/mips/pixel-c.cc \
common/mips/predict-c.cc common/mips/quant-c.cc
endif
endif
# asm --------------------------------------------------------------
endif
# here ends ifneq ($(AS),)
ifneq ($(HAVE_GETOPT_LONG),1)
SRCS += compat/getopt/getopt.cc
endif
## Windows Dll
## ifeq ($(SYS), WINDOWS)
## # OBJCLI += $(if $(RC), davs2res.o)
## ifneq ($(SONAME),)
## SRCSO += davs2dll.cc
## OBJSO += $(if $(RC), davs2res.dll.o)
## endif
## endif
OBJS += $(SRCS:%.cc=%.o)
OBJAVX += $(SRCSAVX:%.cc=%.o)
OBJCLI += $(SRCCLI:%.c=%.o)
OBJSO += $(SRCSO:%.cc=%.o)
.PHONY: all default fprofiled clean distclean install install-* uninstall cli lib-* etags
cli: davs2$(EXE)
lib-static: $(LIBDAVS2)
lib-shared: $(SONAME)
$(LIBDAVS2): $(GENERATED) .depend $(OBJS) $(OBJAVX) $(OBJASM)
@echo "\033[33m [linking static] $(LIBDAVS2) \033[0m"
rm -f $(LIBDAVS2)
$(AR)$@ $(OBJS) $(OBJAVX) $(OBJASM)
$(if $(RANLIB), $(RANLIB) $@)
$(SONAME): $(GENERATED) .depend $(OBJS) $(OBJAVX) $(OBJASM) $(OBJSO)
@echo "\033[33m [linking shared] $(SONAME) \033[0m"
$(LD)$@ $(OBJS) $(OBJAVX) $(OBJASM) $(OBJSO) $(SOFLAGS) $(LDFLAGS)
ifneq ($(EXE),)
.PHONY: davs2 checkasm
davs2: davs2$(EXE)
checkasm: checkasm$(EXE)
endif
davs2$(EXE): $(GENERATED) .depend $(OBJCLI) $(CLI_LIBDAVS2)
@echo "\033[33m [linking execution] davs2$(EXE) \033[0m"
$(LD)$@ $(OBJCLI) $(CLI_LIBDAVS2) $(LDFLAGSCLI) $(LDFLAGS)
checkasm$(EXE): $(GENERATED) .depend $(OBJCHK) $(LIBDAVS2)
@echo "\033[33m [linking checkasm] checkasm$(EXE) \033[0m"
$(LD)$@ $(OBJCHK) $(LIBDAVS2) $(LDFLAGS)
$(OBJS) $(OBJAVX) $(OBJASM) $(OBJSO) $(OBJCLI) $(OBJCHK): .depend
%.o: %.asm common/x86/x86inc.asm common/x86/x86util.asm
@echo "\033[33m [Compiling asm]: $< \033[0m"
$(AS) $(ASFLAGS) -o $@ $<
-@ $(if $(STRIP), $(STRIP) -x $@) # delete local/anonymous symbols, so they don't show up in oprofile
%.o: %.S
@echo "\033[33m [Compiling asm]: $< \033[0m"
$(AS) $(ASFLAGS) -o $@ $<
-@ $(if $(STRIP), $(STRIP) -x $@) # delete local/anonymous symbols, so they don't show up in oprofile
%.dll.o: %.rc davs2.h
@echo "\033[33m [Compiling dll]: $< \033[0m"
$(RC) $(RCFLAGS)$@ -DDLL $<
%.o: %.rc davs2.h
@echo "\033[33m [Compiling rc]: $< \033[0m"
$(RC) $(RCFLAGS)$@ $<
$(OBJAVX):
@echo "\033[33m [Compiling]: $(@:.o=.cc) \033[0m"
$(CC) $(CFLAGS) -mavx2 -c -o $@ $(SRCPATH)/$(@:.o=.cc)
%.o: %.cc
@echo "\033[33m [Compiling]: $< \033[0m"
$(CC) $(CFLAGS) -c -o $@ $<
%.o: %.c
@echo "\033[33m [Compiling]: $< \033[0m"
$(CC) $(CFLAGS) -c -o $@ $<
.depend: config.mak
@rm -f .depend
@echo "\033[33m dependency file generation... \033[0m"
ifeq ($(COMPILER),CL)
@$(foreach SRC, $(addprefix $(SRCPATH)/, $(SRCS) $(SRCCLI) $(SRCSO)), $(SRCPATH)/tools/msvsdepend.sh "$(CC)" "$(CFLAGS)" "$(SRC)" "$(SRC:$(SRCPATH)/%.cc=%.o)" 1>> .depend;)
@$(foreach SRC, $(addprefix $(SRCPATH)/, $(SRCSAVX)), $(SRCPATH)/tools/msvsdepend.sh "$(CC)" "$(CFLAGS)" "$(SRC)" "$(SRC:$(SRCPATH)/%.cc=%.o)" 1>> .depend;)
else
@$(foreach SRC, $(addprefix $(SRCPATH)/, $(SRCS) $(SRCCLI) $(SRCSO)), $(CC) $(CFLAGS) $(SRC) $(DEPMT) $(SRC:$(SRCPATH)/%.cc=%.o) $(DEPMM) 1>> .depend;)
@$(foreach SRC, $(addprefix $(SRCPATH)/, $(SRCSAVX)), $(CC) $(CFLAGS) $(SRC) $(DEPMT) $(SRC:$(SRCPATH)/%.cc=%.o) $(DEPMM) 1>> .depend;)
endif
config.mak:
./configure
depend: .depend
ifneq ($(wildcard .depend),)
include .depend
endif
SRC2 = $(SRCS) $(SRCCLI)
# These should cover most of the important codepaths
OPT0 = --crf 30 -b1 -m1 -r1 --me dia --no-cabac --direct temporal --ssim --no-weightb
OPT1 = --crf 16 -b2 -m3 -r3 --me hex --no-8x8dct --direct spatial --no-dct-decimate -t0 --slice-max-mbs 50
OPT2 = --crf 26 -b4 -m5 -r2 --me hex --cqm jvt --nr 100 --psnr --no-mixed-refs --b-adapt 2 --slice-max-size 1500
OPT3 = --crf 18 -b3 -m9 -r5 --me umh -t1 -A all --b-pyramid normal --direct auto --no-fast-pskip --no-mbtree
OPT4 = --crf 22 -b3 -m7 -r4 --me esa -t2 -A all --psy-rd 1.0:1.0 --slices 4
OPT5 = --frames 50 --crf 24 -b3 -m10 -r3 --me tesa -t2
OPT6 = --frames 50 -q0 -m9 -r2 --me hex -Aall
OPT7 = --frames 50 -q0 -m2 -r1 --me hex --no-cabac
ifeq (,$(VIDS))
fprofiled:
@echo 'usage: make fprofiled VIDS="infile1 infile2 ..."'
@echo 'where infiles are anything that davs2 understands,'
@echo 'i.e. YUV with resolution in the filename, y4m, or avisynth.'
else
fprofiled:
$(MAKE) clean
$(MAKE) davs2$(EXE) CFLAGS="$(CFLAGS) $(PROF_GEN_CC)" LDFLAGS="$(LDFLAGS) $(PROF_GEN_LD)"
$(foreach V, $(VIDS), $(foreach I, 0 1 2 3 4 5 6 7, ./davs2$(EXE) $(OPT$I) --threads 1 $(V) -o $(DEVNULL) ;))
ifeq ($(COMPILER),CL)
# Because Visual Studio timestamps the object files within the PGD, it fails to build if they change - only the executable should be deleted
rm -f davs2$(EXE)
else
rm -f $(SRC2:%.cc=%.o)
endif
$(MAKE) CFLAGS="$(CFLAGS) $(PROF_USE_CC)" LDFLAGS="$(LDFLAGS) $(PROF_USE_LD)"
rm -f $(SRC2:%.cc=%.gcda) $(SRC2:%.cc=%.gcno) *.dyn pgopti.dpi pgopti.dpi.lock *.pgd *.pgc
endif
clean:
rm -f $(OBJS) $(OBJASM) $(OBJCLI) $(OBJSO) $(SONAME)
rm -f *.a *.lib *.exp *.pdb libdavs2.so* davs2 davs2.exe .depend TAGS
rm -f checkasm checkasm.exe $(OBJCHK) $(GENERATED) davs2_lookahead.cclbin
rm -f example example.exe $(OBJEXAMPLE)
rm -f $(SRC2:%.cc=%.gcda) $(SRC2:%.cc=%.gcno) *.dyn pgopti.dpi pgopti.dpi.lock *.pgd *.pgc
distclean: clean
rm -f config.mak davs2_config.h config.h config.log davs2.pc davs2.def conftest*
install-cli: cli
$(INSTALL) -d $(DESTDIR)$(bindir)
$(INSTALL) davs2$(EXE) $(DESTDIR)$(bindir)
install-lib-dev:
$(INSTALL) -d $(DESTDIR)$(includedir)
$(INSTALL) -d $(DESTDIR)$(libdir)
$(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
$(INSTALL) -m 644 $(SRCPATH)/davs2.h $(DESTDIR)$(includedir)
$(INSTALL) -m 644 davs2_config.h $(DESTDIR)$(includedir)
$(INSTALL) -m 644 davs2.pc $(DESTDIR)$(libdir)/pkgconfig
install-lib-static: lib-static install-lib-dev
$(INSTALL) -m 644 $(LIBDAVS2) $(DESTDIR)$(libdir)
$(if $(RANLIB), $(RANLIB) $(DESTDIR)$(libdir)/$(LIBDAVS2))
install-lib-shared: lib-shared install-lib-dev
ifneq ($(IMPLIBNAME),)
$(INSTALL) -d $(DESTDIR)$(bindir)
$(INSTALL) -m 755 $(SONAME) $(DESTDIR)$(bindir)
$(INSTALL) -m 644 $(IMPLIBNAME) $(DESTDIR)$(libdir)
else ifneq ($(SONAME),)
ln -f -s $(SONAME) $(DESTDIR)$(libdir)/libdavs2.$(SOSUFFIX)
$(INSTALL) -m 755 $(SONAME) $(DESTDIR)$(libdir)
endif
uninstall:
rm -f $(DESTDIR)$(includedir)/davs2.h $(DESTDIR)$(includedir)/davs2_config.h $(DESTDIR)$(libdir)/libdavs2.a
rm -f $(DESTDIR)$(bindir)/davs2$(EXE) $(DESTDIR)$(libdir)/pkgconfig/davs2.pc
ifneq ($(IMPLIBNAME),)
rm -f $(DESTDIR)$(bindir)/$(SONAME) $(DESTDIR)$(libdir)/$(IMPLIBNAME)
else ifneq ($(SONAME),)
rm -f $(DESTDIR)$(libdir)/$(SONAME) $(DESTDIR)$(libdir)/libdavs2.$(SOSUFFIX)
endif
etags: TAGS
TAGS:
etags $(SRCS)
================================================
FILE: build/linux/config.guess
================================================
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright 1992-2017 Free Software Foundation, Inc.
timestamp='2017-05-27'
# This file 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 <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that
# program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
#
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
#
# Please send patches to <config-patches@gnu.org>.
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION]
Output the configuration name of the system \`$me' is run on.
Operation modes:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
Copyright 1992-2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
echo "$timestamp" ; exit ;;
--version | -v )
echo "$version" ; exit ;;
--help | --h* | -h )
echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
echo "$me: invalid option $1$help" >&2
exit 1 ;;
* )
break ;;
esac
done
if test $# != 0; then
echo "$me: too many arguments$help" >&2
exit 1
fi
trap 'exit 1' 1 2 15
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated.
# Portable tmp directory creation inspired by the Autoconf team.
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
case $CC_FOR_BUILD,$HOST_CC,$CC in
,,) echo "int x;" > $dummy.c ;
for c in cc gcc c89 c99 ; do
if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
CC_FOR_BUILD="$c"; break ;
fi ;
done ;
if test x"$CC_FOR_BUILD" = x ; then
CC_FOR_BUILD=no_compiler_found ;
fi
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
esac ; set_cc_for_build= ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
case "${UNAME_SYSTEM}" in
Linux|GNU|GNU/*)
# If the system lacks a compiler, then just pick glibc.
# We could probably try harder.
LIBC=gnu
eval $set_cc_for_build
cat <<-EOF > $dummy.c
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
#else
LIBC=gnu
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
;;
esac
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
# switched to ELF, *-*-netbsd* would select the old
# object file format. This provides both forward
# compatibility and a consistent mechanism for selecting the
# object file format.
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
/sbin/$sysctl 2>/dev/null || \
/usr/sbin/$sysctl 2>/dev/null || \
echo unknown)`
case "${UNAME_MACHINE_ARCH}" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
earmv*)
arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
machine=${arch}${endian}-unknown
;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently (or will in the future) and ABI.
case "${UNAME_MACHINE_ARCH}" in
earm*)
os=netbsdelf
;;
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
os=netbsd
else
os=netbsdelf
fi
;;
*)
os=netbsd
;;
esac
# Determine ABI tags.
case "${UNAME_MACHINE_ARCH}" in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
;;
esac
# The OS release
# Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
case "${UNAME_VERSION}" in
Debian*)
release='-gnu'
;;
*)
release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}${abi}"
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
exit ;;
*:LibertyBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
exit ;;
*:ekkoBSD:*:*)
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
exit ;;
*:SolidBSD:*:*)
echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
exit ;;
macppc:MirBSD:*:*)
echo powerpc-unknown-mirbsd${UNAME_RELEASE}
exit ;;
*:MirBSD:*:*)
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
exit ;;
*:Sortix:*:*)
echo ${UNAME_MACHINE}-unknown-sortix
exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;;
*5.*)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
# OSF/1 and Tru64 systems produced since 1995. I hope that
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
case "$ALPHA_CPU_TYPE" in
"EV4 (21064)")
UNAME_MACHINE=alpha ;;
"EV4.5 (21064)")
UNAME_MACHINE=alpha ;;
"LCA4 (21066/21068)")
UNAME_MACHINE=alpha ;;
"EV5 (21164)")
UNAME_MACHINE=alphaev5 ;;
"EV5.6 (21164A)")
UNAME_MACHINE=alphaev56 ;;
"EV5.6 (21164PC)")
UNAME_MACHINE=alphapca56 ;;
"EV5.7 (21164PC)")
UNAME_MACHINE=alphapca57 ;;
"EV6 (21264)")
UNAME_MACHINE=alphaev6 ;;
"EV6.7 (21264A)")
UNAME_MACHINE=alphaev67 ;;
"EV6.8CB (21264C)")
UNAME_MACHINE=alphaev68 ;;
"EV6.8AL (21264B)")
UNAME_MACHINE=alphaev68 ;;
"EV6.8CX (21264D)")
UNAME_MACHINE=alphaev68 ;;
"EV6.9A (21264/EV69A)")
UNAME_MACHINE=alphaev69 ;;
"EV7 (21364)")
UNAME_MACHINE=alphaev7 ;;
"EV7.9 (21364A)")
UNAME_MACHINE=alphaev79 ;;
esac
# A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
exitcode=$?
trap '' 0
exit $exitcode ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
# of the specific Alpha model?
echo alpha-pc-interix
exit ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
exit ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-unknown-sysv4
exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-amigaos
exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-morphos
exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
exit ;;
*:z/VM:*:*)
echo s390-ibm-zvmoe
exit ;;
*:OS400:*:*)
echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
echo arm-unknown-riscos
exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
exit ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
echo pyramid-pyramid-sysv3
else
echo pyramid-pyramid-bsd
fi
exit ;;
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
exit ;;
DRS?6000:unix:4.0:6*)
echo sparc-icl-nx6
exit ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
s390x:SunOS:*:*)
echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
echo i386-pc-auroraux${UNAME_RELEASE}
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
eval $set_cc_for_build
SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
SUN_ARCH=x86_64
fi
fi
echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
exit ;;
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
echo m68k-sun-sunos${UNAME_RELEASE}
;;
sun4)
echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
exit ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
# > m68000). The system name ranges from "MiNT" over "FreeMiNT"
# to the lowercase version "mint" (or "freemint"). Finally
# the system name "TOS" denotes a system which is actually not
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint${UNAME_RELEASE}
exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint${UNAME_RELEASE}
exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE}
exit ;;
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
exit ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
exit ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
int main (int argc, char *argv[]) {
#else
int main (argc, argv) int argc; char *argv[]; {
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
$CC_FOR_BUILD -o $dummy $dummy.c &&
dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
SYSTEM_NAME=`$dummy $dummyarg` &&
{ echo "$SYSTEM_NAME"; exit; }
echo mips-mips-riscos${UNAME_RELEASE}
exit ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
exit ;;
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
exit ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
exit ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
exit ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
[ ${TARGET_BINARY_INTERFACE}x = x ]
then
echo m88k-dg-dgux${UNAME_RELEASE}
else
echo m88k-dg-dguxbcs${UNAME_RELEASE}
fi
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
exit ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
exit ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
exit ;;
*:IRIX*:*:*)
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
echo i386-ibm-aix
exit ;;
ia64:AIX:*:*)
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include <sys/systemcfg.h>
main()
{
if (!__power_pc())
exit(1);
puts("powerpc-ibm-aix3.2.5");
exit(0);
}
EOF
if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
then
echo "$SYSTEM_NAME"
else
echo rs6000-ibm-aix3.2.5
fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
exit ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
fi
if [ -x /usr/bin/lslpp ] ; then
IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
exit ;;
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
exit ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
exit ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
exit ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
exit ;;
9000/[34678]??:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
case "${UNAME_MACHINE}" in
9000/31? ) HP_ARCH=m68000 ;;
9000/[34]?? ) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case "${sc_cpu_version}" in
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
case "${sc_kernel_bits}" in
32) HP_ARCH=hppa2.0n ;;
64) HP_ARCH=hppa2.0w ;;
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
if [ "${HP_ARCH}" = "" ]; then
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#define _HPUX_SOURCE
#include <stdlib.h>
#include <unistd.h>
int main ()
{
#if defined(_SC_KERNEL_BITS)
long bits = sysconf(_SC_KERNEL_BITS);
#endif
long cpu = sysconf (_SC_CPU_VERSION);
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
case CPU_PA_RISC2_0:
#if defined(_SC_KERNEL_BITS)
switch (bits)
{
case 64: puts ("hppa2.0w"); break;
case 32: puts ("hppa2.0n"); break;
default: puts ("hppa2.0"); break;
} break;
#else /* !defined(_SC_KERNEL_BITS) */
puts ("hppa2.0"); break;
#endif
default: puts ("hppa1.0"); break;
}
exit (0);
}
EOF
(CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
if [ ${HP_ARCH} = hppa2.0w ]
then
eval $set_cc_for_build
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
# generating 64-bit code. GNU and HP use different nomenclature:
#
# $ CC_FOR_BUILD=cc ./config.guess
# => hppa2.0w-hp-hpux11.23
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
# => hppa64-hp-hpux11.23
if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
grep -q __LP64__
then
HP_ARCH=hppa2.0w
else
HP_ARCH=hppa64
fi
fi
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
exit ;;
ia64:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ia64-hp-hpux${HPUX_REV}
exit ;;
3050*:HI-UX:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include <unistd.h>
int
main ()
{
long cpu = sysconf (_SC_CPU_VERSION);
/* The order matters, because CPU_IS_HP_MC68K erroneously returns
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
results, however. */
if (CPU_IS_PA_RISC (cpu))
{
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
default: puts ("hppa-hitachi-hiuxwe2"); break;
}
}
else if (CPU_IS_HP_MC68K (cpu))
puts ("m68k-hitachi-hiuxwe2");
else puts ("unknown-hitachi-hiuxwe2");
exit (0);
}
EOF
$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
{ echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
exit ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
echo hppa1.1-hp-bsd
exit ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
exit ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
exit ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
exit ;;
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
echo ${UNAME_MACHINE}-unknown-osf1mk
else
echo ${UNAME_MACHINE}-unknown-osf1
fi
exit ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*[A-Z]90:*:*:*)
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*T3E:*:*:*)
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*SV1:*:*:*)
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
*:UNICOS/mp:*:*)
echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
exit ;;
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
case ${UNAME_PROCESSOR} in
amd64)
UNAME_PROCESSOR=x86_64 ;;
i386)
UNAME_PROCESSOR=i586 ;;
esac
echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
*:MINGW64*:*)
echo ${UNAME_MACHINE}-pc-mingw64
exit ;;
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
*:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys
exit ;;
i*:windows32*:*)
# uname -m includes "-pc" on this system.
echo ${UNAME_MACHINE}-mingw32
exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
*:Interix*:*)
case ${UNAME_MACHINE} in
x86)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
authenticamd | genuineintel | EM64T)
echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
IA64)
echo ia64-unknown-interix${UNAME_RELEASE}
exit ;;
esac ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
exit ;;
8664:Windows_NT:*)
echo x86_64-pc-mks
exit ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
echo i586-pc-interix
exit ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
exit ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
echo x86_64-unknown-cygwin
exit ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin
exit ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
*:GNU:*:*)
# the GNU system
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
exit ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
exit ;;
aarch64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;;
PCA57) UNAME_MACHINE=alphapca56 ;;
EV6) UNAME_MACHINE=alphaev6 ;;
EV67) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
arc:Linux:*:* | arceb:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
arm*:Linux:*:*)
eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
else
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
fi
fi
exit ;;
avr32*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
cris:Linux:*:*)
echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
crisv32:Linux:*:*)
echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
e2k:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
frv:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
hexagon:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
i*86:Linux:*:*)
echo ${UNAME_MACHINE}-pc-linux-${LIBC}
exit ;;
ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
k1om:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m32r*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
#undef ${UNAME_MACHINE}
#undef ${UNAME_MACHINE}el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
CPU=${UNAME_MACHINE}el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
CPU=${UNAME_MACHINE}
#else
CPU=
#endif
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
mips64el:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
openrisc*:Linux:*:*)
echo or1k-unknown-linux-${LIBC}
exit ;;
or32:Linux:*:* | or1k*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
padre:Linux:*:*)
echo sparc-unknown-linux-${LIBC}
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-${LIBC}
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
*) echo hppa-unknown-linux-${LIBC} ;;
esac
exit ;;
ppc64:Linux:*:*)
echo powerpc64-unknown-linux-${LIBC}
exit ;;
ppc:Linux:*:*)
echo powerpc-unknown-linux-${LIBC}
exit ;;
ppc64le:Linux:*:*)
echo powerpc64le-unknown-linux-${LIBC}
exit ;;
ppcle:Linux:*:*)
echo powerpcle-unknown-linux-${LIBC}
exit ;;
riscv32:Linux:*:* | riscv64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
exit ;;
sh64*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
tile*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
vax:Linux:*:*)
echo ${UNAME_MACHINE}-dec-linux-${LIBC}
exit ;;
x86_64:Linux:*:*)
echo ${UNAME_MACHINE}-pc-linux-${LIBC}
exit ;;
xtensa*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
echo i386-sequent-sysv4
exit ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
echo ${UNAME_MACHINE}-pc-os2-emx
exit ;;
i*86:XTS-300:*:STOP)
echo ${UNAME_MACHINE}-unknown-stop
exit ;;
i*86:atheos:*:*)
echo ${UNAME_MACHINE}-unknown-atheos
exit ;;
i*86:syllable:*:*)
echo ${UNAME_MACHINE}-pc-syllable
exit ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit ;;
i*86:*DOS:*:*)
echo ${UNAME_MACHINE}-pc-msdosdjgpp
exit ;;
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
fi
exit ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
echo ${UNAME_MACHINE}-pc-sysv32
fi
exit ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i586.
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configure will decide that
# this is a cross-build.
echo i586-pc-msdosdjgpp
exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit ;;
paragon:*:*:*)
echo i860-intel-osf1
exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
fi
exit ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
echo m68010-convergent-sysv
exit ;;
mc68k:UNIX:SYSTEM5:3.51m)
echo m68k-convergent-sysv
exit ;;
M680?0:D-NIX:5.3:*)
echo m68k-diab-dnix
exit ;;
M68*:*:R3V[5678]*:*)
test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
OS_REL='.3'
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
exit ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE}
exit ;;
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
exit ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
echo powerpc-unknown-lynxos${UNAME_RELEASE}
exit ;;
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
exit ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
exit ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
exit ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
echo ${UNAME_MACHINE}-sni-sysv4
else
echo ns32k-sni-sysv
fi
exit ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
echo i586-unisys-sysv4
exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
echo hppa1.1-stratus-sysv4
exit ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
echo i860-stratus-sysv4
exit ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
echo ${UNAME_MACHINE}-stratus-vos
exit ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
echo hppa1.1-stratus-vos
exit ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
exit ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-unknown-sysv${UNAME_RELEASE}
fi
exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
echo powerpc-apple-beos
exit ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
exit ;;
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
echo i586-pc-haiku
exit ;;
x86_64:Haiku:*:*)
echo x86_64-unknown-haiku
exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit ;;
SX-5:SUPER-UX:*:*)
echo sx5-nec-superux${UNAME_RELEASE}
exit ;;
SX-6:SUPER-UX:*:*)
echo sx6-nec-superux${UNAME_RELEASE}
exit ;;
SX-7:SUPER-UX:*:*)
echo sx7-nec-superux${UNAME_RELEASE}
exit ;;
SX-8:SUPER-UX:*:*)
echo sx8-nec-superux${UNAME_RELEASE}
exit ;;
SX-8R:SUPER-UX:*:*)
echo sx8r-nec-superux${UNAME_RELEASE}
exit ;;
SX-ACE:SUPER-UX:*:*)
echo sxace-nec-superux${UNAME_RELEASE}
exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit ;;
*:Rhapsody:*:*)
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
eval $set_cc_for_build
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
case $UNAME_PROCESSOR in
i386) UNAME_PROCESSOR=x86_64 ;;
powerpc) UNAME_PROCESSOR=powerpc64 ;;
esac
fi
# On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_PPC >/dev/null
then
UNAME_PROCESSOR=powerpc
fi
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
# Avoid executing cc on OS X 10.9, as it ships with a stub
# that puts up a graphical alert prompting to install
# developer tools. Any system running Mac OS X 10.7 or
# later (Darwin 11 and later) is required to have a 64-bit
# processor. This is not true of the ARM version of Darwin
# that Apple uses in portable devices.
UNAME_PROCESSOR=x86_64
fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = x86; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
exit ;;
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
NEO-*:NONSTOP_KERNEL:*:*)
echo neo-tandem-nsk${UNAME_RELEASE}
exit ;;
NSE-*:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE}
exit ;;
NSR-*:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
exit ;;
NSX-*:NONSTOP_KERNEL:*:*)
echo nsx-tandem-nsk${UNAME_RELEASE}
exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
exit ;;
BS2000:POSIX*:*:*)
echo bs2000-siemens-sysv
exit ;;
DS/*:UNIX_System_V:*:*)
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
if test "$cputype" = 386; then
UNAME_MACHINE=i386
else
UNAME_MACHINE="$cputype"
fi
echo ${UNAME_MACHINE}-unknown-plan9
exit ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
exit ;;
*:TENEX:*:*)
echo pdp10-unknown-tenex
exit ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
echo pdp10-dec-tops20
exit ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
echo pdp10-xkl-tops20
exit ;;
*:TOPS-20:*:*)
echo pdp10-unknown-tops20
exit ;;
*:ITS:*:*)
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
echo mips-sei-seiux${UNAME_RELEASE}
exit ;;
*:DragonFly:*:*)
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
V*) echo vax-dec-vms ; exit ;;
esac ;;
*:XENIX:*:SysV)
echo i386-pc-xenix
exit ;;
i*86:skyos:*:*)
echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
exit ;;
i*86:rdos:*:*)
echo ${UNAME_MACHINE}-pc-rdos
exit ;;
i*86:AROS:*:*)
echo ${UNAME_MACHINE}-pc-aros
exit ;;
x86_64:VMkernel:*:*)
echo ${UNAME_MACHINE}-unknown-esx
exit ;;
amd64:Isilon\ OneFS:*:*)
echo x86_64-unknown-onefs
exit ;;
esac
cat >&2 <<EOF
$0: unable to guess system type
This script (version $timestamp), has failed to recognize the
operating system you are using. If your script is old, overwrite
config.guess and config.sub with the latest versions from:
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
and
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
If $0 has already been updated, send the following data and any
information you think might be pertinent to config-patches@gnu.org to
provide the necessary information to handle your system.
config.guess timestamp = $timestamp
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
hostinfo = `(hostinfo) 2>/dev/null`
/bin/universe = `(/bin/universe) 2>/dev/null`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
/bin/arch = `(/bin/arch) 2>/dev/null`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
UNAME_MACHINE = ${UNAME_MACHINE}
UNAME_RELEASE = ${UNAME_RELEASE}
UNAME_SYSTEM = ${UNAME_SYSTEM}
UNAME_VERSION = ${UNAME_VERSION}
EOF
exit 1
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:
================================================
FILE: build/linux/config.sub
================================================
#! /bin/sh
# Configuration validation subroutine script.
# Copyright 1992-2017 Free Software Foundation, Inc.
timestamp='2017-04-02'
# This file 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 <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that
# program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
# Please send patches to <config-patches@gnu.org>.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
# If it is invalid, we print an error message on stderr and exit with code 1.
# Otherwise, we print the canonical config type on stdout and succeed.
# You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
# that are meaningful with *any* GNU software.
# Each package is responsible for reporting which valid configurations
# it does not support. The user should be able to distinguish
# a failure to support a valid configuration from a meaningless
# configuration.
# The goal of this file is to map all the various variations of a given
# machine specification into a single specification in the form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or in some cases, the newer four-part form:
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
Canonicalize a configuration name.
Operation modes:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
Copyright 1992-2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
echo "$timestamp" ; exit ;;
--version | -v )
echo "$version" ; exit ;;
--help | --h* | -h )
echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
echo "$me: invalid option $1$help"
exit 1 ;;
*local*)
# First pass through any local machine types.
echo $1
exit ;;
* )
break ;;
esac
done
case $# in
0) echo "$me: missing argument$help" >&2
exit 1;;
1) ;;
*) echo "$me: too many arguments$help" >&2
exit 1;;
esac
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
kopensolaris*-gnu* | cloudabi*-eabi* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
android-linux)
os=-linux-android
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
;;
*)
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
if [ $basic_machine != $1 ]
then os=`echo $1 | sed 's/.*-/-/'`
else os=; fi
;;
esac
### Let's recognize common machines as not being operating systems so
### that things like config.sub decstation-3100 work. We also
### recognize some manufacturers as not being operating systems, so we
### can provide default operating systems below.
case $os in
-sun*os*)
# Prevent following clause from handling this invalid input.
;;
-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-apple | -axis | -knuth | -cray | -microblaze*)
os=
basic_machine=$1
;;
-bluegene*)
os=-cnk
;;
-sim | -cisco | -oki | -wec | -winbond)
os=
basic_machine=$1
;;
-scout)
;;
-wrs)
os=-vxworks
basic_machine=$1
;;
-chorusos*)
os=-chorusos
basic_machine=$1
;;
-chorusrdb)
os=-chorusrdb
basic_machine=$1
;;
-hiux*)
os=-hiuxwe2
;;
-sco6)
os=-sco5v6
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco5)
os=-sco3.2v5
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco4)
os=-sco3.2v4
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2.[4-9]*)
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2v[4-9]*)
# Don't forget version if it is 3.2v4 or newer.
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco5v6*)
# Don't forget version if it is 3.2v4 or newer.
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco*)
os=-sco3.2v2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-udk*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-isc)
os=-isc2.2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-clix*)
basic_machine=clipper-intergraph
;;
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-lynx*178)
os=-lynxos178
;;
-lynx*5)
os=-lynxos5
;;
-lynx*)
os=-lynxos
;;
-ptx*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
;;
-windowsnt*)
os=`echo $os | sed -e 's/windowsnt/winnt/'`
;;
-psos*)
os=-psos
;;
-mint | -mint[0-9]*)
basic_machine=m68k-atari
os=-mint
;;
esac
# Decode aliases for certain CPU-COMPANY combinations.
case $basic_machine in
# Recognize the basic CPU types without company name.
# Some are omitted here because they have special meanings below.
1750a | 580 \
| a29k \
| aarch64 | aarch64_be \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
| arc | arceb \
| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
| avr | avr32 \
| ba \
| be32 | be64 \
| bfin \
| c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
| e2k | epiphany \
| fido | fr30 | frv | ft32 \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
| i370 | i860 | i960 | ia16 | ia64 \
| ip2k | iq2000 \
| k1om \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
| mips64octeon | mips64octeonel \
| mips64orion | mips64orionel \
| mips64r5900 | mips64r5900el \
| mips64vr | mips64vrel \
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
| mipsisa32r6 | mipsisa32r6el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
| mipsisa64r6 | mipsisa64r6el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| moxie \
| mt \
| msp430 \
| nds32 | nds32le | nds32be \
| nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
| open8 | or1k | or1knd | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pru \
| pyramid \
| riscv32 | riscv64 \
| rl78 | rx \
| score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
| spu \
| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
| ubicom32 \
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
| visium \
| wasm32 \
| we32k \
| x86 | xc16x | xstormy16 | xtensa \
| z8k | z80)
basic_machine=$basic_machine-unknown
;;
c54x)
basic_machine=tic54x-unknown
;;
c55x)
basic_machine=tic55x-unknown
;;
c6x)
basic_machine=tic6x-unknown
;;
leon|leon[3-9])
basic_machine=sparc-$basic_machine
;;
m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
;;
ms1)
basic_machine=mt-unknown
;;
strongarm | thumb | xscale)
basic_machine=arm-unknown
;;
xgate)
basic_machine=$basic_machine-unknown
os=-none
;;
xscaleeb)
basic_machine=armeb-unknown
;;
xscaleel)
basic_machine=armel-unknown
;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
i*86 | x86_64)
basic_machine=$basic_machine-pc
;;
# Object if more than one company name word.
*-*-*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
exit 1
;;
# Recognize the basic CPU types with company name.
580-* \
| a29k-* \
| aarch64-* | aarch64_be-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
| ba-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
| c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| e2k-* | elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| hexagon-* \
| i*86-* | i860-* | i960-* | ia16-* | ia64-* \
| ip2k-* | iq2000-* \
| k1om-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
| microblaze-* | microblazeel-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
| mips64octeon-* | mips64octeonel-* \
| mips64orion-* | mips64orionel-* \
| mips64r5900-* | mips64r5900el-* \
| mips64vr-* | mips64vrel-* \
| mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
| mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
| mipsisa32r6-* | mipsisa32r6el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64r6-* | mipsisa64r6el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipsr5900-* | mipsr5900el-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
| mt-* \
| msp430-* \
| nds32-* | nds32le-* | nds32be-* \
| nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
| or1k*-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pru-* \
| pyramid-* \
| riscv32-* | riscv64-* \
| rl78-* | romp-* | rs6000-* | rx-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
| tahoe-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tile*-* \
| tron-* \
| ubicom32-* \
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
| vax-* \
| visium-* \
| wasm32-* \
| we32k-* \
| x86-* | x86_64-* | xc16x-* | xps100-* \
| xstormy16-* | xtensa*-* \
| ymp-* \
| z8k-* | z80-*)
;;
# Recognize the basic CPU types without company name, with glob match.
xtensa*)
basic_machine=$basic_machine-unknown
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
386bsd)
basic_machine=i386-unknown
os=-bsd
;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
basic_machine=m68000-att
;;
3b*)
basic_machine=we32k-att
;;
a29khif)
basic_machine=a29k-amd
os=-udi
;;
abacus)
basic_machine=abacus-unknown
;;
adobe68k)
basic_machine=m68010-adobe
os=-scout
;;
alliant | fx80)
basic_machine=fx80-alliant
;;
altos | altos3068)
basic_machine=m68k-altos
;;
am29k)
basic_machine=a29k-none
os=-bsd
;;
amd64)
basic_machine=x86_64-pc
;;
amd64-*)
basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
amdahl)
basic_machine=580-amdahl
os=-sysv
;;
amiga | amiga-*)
basic_machine=m68k-unknown
;;
amigaos | amigados)
basic_machine=m68k-unknown
os=-amigaos
;;
amigaunix | amix)
basic_machine=m68k-unknown
os=-sysv4
;;
apollo68)
basic_machine=m68k-apollo
os=-sysv
;;
apollo68bsd)
basic_machine=m68k-apollo
os=-bsd
;;
aros)
basic_machine=i386-pc
os=-aros
;;
asmjs)
basic_machine=asmjs-unknown
;;
aux)
basic_machine=m68k-apple
os=-aux
;;
balance)
basic_machine=ns32k-sequent
os=-dynix
;;
blackfin)
basic_machine=bfin-unknown
os=-linux
;;
blackfin-*)
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
os=-linux
;;
bluegene*)
basic_machine=powerpc-ibm
os=-cnk
;;
c54x-*)
basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
c55x-*)
basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
c6x-*)
basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
c90)
basic_machine=c90-cray
os=-unicos
;;
cegcc)
basic_machine=arm-unknown
os=-cegcc
;;
convex-c1)
basic_machine=c1-convex
os=-bsd
;;
convex-c2)
basic_machine=c2-convex
os=-bsd
;;
convex-c32)
basic_machine=c32-convex
os=-bsd
;;
convex-c34)
basic_machine=c34-convex
os=-bsd
;;
convex-c38)
basic_machine=c38-convex
os=-bsd
;;
cray | j90)
basic_machine=j90-cray
os=-unicos
;;
craynv)
basic_machine=craynv-cray
os=-unicosmp
;;
cr16 | cr16-*)
basic_machine=cr16-unknown
os=-elf
;;
crds | unos)
basic_machine=m68k-crds
;;
crisv32 | crisv32-* | etraxfs*)
basic_machine=crisv32-axis
;;
cris | cris-* | etrax*)
basic_machine=cris-axis
;;
crx)
basic_machine=crx-unknown
os=-elf
;;
da30 | da30-*)
basic_machine=m68k-da30
;;
decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
basic_machine=mips-dec
;;
decsystem10* | dec10*)
basic_machine=pdp10-dec
os=-tops10
;;
decsystem20* | dec20*)
basic_machine=pdp10-dec
os=-tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
basic_machine=m68k-motorola
;;
delta88)
basic_machine=m88k-motorola
os=-sysv3
;;
dicos)
basic_machine=i686-pc
os=-dicos
;;
djgpp)
basic_machine=i586-pc
os=-msdosdjgpp
;;
dpx20 | dpx20-*)
basic_machine=rs6000-bull
os=-bosx
;;
dpx2* | dpx2*-bull)
basic_machine=m68k-bull
os=-sysv3
;;
e500v[12])
basic_machine=powerpc-unknown
os=$os"spe"
;;
e500v[12]-*)
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
os=$os"spe"
;;
ebmon29k)
basic_machine=a29k-amd
os=-ebmon
;;
elxsi)
basic_machine=elxsi-elxsi
os=-bsd
;;
encore | umax | mmax)
basic_machine=ns32k-encore
;;
es1800 | OSE68k | ose68k | ose | OSE)
basic_machine=m68k-ericsson
os=-ose
;;
fx2800)
basic_machine=i860-alliant
;;
genix)
basic_machine=ns32k-ns
;;
gmicro)
basic_machine=tron-gmicro
os=-sysv
;;
go32)
basic_machine=i386-pc
os=-go32
;;
h3050r* | hiux*)
basic_machine=hppa1.1-hitachi
os=-hiuxwe2
;;
h8300hms)
basic_machine=h8300-hitachi
os=-hms
;;
h8300xray)
basic_machine=h8300-hitachi
os=-xray
;;
h8500hms)
basic_machine=h8500-hitachi
os=-hms
;;
harris)
basic_machine=m88k-harris
os=-sysv3
;;
hp300-*)
basic_machine=m68k-hp
;;
hp300bsd)
basic_machine=m68k-hp
os=-bsd
;;
hp300hpux)
basic_machine=m68k-hp
os=-hpux
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
basic_machine=m68000-hp
;;
hp9k3[2-9][0-9])
basic_machine=m68k-hp
;;
hp9k6[0-9][0-9] | hp6[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hp9k7[0-79][0-9] | hp7[0-79][0-9])
basic_machine=hppa1.1-hp
;;
hp9k78[0-9] | hp78[0-9])
# FIXME: really hppa2.0-hp
basic_machine=hppa1.1-hp
;;
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
# FIXME: really hppa2.0-hp
basic_machine=hppa1.1-hp
;;
hp9k8[0-9][13679] | hp8[0-9][13679])
basic_machine=hppa1.1-hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hppa-next)
os=-nextstep3
;;
hppaosf)
basic_machine=hppa1.1-hp
os=-osf
;;
hppro)
basic_machine=hppa1.1-hp
os=-proelf
;;
i370-ibm* | ibm*)
basic_machine=i370-ibm
;;
i*86v32)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv32
;;
i*86v4*)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv4
;;
i*86v)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv
;;
i*86sol2)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-solaris2
;;
i386mach)
basic_machine=i386-mach
os=-mach
;;
i386-vsta | vsta)
basic_machine=i386-unknown
os=-vsta
;;
iris | iris4d)
basic_machine=mips-sgi
case $os in
-irix*)
;;
*)
os=-irix4
;;
esac
;;
isi68 | isi)
basic_machine=m68k-isi
os=-sysv
;;
leon-*|leon[3-9]-*)
basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
;;
m68knommu)
basic_machine=m68k-unknown
os=-linux
;;
m68knommu-*)
basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
os=-linux
;;
m88k-omron*)
basic_machine=m88k-omron
;;
magnum | m3230)
basic_machine=mips-mips
os=-sysv
;;
merlin)
basic_machine=ns32k-utek
os=-sysv
;;
microblaze*)
basic_machine=microblaze-xilinx
;;
mingw64)
basic_machine=x86_64-pc
os=-mingw64
;;
mingw32)
basic_machine=i686-pc
os=-mingw32
;;
mingw32ce)
basic_machine=arm-unknown
os=-mingw32ce
;;
miniframe)
basic_machine=m68000-convergent
;;
*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
basic_machine=m68k-atari
os=-mint
;;
mips3*-*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
;;
mips3*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
;;
monitor)
basic_machine=m68k-rom68k
os=-coff
;;
morphos)
basic_machine=powerpc-unknown
os=-morphos
;;
moxiebox)
basic_machine=moxie-unknown
os=-moxiebox
;;
msdos)
basic_machine=i386-pc
os=-msdos
;;
ms1-*)
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
msys)
basic_machine=i686-pc
os=-msys
;;
mvs)
basic_machine=i370-ibm
os=-mvs
;;
nacl)
basic_machine=le32-unknown
os=-nacl
;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
;;
netbsd386)
basic_machine=i386-unknown
os=-netbsd
;;
netwinder)
basic_machine=armv4l-rebel
os=-linux
;;
news | news700 | news800 | news900)
basic_machine=m68k-sony
os=-newsos
;;
news1000)
basic_machine=m68030-sony
os=-newsos
;;
news-3600 | risc-news)
basic_machine=mips-sony
os=-newsos
;;
necv70)
basic_machine=v70-nec
os=-sysv
;;
next | m*-next )
basic_machine=m68k-next
case $os in
-nextstep* )
;;
-ns2*)
os=-nextstep2
;;
*)
os=-nextstep3
;;
esac
;;
nh3000)
basic_machine=m68k-harris
os=-cxux
;;
nh[45]000)
basic_machine=m88k-harris
os=-cxux
;;
nindy960)
basic_machine=i960-intel
os=-nindy
;;
mon960)
basic_machine=i960-intel
os=-mon960
;;
nonstopux)
basic_machine=mips-compaq
os=-nonstopux
;;
np1)
basic_machine=np1-gould
;;
neo-tandem)
basic_machine=neo-tandem
;;
nse-tandem)
basic_machine=nse-tandem
;;
nsr-tandem)
basic_machine=nsr-tandem
;;
nsx-tandem)
basic_machine=nsx-tandem
;;
op50n-* | op60c-*)
basic_machine=hppa1.1-oki
os=-proelf
;;
openrisc | openrisc-*)
basic_machine=or32-unknown
;;
os400)
basic_machine=powerpc-ibm
os=-os400
;;
OSE68000 | ose68000)
basic_machine=m68000-ericsson
os=-ose
;;
os68k)
basic_machine=m68k-none
os=-os68k
;;
pa-hitachi)
basic_machine=hppa1.1-hitachi
os=-hiuxwe2
;;
paragon)
basic_machine=i860-intel
os=-osf
;;
parisc)
basic_machine=hppa-unknown
os=-linux
;;
parisc-*)
basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
os=-linux
;;
pbd)
basic_machine=sparc-tti
;;
pbb)
basic_machine=m68k-tti
;;
pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
pc98)
basic_machine=i386-pc
;;
pc98-*)
basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentium | p5 | k5 | k6 | nexgen | viac3)
basic_machine=i586-pc
;;
pentiumpro | p6 | 6x86 | athlon | athlon_*)
basic_machine=i686-pc
;;
pentiumii | pentium2 | pentiumiii | pentium3)
basic_machine=i686-pc
;;
pentium4)
basic_machine=i786-pc
;;
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumpro-* | p6-* | 6x86-* | athlon-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentium4-*)
basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pn)
basic_machine=pn-gould
;;
power) basic_machine=power-ibm
;;
ppc | ppcbe) basic_machine=powerpc-unknown
;;
ppc-* | ppcbe-*)
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle)
basic_machine=powerpcle-unknown
;;
ppcle-* | powerpclittle-*)
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64) basic_machine=powerpc64-unknown
;;
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64le | powerpc64little)
basic_machine=powerpc64le-unknown
;;
ppc64le-* | powerpc64little-*)
basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ps2)
basic_machine=i386-ibm
;;
pw32)
basic_machine=i586-unknown
os=-pw32
;;
rdos | rdos64)
basic_machine=x86_64-pc
os=-rdos
;;
rdos32)
basic_machine=i386-pc
os=-rdos
;;
rom68k)
basic_machine=m68k-rom68k
os=-coff
;;
rm[46]00)
basic_machine=mips-siemens
;;
rtpc | rtpc-*)
basic_machine=romp-ibm
;;
s390 | s390-*)
basic_machine=s390-ibm
;;
s390x | s390x-*)
basic_machine=s390x-ibm
;;
sa29200)
basic_machine=a29k-amd
os=-udi
;;
sb1)
basic_machine=mipsisa64sb1-unknown
;;
sb1el)
basic_machine=mipsisa64sb1el-unknown
;;
sde)
basic_machine=mipsisa32-sde
os=-elf
;;
sei)
basic_machine=mips-sei
os=-seiux
;;
sequent)
basic_machine=i386-sequent
;;
sh)
basic_machine=sh-hitachi
os=-hms
;;
sh5el)
basic_machine=sh5le-unknown
;;
sh64)
basic_machine=sh64-unknown
;;
sparclite-wrs | simso-wrs)
basic_machine=sparclite-wrs
os=-vxworks
;;
sps7)
basic_machine=m68k-bull
os=-sysv2
;;
spur)
basic_machine=spur-unknown
;;
st2000)
basic_machine=m68k-tandem
;;
stratus)
basic_machine=i860-stratus
os=-sysv4
;;
strongarm-* | thumb-*)
basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
sun2)
basic_machine=m68000-sun
;;
sun2os3)
basic_machine=m68000-sun
os=-sunos3
;;
sun2os4)
basic_machine=m68000-sun
os=-sunos4
;;
sun3os3)
basic_machine=m68k-sun
os=-sunos3
;;
sun3os4)
basic_machine=m68k-sun
os=-sunos4
;;
sun4os3)
basic_machine=sparc-sun
os=-sunos3
;;
sun4os4)
basic_machine=sparc-sun
os=-sunos4
;;
sun4sol2)
basic_machine=sparc-sun
os=-solaris2
;;
sun3 | sun3-*)
basic_machine=m68k-sun
;;
sun4)
basic_machine=sparc-sun
;;
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
;;
sv1)
basic_machine=sv1-cray
os=-unicos
;;
symmetry)
basic_machine=i386-sequent
os=-dynix
;;
t3e)
basic_machine=alphaev5-cray
os=-unicos
;;
t90)
basic_machine=t90-cray
os=-unicos
;;
tile*)
basic_machine=$basic_machine-unknown
os=-linux-gnu
;;
tx39)
basic_machine=mipstx39-unknown
;;
tx39el)
basic_machine=mipstx39el-unknown
;;
toad1)
basic_machine=pdp10-xkl
os=-tops20
;;
tower | tower-32)
basic_machine=m68k-ncr
;;
tpf)
basic_machine=s390x-ibm
os=-tpf
;;
udi29k)
basic_machine=a29k-amd
os=-udi
;;
ultra3)
basic_machine=a29k-nyu
os=-sym1
;;
v810 | necv810)
basic_machine=v810-nec
os=-none
;;
vaxv)
basic_machine=vax-dec
os=-sysv
;;
vms)
basic_machine=vax-dec
os=-vms
;;
vpp*|vx|vx-*)
basic_machine=f301-fujitsu
;;
vxworks960)
basic_machine=i960-wrs
os=-vxworks
;;
vxworks68)
basic_machine=m68k-wrs
os=-vxworks
;;
vxworks29k)
basic_machine=a29k-wrs
os=-vxworks
;;
wasm32)
basic_machine=wasm32-unknown
;;
w65*)
basic_machine=w65-wdc
os=-none
;;
w89k-*)
basic_machine=hppa1.1-winbond
os=-proelf
;;
xbox)
basic_machine=i686-pc
os=-mingw32
;;
xps | xps100)
basic_machine=xps100-honeywell
;;
xscale-* | xscalee[bl]-*)
basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
;;
ymp)
basic_machine=ymp-cray
os=-unicos
;;
z8k-*-coff)
basic_machine=z8k-unknown
os=-sim
;;
z80-*-coff)
basic_machine=z80-unknown
os=-sim
;;
none)
basic_machine=none-none
os=-none
;;
# Here we handle the default manufacturer of certain CPU types. It is in
# some cases the only manufacturer, in others, it is the most popular.
w89k)
basic_machine=hppa1.1-winbond
;;
op50n)
basic_machine=hppa1.1-oki
;;
op60c)
basic_machine=hppa1.1-oki
;;
romp)
basic_machine=romp-ibm
;;
mmix)
basic_machine=mmix-knuth
;;
rs6000)
basic_machine=rs6000-ibm
;;
vax)
basic_machine=vax-dec
;;
pdp10)
# there are many clones, so DEC is not a safe bet
basic_machine=pdp10-unknown
;;
pdp11)
basic_machine=pdp11-dec
;;
we32k)
basic_machine=we32k-att
;;
sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
basic_machine=sparc-sun
;;
cydra)
basic_machine=cydra-cydrome
;;
orion)
basic_machine=orion-highlevel
;;
orion105)
basic_machine=clipper-highlevel
;;
mac | mpw | mac-mpw)
basic_machine=m68k-apple
;;
pmac | pmac-mpw)
basic_machine=powerpc-apple
;;
*-unknown)
# Make sure to match an already-canonicalized machine name.
;;
*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
exit 1
;;
esac
# Here we canonicalize certain aliases for manufacturers.
case $basic_machine in
*-digital*)
basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
;;
*-commodore*)
basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
;;
*)
;;
esac
# Decode manufacturer-specific aliases for certain operating systems.
if [ x"$os" != x"" ]
then
case $os in
# First match some system type aliases
# that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
-auroraux)
os=-auroraux
;;
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
-solaris)
os=-solaris2
;;
-svr4*)
os=-sysv4
;;
-unixware*)
os=-sysv4.2uw
;;
-gnu/linux*)
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
;;
# First accept the basic system types.
# The portable systems comes first.
# Each alternative MUST END IN A *, to match a version number.
# -sysv* is not here because it comes later, after sysvr4.
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
| -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* | -cloudabi* | -sortix* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
| -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
| -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
case $basic_machine in
x86-* | i*86-*)
;;
*)
os=-nto$os
;;
esac
;;
-nto-qnx*)
;;
-nto*)
os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
| -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
;;
-mac*)
os=`echo $os | sed -e 's|mac|macos|'`
;;
-linux-dietlibc)
os=-linux-dietlibc
;;
-linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
-sunos5*)
os=`echo $os | sed -e 's|sunos5|solaris2|'`
;;
-sunos6*)
os=`echo $os | sed -e 's|sunos6|solaris3|'`
;;
-opened*)
os=-openedition
;;
-os400*)
os=-os400
;;
-wince*)
os=-wince
;;
-osfrose*)
os=-osfrose
;;
-osf*)
os=-osf
;;
-utek*)
os=-bsd
;;
-dynix*)
os=-bsd
;;
-acis*)
os=-aos
;;
-atheos*)
os=-atheos
;;
-syllable*)
os=-syllable
;;
-386bsd)
os=-bsd
;;
-ctix* | -uts*)
os=-sysv
;;
-nova*)
os=-rtmk-nova
;;
-ns2 )
os=-nextstep2
;;
-nsk*)
os=-nsk
;;
# Preserve the version number of sinix5.
-sinix5.*)
os=`echo $os | sed -e 's|sinix|sysv|'`
;;
-sinix*)
os=-sysv4
;;
-tpf*)
os=-tpf
;;
-triton*)
os=-sysv3
;;
-oss*)
os=-sysv3
;;
-svr4)
os=-sysv4
;;
-svr3)
os=-sysv3
;;
-sysvr4)
os=-sysv4
;;
# This must come after -sysvr4.
-sysv*)
;;
-ose*)
os=-ose
;;
-es1800*)
os=-ose
;;
-xenix)
os=-xenix
;;
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
os=-mint
;;
-aros*)
os=-aros
;;
-zvmoe)
os=-zvmoe
;;
-dicos*)
os=-dicos
;;
-nacl*)
;;
-ios)
;;
-none)
;;
*)
# Get rid of the `-' at the beginning of $os.
os=`echo $os | sed 's/[^-]*-//'`
echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
exit 1
;;
esac
else
# Here we handle the default operating systems that come with various machines.
# The value should be what the vendor currently ships out the door with their
# machine or put another way, the most popular os provided with the machine.
# Note that if you're going to try to match "-MANUFACTURER" here (say,
# "-sun"), then you have to tell the case statement up towards the top
# that MANUFACTURER isn't an operating system. Otherwise, code above
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
case $basic_machine in
score-*)
os=-elf
;;
spu-*)
os=-elf
;;
*-acorn)
os=-riscix1.2
;;
arm*-rebel)
os=-linux
;;
arm*-semi)
os=-aout
;;
c4x-* | tic4x-*)
os=-coff
;;
c8051-*)
os=-elf
;;
hexagon-*)
os=-elf
;;
tic54x-*)
os=-coff
;;
tic55x-*)
os=-coff
;;
tic6x-*)
os=-coff
;;
# This must come before the *-dec entry.
pdp10-*)
os=-tops20
;;
pdp11-*)
os=-none
;;
*-dec | vax-*)
os=-ultrix4.2
;;
m68*-apollo)
os=-domain
;;
i386-sun)
os=-sunos4.0.2
;;
m68000-sun)
os=-sunos3
;;
m68*-cisco)
os=-aout
;;
mep-*)
os=-elf
;;
mips*-cisco)
os=-elf
;;
mips*-*)
os=-elf
;;
or32-*)
os=-coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
os=-sysv3
;;
sparc-* | *-sun)
os=-sunos4.1.1
;;
pru-*)
os=-elf
;;
*-be)
os=-beos
;;
*-haiku)
os=-haiku
;;
*-ibm)
os=-aix
;;
*-knuth)
os=-mmixware
;;
*-wec)
os=-proelf
;;
*-winbond)
os=-proelf
;;
*-oki)
os=-proelf
;;
*-hp)
os=-hpux
;;
*-hitachi)
os=-hiux
;;
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
os=-sysv
;;
*-cbm)
os=-amigaos
;;
*-dg)
os=-dgux
;;
*-dolphin)
os=-sysv3
;;
m68k-ccur)
os=-rtu
;;
m88k-omron*)
os=-luna
;;
*-next )
os=-nextstep
;;
*-sequent)
os=-ptx
;;
*-crds)
os=-unos
;;
*-ns)
os=-genix
;;
i370-*)
os=-mvs
;;
*-next)
os=-nextstep3
;;
*-gould)
os=-sysv
;;
*-highlevel)
os=-bsd
;;
*-encore)
os=-bsd
;;
*-sgi)
os=-irix
;;
*-siemens)
os=-sysv4
;;
*-masscomp)
os=-rtu
;;
f30[01]-fujitsu | f700-fujitsu)
os=-uxpv
;;
*-rom68k)
os=-coff
;;
*-*bug)
os=-coff
;;
*-apple)
os=-macos
;;
*-atari*)
os=-mint
;;
*)
os=-none
;;
esac
fi
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
vendor=unknown
case $basic_machine in
*-unknown)
case $os in
-riscix*)
vendor=acorn
;;
-sunos*)
vendor=sun
;;
-cnk*|-aix*)
vendor=ibm
;;
-beos*)
vendor=be
;;
-hpux*)
vendor=hp
;;
-mpeix*)
vendor=hp
;;
-hiux*)
vendor=hitachi
;;
-unos*)
vendor=crds
;;
-dgux*)
vendor=dg
;;
-luna*)
vendor=omron
;;
-genix*)
vendor=ns
;;
-mvs* | -opened*)
vendor=ibm
;;
-os400*)
vendor=ibm
;;
-ptx*)
vendor=sequent
;;
-tpf*)
vendor=ibm
;;
-vxsim* | -vxworks* | -windiss*)
vendor=wrs
;;
-aux*)
vendor=apple
;;
-hms*)
vendor=hitachi
;;
-mpw* | -macos*)
vendor=apple
;;
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
vendor=atari
;;
-vos*)
vendor=stratus
;;
esac
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;
esac
echo $basic_machine$os
exit
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:
================================================
FILE: build/linux/configure
================================================
#!/bin/bash
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
cat <<EOF
Usage: ./configure [options]
Help:
-h, --help print this message
Standard options:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
--bindir=DIR install binaries in DIR [EPREFIX/bin]
--libdir=DIR install libs in DIR [EPREFIX/lib]
--includedir=DIR install includes in DIR [PREFIX/include]
--extra-asflags=EASFLAGS add EASFLAGS to ASFLAGS
--extra-cflags=ECFLAGS add ECFLAGS to CFLAGS
--extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS
--extra-rcflags=ERCFLAGS add ERCFLAGS to RCFLAGS
Configuration options:
--disable-cli disable cli
--system-libdavs2 use system libdavs2 instead of internal
--enable-shared build shared library
--disable-static disable building static library
--disable-opencl disable OpenCL features
--disable-gpl disable GPL-only features
--disable-thread disable multithreaded encoding
--disable-win32thread disable win32threads (windows only)
--disable-interlaced disable interlaced encoding support
--bit-depth=BIT_DEPTH set output bit depth (8-10) [8]
--chroma-format=FORMAT output chroma format (420, 422, 444, all) [all]
Advanced options:
--disable-asm disable platform-specific assembly optimizations
--enable-lto enable link-time optimization
--enable-debug add -g
--enable-gprof add -pg
--enable-strip add -s
--enable-pic build position-independent code
Cross-compilation:
--host=HOST build programs to run on HOST
--cross-prefix=PREFIX use PREFIX for compilation tools
--sysroot=SYSROOT root of cross-build tree
EOF
exit 1
fi
log_check() {
echo -n "checking $1... " >> config.log
}
log_ok() {
echo "yes" >> config.log
}
log_fail() {
echo "no" >> config.log
}
log_msg() {
echo "$1" >> config.log
}
cc_cflags() {
# several non g++ compilers issue an incredibly large number of warnings on high warning levels,
# suppress them by reducing the warning level rather than having to use #pragmas
for arg in $*; do
[[ "$arg" = -falign-loops* ]] && arg=
[ "$arg" = -fno-tree-vectorize ] && arg=
[ "$arg" = -Wshadow ] && arg=
[ "$arg" = -Wno-maybe-uninitialized ] && arg=
[[ "$arg" = -mpreferred-stack-boundary* ]] && arg=
[[ "$arg" = -l* ]] && arg=
[[ "$arg" = -L* ]] && arg=
if [ $compiler_style = MS ]; then
[ "$arg" = -ffast-math ] && arg="-fp:fast"
[ "$arg" = -Wall ] && arg=
[ "$arg" = -Werror ] && arg="-W3 -WX"
[ "$arg" = -g ] && arg=-Z7
[ "$arg" = -fomit-frame-pointer ] && arg=
[ "$arg" = -s ] && arg=
[ "$arg" = -fPIC ] && arg=
else
[ "$arg" = -ffast-math ] && arg=
[ "$arg" = -Wall ] && arg=
[ "$arg" = -Werror ] && arg="-w3 -Werror"
fi
[ $compiler = CL -a "$arg" = -O3 ] && arg=-O2
[ -n "$arg" ] && echo -n "$arg "
done
}
cl_ldflags() {
for arg in $*; do
arg=${arg/LIBPATH/libpath}
[ "${arg#-libpath:}" == "$arg" -a "${arg#-l}" != "$arg" ] && arg=${arg#-l}.lib
[ "${arg#-L}" != "$arg" ] && arg=-libpath:${arg#-L}
[ "$arg" = -Wl,--large-address-aware ] && arg=-largeaddressaware
[ "$arg" = -s ] && arg=
[ "$arg" = -Wl,-Bsymbolic ] && arg=
[ "$arg" = -fno-tree-vectorize ] && arg=
[ "$arg" = -Werror ] && arg=
[ "$arg" = -Wshadow ] && arg=
[ "$arg" = -Wmaybe-uninitialized ] && arg=
[[ "$arg" = -Qdiag-error* ]] && arg=
arg=${arg/pthreadGC/pthreadVC}
[ "$arg" = avifil32.lib ] && arg=vfw32.lib
[ "$arg" = gpac_static.lib ] && arg=libgpac_static.lib
[ "$arg" = davs2.lib ] && arg=libdavs2.lib
[ -n "$arg" ] && echo -n "$arg "
done
}
cc_check() {
if [ -z "$3" ]; then
if [ -z "$1$2" ]; then
log_check "whether $CC works"
elif [ -z "$1" ]; then
log_check "for $2"
else
log_check "for $1"
fi
elif [ -z "$1" ]; then
if [ -z "$2" ]; then
log_check "whether $CC supports $3"
else
log_check "whether $CC supports $3 with $2"
fi
else
log_check "for $3 in $1";
fi
rm -f conftest.c
for arg in $1; do
echo "#include <$arg>" >> conftest.c
done
echo "int main (void) { $3 return 0; }" >> conftest.c
if [ $compiler_style = MS ]; then
cc_cmd="$CC conftest.c $(cc_cflags $CFLAGS $CHECK_CFLAGS $2) -link $(cl_ldflags $2 $LDFLAGSCLI $LDFLAGS)"
else
cc_cmd="$CC conftest.c $CFLAGS $CHECK_CFLAGS $2 $LDFLAGSCLI $LDFLAGS -o conftest"
fi
if $cc_cmd >conftest.log 2>&1; then
res=$?
log_ok
else
res=$?
log_fail
log_msg "Failed commandline was:"
log_msg "--------------------------------------------------"
log_msg "$cc_cmd"
cat conftest.log >> config.log
log_msg "--------------------------------------------------"
log_msg "Failed program was:"
log_msg "--------------------------------------------------"
cat conftest.c >> config.log
log_msg "--------------------------------------------------"
fi
return $res
}
cpp_check() {
log_check "whether $3 is true"
rm -f conftest.c
for arg in $1; do
echo "#include <$arg>" >> conftest.c
done
echo -e "#if !($3) \n#error $4 \n#endif " >> conftest.c
if [ $compiler_style = MS ]; then
cpp_cmd="$CC conftest.c $(cc_cflags $CFLAGS $2) -P"
else
cpp_cmd="$CC conftest.c $CFLAGS $2 -E -o conftest"
fi
if $cpp_cmd >conftest.log 2>&1; then
res=$?
log_ok
else
res=$?
log_fail
log_msg "--------------------------------------------------"
cat conftest.log >> config.log
log_msg "--------------------------------------------------"
log_msg "Failed program was:"
log_msg "--------------------------------------------------"
cat conftest.c >> config.log
log_msg "--------------------------------------------------"
fi
return $res
}
as_check() {
log_check "whether $AS supports $1"
echo "$1" > conftest$AS_EXT
as_cmd="$AS conftest$AS_EXT $ASFLAGS $2 -o conftest.o"
if $as_cmd >conftest.log 2>&1; then
res=$?
log_ok
else
res=$?
log_fail
log_msg "Failed commandline was:"
log_msg "--------------------------------------------------"
log_msg "$as_cmd"
cat conftest.log >> config.log
log_msg "--------------------------------------------------"
log_msg "Failed program was:"
log_msg "--------------------------------------------------"
cat conftest$AS_EXT >> config.log
log_msg "--------------------------------------------------"
fi
return $res
}
rc_check() {
log_check "whether $RC works"
echo "$1" > conftest.rc
if [ $compiler = GNU ]; then
rc_cmd="$RC $RCFLAGS -o conftest.o conftest.rc"
else
rc_cmd="$RC $RCFLAGS -foconftest.o conftest.rc"
fi
if $rc_cmd >conftest.log 2>&1; then
res=$?
log_ok
else
res=$?
log_fail
log_msg "Failed commandline was:"
log_msg "--------------------------------------------------"
log_msg "$rc_cmd"
cat conftest.log >> config.log
log_msg "--------------------------------------------------"
log_msg "Failed program was:"
log_msg "--------------------------------------------------"
cat conftest.rc >> config.log
log_msg "--------------------------------------------------"
fi
return $res
}
define() {
echo "#define $1$([ -n "$2" ] && echo " $2" || echo " 1")" >> config.h
}
die() {
log_msg "DIED: $@"
echo "$@"
exit 1
}
configure_system_override() {
log_check "system libdavs2 configuration"
davs2_config_path="$1/davs2_config.h"
if [ -e "$davs2_config_path" ]; then
res=$?
log_ok
arg="$(grep '#define DAVS2_GPL ' $davs2_config_path | sed -e 's/#define DAVS2_GPL *//; s/ *$//')"
if [ -n "$arg" ]; then
[ "$arg" = 0 ] && arg="no" || arg="yes"
[ "$arg" != "$gpl" ] && die "Incompatible license with system libdavs2"
fi
arg="$(grep '#define DAVS2_BIT_DEPTH ' $davs2_config_path | sed -e 's/#define DAVS2_BIT_DEPTH *//; s/ *$//')"
if [ -n "$arg" ]; then
if [ "$arg" != "$bit_depth" ]; then
echo "Override output bit depth with system libdavs2 configuration"
bit_depth="$arg"
fi
fi
arg="$(grep '#define DAVS2_CHROMA_FORMAT ' $davs2_config_path | sed -e 's/#define DAVS2_CHROMA_FORMAT *//; s/ *$//')"
if [ -n "$arg" ]; then
[ "$arg" = 0 ] && arg="all" || arg="${arg#DAVS2_CSP_I}"
if [ "$arg" != "$chroma_format" ]; then
echo "Override output chroma format with system libdavs2 configuration"
chroma_format="$arg"
fi
fi
arg="$(grep '#define DAVS2_INTERLACED ' $davs2_config_path | sed -e 's/#define DAVS2_INTERLACED *//; s/ *$//')"
if [ -n "$arg" ]; then
[ "$arg" = 0 ] && arg="no" || arg="yes"
if [ "$arg" != "$interlaced" ]; then
echo "Override interlaced encoding support with system libdavs2 configuration"
interlaced="$arg"
fi
fi
else
res=$?
log_fail
log_msg "Failed search path was: $davs2_config_path"
fi
return $res
}
rm -f davs2_config.h config.h config.mak config.log davs2.pc davs2.def conftest*
# Construct a path to the specified directory relative to the working directory
relative_path() {
local base="${PWD%/}"
local path="$(cd "$1" >/dev/null; printf '%s/.' "${PWD%/}")"
local up=''
while [[ $path != "$base/"* ]]; do
base="${base%/*}"
up="../$up"
done
dirname "$up${path#"$base/"}"
}
SRCPATH="$(cd ../../source ; pwd)"
[ "$SRCPATH" = "$(pwd)" ] && SRCPATH=.
[ -n "$(echo $SRCPATH | grep ' ')" ] && die "Out of tree builds are impossible with whitespace in source path."
BUILDPATH="$(cd . ; pwd)"
echo "$SRCPATH" | grep -q ' ' && die "Out of tree builds are impossible with whitespace in source path."
echo "$BUILDPATH" | grep -q ' ' && die "Out of tree builds are impossible with whitespace in source path."
[ -e "$BUILDPATH/config.h" -o -e "$BUILDPATH/davs2_config.h" ] && die "Out of tree builds are impossible with config.h/davs2_config.h in source dir."
prefix='/usr/local'
exec_prefix='${prefix}'
bindir='${exec_prefix}/bin'
libdir='${exec_prefix}/lib'
includedir='${prefix}/include'
DEVNULL='/dev/null'
cli="yes"
cli_libdavs2="internal"
shared="no"
static="yes"
gpl="yes"
thread="auto"
asm="auto"
interlaced="yes"
lto="no"
debug="no"
gprof="no"
strip="no"
pic="no"
bit_depth="8"
chroma_format="all"
compiler="GNU"
compiler_style="GNU"
opencl="no"
vsx="auto"
CFLAGS="$CFLAGS -Wall -I. -I\$(SRCPATH)"
LDFLAGS="$LDFLAGS"
LDFLAGSCLI="$LDFLAGSCLI"
ASFLAGS="$ASFLAGS -I. -I\$(SRCPATH)"
RCFLAGS="$RCFLAGS"
CHECK_CFLAGS=""
HAVE_GETOPT_LONG=1
cross_prefix=""
EXE=""
AS_EXT=".S"
NL="
"
# list of all preprocessor HAVE values we can define
CONFIG_HAVE="MALLOC_H ALTIVEC ALTIVEC_H MMX ARMV6 ARMV6T2 NEON BEOSTHREAD POSIXTHREAD WIN32THREAD THREAD LOG2F \
GPL VECTOREXT INTERLACED CPU_COUNT OPENCL THP X86_INLINE_ASM AS_FUNC INTEL_DISPATCHER \
MSA MMAP WINRT VSX"
# parse options
for opt do
optarg="${opt#*=}"
case "$opt" in
--prefix=*)
prefix="$optarg"
;;
--exec-prefix=*)
exec_prefix="$optarg"
;;
--bindir=*)
bindir="$optarg"
;;
--libdir=*)
libdir="$optarg"
;;
--includedir=*)
includedir="$optarg"
;;
--disable-cli)
cli="no"
;;
--system-libdavs2)
cli_libdavs2="system"
;;
--enable-shared)
shared="yes"
;;
--disable-static)
static="no"
;;
--disable-asm)
asm="no"
;;
--disable-interlaced)
interlaced="no"
;;
--disable-gpl)
gpl="no"
;;
--extra-asflags=*)
ASFLAGS="$ASFLAGS $optarg"
;;
--extra-cflags=*)
CFLAGS="$CFLAGS $optarg"
;;
--extra-ldflags=*)
LDFLAGS="$LDFLAGS $optarg"
;;
--extra-rcflags=*)
RCFLAGS="$RCFLAGS $optarg"
;;
--disable-thread)
thread="no"
;;
--disable-win32thread)
[ "$thread" != "no" ] && thread="posix"
;;
--enable-lto)
lto="auto"
;;
--enable-debug)
debug="yes"
;;
--enable-gprof)
CFLAGS="$CFLAGS -pg"
LDFLAGS="$LDFLAGS -pg"
gprof="yes"
;;
--enable-strip)
strip="yes"
;;
--enable-pic)
pic="yes"
;;
--host=*)
host="$optarg"
;;
--disable-vsx)
vsx="no"
;;
--disable-opencl)
opencl="no"
;;
--cross-prefix=*)
cross_prefix="$optarg"
;;
--sysroot=*)
CFLAGS="$CFLAGS --sysroot=$optarg"
LDFLAGS="$LDFLAGS --sysroot=$optarg"
;;
--bit-depth=*)
bit_depth="$optarg"
if [ "$bit_depth" -lt "8" -o "$bit_depth" -gt "10" ]; then
echo "Supplied bit depth must be in range [8,10]."
exit 1
elif [[ "$bit_depth" = "9" || "$bit_depth" = "10" ]]; then
echo "BitDepth $bit_depth not supported currently."
exit 1
fi
bit_depth=`expr $bit_depth + 0`
;;
--chroma-format=*)
chroma_format="$optarg"
if [ $chroma_format != "420" -a $chroma_format != "422" -a $chroma_format != "444" -a $chroma_format != "all" ]; then
echo "Supplied chroma format must be 420, 422, 444 or all."
exit 1
fi
;;
*)
echo "Unknown option $opt, ignored"
;;
esac
done
[ "$cli" = "no" -a "$shared" = "no" -a "$static" = "no" ] && die "Nothing to build. Enable cli, shared or static."
CC="${CC-${cross_prefix}g++}"
STRIP="${STRIP-${cross_prefix}strip}"
INSTALL="${INSTALL-install}"
PKGCONFIG="${PKGCONFIG-${cross_prefix}pkg-config}"
# ar and ranlib doesn't load the LTO plugin by default, prefer the g++-prefixed wrappers which does.
if ${cross_prefix}g++-ar --version >/dev/null 2>&1; then
AR="${AR-${cross_prefix}g++-ar}"
else
AR="${AR-${cross_prefix}ar}"
fi
if ${cross_prefix}g++-ranlib --version >/dev/null 2>&1; then
RANLIB="${RANLIB-${cross_prefix}g++-ranlib}"
else
RANLIB="${RANLIB-${cross_prefix}ranlib}"
fi
if [ "x$host" = x ]; then
host=`${BUILDPATH}/config.guess`
fi
# normalize a triplet into a quadruplet
host=`${BUILDPATH}/config.sub $host`
# split $host
host_cpu="${host%%-*}"
host="${host#*-}"
host_vendor="${host%%-*}"
host_os="${host#*-}"
trap 'rm -f conftest*' EXIT
# test for use of compilers that require specific handling
cc_base=`basename "$CC"`
QPRE="-"
if [[ $host_os = mingw* || $host_os = cygwin* ]]; then
if [[ "$cc_base" = icl || "$cc_base" = icl[\ .]* ]]; then
# Windows Intel Compiler creates dependency generation with absolute Windows paths, Cygwin's make does not support Windows paths.
[[ $host_os = cygwin* ]] && die "Windows Intel Compiler support requires MSYS"
compiler=ICL
compiler_style=MS
CFLAGS="$CFLAGS -Qstd=c99 -nologo -Qms0 -DHAVE_STRING_H -I\$(SRCPATH)/extras"
QPRE="-Q"
`$CC 2>&1 | grep -q IA-32` && host_cpu=i486
`$CC 2>&1 | grep -q "Intel(R) 64"` && host_cpu=x86_64
cpp_check "" "" "_MSC_VER >= 1400" || die "Windows Intel Compiler support requires Visual Studio 2005 or newer"
if cc_check '' -Qdiag-error:10006,10157 ; then
CHECK_CFLAGS="$CHECK_CFLAGS -Qdiag-error:10006,10157"
fi
elif [[ "$cc_base" = cl || "$cc_base" = cl[\ .]* ]]; then
# Standard Microsoft Visual Studio
compiler=CL
compiler_style=MS
CFLAGS="$CFLAGS -nologo -GS- -DHAVE_STRING_H -I\$(SRCPATH)/extras"
`$CC 2>&1 | grep -q 'x86'` && host_cpu=i486
`$CC 2>&1 | grep -q 'x64'` && host_cpu=x86_64
cpp_check '' '' '_MSC_VER > 1800 || (_MSC_VER == 1800 && _MSC_FULL_VER >= 180030324)' || die "Microsoft Visual Studio support requires Visual Studio 2013 Update 2 or newer"
else
# MinGW uses broken pre-VS2015 Microsoft printf functions unless it's told to use the POSIX ones.
CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=200112L"
fi
else
if [[ "$cc_base" = icc || "$cc_base" = icc[\ .]* ]]; then
AR="xiar"
compiler=ICC
fi
fi
if [[ "$cc_base" = clang* ]]; then
if cc_check '' -Werror=unknown-warning-option ; then
CHECK_CFLAGS="$CHECK_CFLAGS -Werror=unknown-warning-option"
fi
fi
libm=""
case $host_os in
beos*)
SYS="BEOS"
define HAVE_MALLOC_H
;;
darwin*)
SYS="MACOSX"
libm="-lm"
if [ "$pic" = "no" ]; then
cc_check "" -mdynamic-no-pic && CFLAGS="$CFLAGS -mdynamic-no-pic"
fi
# TODO: Fix compiling error under mac osx (force disabled now)
asm="no"
;;
freebsd*)
SYS="FREEBSD"
libm="-lm"
;;
kfreebsd*-gnu)
SYS="FREEBSD"
define HAVE_MALLOC_H
libm="-lm"
;;
netbsd*)
SYS="NETBSD"
libm="-lm"
;;
openbsd*)
SYS="OPENBSD"
libm="-lm"
;;
*linux*)
SYS="LINUX"
define HAVE_MALLOC_H
libm="-lm"
;;
gnu*)
SYS="HURD"
define HAVE_MALLOC_H
libm="-lm"
;;
cygwin*|mingw*|msys*)
EXE=".exe"
if [[ $host_os = cygwin* ]] && cpp_check "" "" "defined(__CYGWIN__)" ; then
SYS="CYGWIN"
define HAVE_MALLOC_H
else
SYS="WINDOWS"
DEVNULL="NUL"
LDFLAGSCLI="$LDFLAGSCLI -lshell32"
[ $compiler = GNU ] && RC="${RC-${cross_prefix}windres}" || RC="${RC-rc}"
fi
;;
sunos*|solaris*)
SYS="SunOS"
define HAVE_MALLOC_H
libm="-lm"
if cc_check "" /usr/lib/64/values-xpg6.o; then
LDFLAGS="$LDFLAGS /usr/lib/64/values-xpg6.o"
else
LDFLAGS="$LDFLAGS /usr/lib/values-xpg6.o"
fi
if test -x /usr/ucb/install ; then
INSTALL=/usr/ucb/install
elif test -x /usr/bin/ginstall ; then
# OpenSolaris
INSTALL=/usr/bin/ginstall
elif test -x /usr/gnu/bin/install ; then
# OpenSolaris
INSTALL=/usr/gnu/bin/install
fi
HAVE_GETOPT_LONG=0
;;
*qnx*)
SYS="QNX"
define HAVE_MALLOC_H
libm="-lm"
HAVE_GETOPT_LONG=0
CFLAGS="$CFLAGS -I\$(SRCPATH)/extras"
;;
*haiku*)
SYS="HAIKU"
;;
*)
die "Unknown system $host, edit the configure"
;;
esac
LDFLAGS="$LDFLAGS $libm"
stack_alignment=4
case $host_cpu in
i*86)
ARCH="X86"
AS="${AS-nasm}"
AS_EXT=".asm"
CFLAGS="$CFLAGS -DARCH_X86_64=0"
ASFLAGS="$ASFLAGS -DARCH_X86_64=0 -I\$(SRCPATH)/common/x86/"
if [ $compiler = GNU ]; then
if [[ "$asm" == auto && "$CFLAGS" != *-march* ]]; then
CFLAGS="$CFLAGS -march=i686"
fi
if [[ "$asm" == auto && "$CFLAGS" != *-mfpmath* ]]; then
CFLAGS="$CFLAGS -mfpmath=sse -msse -msse2"
fi
CFLAGS="-m32 $CFLAGS"
LDFLAGS="-m32 $LDFLAGS"
fi
if [ "$SYS" = MACOSX ]; then
ASFLAGS="$ASFLAGS -f macho32 -DPREFIX"
elif [ "$SYS" = WINDOWS -o "$SYS" = CYGWIN ]; then
ASFLAGS="$ASFLAGS -f win32 -DPREFIX"
LDFLAGS="$LDFLAGS -Wl,--large-address-aware"
[ $compiler = GNU ] && LDFLAGS="$LDFLAGS -Wl,--dynamicbase,--nxcompat,--tsaware"
[ $compiler = GNU ] && RCFLAGS="--target=pe-i386 $RCFLAGS"
else
ASFLAGS="$ASFLAGS -f elf32"
fi
;;
x86_64)
ARCH="X86_64"
AS="${AS-nasm}"
AS_EXT=".asm"
CFLAGS="$CFLAGS -DARCH_X86_64=1"
ASFLAGS="$ASFLAGS -DARCH_X86_64=1 -I\$(SRCPATH)/common/x86/"
stack_alignment=16
[ $compiler = GNU ] && CFLAGS="-m64 $CFLAGS" && LDFLAGS="-m64 $LDFLAGS"
if [ "$SYS" = MACOSX ]; then
ASFLAGS="$ASFLAGS -f macho64 -DPIC -DPREFIX"
if cc_check '' "-arch x86_64"; then
CFLAGS="$CFLAGS -arch x86_64"
LDFLAGS="$LDFLAGS -arch x86_64"
fi
elif [ "$SYS" = WINDOWS -o "$SYS" = CYGWIN ]; then
ASFLAGS="$ASFLAGS -f win64"
if [ $compiler = GNU ]; then
# only the GNU toolchain is inconsistent in prefixing function names with _
cc_check "" "-S" && grep -q "_main:" conftest && ASFLAGS="$ASFLAGS -DPREFIX"
cc_check "" "-Wl,--high-entropy-va" && LDFLAGS="$LDFLAGS -Wl,--high-entropy-va"
LDFLAGS="$LDFLAGS -Wl,--dynamicbase,--nxcompat,--tsaware"
LDFLAGSCLI="$LDFLAGSCLI -Wl,--image-base,0x140000000"
SOFLAGS="$SOFLAGS -Wl,--image-base,0x180000000"
RCFLAGS="--target=pe-x86-64 $RCFLAGS"
fi
else
ASFLAGS="$ASFLAGS -f elf64"
fi
;;
powerpc*)
ARCH="PPC"
if [ $asm = auto ] ; then
define HAVE_ALTIVEC
AS="${AS-${CC}}"
AS_EXT=".c"
if [ $SYS = MACOSX ] ; then
CFLAGS="$CFLAGS -faltivec -fastf -mcpu=G4"
else
CFLAGS="$CFLAGS -maltivec -mabi=altivec"
define HAVE_ALTIVEC_H
fi
if [ "$vsx" != "no" ] ; then
vsx="no"
if cc_check "" "-mvsx" ; then
CFLAGS="$CFLAGS -mvsx"
define HAVE_VSX
vsx="yes"
fi
fi
fi
;;
sparc)
ARCH="SPARC"
;;
mips*)
ARCH="MIPS"
AS="${AS-${CC}}"
AS_EXT=".c"
;;
arm*)
ARCH="ARM"
if [ "$SYS" = MACOSX ] ; then
AS="${AS-${SRCPATH}/tools/gas-preprocessor.pl -arch arm -- ${CC}}"
ASFLAGS="$ASFLAGS -DPREFIX -DPIC" # apple's ld doesn't support movw/movt relocations at all
# build for armv7 by default
if ! echo $CFLAGS | grep -Eq '\-arch' ; then
CFLAGS="$CFLAGS -arch armv7"
LDFLAGS="$LDFLAGS -arch armv7"
fi
else
AS="${AS-${CC}}"
fi
;;
aarch64)
ARCH="AARCH64"
stack_alignment=16
if [ "$SYS" = MACOSX ] ; then
AS="${AS-${SRCPATH}/tools/gas-preprocessor.pl -arch aarch64 -- ${CC}}"
ASFLAGS="$ASFLAGS -DPREFIX"
else
AS="${AS-${CC}}"
fi
;;
s390|s390x)
ARCH="S390"
;;
hppa*|parisc*)
ARCH="PARISC"
;;
ia64)
ARCH="IA64"
;;
alpha*)
ARCH="ALPHA"
;;
*)
ARCH="$(echo $host_cpu | tr a-z A-Z)"
;;
esac
[ "$vsx" != "yes" ] && vsx="no"
if [ $SYS = WINDOWS ]; then
if ! rc_check "0 RCDATA {0}" ; then
RC=""
fi
if cpp_check "winapifamily.h" "" "!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)" ; then
[ $compiler = CL ] || die "WinRT requires MSVC"
define HAVE_WINRT
CFLAGS="$CFLAGS -MD"
LDFLAGS="$LDFLAGS -appcontainer"
if ! cpp_check "" "" "defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0603" ; then
die "_WIN32_WINNT must be defined to at least 0x0603 (Windows 8.1) for WinRT"
elif cpp_check "" "" "_WIN32_WINNT >= 0x0A00" ; then
# Universal Windows Platform (Windows 10)
LDFLAGS="$LDFLAGS -lWindowsApp"
fi
cli="no"
opencl="no"
fi
fi
log_msg "davs2 configure script"
if [ -n "$*" ]; then
msg="Command line options:"
for i in $@; do
msg="$msg \"$i\""
done
log_msg "$msg"
fi
log_msg ""
# check requirements
cc_check || die "No working C compiler found."
if [ $compiler_style = GNU ]; then
if cc_check '' -std=gnu++11 'for( int i = 0; i < 9; i++ );' ; then
CFLAGS="$CFLAGS -std=gnu++11 -D_GNU_SOURCE"
elif ! cc_check '' '' 'for( int i = 0; i < 9; i++ );' ; then
die "GNU++11 compiler is needed for compilation."
fi
fi
if [ $shared = yes -a \( $ARCH = "X86_64" -o $ARCH = "PPC" -o $ARCH = "ALPHA" -o $ARCH = "ARM" -o $ARCH = "IA64" -o $ARCH = "PARISC" -o $ARCH = "MIPS" -o $ARCH = "AARCH64" \) ] ; then
pic="yes"
fi
if [ $compiler = GNU -a \( $ARCH = X86 -o $ARCH = X86_64 \) ] ; then
if cc_check '' -mpreferred-stack-boundary=5 ; then
CFLAGS="$CFLAGS -mpreferred-stack-boundary=5"
stack_alignment=32
elif [ $stack_alignment -lt 16 ] && cc_check '' -mpreferred-stack-boundary=4 ; then
CFLAGS="$CFLAGS -mpreferred-stack-boundary=4"
stack_alignment=16
fi
elif [ $compiler = ICC -a $ARCH = X86 ]; then
# icc on linux has various degrees of mod16 stack support
if [ $SYS = LINUX ]; then
# >= 12 defaults to a mod16 stack
if cpp_check "" "" "__INTEL_COMPILER >= 1200" ; then
stack_alignment=16
# 11 <= x < 12 is capable of keeping a mod16 stack, but defaults to not doing so.
elif cpp_check "" "" "__INTEL_COMPILER >= 1100" ; then
CFLAGS="$CFLAGS -falign-stack=assume-16-byte"
stack_alignment=16
fi
# < 11 is completely incapable of keeping a mod16 stack
fi
fi
if [ $asm = auto -a \( $ARCH = X86 -o $ARCH = X86_64 \) ] ; then
if ! as_check "vmovdqa32 [eax]{k1}{z}, zmm0" ; then
VER="$(($AS --version || echo no assembler) 2>/dev/null | head -n 1)"
echo "Found $VER"
echo "Minimum version is nasm-2.13"
echo "If you really want to compile without asm, configure with --disable-asm."
exit 1
fi
cc_check '' '' '__asm__("pabsw %xmm0, %xmm0");' && define HAVE_X86_INLINE_ASM
ASFLAGS="$ASFLAGS -Worphan-labels"
define HAVE_MMX
fi
if [ $asm = auto -a $ARCH = ARM ] ; then
# set flags so neon is built by default
echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu)' || CFLAGS="$CFLAGS -mcpu=cortex-a8 -mfpu=neon"
if cc_check '' '' '__asm__("rev ip, ip");' ; then define HAVE_ARMV6
cc_check '' '' '__asm__("movt r0, #0");' && define HAVE_ARMV6T2
cc_check '' '' '__asm__("vadd.i16 q0, q0, q0");' && define HAVE_NEON
ASFLAGS="$ASFLAGS -c"
else
echo "You specified a pre-ARMv6 or Thumb-1 CPU in your CFLAGS."
echo "If you really want to run on such a CPU, configure with --disable-asm."
exit 1
fi
fi
if [ $asm = auto -a $ARCH = AARCH64 ] ; then
if cc_check '' '' '__asm__("cmeq v0.8h, v0.8h, #0");' ; then define HAVE_NEON
ASFLAGS="$ASFLAGS -c"
else
echo "no NEON support, try adding -mfpu=neon to CFLAGS"
echo "If you really want to run on such a CPU, configure with --disable-asm."
exit 1
fi
fi
if [ $asm = auto -a \( $ARCH = ARM -o $ARCH = AARCH64 \) ] ; then
# check if the assembler supports '.func' (clang 3.5 does not)
as_check ".func test${NL}.endfunc" && define HAVE_AS_FUNC 1
fi
if [ $asm = auto -a $ARCH = MIPS ] ; then
if ! echo $CFLAGS | grep -Eq '(-march|-mmsa|-mno-msa)' ; then
cc_check '' '-mmsa -mfp64 -mhard-float' && CFLAGS="-mmsa -mfp64 -mhard-float $CFLAGS"
fi
if cc_check '' '' '__asm__("addvi.b $w0, $w1, 1");' ; then
define HAVE_MSA
else
echo "You specified a pre-MSA CPU in your CFLAGS."
echo "If you really want to run on such a CPU, configure with --disable-asm."
exit 1
fi
fi
[ $asm = no ] && AS=""
[ "x$AS" = x ] && asm="no" || asm="yes"
define ARCH_$ARCH
define SYS_$SYS
define STACK_ALIGNMENT $stack_alignment
ASFLAGS="$ASFLAGS -DSTACK_ALIGNMENT=$stack_alignment"
# skip endianness check for Intel Compiler and MSVS, as all supported platforms are little. each have flags that will cause the check to fail as well
CPU_ENDIAN="little-endian"
if [ $compiler = GNU ]; then
echo "int i[2] = {0x42494745,0}; double f[2] = {0x1.0656e6469616ep+102,0};" > conftest.c
$CC $CFLAGS conftest.c -c -o conftest.o 2>/dev/null || die "endian test failed"
if (${cross_prefix}strings -a conftest.o | grep -q BIGE) && (${cross_prefix}strings -a conftest.o | grep -q FPendian) ; then
define WORDS_BIGENDIAN
CPU_ENDIAN="big-endian"
elif !(${cross_prefix}strings -a conftest.o | grep -q EGIB && ${cross_prefix}strings -a conftest.o | grep -q naidnePF) ; then
die "endian test failed"
fi
fi
if [ "$cli_libdavs2" = "system" -a "$shared" != "yes" ] ; then
[ "$static" = "yes" ] && die "Option --system-libdavs2 can not be used together with --enable-static"
if $PKGCONFIG --exists davs2 2>/dev/null; then
DAVS2_LIBS="$($PKGCONFIG --libs davs2)"
DAVS2_INCLUDE_DIR="${DAVS2_INCLUDE_DIR-$($PKGCONFIG --variable=includedir davs2)}"
configure_system_override "$DAVS2_INCLUDE_DIR" || die "Detection of system libdavs2 configuration failed"
else
die "Can not find system libdavs2"
fi
fi
# autodetect options that weren't forced nor disabled
libpthread=""
if [ "$SYS" = "WINDOWS" -a "$thread" = "posix" ] ; then
if [ "$gpl" = "no" ] ; then
echo "Warning: pthread-win32 is LGPL and is therefore not supported with --disable-gpl"
thread="no"
elif cc_check pthread.h -lpthread "pthread_create(0,0,0,0);" ; then
libpthread="-lpthread"
elif cc_check pthread.h -lpthreadGC2 "pthread_create(0,0,0,0);" ; then
libpthread="-lpthreadGC2"
elif cc_check pthread.h "-lpthreadGC2 -lwsock32 -DPTW32_STATIC_LIB" "pthread_create(0,0,0,0);" ; then
libpthread="-lpthreadGC2 -lwsock32"
define PTW32_STATIC_LIB
elif cc_check pthread.h "-lpthreadGC2 -lws2_32 -DPTW32_STATIC_LIB" "pthread_create(0,0,0,0);" ; then
libpthread="-lpthreadGC2 -lws2_32"
define PTW32_STATIC_LIB
else
thread="no"
fi
elif [ "$thread" != "no" ] ; then
thread="no"
case $SYS in
BEOS)
thread="beos"
define HAVE_BEOSTHREAD
;;
WINDOWS)
thread="win32"
define HAVE_WIN32THREAD
;;
QNX)
cc_check pthread.h -lc "pthread_create(0,0,0,0);" && thread="posix" && libpthread="-lc"
;;
*)
if cc_check pthread.h -lpthread "pthread_create(0,0,0,0);" ; then
thread="posix"
libpthread="-lpthread"
else
cc_check pthread.h "" "pthread_create(0,0,0,0);" && thread="posix" && libpthread=""
fi
;;
esac
fi
if [ "$thread" = "posix" ]; then
LDFLAGS="$LDFLAGS $libpthread"
define HAVE_POSIXTHREAD
if [ "$SYS" = "LINUX" ] && cc_check sched.h "-D_GNU_SOURCE -Werror" "cpu_set_t p_aff; return CPU_COUNT(&p_aff);" ; then
define HAVE_CPU_COUNT
fi
fi
[ "$thread" != "no" ] && define HAVE_THREAD
if cc_check "math.h" "-Werror" "return log2f(2);" ; then
define HAVE_LOG2F
fi
if [ "$SYS" != "WINDOWS" ] && cpp_check "sys/mman.h unistd.h" "" "defined(MAP_PRIVATE)"; then
define HAVE_MMAP
fi
if [ "$SYS" = "LINUX" -a \( "$ARCH" = "X86" -o "$ARCH" = "X86_64" \) ] && cc_check "sys/mman.h" "" "MADV_HUGEPAGE;" ; then
define HAVE_THP
fi
cc_check "stdint.h" "" "uint32_t test_vec __attribute__ ((vector_size (16))) = {0,1,2,3};" && define HAVE_VECTOREXT
if [ "$pic" = "yes" ] ; then
[ "$SYS" != WINDOWS -a "$SYS" != CYGWIN ] && CFLAGS="$CFLAGS -fPIC"
ASFLAGS="$ASFLAGS -DPIC"
# resolve textrels in the x86 asm
cc_check stdio.h "-shared -Wl,-Bsymbolic" && SOFLAGS="$SOFLAGS -Wl,-Bsymbolic"
[ $SYS = SunOS -a "$ARCH" = "X86" ] && SOFLAGS="$SOFLAGS -mimpure-text"
fi
if [ "$debug" != "yes" -a "$gprof" != "yes" ]; then
CFLAGS="$CFLAGS -fomit-frame-pointer"
fi
if [ "$strip" = "yes" ]; then
LDFLAGS="$LDFLAGS -s"
fi
if [ "$debug" = "yes" ]; then
CFLAGS="-O1 -g $CFLAGS"
RCFLAGS="$RCFLAGS -DDEBUG"
else
CFLAGS="-O3 -ffast-math $CFLAGS"
if [ "$lto" = "auto" ] && [ $compiler = GNU ] && cc_check "" "-flto" ; then
lto="yes"
CFLAGS="$CFLAGS -flto"
LDFLAGS="$LDFLAGS -O3 -flto"
fi
fi
[ "$lto" = "auto" ] && lto="no"
if cc_check '' -fno-tree-vectorize ; then
CFLAGS="$CFLAGS -fno-tree-vectorize"
fi
if [ $SYS = WINDOWS -a $ARCH = X86 -a $compiler = GNU ] ; then
# workaround g++/ld bug with alignment of static variables/arrays that are initialized to zero
cc_check '' -fno-zero-initialized-in-bss && CFLAGS="$CFLAGS -fno-zero-initialized-in-bss"
fi
if cc_check '' -Wshadow ; then
CFLAGS="-Wshadow $CFLAGS"
fi
if cc_check '' -Wmaybe-uninitialized ; then
if [ $SYS = MACOSX ] ; then
CFLAGS="-Wno-uninitialized $CFLAGS"
else
CFLAGS="-Wno-maybe-uninitialized $CFLAGS"
fi
fi
if [ $compiler = ICC -o $compiler = ICL ] ; then
if cc_check 'extras/intel_dispatcher.h' '' 'davs2_intel_dispatcher_override();' ; then
define HAVE_INTEL_DISPATCHER
fi
fi
if [ "$bit_depth" -gt "8" ]; then
define HIGH_BIT_DEPTH
ASFLAGS="$ASFLAGS -DHIGH_BIT_DEPTH=1"
CFLAGS+=" -DHIGH_BIT_DEPTH=1"
opencl="no"
else
ASFLAGS="$ASFLAGS -DHIGH_BIT_DEPTH=0"
CFLAGS+=" -DHIGH_BIT_DEPTH=0"
fi
if [ "$chroma_format" != "all" ]; then
define CHROMA_FORMAT CHROMA_$chroma_format
fi
ASFLAGS="$ASFLAGS -DBIT_DEPTH=$bit_depth"
CFLAGS+=" -DBIT_DEPTH=$bit_depth"
[ $gpl = yes ] && define HAVE_GPL && davs2_gpl=1 || davs2_gpl=0
[ $interlaced = yes ] && define HAVE_INTERLACED && davs2_interlaced=1 || davs2_interlaced=0
libdl=""
if [ "$opencl" = "yes" ]; then
opencl="no"
# cygwin can use opencl if it can use LoadLibrary
if [ $SYS = WINDOWS ] || ([ $SYS = CYGWIN ] && cc_check windows.h "" "LoadLibraryW(0);") ; then
opencl="yes"
define HAVE_OPENCL
elif [ "$SYS" = "LINUX" -o "$SYS" = "MACOSX" ] ; then
opencl="yes"
define HAVE_OPENCL
libdl="-ldl"
fi
LDFLAGS="$LDFLAGS $libdl"
fi
#define undefined vars as 0
for var in $CONFIG_HAVE; do
grep -q "HAVE_$var 1" config.h || define HAVE_$var 0
done
# generate exported config file
config_chroma_format="DAVS2_CSP_I$chroma_format"
[ "$config_chroma_format" == "DAVS2_CSP_Iall" ] && config_chroma_format="0"
cat > davs2_config.h << EOF
#define DAVS2_BIT_DEPTH $bit_depth
#define DAVS2_GPL $davs2_gpl
#define DAVS2_INTERLACED $davs2_interlaced
#define DAVS2_CHROMA_FORMAT $config_chroma_format
EOF
# generate version.h
cd ${SRCPATH}/..
./version.sh >> ${BUILDPATH}/davs2_config.h
cd ${BUILDPATH}
if [ "$cli_libdavs2" = "system" ] ; then
if [ "$shared" = "yes" ]; then
CLI_LIBDAVS2='$(SONAME)'
else
CLI_LIBDAVS2=
LDFLAGSCLI="$DAVS2_LIBS $LDFLAGSCLI"
cc_check 'stdint.h davs2.h' '' 'davs2_encoder_open(0);' || die "System libdavs2 can't be used for compilation of this version"
fi
else
CLI_LIBDAVS2='$(LIBDAVS2)'
fi
DEPMM="${QPRE}MM"
DEPMT="${QPRE}MT"
if [ $compiler_style = MS ]; then
AR="lib -nologo -out:"
LD="link -out:"
if [ $compiler = ICL ]; then
AR="xi$AR"
LD="xi$LD"
else
mslink="$(dirname "$(command -v cl 2>/dev/null)")/link"
[ -x "$mslink" ] && LD="\"$mslink\" -out:"
fi
HAVE_GETOPT_LONG=0
LDFLAGS="-nologo -incremental:no $(cl_ldflags $LDFLAGS)"
LDFLAGSCLI="$(cl_ldflags $LDFLAGSCLI)"
LIBDAVS2=libdavs2.lib
RANLIB=
[ -n "$RC" ] && RCFLAGS="$RCFLAGS -nologo -I. -I\$(SRCPATH)/extras -fo"
STRIP=
if [ $debug = yes ]; then
LDFLAGS="-debug $LDFLAGS"
CFLAGS="-D_DEBUG $CFLAGS"
else
CFLAGS="-DNDEBUG $CFLAGS"
fi
else # g++/icc
DEPMM="$DEPMM -g0"
AR="$AR rc "
LD="$CC -o "
LIBDAVS2=libdavs2.a
[ -n "$RC" ] && RCFLAGS="$RCFLAGS -I. -o "
fi
[ $compiler != GNU ] && CFLAGS="$(cc_cflags $CFLAGS)"
if [ $compiler = ICC -o $compiler = ICL ]; then
# icc does not define __SSE__ until SSE2 optimization and icl never defines it or _M_IX86_FP
[ \( $ARCH = X86_64 -o $ARCH = X86 \) -a $asm = yes ] && ! cpp_check "" "" "defined(__SSE__)" && define __SSE__
PROF_GEN_CC="${QPRE}prof-gen ${QPRE}prof-dir."
PROF_GEN_LD=
PROF_USE_CC="${QPRE}prof-use ${QPRE}prof-dir."
PROF_USE_LD=
elif [ $compiler = CL ]; then
# Visual Studio
# _M_IX86_FP is only defined on x86
[ $ARCH = X86 ] && cpp_check '' '' '_M_IX86_FP >= 1' && define __SSE__
[ $ARCH = X86_64 ] && define __SSE__
# As long as the cli application can't link against the dll, the dll can not be pgo'd.
# pgds are link flag specific and the -dll flag for creating the dll makes it unshareable with the cli
PROF_GEN_CC="-GL"
PROF_GEN_LD="-LTCG:PGINSTRUMENT"
PROF_USE_CC="-GL"
PROF_USE_LD="-LTCG:PGOPTIMIZE"
else
PROF_GEN_CC="-fprofile-generate"
PROF_GEN_LD="-fprofile-generate"
PROF_USE_CC="-fprofile-use"
PROF_USE_LD="-fprofile-use"
fi
# generate config files
cat > config.mak << EOF
SRCPATH=$SRCPATH
prefix=$prefix
exec_prefix=$exec_prefix
bindir=$bindir
libdir=$libdir
includedir=$includedir
SYS_ARCH=$ARCH
SYS=$SYS
CC=$CC
CFLAGS=$CFLAGS
COMPILER=$compiler
COMPILER_STYLE=$compiler_style
DEPMM=$DEPMM
DEPMT=$DEPMT
LD=$LD
LDFLAGS=$LDFLAGS
LIBDAVS2=$LIBDAVS2
AR=$AR
RANLIB=$RANLIB
STRIP=$STRIP
INSTALL=$INSTALL
AS=$AS
ASFLAGS=$ASFLAGS
RC=$RC
RCFLAGS=$RCFLAGS
EXE=$EXE
HAVE_GETOPT_LONG=$HAVE_GETOPT_LONG
DEVNULL=$DEVNULL
PROF_GEN_CC=$PROF_GEN_CC
PROF_GEN_LD=$PROF_GEN_LD
PROF_USE_CC=$PROF_USE_CC
PROF_USE_LD=$PROF_USE_LD
HAVE_OPENCL=$opencl
EOF
if [ $compiler_style = MS ]; then
echo '%.o: %.c' >> config.mak
echo ' $(CC) $(CFLAGS) -c -Fo$@ $<' >> config.mak
fi
if [ "$cli" = "yes" ]; then
echo 'default: cli' >> config.mak
echo 'install: install-cli' >> config.mak
fi
if [ "$shared" = "yes" ]; then
API=$(grep '#define DAVS2_BUILD' < ${BUILDPATH}/davs2_config.h | sed 's/^.* \([1-9][0-9]*\).*$/\1/')
if [ "$SYS" = "WINDOWS" -o "$SYS" = "CYGWIN" ]; then
echo "SONAME=libdavs2-$API.dll" >> config.mak
if [ $compiler_style = MS ]; then
echo 'IMPLIBNAME=libdavs2.dll.lib' >> config.mak
# GNU ld on windows defaults to exporting all global functions if there are no explicit __declspec(dllexport) declarations
# MSVC link does not act similarly, so it is required to make an export definition out of davs2.h and use it at link time
echo "SOFLAGS=-dll -def:davs2.def -implib:\$(IMPLIBNAME) $SOFLAGS" >> config.mak
echo "EXPORTS" > davs2.def
# export API functions
grep "^\(int\|void\|davs2_t\).*davs2" ${SRCPATH}/davs2.h | sed -e "s/.*\(davs2.*\)(.*/\1/;s/open/open_$API/g" >> davs2.def
# export API variables/data. must be flagged with the DATA keyword
grep "extern.*davs2" ${SRCPATH}/davs2.h | sed -e "s/.*\(davs2\w*\)\W.*/\1 DATA/;" >> davs2.def
else
echo 'IMPLIBNAME=libdavs2.dll.a' >> config.mak
echo "SOFLAGS=-shared -Wl,--out-implib,\$(IMPLIBNAME) $SOFLAGS" >> config.mak
fi
elif [ "$SYS" = "MACOSX" ]; then
echo "SOSUFFIX=dylib" >> config.mak
echo "SONAME=libdavs2.$API.dylib" >> config.mak
echo "SOFLAGS=-shared -dynamiclib -Wl,-single_module -Wl,-read_only_relocs,suppress -install_name \$(DESTDIR)\$(libdir)/\$(SONAME) $SOFLAGS" >> config.mak
elif [ "$SYS" = "SunOS" ]; then
echo "SOSUFFIX=so" >> config.mak
echo "SONAME=libdavs2.so.$API" >> config.mak
echo "SOFLAGS=-shared -Wl,-h,\$(SONAME) $SOFLAGS" >> config.mak
else
echo "SOSUFFIX=so" >> config.mak
echo "SONAME=libdavs2.so.$API" >> config.mak
echo "SOFLAGS=-shared -Wl,-soname,\$(SONAME) $SOFLAGS" >> config.mak
fi
echo 'default: lib-shared' >> config.mak
echo 'install: install-lib-shared' >> config.mak
fi
if [ "$static" = "yes" ]; then
echo 'default: lib-static' >> config.mak
echo 'install: install-lib-static' >> config.mak
fi
echo "LDFLAGSCLI = $LDFLAGSCLI" >> config.mak
echo "CLI_LIBDAVS2 = $CLI_LIBDAVS2" >> config.mak
cat > davs2.pc << EOF
prefix=$prefix
exec_prefix=$exec_prefix
libdir=$libdir
includedir=$includedir
Name: davs2
Description: AVS2 (IEEE 1857.4) decoder library
Version: $(grep POINTVER < davs2_config.h | sed -e 's/.* "//; s/".*//')
Libs: -L$libdir -ldavs2 $([ "$shared" = "yes" ] || echo $libpthread $libm $libdl)
Libs.private: $([ "$shared" = "yes" ] && echo $libpthread $libm $libdl)
Cflags: -I$includedir
EOF
filters="crop select_every"
gpl_filters=""
[ $gpl = yes ] && filters="$filters $gpl_filters"
cat > conftest.log <<EOF
platform: $ARCH
byte order: $CPU_ENDIAN
system: $SYS
cli: $cli
libdavs2: $cli_libdavs2
shared: $shared
static: $static
asm: $asm
interlaced: $interlaced
gpl: $gpl
thread: $thread
opencl: $opencl
filters: $filters
lto: $lto
debug: $debug
gprof: $gprof
strip: $strip
PIC: $pic
bit depth: $bit_depth
chroma format: $chroma_format
EOF
echo >> config.log
cat conftest.log >> config.log
cat conftest.log
# [ "$SRCPATH" != "." ] && ln -sf ${SRCPATH}/Makefile ./Makefile
mkdir -p common/{aarch64,arm,ppc,x86,vec} test
echo
echo "You can run 'make' or 'make fprofiled' now."
================================================
FILE: build/vs2013/DAVS2.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "davs2", "davs2.vcxproj", "{852EFB9B-4E73-4E80-AA57-711ADCB132AE}"
ProjectSection(ProjectDependencies) = postProject
{34C0840A-BDE6-446B-B0DF-A8281A42825B} = {34C0840A-BDE6-446B-B0DF-A8281A42825B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdavs2", "libdavs2.vcxproj", "{34C0840A-BDE6-446B-B0DF-A8281A42825B}"
ProjectSection(ProjectDependencies) = postProject
{A9B37E3C-A8C7-4E24-BC2D-AB4D0804DAC1} = {A9B37E3C-A8C7-4E24-BC2D-AB4D0804DAC1}
{558555B9-A7B2-42D6-A298-BB5CC248541F} = {558555B9-A7B2-42D6-A298-BB5CC248541F}
{2E7A6EE4-927F-470A-A012-3B29EDB87906} = {2E7A6EE4-927F-470A-A012-3B29EDB87906}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdavs2_asm", "libdavs2_asm.vcxproj", "{A9B37E3C-A8C7-4E24-BC2D-AB4D0804DAC1}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdavs2_intrin_avx", "libdavs2_intrin_avx.vcxproj", "{558555B9-A7B2-42D6-A298-BB5CC248541F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdavs2_intrin_sse", "libdavs2_intrin_sse.vcxproj", "{2E7A6EE4-927F-470A-A012-3B29EDB87906}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{852EFB9B-4E73-4E80-AA57-711ADCB132AE}.Debug|Win32.ActiveCfg = Debug|Win32
{852EFB9B-4E73-4E80-AA57-711ADCB132AE}.Debug|Win32.Build.0 = Debug|Win32
{852EFB9B-4E73-4E80-AA57-711ADCB132AE}.Debug|x64.ActiveCfg = Debug|x64
{852EFB9B-4E73-4E80-AA57-711ADCB132AE}.Debug|x64.Build.0 = Debug|x64
{852EFB9B-4E73-4E80-AA57-711ADCB132AE}.Release|Win32.ActiveCfg = Release|Win32
{852EFB9B-4E73-4E80-AA57-711ADCB132AE}.Release|Win32.Build.0 = Release|Win32
{852EFB9B-4E73-4E80-AA57-711ADCB132AE}.Release|x64.ActiveCfg = Release|x64
{852EFB9B-4E73-4E80-AA57-711ADCB132AE}.Release|x64.Build.0 = Release|x64
{34C0840A-BDE6-446B-B0DF-A8281A42825B}.Debug|Win32.ActiveCfg = Debug|Win32
{34C0840A-BDE6-446B-B0DF-A8281A42825B}.Debug|Win32.Build.0 = Debug|Win32
{34C0840A-BDE6-446B-B0DF-A8281A42825B}.Debug|x64.ActiveCfg = Debug|x64
{34C0840A-BDE6-446B-B0DF-A8281A42825B}.Debug|x64.Build.0 = Debug|x64
{34C0840A-BDE6-446B-B0DF-A8281A42825B}.Release|Win32.ActiveCfg = Release|Win32
{34C0840A-BDE6-446B-B0DF-A8281A42825B}.Release|Win32.Build.0 = Release|Win32
{34C0840A-BDE6-446B-B0DF-A8281A42825B}.Release|x64.ActiveCfg = Release|x64
{34C0840A-BDE6-446B-B0DF-A8281A42825B}.Release|x64.Build.0 = Release|x64
{A9B37E3C-A8C7-4E24-BC2D-AB4D0804DAC1}.Debug|Win32.ActiveCfg = Debug|Win32
{A9B37E3C-A8C7-4E24-BC2D-AB4D0804DAC1}.Debug|Win32.Build.0 = Debug|Win32
{A9B37E3C-A8C7-4E24-BC2D-AB4D0804DAC1}.Debug|x64.ActiveCfg = Debug|x64
{A9B37E3C-A8C7-4E24-BC2D-AB4D0804DAC1}.Debug|x64.Build.0 = Debug|x64
{A9B37E3C-A8C7-4E24-BC2D-AB4D0804DAC1}.Release|Win32.ActiveCfg = Release|Win32
{A9B37E3C-A8C7-4E24-BC2D-AB4D0804DAC1}.Release|Win32.Build.0 = Release|Win32
{A9B37E3C-A8C7-4E24-BC2D-AB4D0804DAC1}.Release|x64.ActiveCfg = Release|x64
{A9B37E3C-A8C7-4E24-BC2D-AB4D0804DAC1}.Release|x64.Build.0 = Release|x64
{558555B9-A7B2-42D6-A298-BB5CC248541F}.Debug|Win32.ActiveCfg = Debug|Win32
{558555B9-A7B2-42D6-A298-BB5CC248541F}.Debug|Win32.Build.0 = Debug|Win32
{558555B9-A7B2-42D6-A298-BB5CC248541F}.Debug|x64.ActiveCfg = Debug|x64
{558555B9-A7B2-42D6-A298-BB5CC248541F}.Debug|x64.Build.0 = Debug|x64
{558555B9-A7B2-42D6-A298-BB5CC248541F}.Release|Win32.ActiveCfg = Release|Win32
{558555B9-A7B2-42D6-A298-BB5CC248541F}.Release|Win32.Build.0 = Release|Win32
{558555B9-A7B2-42D6-A298-BB5CC248541F}.Release|x64.ActiveCfg = Release|x64
{558555B9-A7B2-42D6-A298-BB5CC248541F}.Release|x64.Build.0 = Release|x64
{2E7A6EE4-927F-470A-A012-3B29EDB87906}.Debug|Win32.ActiveCfg = Debug|Win32
{2E7A6EE4-927F-470A-A012-3B29EDB87906}.Debug|Win32.Build.0 = Debug|Win32
{2E7A6EE4-927F-470A-A012-3B29EDB87906}.Debug|x64.ActiveCfg = Debug|x64
{2E7A6EE4-927F-470A-A012-3B29EDB87906}.Debug|x64.Build.0 = Debug|x64
{2E7A6EE4-927F-470A-A012-3B29EDB87906}.Release|Win32.ActiveCfg = Release|Win32
{2E7A6EE4-927F-470A-A012-3B29EDB87906}.Release|Win32.Build.0 = Release|Win32
{2E7A6EE4-927F-470A-A012-3B29EDB87906}.Release|x64.ActiveCfg = Release|x64
{2E7A6EE4-927F-470A-A012-3B29EDB87906}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
================================================
FILE: build/vs2013/davs2.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\source\test\getopt\getopt.c" />
<ClCompile Include="..\..\source\test\test.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\source\davs2.h" />
<ClInclude Include="..\..\source\test\inputstream.h" />
<ClInclude Include="..\..\source\test\getopt\getopt.h" />
<ClInclude Include="..\..\source\test\md5.h" />
<ClInclude Include="..\..\source\test\parse_args.h" />
<ClInclude Include="..\..\source\test\psnr.h" />
<ClInclude Include="..\..\source\test\utils.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{852EFB9B-4E73-4E80-AA57-711ADCB132AE}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<IntDir>$(SolutionDir)$(Platform)_$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>$(SolutionDir)..\bin\$(Platform)_$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<IntDir>$(SolutionDir)$(Platform)_$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>$(SolutionDir)..\bin\$(Platform)_$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<IntDir>$(SolutionDir)$(Platform)_$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>$(SolutionDir)..\bin\$(Platform)_$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<IntDir>$(SolutionDir)$(Platform)_$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>$(SolutionDir)..\bin\$(Platform)_$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>HIGH_BIT_DEPTH=0;WIN32;ARCH_X86_64=0;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderFile />
<AdditionalIncludeDirectories>..\..\;..\..\source;..\..\pthread;..\..\source\test\getopt;</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\</AdditionalLibraryDirectories>
<LargeAddressAware>true</LargeAddressAware>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>HIGH_BIT_DEPTH=0;WIN32;ARCH_X86_64=1;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>..\..\;..\..\source;..\..\pthread;..\..\source\test\getopt;</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>HIGH_BIT_DEPTH=0;WIN32;ARCH_X86_64=0;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderFile />
<AdditionalIncludeDirectories>..\..\;..\..\source;..\..\pthread;..\..\source\test\getopt;</AdditionalIncludeDirectories>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\</AdditionalLibraryDirectories>
<LargeAddressAware>true</LargeAddressAware>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>HIGH_BIT_DEPTH=0;WIN32;ARCH_X86_64=1;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>..\..\;..\..\source;..\..\pthread;..\..\source\test\getopt;</AdditionalIncludeDirectories>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\</AdditionalLibraryDirectories>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ProjectReference Include="libdavs2.vcxproj">
<Project>{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
================================================
FILE: build/vs2013/davs2.vcxproj.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="inc">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="src">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\source\test\psnr.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\..\source\test\utils.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\..\source\davs2.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\..\source\test\parse_args.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\..\source\test\getopt\getopt.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\..\source\test\inputstream.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\..\source\test\md5.h">
<Filter>inc</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\source\test\test.c">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\source\test\getopt\getopt.c">
<Filter>src</Filter>
</ClCompile>
</ItemGroup>
</Project>
================================================
FILE: build/vs2013/libdavs2.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\source\common\aec.cc" />
<ClCompile Include="..\..\source\common\alf.cc" />
<ClCompile Include="..\..\source\common\bitstream.cc" />
<ClCompile Include="..\..\source\common\block_info.cc" />
<ClCompile Include="..\..\source\common\common.cc" />
<ClCompile Include="..\..\source\common\davs2.cc" />
<ClCompile Include="..\..\source\common\cpu.cc" />
<ClCompile Include="..\..\source\common\cu.cc" />
<ClCompile Include="..\..\source\common\deblock.cc" />
<ClCompile Include="..\..\source\common\decoder.cc" />
<ClCompile Include="..\..\source\common\frame.cc" />
<ClCompile Include="..\..\source\common\header.cc" />
<ClCompile Include="..\..\source\common\intra.cc" />
<ClCompile Include="..\..\source\common\mc.cc" />
<ClCompile Include="..\..\source\common\memory.cc" />
<ClCompile Include="..\..\source\common\pixel.cc" />
<ClCompile Include="..\..\source\common\predict.cc" />
<ClCompile Include="..\..\source\common\primitives.cc" />
<ClCompile Include="..\..\source\common\quant.cc" />
<ClCompile Include="..\..\source\common\sao.cc" />
<ClCompile Include="..\..\source\common\threadpool.cc" />
<ClCompile Include="..\..\source\common\transform.cc" />
<ClCompile Include="..\..\source\common\win32thread.cc" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\source\common\win32thread.h" />
<ClInclude Include="..\..\source\configw.h" />
<ClInclude Include="..\..\source\davs2.h" />
<ClInclude Include="..\..\source\common\aec.h" />
<ClInclude Include="..\..\source\common\alf.h" />
<ClInclude Include="..\..\source\common\bitstream.h" />
<ClInclude Include="..\..\source\common\block_info.h" />
<ClInclude Include="..\..\source\common\common.h" />
<ClInclude Include="..\..\source\common\cpu.h" />
<ClInclude Include="..\..\source\common\cu.h" />
<ClInclude Include="..\..\source\common\deblock.h" />
<ClInclude Include="..\..\source\common\decoder.h" />
<ClInclude Include="..\..\source\common\defines.h" />
<ClInclude Include="..\..\source\common\frame.h" />
<ClInclude Include="..\..\source\common\header.h" />
<ClInclude Include="..\..\source\common\intra.h" />
<ClInclude Include="..\..\source\common\mc.h" />
<ClInclude Include="..\..\source\common\osdep.h" />
<ClInclude Include="..\..\source\common\predict.h" />
<ClInclude Include="..\..\source\common\primitives.h" />
<ClInclude Include="..\..\source\common\quant.h" />
<ClInclude Include="..\..\source\common\sao.h" />
<ClInclude Include="..\..\source\common\scantab.h" />
<ClInclude Include="..\..\source\common\threadpool.h" />
<ClInclude Include="..\..\source\common\transform.h" />
<ClInclude Include="..\..\source\common\vlc.h" />
<ClInclude Include="resource.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{34C0840A-BDE6-446B-B0DF-A8281A42825B}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)..\bin\$(Platform)_$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)$(Platform)_$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<IntDir>$(SolutionDir)$(Platform)_$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)..\bin\$(Platform)_$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)..\bin\$(Platform)_$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)$(Platform)_$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<IntDir>$(SolutionDir)$(Platform)_$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)..\bin\$(Platform)_$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>DAVS2_EXPORTS;HIGH_BIT_DEPTH=0;BIT_DEPTH=8;WIN32;ARCH_X86_64=0;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..\;..\..\source;..\..\pthread</AdditionalIncludeDirectories>
<PrecompiledHeaderFile />
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(OutDir)\</AdditionalLibraryDirectories>
<AdditionalDependencies>libdavs2_asm.lib;libdavs2_intrin_sse.lib;libdavs2_intrin_avx.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<LargeAddressAware>true</LargeAddressAware>
</Link>
<PreBuildEvent>
<Command>cd /d "$(SolutionDir)..\.." && sh version.sh</Command>
<Message>UpdateSourceVersionInfo</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>DAVS2_EXPORTS;HIGH_BIT_DEPTH=0;BIT_DEPTH=8;WIN32;ARCH_X86_64=1;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..\;..\..\source;..\..\pthread;$(CUDA_PATH)\include;$(AMD_APPSDK_PATH)\include;$(INTEL_OPENCL_SDK)\include;</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(OutDir)\;$(CUDA_PATH)\lib\$(Platform);$(INTEL_OPENCL_SDK)\lib\$(Platform);$(AMD_APPSDK_PATH)\lib\x64;%(AdditionalLibraryDirectories);</AdditionalLibraryDirectories>
<AdditionalDependencies>libdavs2_asm.lib;libdavs2_intrin_sse.lib;libdavs2_intrin_avx.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PreBuildEvent>
<Command>cd /d "$(SolutionDir)..\.." && sh version.sh</Command>
<Message>UpdateSourceVersionInfo</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>DAVS2_EXPORTS;HIGH_BIT_DEPTH=0;BIT_DEPTH=8;WIN32;ARCH_X86_64=0;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..\;..\..\source;..\..\pthread</AdditionalIncludeDirectories>
<PrecompiledHeaderFile />
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(OutDir)\</AdditionalLibraryDirectories>
<AdditionalDependencies>libdavs2_asm.lib;libdavs2_intrin_sse.lib;libdavs2_intrin_avx.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<LargeAddressAware>true</LargeAddressAware>
</Link>
<PreBuildEvent>
<Command>cd /d "$(SolutionDir)..\.." && sh version.sh</Command>
<Message>UpdateSourceVersionInfo</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>DAVS2_EXPORTS;HIGH_BIT_DEPTH=0;BIT_DEPTH=8;WIN32;ARCH_X86_64=1;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..\;..\..\source;..\..\pthread;$(CUDA_PATH)\include;$(AMD_APPSDK_PATH)\include;$(INTEL_OPENCL_SDK)\include;</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(OutDir)\;$(CUDA_PATH)\lib\$(Platform);$(INTEL_OPENCL_SDK)\lib\$(Platform);$(AMD_APPSDK_PATH)\lib\x64;%(AdditionalLibraryDirectories);</AdditionalLibraryDirectories>
<AdditionalDependencies>libdavs2_asm.lib;libdavs2_intrin_sse.lib;libdavs2_intrin_avx.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PreBuildEvent>
<Command>cd /d "$(SolutionDir)..\.." && sh version.sh</Command>
<Message>UpdateSourceVersionInfo</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
================================================
FILE: build/vs2013/libdavs2.vcxproj.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="inc">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="src">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="res">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\source\common\aec.cc">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\source\common\alf.cc">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\source\common\bitstream.cc">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\source\common\block_info.cc">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\source\common\common.cc">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\source\common\cu.cc">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\source\common\deblock.cc">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\source\common\header.cc">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\source\common\intra.cc">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\source\common\mc.cc">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\source\common\sao.cc">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\source\common\transform.cc">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\source\common\decoder.cc">
<Filte
gitextract_ha5u9txv/ ├── .gitattributes ├── .github/ │ └── ISSUE_TEMPLATE/ │ ├── ----.md │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── .travis.yml ├── COPYING ├── README.md ├── README.zh.md ├── appveyor.yml ├── build/ │ ├── linux/ │ │ ├── Makefile │ │ ├── config.guess │ │ ├── config.sub │ │ └── configure │ └── vs2013/ │ ├── DAVS2.sln │ ├── davs2.vcxproj │ ├── davs2.vcxproj.filters │ ├── libdavs2.vcxproj │ ├── libdavs2.vcxproj.filters │ ├── libdavs2_asm.vcxproj │ ├── libdavs2_asm.vcxproj.filters │ ├── libdavs2_intrin_avx.vcxproj │ ├── libdavs2_intrin_avx.vcxproj.filters │ ├── libdavs2_intrin_sse.vcxproj │ ├── libdavs2_intrin_sse.vcxproj.filters │ ├── nasm.props │ ├── nasm.targets │ └── nasm.xml ├── source/ │ ├── common/ │ │ ├── aec.cc │ │ ├── aec.h │ │ ├── alf.cc │ │ ├── alf.h │ │ ├── bitstream.cc │ │ ├── bitstream.h │ │ ├── block_info.cc │ │ ├── block_info.h │ │ ├── common.cc │ │ ├── common.h │ │ ├── cpu.cc │ │ ├── cpu.h │ │ ├── cu.cc │ │ ├── cu.h │ │ ├── davs2.cc │ │ ├── deblock.cc │ │ ├── deblock.h │ │ ├── decoder.cc │ │ ├── decoder.h │ │ ├── defines.h │ │ ├── frame.cc │ │ ├── frame.h │ │ ├── header.cc │ │ ├── header.h │ │ ├── intra.cc │ │ ├── intra.h │ │ ├── mc.cc │ │ ├── mc.h │ │ ├── memory.cc │ │ ├── osdep.h │ │ ├── pixel.cc │ │ ├── predict.cc │ │ ├── predict.h │ │ ├── primitives.cc │ │ ├── primitives.h │ │ ├── quant.cc │ │ ├── quant.h │ │ ├── sao.cc │ │ ├── sao.h │ │ ├── scantab.h │ │ ├── threadpool.cc │ │ ├── threadpool.h │ │ ├── transform.cc │ │ ├── transform.h │ │ ├── vec/ │ │ │ ├── intrinsic.cc │ │ │ ├── intrinsic.h │ │ │ ├── intrinsic_alf.cc │ │ │ ├── intrinsic_deblock.cc │ │ │ ├── intrinsic_deblock_avx2.cc │ │ │ ├── intrinsic_idct.cc │ │ │ ├── intrinsic_idct_avx2.cc │ │ │ ├── intrinsic_inter_pred.cc │ │ │ ├── intrinsic_inter_pred_avx2.cc │ │ │ ├── intrinsic_intra-filledge.cc │ │ │ ├── intrinsic_intra-pred.cc │ │ │ ├── intrinsic_intra-pred_avx2.cc │ │ │ ├── intrinsic_pixel.cc │ │ │ ├── intrinsic_pixel_avx.cc │ │ │ ├── intrinsic_sao.cc │ │ │ └── intrinsic_sao_avx2.cc │ │ ├── vlc.h │ │ ├── win32thread.cc │ │ ├── win32thread.h │ │ └── x86/ │ │ ├── blockcopy8.asm │ │ ├── const-a.asm │ │ ├── cpu-a.asm │ │ ├── dct8.asm │ │ ├── dct8.h │ │ ├── ipfilter8.asm │ │ ├── ipfilter8.h │ │ ├── mc-a2.asm │ │ ├── pixeladd8.asm │ │ ├── quant8.asm │ │ ├── x86inc.asm │ │ └── x86util.asm │ ├── configw.h │ ├── davs2.h │ └── test/ │ ├── getopt/ │ │ ├── getopt.c │ │ └── getopt.h │ ├── inputstream.h │ ├── md5.h │ ├── parse_args.h │ ├── psnr.h │ ├── test.c │ └── utils.h └── version.sh
SYMBOL INDEX (644 symbols across 56 files)
FILE: source/common/aec.cc
type aec_const_e (line 139) | enum aec_const_e {
function ALWAYS_INLINE (line 158) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 217) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 244) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 266) | static ALWAYS_INLINE
function init_aec_context_tab (line 294) | void init_aec_context_tab(void)
function aec_start_decoding (line 356) | int aec_start_decoding(aec_t *p_aec, uint8_t *p_start, int i_byte_pos, i...
function aec_bits_read (line 383) | int aec_bits_read(aec_t *p_aec)
function INLINE (line 390) | static INLINE
function INLINE (line 473) | static INLINE
function INLINE (line 516) | static INLINE
function INLINE (line 591) | static INLINE
function biari_decode_symbol_continu0_ext (line 676) | static
function unary_bin_max_decode (line 761) | static int unary_bin_max_decode(aec_t *p_aec, context_t *ctx, int ctx_of...
function aec_init_contexts (line 782) | void aec_init_contexts(aec_t *p_aec)
function aec_new_slice (line 796) | void aec_new_slice(davs2_t *h)
function aec_read_dmh_mode (line 803) | int aec_read_dmh_mode(aec_t *p_aec, int i_cu_level)
function INLINE (line 832) | static INLINE
function aec_read_mvds (line 885) | void aec_read_mvds(aec_t *p_aec, mv_t *p_mvd)
function INLINE (line 895) | static INLINE
function INLINE (line 904) | static INLINE
function ALWAYS_INLINE (line 917) | static ALWAYS_INLINE int cu_set_tu_split_type(davs2_t *h, cu_t *p_cu, in...
function aec_read_intra_cu_type (line 949) | int aec_read_intra_cu_type(aec_t *p_aec, cu_t *p_cu, int b_sdip, davs2_t...
function aec_read_cu_type (line 988) | int aec_read_cu_type(aec_t *p_aec, cu_t *p_cu, int img_type, int b_amp, ...
function aec_read_cu_type_sframe (line 1079) | int aec_read_cu_type_sframe(aec_t *p_aec)
function INLINE (line 1109) | static INLINE
function INLINE (line 1218) | static INLINE
function INLINE (line 1261) | static INLINE void cu_set_pdir_PFframe(cu_t *p_cu, int pdir)
function INLINE (line 1292) | static INLINE void cu_set_pdir_Bframe(cu_t *p_cu, int pdir)
function INLINE (line 1342) | static INLINE
function INLINE (line 1366) | static INLINE
function aec_read_inter_pred_dir (line 1402) | void aec_read_inter_pred_dir(aec_t * p_aec, cu_t *p_cu, davs2_t *h)
function aec_read_intra_pmode (line 1441) | int aec_read_intra_pmode(aec_t * p_aec)
function INLINE (line 1466) | static INLINE
function aec_read_ctp_y (line 1494) | static int aec_read_ctp_y(davs2_t *h, aec_t *p_aec, int b8, cu_t *p_cu, ...
function INLINE (line 1544) | static INLINE
function cu_read_cbp (line 1655) | int cu_read_cbp(davs2_t *h, aec_t *p_aec, cu_t *p_cu, int scu_x, int scu_y)
function aec_read_intra_pmode_c (line 1693) | int aec_read_intra_pmode_c(aec_t *p_aec, davs2_t *h, int luma_mode)
function INLINE (line 1723) | static INLINE
function INLINE (line 1798) | static INLINE
function ALWAYS_INLINE (line 1838) | static ALWAYS_INLINE
function aec_read_run_luma1 (line 1863) | static
function aec_read_run_luma2 (line 1892) | static
function aec_read_run_chroma (line 1922) | static
function aec_read_run_level (line 1951) | static
function cu_get_block_coeffs (line 2165) | int8_t cu_get_block_coeffs(aec_t *p_aec, runlevel_t *runlevel,
function aec_startcode_follows (line 2192) | int aec_startcode_follows(aec_t *p_aec, int eos_bit)
function aec_read_split_flag (line 2212) | int aec_read_split_flag(aec_t *p_aec, int i_level)
function ALWAYS_INLINE (line 2226) | static ALWAYS_INLINE int read_sao_mergeflag(aec_t *p_aec, int act_ctx)
function aec_read_sao_mergeflag (line 2244) | int aec_read_sao_mergeflag(aec_t *p_aec, int mergeleft_avail, int mergeu...
function aec_read_sao_mode (line 2265) | int aec_read_sao_mode(aec_t *p_aec)
function ALWAYS_INLINE (line 2282) | static ALWAYS_INLINE int read_sao_offset(aec_t *p_aec, int offset_type)
function aec_read_sao_offsets (line 2323) | void aec_read_sao_offsets(aec_t *p_aec, sao_param_t *p_sao_param, int *o...
function ALWAYS_INLINE (line 2342) | static ALWAYS_INLINE int read_sao_type(aec_t *p_aec, int act_ctx)
function aec_read_sao_type (line 2400) | int aec_read_sao_type(aec_t *p_aec, sao_param_t *p_sao_param)
function aec_read_alf_lcu_ctrl (line 2419) | int aec_read_alf_lcu_ctrl(aec_t *p_aec)
FILE: source/common/alf.cc
function alf_recon_coefficients (line 52) | static void alf_recon_coefficients(alf_param_t *p_alf_param, int p_filte...
function alf_init_var_table (line 71) | static void alf_init_var_table(alf_param_t *p_alf_param, int *p_var_tab)
function alf_filter_block1 (line 87) | static
function alf_filter_block2 (line 158) | static
function deriveBoundaryAvail (line 276) | static void deriveBoundaryAvail(davs2_t *h, int lcu_xy, int width_in_lcu...
function alf_param_init (line 299) | static void alf_param_init(alf_param_t *alf_par, int cID)
function alf_get_buffer_size (line 316) | size_t alf_get_buffer_size(davs2_t *h)
function alf_init_buffer (line 326) | void alf_init_buffer(davs2_t *h)
function vlc_read_alf_coeff (line 357) | static void vlc_read_alf_coeff(davs2_bs_t *bs, alf_param_t *alf_param)
function alf_read_param (line 402) | void alf_read_param(davs2_t *h, davs2_bs_t *bs)
function alf_lcu_block (line 424) | static void alf_lcu_block(davs2_t *h, alf_param_t *p_alf_param, davs2_fr...
function alf_lcurow (line 491) | void alf_lcurow(davs2_t *h, alf_param_t *p_alf_param, davs2_frame_t *p_t...
function davs2_alf_init (line 507) | void davs2_alf_init(uint32_t cpuid, ao_funcs_t *fh)
FILE: source/common/bitstream.cc
function bs_init (line 54) | void bs_init(davs2_bs_t *bs, uint8_t *p_data, int i_data)
function bs_align (line 63) | void bs_align(davs2_bs_t *bs)
function bs_left_bytes (line 70) | int bs_left_bytes(davs2_bs_t *bs)
function found_slice_header (line 82) | int found_slice_header(davs2_bs_t *bs)
function bs_get_start_code (line 100) | int bs_get_start_code(davs2_bs_t *bs)
function bs_dispose_pseudo_code (line 130) | int bs_dispose_pseudo_code(uint8_t *dst, uint8_t *src, int i_src)
function find_pic_start_code (line 229) | int32_t
FILE: source/common/block_info.cc
function ALWAYS_INLINE (line 51) | static ALWAYS_INLINE
function get_neighbor_cbp_y (line 70) | int get_neighbor_cbp_y(davs2_t *h, int x_4x4, int y_4x4, int scu_x, int ...
FILE: source/common/common.cc
function avs2_trace_init (line 79) | int avs2_trace_init(davs2_t *h, char *psz_trace_file)
function avs2_trace_destroy (line 98) | void avs2_trace_destroy(void)
function avs2_trace (line 107) | int avs2_trace(const char *psz_fmt, ...)
function avs2_trace_string (line 124) | void avs2_trace_string(char *trace_string, int value, int len)
function avs2_trace_string2 (line 172) | void avs2_trace_string2(char *trace_string, int bit_pattern, int value, ...
function xl_init (line 212) | int xl_init(xlist_t *const xlist)
function xl_destroy (line 237) | void xl_destroy(xlist_t *const xlist)
function xl_append (line 253) | void xl_append(xlist_t *const xlist, void *node)
function ALWAYS_INLINE (line 355) | static ALWAYS_INLINE
function davs2_log_default (line 371) | static void
function davs2_log (line 417) | void davs2_log(void *handle, int level, const char *format, ...)
FILE: source/common/common.h
type pel_t (line 63) | typedef uint16_t pel_t;
type pel4_t (line 64) | typedef uint64_t pel4_t;
type itr_t (line 65) | typedef int32_t itr_t;
type pel_t (line 67) | typedef uint8_t pel_t;
type pel4_t (line 68) | typedef uint32_t pel4_t;
type itr_t (line 69) | typedef int16_t itr_t;
type coeff_t (line 72) | typedef int16_t coeff_t;
type mct_t (line 73) | typedef int16_t mct_t;
type bool_t (line 74) | typedef uint8_t bool_t;
type cu_t (line 76) | typedef struct cu_t cu_t;
type davs2_log_t (line 77) | typedef struct davs2_log_t davs2_log_t;
type davs2_t (line 78) | typedef struct davs2_t davs2_t;
type davs2_mgr_t (line 79) | typedef struct davs2_mgr_t davs2_mgr_t;
type davs2_outpic_t (line 80) | typedef struct davs2_outpic_t davs2_outpic_t;
function ALWAYS_INLINE (line 100) | static ALWAYS_INLINE int DAVS2_MAX(int a, int b)
function ALWAYS_INLINE (line 104) | static ALWAYS_INLINE int DAVS2_MIN(int a, int b)
function ALWAYS_INLINE (line 111) | static ALWAYS_INLINE int DAVS2_CLIP3(int L, int H, int v)
type task_status_t (line 164) | enum task_status_t {
type coding_type_e (line 171) | enum coding_type_e {
type pic_struct_e (line 179) | enum pic_struct_e {
type start_code_e (line 200) | enum start_code_e {
type cu_pred_mode_e (line 215) | enum cu_pred_mode_e {
type tu_split_type_e (line 247) | enum tu_split_type_e {
type PU_PART (line 259) | enum PU_PART {
type dct_pattern_e (line 278) | enum dct_pattern_e {
type context_mode_e (line 289) | enum context_mode_e {
type img_component_index_e (line 298) | enum img_component_index_e {
type inter_pred_direction_e (line 308) | enum inter_pred_direction_e {
type neighbor_block_pos_e (line 317) | enum neighbor_block_pos_e {
type direct_skip_mode_e (line 331) | enum direct_skip_mode_e {
type intra_avail_e (line 353) | enum intra_avail_e {
type sao_mode_e (line 366) | enum sao_mode_e {
type sao_mode_merge_type_e (line 375) | enum sao_mode_merge_type_e {
type sao_mode_type_e (line 384) | enum sao_mode_type_e {
type sao_EO_classes_e (line 396) | enum sao_EO_classes_e {
type node_t (line 455) | typedef struct node_t node_t;
type node_t (line 456) | struct node_t {
type xlist_t (line 464) | typedef struct xlist_t {
type context_t (line 479) | typedef union context_t {
type context_set_t (line 491) | typedef struct context_set_t {
type davs2_bs_t (line 526) | typedef struct davs2_bs_t {
type sao_param_t (line 538) | typedef struct sao_param_t {
type sao_t (line 549) | typedef struct sao_t {
type alf_param_t (line 556) | typedef struct alf_param_t {
type alf_var_t (line 565) | typedef struct alf_var_t {
type ref_idx_t (line 574) | typedef union ref_idx_t {
type mv_t (line 583) | typedef union mv_t {
type cb_t (line 595) | typedef union cb_t {
type neighbor_inter_t (line 608) | typedef struct neighbor_inter_t {
type aec_t (line 618) | typedef struct aec_t {
type rps_t (line 645) | typedef struct rps_t {
type davs2_seq_t (line 657) | typedef struct davs2_seq_t {
type davs2_frame_t (line 691) | typedef struct davs2_frame_t {
type weighted_quant_t (line 742) | typedef struct weighted_quant_t {
type runlevel_pair_t (line 758) | typedef struct runlevel_pair_t {
type runlevel_t (line 765) | typedef struct runlevel_t {
type lcu_rec_info_t (line 789) | typedef struct lcu_rec_info_t {
type lcu_info_t (line 796) | typedef struct lcu_info_t {
type cu_t (line 807) | struct cu_t {
type davs2_outpic_t (line 849) | struct davs2_outpic_t {
type davs2_output_t (line 863) | typedef struct davs2_output_t {
type es_unit_t (line 875) | typedef struct es_unit_t {
type davs2_task_t (line 888) | typedef struct davs2_task_t {
type davs2_log_t (line 898) | struct davs2_log_t {
type davs2_mgr_t (line 906) | struct davs2_mgr_t {
type davs2_row_rec_t (line 957) | typedef struct davs2_row_rec_t {
type davs2_t (line 1002) | struct davs2_t {
function ALWAYS_INLINE (line 1236) | static ALWAYS_INLINE void *davs2_malloc(size_t i_size)
function ALWAYS_INLINE (line 1257) | static ALWAYS_INLINE void *davs2_calloc(size_t count, size_t size)
function ALWAYS_INLINE (line 1266) | static ALWAYS_INLINE void davs2_free(void *ptr)
function ALWAYS_INLINE (line 1282) | static ALWAYS_INLINE
function davs2_clz (line 1311) | static int ALWAYS_INLINE davs2_clz(const uint32_t x)
function davs2_ctz (line 1318) | static int ALWAYS_INLINE davs2_ctz(const uint32_t x)
function davs2_clz (line 1326) | static int ALWAYS_INLINE davs2_clz(uint32_t x)
function davs2_ctz (line 1338) | static int ALWAYS_INLINE davs2_ctz(uint32_t x)
function ALWAYS_INLINE (line 1351) | static ALWAYS_INLINE pel_t davs2_clip_pixel(int x)
function ALWAYS_INLINE (line 1356) | static ALWAYS_INLINE int davs2_clip3(int v, int i_min, int i_max)
function ALWAYS_INLINE (line 1361) | static ALWAYS_INLINE int davs2_median(int a, int b, int c)
function ALWAYS_INLINE (line 1374) | static ALWAYS_INLINE int davs2_sign2(int val)
function ALWAYS_INLINE (line 1380) | static ALWAYS_INLINE int davs2_sign3(int val)
type davs2_union16_t (line 1395) | typedef union {
type davs2_union32_t (line 1400) | typedef union {
type davs2_union64_t (line 1406) | typedef union {
FILE: source/common/cpu.cc
function sigill_handler (line 59) | static void sigill_handler(int sig)
function davs2_cpu_detect (line 175) | uint32_t davs2_cpu_detect(void)
function davs2_cpu_num_processors (line 389) | int davs2_cpu_num_processors(void)
FILE: source/common/cu.cc
function INLINE (line 132) | static INLINE
function ALWAYS_INLINE (line 143) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 217) | static ALWAYS_INLINE
function cu_get_neighbors (line 240) | static void cu_get_neighbors(davs2_t *h, cu_t *p_cu, int pix_x, int pix_...
function INLINE (line 268) | static INLINE
function INLINE (line 298) | static INLINE
function cu_read_intrapred_mode_luma (line 323) | static int cu_read_intrapred_mode_luma(davs2_t *h, aec_t *p_aec, cu_t *p...
function cu_store_references (line 392) | static
function cu_read_mv (line 432) | static int cu_read_mv(davs2_t *h, aec_t *p_aec, int i_level, int scu_xy,...
function cu_read_all_coeffs (line 599) | static int cu_read_all_coeffs(davs2_t *h, aec_t *p_aec, cu_t *p_cu)
function cu_read_header (line 736) | static
function cu_read_info (line 822) | static int cu_read_info(davs2_t *h, cu_t *p_cu, int i_level, int scu_xy,...
function decoder_wait_lcu_row (line 887) | void decoder_wait_lcu_row(davs2_t *h, davs2_frame_t *frame, int line)
function decoder_wait_row (line 905) | void decoder_wait_row(davs2_t *h, davs2_frame_t *frame, int max_y_in_pic)
function INLINE (line 919) | static INLINE
function INLINE (line 937) | static INLINE
function davs2_get_inter_pred (line 947) | static int davs2_get_inter_pred(davs2_t *h, davs2_row_rec_t *row_rec, cu...
function cu_recon (line 1106) | static int cu_recon(davs2_t *h, davs2_row_rec_t *row_rec, cu_t *p_cu, in...
function ALWAYS_INLINE (line 1181) | static ALWAYS_INLINE void
function decode_lcu_init (line 1193) | void decode_lcu_init(davs2_t *h, int i_lcu_x, int i_lcu_y)
function rowrec_lcu_init (line 1236) | void rowrec_lcu_init(davs2_t *h, davs2_row_rec_t *row_rec, int i_lcu_x, ...
function decode_lcu_parse (line 1294) | int decode_lcu_parse(davs2_t *h, int i_level, int pix_x, int pix_y)
function decode_lcu_recon (line 1339) | int decode_lcu_recon(davs2_t *h, davs2_row_rec_t *row_rec, int i_level, ...
FILE: source/common/davs2.cc
function es_unit_t (line 65) | static es_unit_t *
function es_unit_free (line 89) | static void
function es_unit_t (line 100) | static
function destroy_all_lists (line 156) | static void
function create_all_lists (line 191) | static int
function output_list_recycle_picture (line 222) | static
function has_new_output_frame (line 232) | static
function davs2_outpic_t (line 244) | static
function decoder_get_output (line 310) | int decoder_get_output(davs2_mgr_t *mgr, davs2_seq_info_t *headerset, da...
function DAVS2_API (line 369) | DAVS2_API void
function davs2_t (line 393) | static davs2_t *task_get_free_task(davs2_mgr_t *mgr)
function task_unload_packet (line 415) | void task_unload_packet(davs2_t *h, es_unit_t *es_unit)
function DAVS2_API (line 439) | DAVS2_API void *
function decoder_decode_es_unit (line 583) | int decoder_decode_es_unit(davs2_mgr_t *mgr, es_unit_t *es_unit)
function DAVS2_API (line 626) | DAVS2_API int
function DAVS2_API (line 692) | DAVS2_API int
function DAVS2_API (line 715) | DAVS2_API int
function DAVS2_API (line 768) | DAVS2_API void
FILE: source/common/deblock.cc
type edge_direction_e (line 73) | enum edge_direction_e {
type edge_type_e (line 81) | enum edge_type_e {
function lf_set_edge_filter_param (line 89) | static void lf_set_edge_filter_param(davs2_t *h, int i_level, int scu_x,...
function lf_lcu_set_edge_filter (line 143) | static void lf_lcu_set_edge_filter(davs2_t *h, int i_level, int scu_x, i...
function lf_skip_filter (line 257) | static uint8_t lf_skip_filter(davs2_t *h, cu_t *scuP, cu_t *scuQ, int di...
function lf_edge_core (line 283) | static void lf_edge_core(pel_t *src, int b_chroma, int ptr_inc, int inc1...
function deblock_edge_hor (line 366) | static void deblock_edge_hor(pel_t *src, int stride, int alpha, int beta...
function deblock_edge_ver (line 373) | static void deblock_edge_ver(pel_t *src, int stride, int alpha, int beta...
function deblock_edge_ver_c (line 383) | static void deblock_edge_ver_c(pel_t *src_u, pel_t *src_v, int stride, i...
function deblock_edge_hor_c (line 400) | static void deblock_edge_hor_c(pel_t *src_u, pel_t *src_v, int stride, i...
function lf_scu_deblock (line 415) | static void lf_scu_deblock(davs2_t *h, pel_t *p_dec[3], int stride, int ...
function davs2_lcu_deblock (line 492) | void davs2_lcu_deblock(davs2_t *h, davs2_frame_t *frm, int i_lcu_x, int ...
function davs2_deblock_init (line 552) | void davs2_deblock_init(uint32_t cpuid, ao_funcs_t* fh)
FILE: source/common/decoder.cc
function init_frame (line 67) | static void init_frame(davs2_t *h)
function INLINE (line 123) | static INLINE
function INLINE (line 141) | static INLINE
function save_mv_ref_info (line 161) | static void save_mv_ref_info(davs2_t *h, int row)
function davs2_outpic_t (line 199) | static davs2_outpic_t *get_one_free_picture(davs2_mgr_t *mgr, int w, int h)
function ALWAYS_INLINE (line 227) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 244) | static ALWAYS_INLINE
function decoder_signal (line 261) | static void decoder_signal(davs2_t *h, davs2_frame_t *frame, int line)
function task_send_picture_to_output_list (line 277) | static
function task_output_decoding_frame (line 316) | static
function ALWAYS_INLINE (line 350) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 376) | static ALWAYS_INLINE
function decode_one_lcu_row (line 397) | static int decode_one_lcu_row(davs2_t *h, davs2_bs_t *bs, int i_lcu_y)
function decode_one_lcu_row_parse (line 538) | static int decode_one_lcu_row_parse(davs2_t *h, davs2_bs_t *bs, int i_lc...
function decode_lcu_row_recon (line 596) | static int decode_lcu_row_recon(davs2_t *h, int i_lcu_y)
function decode_user_data (line 737) | static void decode_user_data(davs2_t *h, davs2_bs_t *bs)
function decoder_free_extra_buffer (line 774) | void decoder_free_extra_buffer(davs2_t *h)
function decoder_alloc_extra_buffer (line 805) | int decoder_alloc_extra_buffer(davs2_t *h)
function davs2_write_a_frame (line 940) | void davs2_write_a_frame(davs2_picture_t *pic, davs2_frame_t *frame)
function davs2_t (line 1069) | davs2_t *decoder_open(davs2_mgr_t *mgr, davs2_t *h, int idx_decoder)
function decoder_close (line 1202) | void decoder_close(davs2_t *h)
FILE: source/common/defines.h
type chroma_format_e (line 79) | enum chroma_format_e {
type intra_pred_mode_e (line 142) | enum intra_pred_mode_e {
type intra_chroma_pred_mode_e (line 172) | enum intra_chroma_pred_mode_e {
FILE: source/common/frame.cc
function ALWAYS_INLINE (line 46) | static ALWAYS_INLINE
function pad_line_lcu (line 93) | void pad_line_lcu(davs2_t *h, int lcu_y)
function ALWAYS_INLINE (line 150) | static ALWAYS_INLINE int
function ALWAYS_INLINE (line 163) | static ALWAYS_INLINE int
function davs2_frame_get_size (line 175) | size_t davs2_frame_get_size(int width, int height, int chroma_format, in...
function davs2_frame_t (line 216) | davs2_frame_t *davs2_frame_new(int width, int height, int chroma_format,...
function davs2_frame_destroy (line 354) | void davs2_frame_destroy(davs2_frame_t *frame)
function davs2_frame_copy_planes (line 377) | void davs2_frame_copy_planes(davs2_frame_t *p_dst, davs2_frame_t *p_src)
function davs2_frame_copy_properties (line 400) | void davs2_frame_copy_properties(davs2_frame_t *p_dst, davs2_frame_t *p_...
function davs2_frame_copy_lcu (line 407) | void davs2_frame_copy_lcu(davs2_t *h, davs2_frame_t *p_dst, davs2_frame_...
function davs2_frame_copy_lcurow (line 466) | void davs2_frame_copy_lcurow(davs2_t *h, davs2_frame_t *p_dst, davs2_fra...
FILE: source/common/header.cc
type extension_id_e (line 90) | enum extension_id_e {
function INLINE (line 109) | static INLINE int is_valid_qp(davs2_t *h, int i_qp)
function davs2_reconfigure_decoder (line 117) | static
function parse_sequence_header (line 126) | static
function INLINE (line 293) | static INLINE
function parse_picture_header_intra (line 315) | static int parse_picture_header_intra(davs2_t *h, davs2_bs_t *bs)
function parse_picture_header_inter (line 500) | static int parse_picture_header_inter(davs2_t *h, davs2_bs_t *bs)
function parse_picture_header (line 697) | static
function parse_slice_header (line 769) | void parse_slice_header(davs2_t *h, davs2_bs_t *bs)
function davs2_outpic_t (line 821) | davs2_outpic_t *alloc_picture(int w, int h)
function free_picture (line 863) | void free_picture(davs2_outpic_t *pic)
function destroy_dpb (line 873) | void destroy_dpb(davs2_mgr_t *mgr)
function INLINE (line 902) | static INLINE
function init_fdec (line 941) | static void init_fdec(davs2_t *h, int64_t pts, int64_t dts)
function task_decoder_update (line 991) | int task_decoder_update(davs2_t *h)
function task_set_sequence_head (line 1078) | static
function clean_one_frame (line 1126) | void clean_one_frame(davs2_frame_t *frame)
function release_one_frame (line 1136) | void release_one_frame(davs2_frame_t *frame)
function task_release_frames (line 1167) | void task_release_frames(davs2_t *h)
function has_blocking (line 1186) | int has_blocking(davs2_mgr_t *mgr)
function task_get_references (line 1243) | int task_get_references(davs2_t *h, int64_t pts, int64_t dts)
function parse_header (line 1490) | int parse_header(davs2_t *h, davs2_bs_t *p_bs)
FILE: source/common/intra.cc
function ALWAYS_INLINE (line 263) | static ALWAYS_INLINE int is_block_available(davs2_t *h, int x_4x4, int y...
function ALWAYS_INLINE (line 277) | static ALWAYS_INLINE
function intra_pred_ver_c (line 327) | static void intra_pred_ver_c(pel_t *src, pel_t *dst, int i_dst, int mode...
function intra_pred_hor_c (line 342) | static void intra_pred_hor_c(pel_t *src, pel_t *dst, int i_dst, int mode...
function intra_pred_dc_c (line 359) | static void intra_pred_dc_c(pel_t *src, pel_t *dst, int i_dst, int mode,...
function intra_pred_plane_c (line 412) | static void intra_pred_plane_c(pel_t *src, pel_t *dst, int i_dst, int mo...
function intra_pred_bilinear_c (line 464) | static void intra_pred_bilinear_c(pel_t *src, pel_t *dst, int i_dst, int...
function get_context_pixel (line 525) | static int get_context_pixel(int mode, int uiXYflag, int iTempD, int *of...
function intra_pred_ang_x_c (line 538) | static void intra_pred_ang_x_c(pel_t *src, pel_t *dst, int i_dst, int di...
function intra_pred_ang_y_c (line 589) | static void intra_pred_ang_y_c(pel_t *src, pel_t *dst, int i_dst, int di...
function intra_pred_ang_xy_c (line 636) | static void intra_pred_ang_xy_c(pel_t *src, pel_t *dst, int i_dst, int d...
function intra_pred_ang_x_5_c (line 798) | static void intra_pred_ang_x_5_c(pel_t *src, pel_t *dst, int i_dst, int ...
function intra_pred_ang_x_7_c (line 1187) | static void intra_pred_ang_x_7_c(pel_t *src, pel_t *dst, int i_dst, int ...
function intra_pred_ang_x_9_c (line 1273) | static void intra_pred_ang_x_9_c(pel_t *src, pel_t *dst, int i_dst, int ...
function intra_pred_ang_x_10_c (line 1420) | static void intra_pred_ang_x_10_c(pel_t *src, pel_t *dst, int i_dst, int...
function intra_pred_ang_x_11_c (line 1470) | static void intra_pred_ang_x_11_c(pel_t *src, pel_t *dst, int i_dst, int...
function intra_pred_ang_y_25_c (line 1549) | static void intra_pred_ang_y_25_c(pel_t *src, pel_t *dst, int i_dst, int...
function intra_pred_ang_y_26_c (line 1598) | static void intra_pred_ang_y_26_c(pel_t *src, pel_t *dst, int i_dst, int...
function intra_pred_ang_y_27_c (line 1631) | static void intra_pred_ang_y_27_c(pel_t *src, pel_t *dst, int i_dst, int...
function intra_pred_ang_y_29_c (line 1706) | static void intra_pred_ang_y_29_c(pel_t *src, pel_t *dst, int i_dst, int...
function fill_reference_samples_y_c (line 2364) | static
function fill_reference_samples_xy_c (line 2430) | static
function davs2_get_intra_pred (line 2507) | void davs2_get_intra_pred(davs2_row_rec_t *row_rec, cu_t *p_cu, int pred...
function davs2_get_intra_pred_chroma (line 2537) | void davs2_get_intra_pred_chroma(davs2_row_rec_t *row_rec, cu_t *p_cu, i...
function davs2_intra_pred_init (line 2577) | void davs2_intra_pred_init(uint32_t cpuid, ao_funcs_t *pf)
FILE: source/common/intra.h
function ALWAYS_INLINE (line 41) | static ALWAYS_INLINE
FILE: source/common/mc.cc
function ALIGN16 (line 60) | ALIGN16(static const int8_t INTPL_FILTERS[4][8]) = {
function mc_luma (line 502) | void mc_luma(davs2_t *h, pel_t *dst, int i_dst, int posx, int posy, int ...
function mc_chroma (line 537) | void mc_chroma(davs2_t *h, pel_t *dst, int i_dst, int posx, int posy, in...
function davs2_pixel_average_c (line 573) | static void davs2_pixel_average_c(pel_t *dst, int i_dst, const pel_t *sr...
function davs2_mc_init (line 632) | void davs2_mc_init(uint32_t cpuid, ao_funcs_t *pf)
FILE: source/common/memory.cc
function davs2_memory_init (line 49) | void davs2_memory_init(uint32_t cpuid, ao_funcs_t* pf)
FILE: source/common/osdep.h
function avs2dec_pthread_create (line 251) | static int ALWAYS_INLINE
function davs2_is_regular_file (line 367) | static int ALWAYS_INLINE davs2_is_regular_file(int filehandle)
function davs2_is_regular_file_path (line 376) | static int ALWAYS_INLINE davs2_is_regular_file_path(const char *filename)
FILE: source/common/pixel.cc
function davs2_pixel_init (line 188) | void davs2_pixel_init(uint32_t cpuid, ao_funcs_t* pixf)
FILE: source/common/predict.cc
function ALWAYS_INLINE (line 52) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 68) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 81) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 101) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 141) | static ALWAYS_INLINE int16_t derive_median_mv(int mva, int mvb, int mvc)
function ALWAYS_INLINE (line 172) | static ALWAYS_INLINE
function get_mvp_default (line 197) | void get_mvp_default(davs2_t *h, cu_t *p_cu, int pix_x, int pix_y, mv_t ...
function get_mv_bskip_spatial (line 256) | static
function ALWAYS_INLINE (line 324) | static ALWAYS_INLINE
function fill_mv_pf_skip_temporal (line 342) | static void fill_mv_pf_skip_temporal(davs2_t *h, cu_t *p_cu, int pix_x, ...
function INLINE (line 405) | static INLINE
function fill_mv_bskip (line 486) | static void fill_mv_bskip(davs2_t *h, cu_t *p_cu, int pix_x, int pix_y, ...
function fill_mv_and_ref_for_skip (line 614) | void fill_mv_and_ref_for_skip(davs2_t *h, cu_t *p_cu, int pix_x, int pix...
FILE: source/common/predict.h
function ALWAYS_INLINE (line 45) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 53) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 61) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 69) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 77) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 123) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 133) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 152) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 160) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 179) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 187) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 206) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 239) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 266) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 284) | static ALWAYS_INLINE
FILE: source/common/primitives.cc
function init_all_primitives (line 51) | void init_all_primitives(uint32_t cpuid)
FILE: source/common/primitives.h
type ao_funcs_t (line 95) | typedef struct ao_funcs_t {
FILE: source/common/quant.cc
function wq_init_frame_quant_param (line 161) | void wq_init_frame_quant_param(davs2_t *h)
function wq_update_frame_matrix (line 217) | void wq_update_frame_matrix(davs2_t *h)
function dequant_c (line 260) | static void dequant_c(coeff_t *p_coeff, const int i_coef, const int scal...
function dequant_weighted_c (line 274) | static void dequant_weighted_c(coeff_t *p_coeff, int i_coeff, int bsx, i...
function dequant_coeffs (line 297) | void dequant_coeffs(davs2_t *h, coeff_t *p_coeff, int bsx, int bsy, int ...
function davs2_quant_init (line 309) | void davs2_quant_init(uint32_t cpuid, ao_funcs_t *fh)
FILE: source/common/quant.h
function ALWAYS_INLINE (line 88) | static ALWAYS_INLINE
function ALWAYS_INLINE (line 111) | static ALWAYS_INLINE
FILE: source/common/sao.cc
type lcu_neighbor_e (line 63) | enum lcu_neighbor_e {
type sao_region_t (line 74) | struct sao_region_t {
function ALWAYS_INLINE (line 100) | static ALWAYS_INLINE void sao_init_param(sao_t *lcu_sao)
function ALWAYS_INLINE (line 115) | static ALWAYS_INLINE void sao_copy_param(sao_t *dst, sao_t *src)
function sao_block_eo_0_c (line 122) | static
function sao_block_eo_90_c (line 153) | static
function sao_block_eo_135_c (line 180) | static
function sao_block_eo_45_c (line 256) | static
function sao_block_bo_c (line 330) | static
function sao_read_lcu (line 355) | static void sao_read_lcu(davs2_t *h, int lcu_xy, bool_t *slice_sao_on, s...
function sao_read_lcu_param (line 441) | void sao_read_lcu_param(davs2_t *h, int lcu_xy, bool_t *slice_sao_on, sa...
function sao_get_neighbor_avail (line 452) | static
function sao_lcu (line 539) | void sao_lcu(davs2_t *h, davs2_frame_t *p_tmp_frm, davs2_frame_t *p_dec_...
function sao_lcurow (line 587) | void sao_lcurow(davs2_t *h, davs2_frame_t *p_tmp_frm, davs2_frame_t *p_d...
function davs2_sao_init (line 638) | void davs2_sao_init(uint32_t cpuid, ao_funcs_t *fh)
FILE: source/common/threadpool.cc
type threadpool_job_t (line 46) | struct threadpool_job_t {
type davs2_sync_job_list_t (line 57) | struct davs2_sync_job_list_t {
type davs2_threadpool_t (line 69) | struct davs2_threadpool_t {
function threadpool_job_t (line 96) | static threadpool_job_t *davs2_job_shift(threadpool_job_t **list)
function davs2_sync_job_list_init (line 117) | static int davs2_sync_job_list_init(davs2_sync_job_list_t *slist, int i_...
function davs2_threadpool_list_delete (line 138) | static void davs2_threadpool_list_delete(davs2_sync_job_list_t *slist)
function davs2_sync_job_list_push (line 148) | static void davs2_sync_job_list_push(davs2_sync_job_list_t *slist, threa...
function threadpool_job_t (line 162) | static threadpool_job_t *davs2_sync_job_list_pop(davs2_sync_job_list_t *...
function davs2_threadpool_init (line 231) | int davs2_threadpool_init(davs2_threadpool_t **p_pool, int threads, davs...
function davs2_threadpool_run (line 284) | void davs2_threadpool_run(davs2_threadpool_t *pool, davs2_threadpool_fun...
function davs2_threadpool_is_free (line 298) | int davs2_threadpool_is_free(davs2_threadpool_t *pool)
function davs2_threadpool_delete (line 335) | void davs2_threadpool_delete(davs2_threadpool_t *pool)
FILE: source/common/threadpool.h
type davs2_threadpool_t (line 39) | typedef struct davs2_threadpool_t davs2_threadpool_t;
FILE: source/common/transform.cc
function partialButterflyInverse4_c (line 161) | static void partialButterflyInverse4_c(const coeff_t *src, coeff_t *dst,...
function idct_4x4_c (line 191) | static void idct_4x4_c(const coeff_t *src, coeff_t *dst, int i_dst)
function partialButterflyInverse8_c (line 214) | static void partialButterflyInverse8_c(const coeff_t *src, coeff_t *dst,...
function idct_8x8_c (line 257) | static void idct_8x8_c(const coeff_t *src, coeff_t *dst, int i_dst)
function partialButterflyInverse16_c (line 280) | static void partialButterflyInverse16_c(const coeff_t *src, coeff_t *dst...
function idct_16x16_c (line 341) | static void idct_16x16_c(const coeff_t *src, coeff_t *dst, int i_dst)
function partialButterflyInverse32_c (line 364) | static void partialButterflyInverse32_c(const coeff_t *src, coeff_t *dst...
function idct_32x32_c (line 451) | static void idct_32x32_c(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_64x64_c (line 477) | static void idct_64x64_c(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_16x4_c (line 537) | static void idct_16x4_c(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_4x16_c (line 561) | static void idct_4x16_c(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_32x8_c (line 587) | static void idct_32x8_c(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_8x32_c (line 615) | static void idct_8x32_c(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_64x16_c (line 640) | static void idct_64x16_c(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_16x64_c (line 699) | static void idct_16x64_c(const coeff_t *src, coeff_t *dst, int i_dst)
function xTr2nd_4_1d_Inv_Ver (line 758) | static void xTr2nd_4_1d_Inv_Ver(coeff_t *coeff, int i_coeff, int i_shift...
function xTr2nd_4_1d_Inv_Hor (line 783) | static void xTr2nd_4_1d_Inv_Hor(coeff_t *coeff, int i_coeff, int i_shift...
function inv_transform_4x4_2nd_c (line 810) | static void inv_transform_4x4_2nd_c(coeff_t *coeff, int i_coeff)
function inv_transform_2nd_c (line 826) | static void inv_transform_2nd_c(coeff_t *coeff, int i_coeff, int i_mode,...
function INLINE (line 841) | static INLINE
function ALWAYS_INLINE (line 868) | static ALWAYS_INLINE
function davs2_get_recons (line 889) | void davs2_get_recons(davs2_row_rec_t *row_rec, cu_t *p_cu, int blockidx...
function davs2_dct_init (line 932) | void davs2_dct_init(uint32_t cpuid, ao_funcs_t *fh)
FILE: source/common/vec/intrinsic_alf.cc
function alf_filter_block_sse128 (line 44) | void alf_filter_block_sse128(pel_t *p_dst, const pel_t *p_src, int stride,
FILE: source/common/vec/intrinsic_deblock.cc
function deblock_edge_ver_sse128 (line 43) | void deblock_edge_ver_sse128(pel_t *SrcPtr, int stride, int Alpha, int B...
function deblock_edge_ver_c_sse128 (line 291) | void deblock_edge_ver_c_sse128(pel_t *SrcPtrU, pel_t *SrcPtrV, int strid...
function deblock_edge_hor_sse128 (line 480) | void deblock_edge_hor_sse128(pel_t *SrcPtr, int stride, int Alpha, int B...
function deblock_edge_hor_c_sse128 (line 686) | void deblock_edge_hor_c_sse128(pel_t *SrcPtrU, pel_t *SrcPtrV, int strid...
FILE: source/common/vec/intrinsic_deblock_avx2.cc
function deblock_edge_ver_avx2 (line 57) | void deblock_edge_ver_avx2(pel_t *SrcPtr, int stride, int Alpha, int Bet...
function deblock_edge_ver_c_avx2 (line 286) | void deblock_edge_ver_c_avx2(pel_t *SrcPtrU, pel_t *SrcPtrV, int stride,...
function deblock_edge_hor_avx2 (line 453) | void deblock_edge_hor_avx2(pel_t *SrcPtr, int stride, int Alpha, int Bet...
function deblock_edge_hor_c_avx2 (line 627) | void deblock_edge_hor_c_avx2(pel_t *SrcPtrU, pel_t *SrcPtrV, int stride,...
FILE: source/common/vec/intrinsic_idct.cc
function idct_4x4_sse128 (line 78) | void idct_4x4_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_4x16_sse128 (line 158) | void idct_4x16_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_4x16_half_sse128 (line 462) | void idct_4x16_half_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_4x16_quad_sse128 (line 471) | void idct_4x16_quad_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_16x4_sse128 (line 480) | void idct_16x4_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_16x4_half_sse128 (line 747) | void idct_16x4_half_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_16x4_quad_sse128 (line 756) | void idct_16x4_quad_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_8x8_sse128 (line 765) | void idct_8x8_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_8x8_half_sse128 (line 1034) | void idct_8x8_half_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_8x8_quad_sse128 (line 1043) | void idct_8x8_quad_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_16x16_sse128 (line 1052) | void idct_16x16_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_16x16_half_sse128 (line 1429) | void idct_16x16_half_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_16x16_quad_sse128 (line 1985) | void idct_16x16_quad_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_32x32_sse128 (line 2447) | void idct_32x32_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_32x32_half_sse128 (line 3237) | void idct_32x32_half_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_32x32_quad_sse128 (line 4275) | void idct_32x32_quad_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_32x8_sse128 (line 5213) | void idct_32x8_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_32x8_half_sse128 (line 6051) | void idct_32x8_half_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_32x8_quad_sse128 (line 6060) | void idct_32x8_quad_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_8x32_sse128 (line 6069) | void idct_8x32_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_8x32_half_sse128 (line 6899) | void idct_8x32_half_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_8x32_quad_sse128 (line 6908) | void idct_8x32_quad_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function inv_2nd_trans_hor_sse128 (line 6917) | static void inv_2nd_trans_hor_sse128(coeff_t *coeff, int i_coeff, int i_...
function inv_2nd_trans_ver_sse128 (line 6955) | static void inv_2nd_trans_ver_sse128(coeff_t *coeff, int i_coeff, int i_...
function inv_transform_2nd_sse128 (line 6993) | void inv_transform_2nd_sse128(coeff_t *coeff, int i_coeff, int i_mode, i...
function inv_transform_4x4_2nd_sse128 (line 7008) | void inv_transform_4x4_2nd_sse128(coeff_t *coeff, int i_coeff)
function inv_wavelet_64x64_sse128 (line 7114) | void inv_wavelet_64x64_sse128(coeff_t *coeff)
function inv_wavelet_64x16_sse128 (line 7396) | void inv_wavelet_64x16_sse128(coeff_t *coeff)
function inv_wavelet_16x64_sse128 (line 7609) | void inv_wavelet_16x64_sse128(coeff_t *coeff)
function idct_64x64_sse128 (line 7809) | void idct_64x64_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_64x64_half_sse128 (line 7818) | void idct_64x64_half_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_64x64_quad_sse128 (line 7827) | void idct_64x64_quad_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_64x16_sse128 (line 7836) | void idct_64x16_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_64x16_half_sse128 (line 7845) | void idct_64x16_half_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_64x16_quad_sse128 (line 7854) | void idct_64x16_quad_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_16x64_sse128 (line 7863) | void idct_16x64_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_16x64_half_sse128 (line 7872) | void idct_16x64_half_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_16x64_quad_sse128 (line 7881) | void idct_16x64_quad_sse128(const coeff_t *src, coeff_t *dst, int i_dst)
FILE: source/common/vec/intrinsic_idct_avx2.cc
function idct_8x8_avx2 (line 64) | void idct_8x8_avx2(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_16x16_avx2 (line 279) | void idct_16x16_avx2(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_32x32_avx2 (line 684) | void idct_32x32_avx2(const coeff_t *src, coeff_t *dst, int i_dst)
function inv_wavelet_64x16_avx2 (line 1562) | void inv_wavelet_64x16_avx2(coeff_t *coeff)
function inv_wavelet_16x64_avx2 (line 1685) | void inv_wavelet_16x64_avx2(coeff_t *coeff)
function inv_wavelet_64x64_avx2 (line 1906) | void inv_wavelet_64x64_avx2(coeff_t *coeff)
function idct_64x64_avx2 (line 2144) | void idct_64x64_avx2(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_64x16_avx2 (line 2153) | void idct_64x16_avx2(const coeff_t *src, coeff_t *dst, int i_dst)
function idct_16x64_avx2 (line 2162) | void idct_16x64_avx2(const coeff_t *src, coeff_t *dst, int i_dst)
FILE: source/common/vec/intrinsic_inter_pred.cc
function intpl_chroma_block_hor_sse128 (line 45) | void intpl_chroma_block_hor_sse128(pel_t *dst, int i_dst, pel_t *src, in...
function intpl_luma_block_hor_sse128 (line 94) | void intpl_luma_block_hor_sse128(pel_t *dst, int i_dst, pel_t *src, int ...
function intpl_luma_hor_sse128 (line 153) | void intpl_luma_hor_sse128(pel_t *dst, int i_dst, mct_t *tmp, int i_tmp,...
function intpl_luma_hor_x3_sse128 (line 245) | void intpl_luma_hor_x3_sse128(pel_t *const dst[3], int i_dst, mct_t *con...
function intpl_luma_ver_sse128 (line 440) | void intpl_luma_ver_sse128(pel_t *dst, int i_dst, pel_t *src, int i_src,...
function intpl_luma_ver_x3_sse128 (line 574) | void intpl_luma_ver_x3_sse128(pel_t *const dst[3], int i_dst, pel_t *src...
function intpl_luma_ext_sse128 (line 1332) | void intpl_luma_ext_sse128(pel_t *dst, int i_dst, mct_t *tmp, int i_tmp,...
function intpl_luma_ext_x3_sse128 (line 1996) | void intpl_luma_ext_x3_sse128(pel_t *const dst[3], int i_dst, mct_t *tmp...
function intpl_chroma_block_ver_sse128 (line 3222) | void intpl_chroma_block_ver_sse128(pel_t *dst, int i_dst, pel_t *src, in...
function intpl_luma_block_ver_sse128 (line 3625) | void intpl_luma_block_ver_sse128(pel_t *dst, int i_dst, pel_t *src, int ...
function intpl_luma_block_ver0_sse128 (line 3907) | void intpl_luma_block_ver0_sse128(pel_t *dst, int i_dst, pel_t *src, int...
function intpl_luma_block_ver1_sse128 (line 3983) | void intpl_luma_block_ver1_sse128(pel_t *dst, int i_dst, pel_t *src, int...
function intpl_luma_block_ver2_sse128 (line 4059) | void intpl_luma_block_ver2_sse128(pel_t *dst, int i_dst, pel_t *src, int...
function intpl_chroma_block_ext_sse128 (line 4137) | void intpl_chroma_block_ext_sse128(pel_t *dst, int i_dst, pel_t *src, in...
function intpl_luma_block_ext_sse128 (line 4372) | void intpl_luma_block_ext_sse128(pel_t *dst, int i_dst, pel_t *src, int ...
FILE: source/common/vec/intrinsic_inter_pred_avx2.cc
function intpl_luma_block_hor_w16_avx2 (line 49) | void intpl_luma_block_hor_w16_avx2(pel_t *dst, int i_dst, pel_t *src, in...
function intpl_luma_block_hor_w24_avx2 (line 100) | void intpl_luma_block_hor_w24_avx2(pel_t *dst, int i_dst, pel_t *src, in...
function intpl_luma_block_ver_w32_avx2 (line 158) | void intpl_luma_block_ver_w32_avx2(pel_t *dst, int i_dst, pel_t *src, in...
function intpl_luma_block_ver_w64_avx2 (line 257) | void intpl_luma_block_ver_w64_avx2(pel_t *dst, int i_dst, pel_t *src, in...
function intpl_luma_block_ver_w16_avx2 (line 413) | void intpl_luma_block_ver_w16_avx2(pel_t *dst, int i_dst, pel_t *src, in...
function intpl_luma_block_ver_w24_avx2 (line 534) | void intpl_luma_block_ver_w24_avx2(pel_t *dst, int i_dst, pel_t *src, in...
function intpl_luma_block_ver_w48_avx2 (line 633) | void intpl_luma_block_ver_w48_avx2(pel_t *dst, int i_dst, pel_t *src, in...
function intpl_luma_block_ext_w16_avx2 (line 789) | void intpl_luma_block_ext_w16_avx2(pel_t *dst, int i_dst, pel_t *src, in...
function intpl_luma_block_ext_w24_avx2 (line 894) | void intpl_luma_block_ext_w24_avx2(pel_t *dst, int i_dst, pel_t *src, in...
function intpl_chroma_block_hor_w16_avx2 (line 1098) | void intpl_chroma_block_hor_w16_avx2(pel_t *dst, int i_dst, const pel_t ...
function intpl_chroma_block_hor_w24_avx2 (line 1133) | void intpl_chroma_block_hor_w24_avx2(pel_t *dst, int i_dst, const pel_t ...
function intpl_chroma_block_ver_w32_avx2 (line 1172) | void intpl_chroma_block_ver_w32_avx2(pel_t *dst, int i_dst, const pel_t ...
function intpl_chroma_block_ver_w24_avx2 (line 1237) | void intpl_chroma_block_ver_w24_avx2(pel_t *dst, int i_dst, const pel_t ...
function intpl_chroma_block_ver_w16_avx2 (line 1302) | void intpl_chroma_block_ver_w16_avx2(pel_t *dst, int i_dst, const pel_t ...
function intpl_chroma_block_ext_w16_avx2 (line 1385) | void intpl_chroma_block_ext_w16_avx2(pel_t *dst, int i_dst, const pel_t ...
function intpl_chroma_block_ext_w24_avx2 (line 1485) | void intpl_chroma_block_ext_w24_avx2(pel_t *dst, int i_dst, const pel_t ...
function intpl_luma_block_hor_avx2 (line 1616) | void intpl_luma_block_hor_avx2(pel_t *dst, int i_dst, pel_t *src, int i_...
function intpl_luma_block_ver_avx2 (line 1635) | void intpl_luma_block_ver_avx2(pel_t *dst, int i_dst, pel_t *src, int i_...
function intpl_luma_block_ver0_avx2 (line 1660) | void intpl_luma_block_ver0_avx2(pel_t *dst, int i_dst, pel_t *src, int i...
function intpl_luma_block_ver1_avx2 (line 1685) | void intpl_luma_block_ver1_avx2(pel_t *dst, int i_dst, pel_t *src, int i...
function intpl_luma_block_ver2_avx2 (line 1710) | void intpl_luma_block_ver2_avx2(pel_t *dst, int i_dst, pel_t *src, int i...
function intpl_luma_block_ext_avx2 (line 1735) | void intpl_luma_block_ext_avx2(pel_t *dst, int i_dst, pel_t *src, int i_...
function intpl_chroma_block_hor_avx2 (line 1754) | void intpl_chroma_block_hor_avx2(pel_t *dst, int i_dst, pel_t *src, int ...
function intpl_chroma_block_ver_avx2 (line 1771) | void intpl_chroma_block_ver_avx2(pel_t *dst, int i_dst, pel_t *src, int ...
function intpl_chroma_block_ext_avx2 (line 1790) | void intpl_chroma_block_ext_avx2(pel_t *dst, int i_dst, pel_t *src, int ...
function intpl_luma_ext_avx2 (line 1831) | void intpl_luma_ext_avx2(pel_t *dst, int i_dst, int16_t *tmp, int i_tmp,...
function intpl_luma_ext_x3_avx2 (line 1979) | void intpl_luma_ext_x3_avx2(pel_t *const dst[3], int i_dst, int16_t *tmp...
function intpl_luma_hor_avx2 (line 2132) | void intpl_luma_hor_avx2(pel_t *dst, int i_dst, int16_t *tmp, int i_tmp,...
function intpl_luma_hor_x3_avx2 (line 2241) | void intpl_luma_hor_x3_avx2(pel_t *const dst[3], int i_dst, mct_t *const...
function intpl_luma_ver_avx2 (line 2481) | void intpl_luma_ver_avx2(pel_t *dst, int i_dst, pel_t *src, int i_src, i...
function intpl_luma_ver_x3_avx2 (line 2564) | void intpl_luma_ver_x3_avx2(pel_t *const dst[3], int i_dst, pel_t *src, ...
FILE: source/common/vec/intrinsic_intra-filledge.cc
function fill_edge_samples_0_sse128 (line 47) | void fill_edge_samples_0_sse128(const pel_t *pTL, int i_TL, const pel_t ...
function fill_edge_samples_x_sse128 (line 162) | void fill_edge_samples_x_sse128(const pel_t *pTL, int i_TL, const pel_t ...
function fill_edge_samples_y_sse128 (line 287) | void fill_edge_samples_y_sse128(const pel_t *pTL, int i_TL, const pel_t ...
function fill_edge_samples_xy_sse128 (line 403) | void fill_edge_samples_xy_sse128(const pel_t *pTL, int i_TL, const pel_t...
FILE: source/common/vec/intrinsic_intra-pred.cc
function intra_pred_ver_sse128 (line 63) | void intra_pred_ver_sse128(pel_t *src, pel_t *dst, int i_dst, int dir_mo...
function intra_pred_hor_sse128 (line 124) | void intra_pred_hor_sse128(pel_t *src, pel_t *dst, int i_dst, int dir_mo...
function intra_pred_dc_sse128 (line 179) | void intra_pred_dc_sse128(pel_t *src, pel_t *dst, int i_dst, int dir_mod...
function intra_pred_plane_sse128 (line 272) | void intra_pred_plane_sse128(pel_t *src, pel_t *dst, int i_dst, int dir_...
function intra_pred_bilinear_sse128 (line 356) | void intra_pred_bilinear_sse128(pel_t *src, pel_t *dst, int i_dst, int d...
function intra_pred_ang_x_7_sse128 (line 2487) | void intra_pred_ang_x_7_sse128(pel_t *src, pel_t *dst, int i_dst, int di...
function intra_pred_ang_x_9_sse128 (line 3023) | void intra_pred_ang_x_9_sse128(pel_t *src, pel_t *dst, int i_dst, int di...
function intra_pred_ang_x_10_sse128 (line 3351) | void intra_pred_ang_x_10_sse128(pel_t *src, pel_t *dst, int i_dst, int d...
function intra_pred_ang_x_11_sse128 (line 3831) | void intra_pred_ang_x_11_sse128(pel_t *src, pel_t *dst, int i_dst, int d...
function intra_pred_ang_y_25_sse128 (line 3968) | void intra_pred_ang_y_25_sse128(pel_t *src, pel_t *dst, int i_dst, int d...
function intra_pred_ang_y_26_sse128 (line 4457) | void intra_pred_ang_y_26_sse128(pel_t *src, pel_t *dst, int i_dst, int d...
function intra_pred_ang_xy_13_sse128 (line 5745) | void intra_pred_ang_xy_13_sse128(pel_t *src, pel_t *dst, int i_dst, int ...
function intra_pred_ang_xy_14_sse128 (line 6761) | void intra_pred_ang_xy_14_sse128(pel_t *src, pel_t *dst, int i_dst, int ...
function intra_pred_ang_xy_16_sse128 (line 7133) | void intra_pred_ang_xy_16_sse128(pel_t *src, pel_t *dst, int i_dst, int ...
function intra_pred_ang_xy_18_sse128 (line 7303) | void intra_pred_ang_xy_18_sse128(pel_t *src, pel_t *dst, int i_dst, int ...
function intra_pred_ang_xy_20_sse128 (line 7394) | void intra_pred_ang_xy_20_sse128(pel_t *src, pel_t *dst, int i_dst, int ...
function intra_pred_ang_xy_22_sse128 (line 7566) | void intra_pred_ang_xy_22_sse128(pel_t *src, pel_t *dst, int i_dst, int ...
function intra_pred_ang_xy_23_sse128 (line 7842) | void intra_pred_ang_xy_23_sse128(pel_t *src, pel_t *dst, int i_dst, int ...
FILE: source/common/vec/intrinsic_intra-pred_avx2.cc
function intra_pred_ver_avx (line 44) | void intra_pred_ver_avx(pel_t *src, pel_t *dst, int i_dst, int dir_mode,...
function intra_pred_hor_avx (line 91) | void intra_pred_hor_avx(pel_t *src, pel_t *dst, int i_dst, int dir_mode,...
function intra_pred_dc_avx (line 136) | void intra_pred_dc_avx(pel_t *src, pel_t *dst, int i_dst, int dir_mode, ...
function intra_pred_plane_avx (line 221) | void intra_pred_plane_avx(pel_t *src, pel_t *dst, int i_dst, int dir_mod...
function intra_pred_bilinear_avx (line 319) | void intra_pred_bilinear_avx(pel_t *src, pel_t *dst, int i_dst, int dir_...
function intra_pred_ang_x_7_avx (line 2006) | void intra_pred_ang_x_7_avx(pel_t *src, pel_t *dst, int i_dst, int dir_m...
function intra_pred_ang_x_9_avx (line 2546) | void intra_pred_ang_x_9_avx(pel_t *src, pel_t *dst, int i_dst, int dir_m...
function intra_pred_ang_x_10_avx (line 2672) | void intra_pred_ang_x_10_avx(pel_t *src, pel_t *dst, int i_dst, int dir_...
function intra_pred_ang_x_11_avx (line 3145) | void intra_pred_ang_x_11_avx(pel_t *src, pel_t *dst, int i_dst, int dir_...
function intra_pred_ang_y_25_avx (line 3266) | void intra_pred_ang_y_25_avx(pel_t *src, pel_t *dst, int i_dst, int dir_...
function intra_pred_ang_y_26_avx (line 3562) | void intra_pred_ang_y_26_avx(pel_t *src, pel_t *dst, int i_dst, int dir_...
function intra_pred_ang_y_30_avx (line 4121) | void intra_pred_ang_y_30_avx(pel_t *src, pel_t *dst, int i_dst, int dir_...
function intra_pred_ang_y_31_avx (line 4426) | void intra_pred_ang_y_31_avx(pel_t *src, pel_t *dst, int i_dst, int dir_...
function intra_pred_ang_y_32_avx (line 4485) | void intra_pred_ang_y_32_avx(pel_t *src, pel_t *dst, int i_dst, int dir_...
function intra_pred_ang_xy_13_avx (line 4836) | void intra_pred_ang_xy_13_avx(pel_t *src, pel_t *dst, int i_dst, int dir...
function intra_pred_ang_xy_14_avx (line 5422) | void intra_pred_ang_xy_14_avx(pel_t *src, pel_t *dst, int i_dst, int dir...
function intra_pred_ang_xy_16_avx (line 5954) | void intra_pred_ang_xy_16_avx(pel_t *src, pel_t *dst, int i_dst, int dir...
function intra_pred_ang_xy_18_avx (line 6359) | void intra_pred_ang_xy_18_avx(pel_t *src, pel_t *dst, int i_dst, int dir...
function intra_pred_ang_xy_20_avx (line 6579) | void intra_pred_ang_xy_20_avx(pel_t *src, pel_t *dst, int i_dst, int dir...
function intra_pred_ang_xy_22_avx (line 6925) | void intra_pred_ang_xy_22_avx(pel_t *src, pel_t *dst, int i_dst, int dir...
function intra_pred_ang_xy_23_avx (line 7320) | void intra_pred_ang_xy_23_avx(pel_t *src, pel_t *dst, int i_dst, int dir...
FILE: source/common/vec/intrinsic_pixel.cc
function avs_pixel_average_sse128 (line 43) | void avs_pixel_average_sse128(pel_t *dst, int i_dst, const pel_t *src0, ...
function plane_copy_c_sse2 (line 151) | void plane_copy_c_sse2(pel_t *dst, intptr_t i_dst, pel_t *src, intptr_t ...
FILE: source/common/vec/intrinsic_pixel_avx.cc
function padding_rows_sse256_10bit (line 61) | void padding_rows_sse256_10bit(pel_t *src, int i_src, int width, int hei...
function padding_rows_lr_sse256_10bit (line 103) | void padding_rows_lr_sse256_10bit(pel_t *src, int i_src, int width, int ...
function add_pel_clip_sse256 (line 132) | void add_pel_clip_sse256(const pel_t *src1, int i_src1, const coeff_t *s...
function davs2_pixel_average_avx (line 268) | void davs2_pixel_average_avx(pel_t *dst, int i_dst, const pel_t *src1, i...
function padding_rows_lr_sse256 (line 365) | void padding_rows_lr_sse256(pel_t *src, int i_src, int width, int height...
function padding_rows_sse256 (line 407) | void padding_rows_sse256(pel_t *src, int i_src, int width, int height, i...
FILE: source/common/vec/intrinsic_sao.cc
type lcu_neighbor_e (line 51) | enum lcu_neighbor_e {
function SAO_on_block_eo_0_sse128 (line 64) | void SAO_on_block_eo_0_sse128(pel_t *p_dst, int i_dst, const pel_t *p_sr...
function SAO_on_block_eo_90_sse128 (line 156) | void SAO_on_block_eo_90_sse128(pel_t *p_dst, int i_dst, const pel_t *p_s...
function SAO_on_block_eo_135_sse128 (line 250) | void SAO_on_block_eo_135_sse128(pel_t *p_dst, int i_dst, const pel_t *p_...
function SAO_on_block_eo_45_sse128 (line 459) | void SAO_on_block_eo_45_sse128(pel_t *p_dst, int i_dst, const pel_t *p_s...
function SAO_on_block_bo_sse128 (line 666) | void SAO_on_block_bo_sse128(pel_t *p_dst, int i_dst,
FILE: source/common/vec/intrinsic_sao_avx2.cc
type lcu_neighbor_e (line 50) | enum lcu_neighbor_e {
function SAO_on_block_eo_0_avx2 (line 63) | void SAO_on_block_eo_0_avx2(pel_t *p_dst, int i_dst,
function SAO_on_block_eo_90_avx2 (line 146) | void SAO_on_block_eo_90_avx2(pel_t *p_dst, int i_dst,
function SAO_on_block_eo_135_avx2 (line 232) | void SAO_on_block_eo_135_avx2(pel_t *p_dst, int i_dst,
function SAO_on_block_eo_45_avx2 (line 420) | void SAO_on_block_eo_45_avx2(pel_t *p_dst, int i_dst,
function SAO_on_block_bo_avx2 (line 612) | void SAO_on_block_bo_avx2(pel_t *p_dst, int i_dst,
FILE: source/common/vlc.h
function INLINE (line 48) | static INLINE
function INLINE (line 77) | static INLINE
function INLINE (line 135) | static INLINE
function INLINE (line 161) | static INLINE
function INLINE (line 192) | static INLINE
FILE: source/common/win32thread.cc
function davs2_win32thread_worker (line 92) | static unsigned __stdcall davs2_win32thread_worker(void *arg)
function davs2_thread_create (line 101) | int davs2_thread_create(davs2_thread_t *thread, const davs2_thread_attr_...
function davs2_thread_join (line 112) | int davs2_thread_join(davs2_thread_t thread, void **value_ptr)
function davs2_thread_mutex_init (line 127) | int davs2_thread_mutex_init(davs2_thread_mutex_t *mutex, const davs2_thr...
function davs2_thread_mutex_destroy (line 133) | int davs2_thread_mutex_destroy(davs2_thread_mutex_t *mutex)
function davs2_thread_mutex_lock (line 139) | int davs2_thread_mutex_lock(davs2_thread_mutex_t *mutex)
function davs2_thread_mutex_unlock (line 151) | int davs2_thread_mutex_unlock(davs2_thread_mutex_t *mutex)
function davs2_thread_cond_init (line 167) | int davs2_thread_cond_init(davs2_thread_cond_t *cond, const davs2_thread...
function davs2_thread_cond_destroy (line 205) | int davs2_thread_cond_destroy(davs2_thread_cond_t *cond)
function davs2_thread_cond_broadcast (line 225) | int davs2_thread_cond_broadcast(davs2_thread_cond_t *cond)
function davs2_thread_cond_signal (line 257) | int davs2_thread_cond_signal(davs2_thread_cond_t *cond)
function davs2_thread_cond_wait (line 280) | int davs2_thread_cond_wait(davs2_thread_cond_t *cond, davs2_thread_mutex...
function davs2_win32_threading_init (line 316) | int davs2_win32_threading_init(void)
function davs2_win32_threading_destroy (line 331) | void davs2_win32_threading_destroy(void)
function davs2_thread_num_processors_np (line 337) | int davs2_thread_num_processors_np()
FILE: source/common/win32thread.h
type davs2_thread_t (line 51) | typedef struct {
type CRITICAL_SECTION (line 60) | typedef CRITICAL_SECTION davs2_thread_mutex_t;
type davs2_thread_cond_t (line 66) | typedef struct {
FILE: source/davs2.h
type davs2_picture_type_e (line 78) | enum davs2_picture_type_e {
type davs2_profile_id_e (line 89) | enum davs2_profile_id_e {
type davs2_log_level_e (line 98) | enum davs2_log_level_e {
type davs2_ret_e (line 109) | enum davs2_ret_e {
type davs2_seq_info_t (line 126) | typedef struct davs2_seq_info_t {
type davs2_packet_t (line 146) | typedef struct davs2_packet_t {
type davs2_picture_t (line 156) | typedef struct davs2_picture_t {
type davs2_param_t (line 178) | typedef struct davs2_param_t {
FILE: source/test/getopt/getopt.c
function exchange (line 293) | static void
function _getopt_internal (line 487) | int
function getopt (line 922) | int
function getopt_long (line 934) | int
function main (line 952) | int
FILE: source/test/getopt/getopt.h
type option (line 96) | struct option {
type option (line 153) | struct option
type option (line 156) | struct option
type option (line 161) | struct option
FILE: source/test/inputstream.h
function check_frame (line 65) | static int
function find_one_frame (line 82) | static int
function count_frames (line 98) | static int
function read_input_file (line 123) | static int
FILE: source/test/md5.h
function md5 (line 76) | void md5(unsigned int *pA, unsigned int *pB, unsigned int *pC, unsigned ...
function FileMD5 (line 162) | long long FileMD5(const char *filename, unsigned int md5value[4])
FILE: source/test/parse_args.h
type davs2_input_param_t (line 45) | typedef struct davs2_input_param_t {
type option (line 68) | struct option
function display_usage (line 82) | static void display_usage(void)
function parse_args (line 104) | static int parse_args(davs2_input_param_t *p_param, int argc, char **argv)
FILE: source/test/psnr.h
function cal_ssd_16bit (line 66) | static __inline uint64_t
function cal_ssd_8bit (line 93) | static __inline uint64_t
function cal_ssd (line 131) | static __inline uint64_t
function find_first_mismatch_point_16bit (line 143) | static void
function find_first_mismatch_point_8bit (line 168) | static void
function find_first_mismatch_point (line 204) | static void
function get_psnr_with_ssd (line 216) | static
function cal_psnr (line 237) | int
FILE: source/test/test.c
function output_decoded_frame (line 101) | static
function test_decoder (line 179) | void test_decoder(uint8_t *data_buf, int data_len, int num_frames, char ...
function main (line 304) | int main(int argc, char *argv[])
FILE: source/test/utils.h
function get_time (line 64) | static __inline int64_t get_time()
function set_font_color (line 80) | static __inline void set_font_color(int color)
function show_message (line 94) | static void show_message(int color, const char *format, ...)
function show_progress (line 119) | static __inline void show_progress(int frame, int frames)
function write_frame_plane (line 149) | static
function write_y4m_header (line 164) | static
function write_frame (line 189) | static
Condensed preview — 114 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,690K chars).
[
{
"path": ".gitattributes",
"chars": 2042,
"preview": "#common settings that generally should always be used with your language specific settings\n\n# Auto detect text files and"
},
{
"path": ".github/ISSUE_TEMPLATE/----.md",
"chars": 95,
"preview": "---\nname: 问题咨询\nabout: 使用问题/安全问题/其他问题\n\n---\n\n请发送邮件至: sswang@pku.edu.cn\n或在应用内“高级设置” - “建议反馈” 填写表单\n"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 842,
"preview": "---\nname: Bug report\nabout: Create a report of bug / 如果你认为你发现了一项代码问题\n\n---\n\n**Describe the bug**\n\nA clear and concise des"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 140,
"preview": "---\nname: Feature request\nabout: Suggest an idea for this project / 功能请求\n\n---\n\n请详细填写以下四项关键元素\n\n## 功能描述\n\n## 功能带来的效应\n\n## 缺少"
},
{
"path": ".gitignore",
"chars": 350,
"preview": "Debug/\nRelease/\nx64_Debug/\nx64_Release/\nbuild/linux/cavs2dec*\nbuild/linux/davs2*\nMy*/\n*.user\n*.suo\n*.ncb\n*.aps\n*.pdb\n*.r"
},
{
"path": ".travis.yml",
"chars": 394,
"preview": "language: c\ndist: xenial\n\ninstall:\n - wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.gz -O na"
},
{
"path": "COPYING",
"chars": 18121,
"preview": "\t\t GNU GENERAL PUBLIC LICENSE\n\t\t Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundation, Inc."
},
{
"path": "README.md",
"chars": 3552,
"preview": "# davs2\n**davs2** is an open-source decoder of `AVS2-P2/IEEE1857.4` video coding standard.\n\nAn encoder, **xavs2**, can b"
},
{
"path": "README.zh.md",
"chars": 3072,
"preview": "# davs2\n\n遵循 `AVS2-P2/IEEE1857.4` 视频编码标准的解码器. \n\n对应的编码器 **xavs2** 可在 [Github][2] 或 [Gitee (mirror in China)][3] 上找到.\n\n[![G"
},
{
"path": "appveyor.yml",
"chars": 524,
"preview": "image: Visual Studio 2015\nconfiguration: Release\n\nplatform:\n - x64\n\ninstall:\n - git submodule update --init\n - ap"
},
{
"path": "build/linux/Makefile",
"chars": 10745,
"preview": "# Makefile\n\ninclude config.mak\n\nvpath %.cc $(SRCPATH)\nvpath %.c $(SRCPATH)\nvpath %.h $(SRCPATH)\nvpath %.S $(SRCPATH)\nvpa"
},
{
"path": "build/linux/config.guess",
"chars": 44259,
"preview": "#! /bin/sh\n# Attempt to guess a canonical system name.\n# Copyright 1992-2017 Free Software Foundation, Inc.\n\ntimestamp"
},
{
"path": "build/linux/config.sub",
"chars": 36515,
"preview": "#! /bin/sh\n# Configuration validation subroutine script.\n# Copyright 1992-2017 Free Software Foundation, Inc.\n\ntimesta"
},
{
"path": "build/linux/configure",
"chars": 42724,
"preview": "#!/bin/bash\n\nif test x\"$1\" = x\"-h\" -o x\"$1\" = x\"--help\" ; then\ncat <<EOF\nUsage: ./configure [options]\n\nHelp:\n -h, --hel"
},
{
"path": "build/vs2013/DAVS2.sln",
"chars": 4851,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 2013\r\nVisualStudioVersion = 12.0.40629.0"
},
{
"path": "build/vs2013/davs2.vcxproj",
"chars": 11145,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.micro"
},
{
"path": "build/vs2013/davs2.vcxproj.filters",
"chars": 1529,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "build/vs2013/libdavs2.vcxproj",
"chars": 14545,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.micro"
},
{
"path": "build/vs2013/libdavs2.vcxproj.filters",
"chars": 6088,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "build/vs2013/libdavs2_asm.vcxproj",
"chars": 11148,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.micro"
},
{
"path": "build/vs2013/libdavs2_asm.vcxproj.filters",
"chars": 1482,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "build/vs2013/libdavs2_intrin_avx.vcxproj",
"chars": 9966,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.micro"
},
{
"path": "build/vs2013/libdavs2_intrin_avx.vcxproj.filters",
"chars": 1277,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "build/vs2013/libdavs2_intrin_sse.vcxproj",
"chars": 9843,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.micro"
},
{
"path": "build/vs2013/libdavs2_intrin_sse.vcxproj.filters",
"chars": 1717,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "build/vs2013/nasm.props",
"chars": 1176,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n <Proper"
},
{
"path": "build/vs2013/nasm.targets",
"chars": 3012,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n <ItemGrou"
},
{
"path": "build/vs2013/nasm.xml",
"chars": 7027,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"http://schemas.microsoft.com/build/2009/properti"
},
{
"path": "source/common/aec.cc",
"chars": 77299,
"preview": "/*\r\n * aec.cc\r\n *\r\n * Description of this file:\r\n * AEC functions definition of the davs2 library\r\n *\r\n * ----------"
},
{
"path": "source/common/aec.h",
"chars": 5669,
"preview": "/*\r\n * aec.h\r\n *\r\n * Description of this file:\r\n * AEC functions definition of the davs2 library\r\n *\r\n * -----------"
},
{
"path": "source/common/alf.cc",
"chars": 20234,
"preview": "/*\r\n * alf.cc\r\n *\r\n * Description of this file:\r\n * ALF functions definition of the davs2 library\r\n *\r\n * -----------"
},
{
"path": "source/common/alf.h",
"chars": 1982,
"preview": "/*\r\n * alf.h\r\n *\r\n * Description of this file:\r\n * ALF functions definition of the davs2 library\r\n *\r\n * ------------"
},
{
"path": "source/common/bitstream.cc",
"chars": 8979,
"preview": "/*\r\n * bitstream.cc\r\n *\r\n * Description of this file:\r\n * Bitstream functions definition of the davs2 library\r\n *\r\n *"
},
{
"path": "source/common/bitstream.h",
"chars": 2341,
"preview": "/*\r\n * bitstream.h\r\n *\r\n * Description of this file:\r\n * Bitstream functions definition of the davs2 library\r\n *\r\n * "
},
{
"path": "source/common/block_info.cc",
"chars": 3715,
"preview": "/*\r\n * block_info.cc\r\n *\r\n * Description of this file:\r\n * Block-infomation functions definition of the davs2 library"
},
{
"path": "source/common/block_info.h",
"chars": 1629,
"preview": "/*\r\n * block_info.h\r\n *\r\n * Description of this file:\r\n * Block Infomation functions definition of the davs2 library\r"
},
{
"path": "source/common/common.cc",
"chars": 12150,
"preview": "/*\r\n * common.cc\r\n *\r\n * Description of this file:\r\n * misc common functionsdefinition of the davs2 library\r\n *\r\n * -"
},
{
"path": "source/common/common.h",
"chars": 57299,
"preview": "/*\r\n * common.h\r\n *\r\n * Description of this file:\r\n * misc common functionsdefinition of the davs2 library\r\n *\r\n * --"
},
{
"path": "source/common/cpu.cc",
"chars": 14834,
"preview": "/*\r\n * cpu.cc\r\n *\r\n * Description of this file:\r\n * CPU-Processing functions definition of the davs2 library\r\n *\r\n * "
},
{
"path": "source/common/cpu.h",
"chars": 3173,
"preview": "/*\r\n * cpu.h\r\n *\r\n * Description of this file:\r\n * CPU-Processing functions definition of the davs2 library\r\n *\r\n * -"
},
{
"path": "source/common/cu.cc",
"chars": 54731,
"preview": "/*\r\n * cu.cc\r\n *\r\n * Description of this file:\r\n * CU Processing functions definition of the davs2 library\r\n *\r\n * -"
},
{
"path": "source/common/cu.h",
"chars": 3193,
"preview": "/*\r\n * cu.h\r\n *\r\n * Description of this file:\r\n * CU Processing functions definition of the davs2 library\r\n *\r\n * ---"
},
{
"path": "source/common/davs2.cc",
"chars": 24878,
"preview": "/*\r\n * davs2.cc\r\n *\r\n * Description of this file:\r\n * API functions definition of the davs2 library\r\n *\r\n * ---------"
},
{
"path": "source/common/deblock.cc",
"chars": 25197,
"preview": "/*\r\n * deblock.cc\r\n *\r\n * Description of this file:\r\n * Deblock functions definition of the davs2 library\r\n *\r\n * ---"
},
{
"path": "source/common/deblock.h",
"chars": 1701,
"preview": "/*\r\n * deblock.h\r\n *\r\n * Description of this file:\r\n * Deblock functions definition of the davs2 library\r\n *\r\n * ----"
},
{
"path": "source/common/decoder.cc",
"chars": 44572,
"preview": "/*\r\n * decoder.cc\r\n *\r\n * Description of this file:\r\n * Decoder functions definition of the davs2 library\r\n *\r\n * ---"
},
{
"path": "source/common/decoder.h",
"chars": 2800,
"preview": "/*\r\n * decoder.h\r\n *\r\n * Description of this file:\r\n * Decoder functions definition of the davs2 library\r\n *\r\n * ----"
},
{
"path": "source/common/defines.h",
"chars": 13311,
"preview": "/*\r\n * defines.h\r\n *\r\n * Description of this file:\r\n * const variable definition of the davs2 library\r\n *\r\n * -------"
},
{
"path": "source/common/frame.cc",
"chars": 18659,
"preview": "/*\r\n * frame.cc\r\n *\r\n * Description of this file:\r\n * Frame handling functions definition of the davs2 library\r\n *\r\n "
},
{
"path": "source/common/frame.h",
"chars": 2915,
"preview": "/*\r\n * frame.h\r\n *\r\n * Description of this file:\r\n * Frame handling functions definition of the davs2 library\r\n *\r\n *"
},
{
"path": "source/common/header.cc",
"chars": 54128,
"preview": "/*\r\n * header.cc\r\n *\r\n * Description of this file:\r\n * Header functions definition of the davs2 library\r\n *\r\n * -----"
},
{
"path": "source/common/header.h",
"chars": 2106,
"preview": "/*\r\n * header.h\r\n *\r\n * Description of this file:\r\n * Header functions definition of the davs2 library\r\n *\r\n * ------"
},
{
"path": "source/common/intra.cc",
"chars": 106708,
"preview": "/*\r\n * intra.cc\r\n *\r\n * Description of this file:\r\n * Intra prediction functions definition of the davs2 library\r\n *\r"
},
{
"path": "source/common/intra.h",
"chars": 2501,
"preview": "/*\r\n * intra.h\r\n *\r\n * Description of this file:\r\n * Intra prediction functions definition of the davs2 library\r\n *\r\n"
},
{
"path": "source/common/mc.cc",
"chars": 28356,
"preview": "/*\r\n * mc.cc\r\n *\r\n * Description of this file:\r\n * MC functions definition of the davs2 library\r\n *\r\n * -------------"
},
{
"path": "source/common/mc.h",
"chars": 1753,
"preview": "/*\r\n * mc.h\r\n *\r\n * Description of this file:\r\n * MC functions definition of the davs2 library\r\n *\r\n * --------------"
},
{
"path": "source/common/memory.cc",
"chars": 2784,
"preview": "/*\r\n * memory.cc\r\n *\r\n * Description of this file:\r\n * Memory functions definition of the davs2 library\r\n *\r\n * -----"
},
{
"path": "source/common/osdep.h",
"chars": 12566,
"preview": "/*\r\n * osdep.h\r\n *\r\n * Description of this file:\r\n * platform-specific code functions definition of the davs2 library"
},
{
"path": "source/common/pixel.cc",
"chars": 20868,
"preview": "/*\r\n * pixel.cc\r\n *\r\n * Description of this file:\r\n * Pixel processing functions definition of the davs2 library\r\n *\r"
},
{
"path": "source/common/predict.cc",
"chars": 25384,
"preview": "/*\r\n * predict.cc\r\n *\r\n * Description of this file:\r\n * Prediction functions definition of the davs2 library\r\n *\r\n * "
},
{
"path": "source/common/predict.h",
"chars": 10782,
"preview": "/*\r\n * predict.h\r\n *\r\n * Description of this file:\r\n * Prediction functions definition of the davs2 library\r\n *\r\n * -"
},
{
"path": "source/common/primitives.cc",
"chars": 2444,
"preview": "/*\r\n * primitives.cc\r\n *\r\n * Description of this file:\r\n * function handles initialize functions definition of the da"
},
{
"path": "source/common/primitives.h",
"chars": 7833,
"preview": "/*\r\n * primitives.h\r\n *\r\n * Description of this file:\r\n * function handles initialize functions definition of the dav"
},
{
"path": "source/common/quant.cc",
"chars": 10280,
"preview": "/*\r\n * quant.c\r\n *\r\n * Description of this file:\r\n * Quant functions definition of the davs2 library\r\n *\r\n * --------"
},
{
"path": "source/common/quant.h",
"chars": 3981,
"preview": "/*\r\n * quant.h\r\n *\r\n * Description of this file:\r\n * Quant functions definition of the davs2 library\r\n *\r\n * --------"
},
{
"path": "source/common/sao.cc",
"chars": 26564,
"preview": "/*\r\n * sao.cc\r\n *\r\n * Description of this file:\r\n * SAO functions definition of the davs2 library\r\n *\r\n * -----------"
},
{
"path": "source/common/sao.h",
"chars": 1956,
"preview": "/*\r\n * sao.h\r\n *\r\n * Description of this file:\r\n * SAO functions definition of the davs2 library\r\n *\r\n * ------------"
},
{
"path": "source/common/scantab.h",
"chars": 31148,
"preview": "/*\r\n * scantab.h\r\n *\r\n * Description of this file:\r\n * tAVS2 scan tables of the davs2 library (this file is ONLY incl"
},
{
"path": "source/common/threadpool.cc",
"chars": 11441,
"preview": "/*\r\n * threadpool.cc\r\n *\r\n * Description of this file:\r\n * thread pooling functions definition of the davs2 library\r\n"
},
{
"path": "source/common/threadpool.h",
"chars": 2380,
"preview": "/*\r\n * threadpool.h\r\n *\r\n * Description of this file:\r\n * thread pooling functions definition of the davs2 library\r\n "
},
{
"path": "source/common/transform.cc",
"chars": 40876,
"preview": "/*\r\n * transform.cc\r\n *\r\n * Description of this file:\r\n * Transform functions definition of the davs2 library\r\n *\r\n "
},
{
"path": "source/common/transform.h",
"chars": 1727,
"preview": "/*\r\n * transform.h\r\n *\r\n * Description of this file:\r\n * Transform functions definition of the davs2 library\r\n *\r\n *"
},
{
"path": "source/common/vec/intrinsic.cc",
"chars": 30262,
"preview": "/*\r\n * intrinsic.cc\r\n *\r\n * Description of this file:\r\n * tables used in SIMD assembly functions of the davs2 library"
},
{
"path": "source/common/vec/intrinsic.h",
"chars": 38726,
"preview": "/*\r\n * intrinsic.h\r\n *\r\n * Description of this file:\r\n * SIMD assembly functions definition of the davs2 library\r\n *\r"
},
{
"path": "source/common/vec/intrinsic_alf.cc",
"chars": 8691,
"preview": "/*\r\n * intrinsic_alf.cc\r\n *\r\n * Description of this file:\r\n * SSE assembly functions of ALF module of the davs2 libra"
},
{
"path": "source/common/vec/intrinsic_deblock.cc",
"chars": 31369,
"preview": "/*\r\n * intrinsic_deblock.cc\r\n *\r\n * Description of this file:\r\n * SSE assembly functions of Deblock module of the dav"
},
{
"path": "source/common/vec/intrinsic_deblock_avx2.cc",
"chars": 33262,
"preview": "/*\r\n * intrinsic_deblock_avx2.cc\r\n *\r\n * Description of this file:\r\n * AVX2 assembly functions of Deblock module of t"
},
{
"path": "source/common/vec/intrinsic_idct.cc",
"chars": 530874,
"preview": "/*\r\n * intrinsic_idct.cc\r\n *\r\n * Description of this file:\r\n * SSE assembly functions of IDCT module of the davs2 lib"
},
{
"path": "source/common/vec/intrinsic_idct_avx2.cc",
"chars": 148147,
"preview": "/*\r\n * intrinsic_idct_avx2.cc\r\n *\r\n * Description of this file:\r\n * AVX2 assembly functions of IDCT module of the dav"
},
{
"path": "source/common/vec/intrinsic_inter_pred.cc",
"chars": 220076,
"preview": "/*\r\n * intrinsic_inter-pred.cc\r\n *\r\n * Description of this file:\r\n * SSE assembly functions of Inter-Prediction modul"
},
{
"path": "source/common/vec/intrinsic_inter_pred_avx2.cc",
"chars": 126686,
"preview": "/*\r\n * intrinsic_inter-pred_avx2.cc\r\n *\r\n * Description of this file:\r\n * AVX2 assembly functions of Inter-Prediction"
},
{
"path": "source/common/vec/intrinsic_intra-filledge.cc",
"chars": 18925,
"preview": "/*\r\n * intrinsic_intra-fiiledge.cc\r\n *\r\n * Description of this file:\r\n * SSE assembly functions of Intra-Filledge modu"
},
{
"path": "source/common/vec/intrinsic_intra-pred.cc",
"chars": 317937,
"preview": "/*\r\n * intrinsic_intra-pred.cc\r\n *\r\n * Description of this file:\r\n * SSE assembly functions of Intra-Prediction modul"
},
{
"path": "source/common/vec/intrinsic_intra-pred_avx2.cc",
"chars": 320237,
"preview": "/*\r\n * intrinsic_intra-pred_avx2.cc\r\n *\r\n * Description of this file:\r\n * AVX2 assembly functions of Intra-Prediction"
},
{
"path": "source/common/vec/intrinsic_pixel.cc",
"chars": 6089,
"preview": "/*\r\n * intrinsic_pixel.cc\r\n *\r\n * Description of this file:\r\n * SSE assembly functions of Pixel-Processing module of "
},
{
"path": "source/common/vec/intrinsic_pixel_avx.cc",
"chars": 16496,
"preview": "/*\r\n * intrinsic_pixel_avx.cc\r\n *\r\n * Description of this file:\r\n * AVX2 assembly functions of Pixel-Processing modul"
},
{
"path": "source/common/vec/intrinsic_sao.cc",
"chars": 26545,
"preview": "/*\r\n * intrinsic_sao.cc\r\n *\r\n * Description of this file:\r\n * SSE assembly functions of SAO module of the davs2 libra"
},
{
"path": "source/common/vec/intrinsic_sao_avx2.cc",
"chars": 28217,
"preview": "/*\r\n * intrinsic_sao_avx2.cc\r\n *\r\n * Description of this file:\r\n * AVX2 assembly functions of SAO module of the davs2"
},
{
"path": "source/common/vlc.h",
"chars": 6964,
"preview": "/*\r\n * vlc.h\r\n *\r\n * Description of this file:\r\n * VLC functions definition of the davs2 library\r\n *\r\n * -----------"
},
{
"path": "source/common/win32thread.cc",
"chars": 12229,
"preview": "/*****************************************************************************\r\n * win32thread.c: windows threading\r\n **"
},
{
"path": "source/common/win32thread.h",
"chars": 4446,
"preview": "/*****************************************************************************\r\n * win32thread.h: windows threading\r\n **"
},
{
"path": "source/common/x86/blockcopy8.asm",
"chars": 164173,
"preview": ";*****************************************************************************\r\n;* Copyright (C) 2013-2017 MulticoreWare"
},
{
"path": "source/common/x86/const-a.asm",
"chars": 8600,
"preview": ";*****************************************************************************\r\n;* const-a.asm: x86 global constants\r\n;*"
},
{
"path": "source/common/x86/cpu-a.asm",
"chars": 5859,
"preview": ";*****************************************************************************\r\n;* cpu-a.asm: x86 cpu utilities\r\n;******"
},
{
"path": "source/common/x86/dct8.asm",
"chars": 95229,
"preview": ";*****************************************************************************\r\n;* Copyright (C) 2013-2017 MulticoreWare"
},
{
"path": "source/common/x86/dct8.h",
"chars": 1943,
"preview": "/*****************************************************************************\r\n * Copyright (C) 2013-2017 MulticoreWare"
},
{
"path": "source/common/x86/ipfilter8.asm",
"chars": 916720,
"preview": ";*****************************************************************************\r\n;* Copyright (C) 2013-2017 MulticoreWare"
},
{
"path": "source/common/x86/ipfilter8.h",
"chars": 2551,
"preview": "/*****************************************************************************\r\n * Copyright (C) 2013-2017 MulticoreWare"
},
{
"path": "source/common/x86/mc-a2.asm",
"chars": 51453,
"preview": ";*****************************************************************************\r\n;* mc-a2.asm: x86 motion compensation\r\n;"
},
{
"path": "source/common/x86/pixeladd8.asm",
"chars": 35554,
"preview": ";*****************************************************************************\r\n;* Copyright (C) 2013-2017 MulticoreWare"
},
{
"path": "source/common/x86/quant8.asm",
"chars": 3951,
"preview": ";*****************************************************************************\r\n;* quant8.asm: x86 quantization function"
},
{
"path": "source/common/x86/x86inc.asm",
"chars": 44226,
"preview": ";*****************************************************************************\r\n;* x86inc.asm: x264asm abstraction layer"
},
{
"path": "source/common/x86/x86util.asm",
"chars": 21238,
"preview": ";*****************************************************************************\r\n;* x86util.asm: x86 utility macros\r\n;***"
},
{
"path": "source/configw.h",
"chars": 2892,
"preview": "/*\r\n * configw.h\r\n *\r\n * Description of this file:\r\n * header file for MS/Intel compiler on windows platform of the d"
},
{
"path": "source/davs2.h",
"chars": 11171,
"preview": "/*\r\n * davs2.h\r\n *\r\n * Description of this file:\r\n * API functions definition of the davs2 library\r\n *\r\n * ----------"
},
{
"path": "source/test/getopt/getopt.c",
"chars": 36458,
"preview": "/* Getopt for GNU.\r\n NOTE: getopt is now part of the C library, so if you don't know what\r\n \"Keep this file name-spa"
},
{
"path": "source/test/getopt/getopt.h",
"chars": 6788,
"preview": "/* Declarations for getopt.\r\n Copyright (C) 1989-1994, 1996-1999, 2001 Free Software Foundation, Inc.\r\n This file is"
},
{
"path": "source/test/inputstream.h",
"chars": 4353,
"preview": "/*\r\n * inputstream.h\r\n *\r\n * Description of this file:\r\n * Inputstream Processing functions definition of the davs2 l"
},
{
"path": "source/test/md5.h",
"chars": 9143,
"preview": "/*\r\n * md5.h\r\n *\r\n * Description of this file:\r\n * MD5 calculate function of davs2.\r\n * \r\n */\r\n\r\n/* The copyright in "
},
{
"path": "source/test/parse_args.h",
"chars": 8232,
"preview": "/*\r\n * parse_args.h\r\n *\r\n * Description of this file:\r\n * Argument Parsing functions definition of the davs2 library"
},
{
"path": "source/test/psnr.h",
"chars": 10772,
"preview": "/*\r\n * psnr.h\r\n *\r\n * Description of this file:\r\n * PSNR Calculating functions definition of the davs2 library\r\n *\r\n "
},
{
"path": "source/test/test.c",
"chars": 12474,
"preview": "/*\r\n * test.c\r\n *\r\n * Description of this file:\r\n * test the AVS2 Video Decoder davs2 library\r\n *\r\n * --------------"
},
{
"path": "source/test/utils.h",
"chars": 6151,
"preview": "/*\r\n * utils.h\r\n *\r\n * Description of this file:\r\n * functions definition of the davs2 library\r\n *\r\n * --------------"
},
{
"path": "version.sh",
"chars": 3704,
"preview": "#!/bin/sh\n\n# ============================================================================\n# File:\n# version.sh\n# - g"
}
]
About this extraction
This page contains the full source code of the pkuvcl/davs2 GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 114 files (4.2 MB), approximately 1.1M tokens, and a symbol index with 644 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.