Compare commits
63 Commits
sandbox/jk
...
bali
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9619102683 | ||
![]() |
86920e52ea | ||
![]() |
98240fc76b | ||
![]() |
5c24071504 | ||
![]() |
0491c2cfc8 | ||
![]() |
3fae3283e6 | ||
![]() |
d05c4d8841 | ||
![]() |
e38c1680d6 | ||
![]() |
77ed11c506 | ||
![]() |
4a742e5c79 | ||
![]() |
27c04aaa67 | ||
![]() |
0bc31f1887 | ||
![]() |
fb37eda3e2 | ||
![]() |
05d75b4353 | ||
![]() |
eed2ce58e3 | ||
![]() |
1de99a2a81 | ||
![]() |
36be4f7f06 | ||
![]() |
a1cfcb413d | ||
![]() |
6f5189c044 | ||
![]() |
06ce0d8830 | ||
![]() |
987ac89403 | ||
![]() |
cfaee9f7c6 | ||
![]() |
3e6d476ac3 | ||
![]() |
d96ba65a23 | ||
![]() |
4decd27947 | ||
![]() |
31dab574cc | ||
![]() |
da761c9a22 | ||
![]() |
e4fa638653 | ||
![]() |
1fae7018a8 | ||
![]() |
d8fc974ac0 | ||
![]() |
6da2018789 | ||
![]() |
1771722b2f | ||
![]() |
8e17e82d9e | ||
![]() |
861175ef00 | ||
![]() |
d53492bba4 | ||
![]() |
658454a04c | ||
![]() |
b862c108dd | ||
![]() |
aee120afb9 | ||
![]() |
8ae92aef66 | ||
![]() |
e6db21ecc4 | ||
![]() |
418f4219fa | ||
![]() |
7af0d906e3 | ||
![]() |
945dad277d | ||
![]() |
c764c2a20f | ||
![]() |
3ed8fe8778 | ||
![]() |
cbf923b12c | ||
![]() |
d371ca93e5 | ||
![]() |
597d02b508 | ||
![]() |
fb5a692d27 | ||
![]() |
c6ef75690f | ||
![]() |
b2ae57f1b6 | ||
![]() |
562f1470ce | ||
![]() |
ac10665ad8 | ||
![]() |
07f7b66fae | ||
![]() |
c351aa7f1b | ||
![]() |
f42d52e6bd | ||
![]() |
da9402fbf6 | ||
![]() |
da227b901d | ||
![]() |
0c2cfff9b0 | ||
![]() |
0030303b69 | ||
![]() |
1ef86980b9 | ||
![]() |
02321de0f2 | ||
![]() |
48140167cd |
2
.mailmap
2
.mailmap
@@ -1,2 +1,4 @@
|
||||
Adrian Grange <agrange@google.com>
|
||||
Johann Koenig <johannkoenig@google.com>
|
||||
Tero Rintaluoma <teror@google.com> <tero.rintaluoma@on2.com>
|
||||
Tom Finegan <tomfinegan@google.com>
|
||||
|
9
AUTHORS
9
AUTHORS
@@ -4,13 +4,18 @@
|
||||
Aaron Watry <awatry@gmail.com>
|
||||
Adrian Grange <agrange@google.com>
|
||||
Alex Converse <alex.converse@gmail.com>
|
||||
Andoni Morales Alastruey <ylatuya@gmail.com>
|
||||
Andres Mejia <mcitadel@gmail.com>
|
||||
Attila Nagy <attilanagy@google.com>
|
||||
Fabio Pedretti <fabio.ped@libero.it>
|
||||
Frank Galligan <fgalligan@google.com>
|
||||
Fredrik Söderquist <fs@opera.com>
|
||||
Fritz Koenig <frkoenig@google.com>
|
||||
Gaute Strokkenes <gaute.strokkenes@broadcom.com>
|
||||
Giuseppe Scrivano <gscrivano@gnu.org>
|
||||
Guillermo Ballester Valor <gbvalor@gmail.com>
|
||||
Henrik Lundin <hlundin@google.com>
|
||||
James Berry <jamesberry@google.com>
|
||||
James Zern <jzern@google.com>
|
||||
Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
Jeff Muizelaar <jmuizelaar@mozilla.com>
|
||||
@@ -23,10 +28,14 @@ Luca Barbato <lu_zero@gentoo.org>
|
||||
Makoto Kato <makoto.kt@gmail.com>
|
||||
Martin Ettl <ettl.martin78@googlemail.com>
|
||||
Michael Kohler <michaelkohler@live.com>
|
||||
Mikhal Shemer <mikhal@google.com>
|
||||
Pascal Massimino <pascal.massimino@gmail.com>
|
||||
Patrik Westin <patrik.westin@gmail.com>
|
||||
Paul Wilkins <paulwilkins@google.com>
|
||||
Pavol Rusnak <stick@gk2.sk>
|
||||
Philip Jägenstedt <philipj@opera.com>
|
||||
Scott LaVarnway <slavarnway@google.com>
|
||||
Tero Rintaluoma <teror@google.com>
|
||||
Timothy B. Terriberry <tterribe@xiph.org>
|
||||
Tom Finegan <tomfinegan@google.com>
|
||||
Yaowu Xu <yaowu@google.com>
|
||||
|
77
CHANGELOG
77
CHANGELOG
@@ -1,3 +1,80 @@
|
||||
2011-03-07 v0.9.6 "Bali"
|
||||
Our second named release, focused on a faster, higher quality, encoder.
|
||||
|
||||
- Upgrading:
|
||||
This release is backwards compatible with Aylesbury (v0.9.5). Users
|
||||
of older releases should refer to the Upgrading notes in this
|
||||
document for that release.
|
||||
|
||||
- Enhancements:
|
||||
vpxenc --psnr shows a summary when encode completes
|
||||
--tune=ssim option to enable activity masking
|
||||
improved postproc visualizations for development
|
||||
updated support for Apple iOS to SDK 4.2
|
||||
query decoder to determine which reference frames were updated
|
||||
implemented error tracking in the decoder
|
||||
fix pipe support on windows
|
||||
|
||||
- Speed:
|
||||
Primary focus was on good quality mode, speed 0. Average improvement
|
||||
on x86 about 40%, up to 100% on user-generated content at that speed.
|
||||
Best quality mode speed improved 35%, and realtime speed 10-20%. This
|
||||
release also saw significant improvement in realtime encoding speed
|
||||
on ARM platforms.
|
||||
|
||||
Improved encoder threading
|
||||
Dont pick encoder filter level when loopfilter is disabled.
|
||||
Avoid double copying of key frames into alt and golden buffer
|
||||
FDCT optimizations.
|
||||
x86 sse2 temporal filter
|
||||
SSSE3 version of fast quantizer
|
||||
vp8_rd_pick_best_mbsegmentation code restructure
|
||||
Adjusted breakout RD for SPLITMV
|
||||
Changed segmentation check order
|
||||
Improved rd_pick_intra4x4block
|
||||
Adds armv6 optimized variance calculation
|
||||
ARMv6 optimized sad16x16
|
||||
ARMv6 optimized half pixel variance calculations
|
||||
Full search SAD function optimization in SSE4.1
|
||||
Improve MV prediction accuracy to achieve performance gain
|
||||
Improve MV prediction in vp8_pick_inter_mode() for speed>3
|
||||
|
||||
- Quality:
|
||||
Best quality mode improved PSNR 6.3%, and SSIM 6.1%. This release
|
||||
also includes support for "activity masking," which greatly improves
|
||||
SSIM at the expense of PSNR. For now, this feature is available with
|
||||
the --tune=ssim option. Further experimentation in this area
|
||||
is ongoing. This release also introduces a new rate control mode
|
||||
called "CQ," which changes the allocation of bits within a clip to
|
||||
the sections where they will have the most visual impact.
|
||||
|
||||
Tuning for the more exact quantizer.
|
||||
Relax rate control for last few frames
|
||||
CQ Mode
|
||||
Limit key frame quantizer for forced key frames.
|
||||
KF/GF Pulsing
|
||||
Add simple version of activity masking.
|
||||
make rdmult adaptive for intra in quantizer RDO
|
||||
cap the best quantizer for 2nd order DC
|
||||
change the threshold of DC check for encode breakout
|
||||
|
||||
- Bug Fixes:
|
||||
Fix crash on Sparc Solaris.
|
||||
Fix counter of fixed keyframe distance
|
||||
ARNR filter pointer update bug fix
|
||||
Fixed use of motion percentage in KF/GF group calc
|
||||
Changed condition for using RD in Intra Mode
|
||||
Fix encoder real-time only configuration.
|
||||
Fix ARM encoder crash with multiple token partitions
|
||||
Fixed bug first cluster timecode of webm file is wrong.
|
||||
Fixed various encoder bugs with odd-sized images
|
||||
vp8e_get_preview fixed when spatial resampling enabled
|
||||
quantizer: fix assertion in fast quantizer path
|
||||
Allocate source buffers to be multiples of 16
|
||||
Fix for manual Golden frame frequency
|
||||
Fix drastic undershoot in long form content
|
||||
|
||||
|
||||
2010-10-28 v0.9.5 "Aylesbury"
|
||||
Our first named release, focused on a faster decoder, and a better encoder.
|
||||
|
||||
|
4
README
4
README
@@ -45,18 +45,14 @@ COMPILING THE APPLICATIONS/LIBRARIES:
|
||||
armv5te-linux-rvct
|
||||
armv5te-linux-gcc
|
||||
armv5te-symbian-gcc
|
||||
armv5te-wince-vs8
|
||||
armv6-darwin-gcc
|
||||
armv6-linux-rvct
|
||||
armv6-linux-gcc
|
||||
armv6-symbian-gcc
|
||||
armv6-wince-vs8
|
||||
iwmmxt-linux-rvct
|
||||
iwmmxt-linux-gcc
|
||||
iwmmxt-wince-vs8
|
||||
iwmmxt2-linux-rvct
|
||||
iwmmxt2-linux-gcc
|
||||
iwmmxt2-wince-vs8
|
||||
armv7-linux-rvct
|
||||
armv7-linux-gcc
|
||||
mips32-linux-gcc
|
||||
|
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VisualStudioToolFile
|
||||
Name="armasm"
|
||||
Version="8.00"
|
||||
>
|
||||
<Rules>
|
||||
<CustomBuildRule
|
||||
Name="ARMASM"
|
||||
DisplayName="Armasm Assembler"
|
||||
CommandLine="armasm -o "$(IntDir)\$(InputName).obj" $(InputPath) -32 -ARCH 5
"
|
||||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
FileExtensions="*.asm"
|
||||
ExecutionDescription="Assembling $(InputName).asm"
|
||||
ShowOnlyRuleProperties="false"
|
||||
>
|
||||
<Properties>
|
||||
</Properties>
|
||||
</CustomBuildRule>
|
||||
</Rules>
|
||||
</VisualStudioToolFile>
|
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VisualStudioToolFile
|
||||
Name="armasm"
|
||||
Version="8.00"
|
||||
>
|
||||
<Rules>
|
||||
<CustomBuildRule
|
||||
Name="ARMASM"
|
||||
DisplayName="Armasm Assembler"
|
||||
CommandLine="armasm -o "$(IntDir)\$(InputName).obj" $(InputPath) -32 -ARCH 6
"
|
||||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
FileExtensions="*.asm"
|
||||
ExecutionDescription="Assembling $(InputName).asm"
|
||||
ShowOnlyRuleProperties="false"
|
||||
>
|
||||
<Properties>
|
||||
</Properties>
|
||||
</CustomBuildRule>
|
||||
</Rules>
|
||||
</VisualStudioToolFile>
|
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<VisualStudioToolFile
|
||||
Name="armasm"
|
||||
Version="8.00"
|
||||
>
|
||||
<Rules>
|
||||
<CustomBuildRule
|
||||
Name="ARMASM"
|
||||
DisplayName="Armasm Assembler"
|
||||
CommandLine="armasm -o "$(IntDir)\$(InputName).obj" $(InputPath) -32 -cpu XSCALE
"
|
||||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
FileExtensions="*.asm"
|
||||
ExecutionDescription="Assembling $(InputName).asm"
|
||||
ShowOnlyRuleProperties="false"
|
||||
>
|
||||
<Properties>
|
||||
</Properties>
|
||||
</CustomBuildRule>
|
||||
</Rules>
|
||||
</VisualStudioToolFile>
|
@@ -1,13 +0,0 @@
|
||||
@echo off
|
||||
REM Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
REM
|
||||
REM Use of this source code is governed by a BSD-style license
|
||||
REM that can be found in the LICENSE file in the root of the source
|
||||
REM tree. An additional intellectual property rights grant can be found
|
||||
REM in the file PATENTS. All contributing project authors may
|
||||
REM be found in the AUTHORS file in the root of the source tree.
|
||||
echo on
|
||||
|
||||
|
||||
cl /I ".\\" /I "..\vp6_decoder_sdk" /I "..\vp6_decoder_sdk\vpx_ports" /D "NDEBUG" /D "_WIN32_WCE=0x420" /D "UNDER_CE" /D "WIN32_PLATFORM_PSPC" /D "WINCE" /D "_LIB" /D "ARM" /D "_ARM_" /D "_UNICODE" /D "UNICODE" /FD /EHsc /MT /GS- /fp:fast /GR- /Fo"Pocket_PC_2003__ARMV4_\%1/" /Fd"Pocket_PC_2003__ARMV4_\%1/vc80.pdb" /W3 /nologo /c /TC ..\vp6_decoder_sdk\vp6_decoder\algo\common\arm\dec_asm_offsets_arm.c
|
||||
obj_int_extract.exe rvds "Pocket_PC_2003__ARMV4_\%1/dec_asm_offsets_arm.obj"
|
@@ -1,88 +0,0 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example", "example.vcproj", "{BA5FE66F-38DD-E034-F542-B1578C5FB950}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74} = {DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}
|
||||
{E1360C65-D375-4335-8057-7ED99CC3F9B2} = {E1360C65-D375-4335-8057-7ED99CC3F9B2}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obj_int_extract", "obj_int_extract.vcproj", "{E1360C65-D375-4335-8057-7ED99CC3F9B2}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vpx", "vpx.vcproj", "{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{E1360C65-D375-4335-8057-7ED99CC3F9B2} = {E1360C65-D375-4335-8057-7ED99CC3F9B2}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xma", "xma.vcproj", "{A955FC4A-73F1-44F7-135E-30D84D32F022}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{E1360C65-D375-4335-8057-7ED99CC3F9B2} = {E1360C65-D375-4335-8057-7ED99CC3F9B2}
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74} = {DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
||||
Debug|Pocket PC 2003 (ARMV4) = Debug|Pocket PC 2003 (ARMV4)
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Mixed Platforms = Release|Mixed Platforms
|
||||
Release|Pocket PC 2003 (ARMV4) = Release|Pocket PC 2003 (ARMV4)
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{BA5FE66F-38DD-E034-F542-B1578C5FB950}.Debug|Mixed Platforms.ActiveCfg = Debug|Pocket PC 2003 (ARMV4)
|
||||
{BA5FE66F-38DD-E034-F542-B1578C5FB950}.Debug|Mixed Platforms.Build.0 = Debug|Pocket PC 2003 (ARMV4)
|
||||
{BA5FE66F-38DD-E034-F542-B1578C5FB950}.Debug|Mixed Platforms.Deploy.0 = Debug|Pocket PC 2003 (ARMV4)
|
||||
{BA5FE66F-38DD-E034-F542-B1578C5FB950}.Debug|Pocket PC 2003 (ARMV4).ActiveCfg = Debug|Pocket PC 2003 (ARMV4)
|
||||
{BA5FE66F-38DD-E034-F542-B1578C5FB950}.Debug|Pocket PC 2003 (ARMV4).Build.0 = Debug|Pocket PC 2003 (ARMV4)
|
||||
{BA5FE66F-38DD-E034-F542-B1578C5FB950}.Debug|Pocket PC 2003 (ARMV4).Deploy.0 = Debug|Pocket PC 2003 (ARMV4)
|
||||
{BA5FE66F-38DD-E034-F542-B1578C5FB950}.Debug|Win32.ActiveCfg = Debug|Pocket PC 2003 (ARMV4)
|
||||
{BA5FE66F-38DD-E034-F542-B1578C5FB950}.Release|Mixed Platforms.ActiveCfg = Release|Pocket PC 2003 (ARMV4)
|
||||
{BA5FE66F-38DD-E034-F542-B1578C5FB950}.Release|Mixed Platforms.Build.0 = Release|Pocket PC 2003 (ARMV4)
|
||||
{BA5FE66F-38DD-E034-F542-B1578C5FB950}.Release|Mixed Platforms.Deploy.0 = Release|Pocket PC 2003 (ARMV4)
|
||||
{BA5FE66F-38DD-E034-F542-B1578C5FB950}.Release|Pocket PC 2003 (ARMV4).ActiveCfg = Release|Pocket PC 2003 (ARMV4)
|
||||
{BA5FE66F-38DD-E034-F542-B1578C5FB950}.Release|Pocket PC 2003 (ARMV4).Build.0 = Release|Pocket PC 2003 (ARMV4)
|
||||
{BA5FE66F-38DD-E034-F542-B1578C5FB950}.Release|Pocket PC 2003 (ARMV4).Deploy.0 = Release|Pocket PC 2003 (ARMV4)
|
||||
{BA5FE66F-38DD-E034-F542-B1578C5FB950}.Release|Win32.ActiveCfg = Release|Pocket PC 2003 (ARMV4)
|
||||
{E1360C65-D375-4335-8057-7ED99CC3F9B2}.Debug|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{E1360C65-D375-4335-8057-7ED99CC3F9B2}.Debug|Mixed Platforms.Build.0 = Release|Win32
|
||||
{E1360C65-D375-4335-8057-7ED99CC3F9B2}.Debug|Pocket PC 2003 (ARMV4).ActiveCfg = Release|Win32
|
||||
{E1360C65-D375-4335-8057-7ED99CC3F9B2}.Debug|Win32.ActiveCfg = Release|Win32
|
||||
{E1360C65-D375-4335-8057-7ED99CC3F9B2}.Debug|Win32.Build.0 = Release|Win32
|
||||
{E1360C65-D375-4335-8057-7ED99CC3F9B2}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{E1360C65-D375-4335-8057-7ED99CC3F9B2}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{E1360C65-D375-4335-8057-7ED99CC3F9B2}.Release|Pocket PC 2003 (ARMV4).ActiveCfg = Release|Win32
|
||||
{E1360C65-D375-4335-8057-7ED99CC3F9B2}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{E1360C65-D375-4335-8057-7ED99CC3F9B2}.Release|Win32.Build.0 = Release|Win32
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Debug|Mixed Platforms.ActiveCfg = Debug|Pocket PC 2003 (ARMV4)
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Debug|Mixed Platforms.Build.0 = Debug|Pocket PC 2003 (ARMV4)
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Debug|Mixed Platforms.Deploy.0 = Debug|Pocket PC 2003 (ARMV4)
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Debug|Pocket PC 2003 (ARMV4).ActiveCfg = Debug|Pocket PC 2003 (ARMV4)
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Debug|Pocket PC 2003 (ARMV4).Build.0 = Debug|Pocket PC 2003 (ARMV4)
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Debug|Pocket PC 2003 (ARMV4).Deploy.0 = Debug|Pocket PC 2003 (ARMV4)
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Debug|Win32.ActiveCfg = Debug|Pocket PC 2003 (ARMV4)
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Release|Mixed Platforms.ActiveCfg = Release|Pocket PC 2003 (ARMV4)
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Release|Mixed Platforms.Build.0 = Release|Pocket PC 2003 (ARMV4)
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Release|Mixed Platforms.Deploy.0 = Release|Pocket PC 2003 (ARMV4)
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Release|Pocket PC 2003 (ARMV4).ActiveCfg = Release|Pocket PC 2003 (ARMV4)
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Release|Pocket PC 2003 (ARMV4).Build.0 = Release|Pocket PC 2003 (ARMV4)
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Release|Pocket PC 2003 (ARMV4).Deploy.0 = Release|Pocket PC 2003 (ARMV4)
|
||||
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Release|Win32.ActiveCfg = Release|Pocket PC 2003 (ARMV4)
|
||||
{A955FC4A-73F1-44F7-135E-30D84D32F022}.Debug|Mixed Platforms.ActiveCfg = Debug|Pocket PC 2003 (ARMV4)
|
||||
{A955FC4A-73F1-44F7-135E-30D84D32F022}.Debug|Mixed Platforms.Build.0 = Debug|Pocket PC 2003 (ARMV4)
|
||||
{A955FC4A-73F1-44F7-135E-30D84D32F022}.Debug|Mixed Platforms.Deploy.0 = Debug|Pocket PC 2003 (ARMV4)
|
||||
{A955FC4A-73F1-44F7-135E-30D84D32F022}.Debug|Pocket PC 2003 (ARMV4).ActiveCfg = Debug|Pocket PC 2003 (ARMV4)
|
||||
{A955FC4A-73F1-44F7-135E-30D84D32F022}.Debug|Pocket PC 2003 (ARMV4).Build.0 = Debug|Pocket PC 2003 (ARMV4)
|
||||
{A955FC4A-73F1-44F7-135E-30D84D32F022}.Debug|Pocket PC 2003 (ARMV4).Deploy.0 = Debug|Pocket PC 2003 (ARMV4)
|
||||
{A955FC4A-73F1-44F7-135E-30D84D32F022}.Debug|Win32.ActiveCfg = Debug|Pocket PC 2003 (ARMV4)
|
||||
{A955FC4A-73F1-44F7-135E-30D84D32F022}.Release|Mixed Platforms.ActiveCfg = Release|Pocket PC 2003 (ARMV4)
|
||||
{A955FC4A-73F1-44F7-135E-30D84D32F022}.Release|Mixed Platforms.Build.0 = Release|Pocket PC 2003 (ARMV4)
|
||||
{A955FC4A-73F1-44F7-135E-30D84D32F022}.Release|Mixed Platforms.Deploy.0 = Release|Pocket PC 2003 (ARMV4)
|
||||
{A955FC4A-73F1-44F7-135E-30D84D32F022}.Release|Pocket PC 2003 (ARMV4).ActiveCfg = Release|Pocket PC 2003 (ARMV4)
|
||||
{A955FC4A-73F1-44F7-135E-30D84D32F022}.Release|Pocket PC 2003 (ARMV4).Build.0 = Release|Pocket PC 2003 (ARMV4)
|
||||
{A955FC4A-73F1-44F7-135E-30D84D32F022}.Release|Pocket PC 2003 (ARMV4).Deploy.0 = Release|Pocket PC 2003 (ARMV4)
|
||||
{A955FC4A-73F1-44F7-135E-30D84D32F022}.Release|Win32.ActiveCfg = Release|Pocket PC 2003 (ARMV4)
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
@@ -624,6 +624,10 @@ process_common_toolchain() {
|
||||
|
||||
# Handle Solaris variants. Solaris 10 needs -lposix4
|
||||
case ${toolchain} in
|
||||
sparc-solaris-*)
|
||||
add_extralibs -lposix4
|
||||
add_cflags "-DMUST_BE_ALIGNED"
|
||||
;;
|
||||
*-solaris-*)
|
||||
add_extralibs -lposix4
|
||||
;;
|
||||
@@ -725,19 +729,18 @@ process_common_toolchain() {
|
||||
add_cflags -arch ${tgt_isa}
|
||||
add_ldflags -arch_only ${tgt_isa}
|
||||
|
||||
add_cflags "-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk"
|
||||
add_cflags "-isysroot ${SDK_PATH}/SDKs/iPhoneOS4.3.sdk"
|
||||
|
||||
# This should be overridable
|
||||
alt_libc=${SDK_PATH}/SDKs/iPhoneOS4.2.sdk
|
||||
alt_libc=${SDK_PATH}/SDKs/iPhoneOS4.3.sdk
|
||||
|
||||
# Add the paths for the alternate libc
|
||||
# for d in usr/include usr/include/gcc/darwin/4.0/; do
|
||||
for d in usr/include usr/include/gcc/darwin/4.0/ usr/lib/gcc/arm-apple-darwin10/4.2.1/include/; do
|
||||
for d in usr/include usr/include/gcc/darwin/4.2/ usr/lib/gcc/arm-apple-darwin10/4.2.1/include/; do
|
||||
try_dir="${alt_libc}/${d}"
|
||||
[ -d "${try_dir}" ] && add_cflags -I"${try_dir}"
|
||||
done
|
||||
|
||||
for d in lib usr/lib; do
|
||||
for d in lib usr/lib usr/lib/system; do
|
||||
try_dir="${alt_libc}/${d}"
|
||||
[ -d "${try_dir}" ] && add_ldflags -L"${try_dir}"
|
||||
done
|
||||
@@ -863,7 +866,7 @@ process_common_toolchain() {
|
||||
setup_gnu_toolchain
|
||||
add_cflags -use-msasm -use-asm
|
||||
add_ldflags -i-static
|
||||
enabled x86_64 && add_cflags -ipo -no-prec-div -static -xSSE3 -axSSE3
|
||||
enabled x86_64 && add_cflags -ipo -no-prec-div -static -xSSE2 -axSSE2
|
||||
enabled x86_64 && AR=xiar
|
||||
case ${tune_cpu} in
|
||||
atom*)
|
||||
|
@@ -32,7 +32,7 @@ Options:
|
||||
--name=project_name Name of the project (required)
|
||||
--proj-guid=GUID GUID to use for the project
|
||||
--module-def=filename File containing export definitions (for DLLs)
|
||||
--ver=version Version (7,8) of visual studio to generate for
|
||||
--ver=version Version (7,8,9) of visual studio to generate for
|
||||
-Ipath/to/include Additional include directories
|
||||
-DFLAG[=value] Preprocessor macros to define
|
||||
-Lpath/to/lib Additional library search paths
|
||||
@@ -132,7 +132,7 @@ generate_filter() {
|
||||
open_tag Filter \
|
||||
Name=$name \
|
||||
Filter=$pats \
|
||||
UniqueIdentifier=`generate_uuid`
|
||||
UniqueIdentifier=`generate_uuid` \
|
||||
|
||||
file_list_sz=${#file_list[@]}
|
||||
for i in ${!file_list[@]}; do
|
||||
@@ -145,31 +145,21 @@ generate_filter() {
|
||||
if [ "$pat" == "asm" ] && $asm_use_custom_step; then
|
||||
for plat in "${platforms[@]}"; do
|
||||
for cfg in Debug Release; do
|
||||
open_tag FileConfiguration \
|
||||
Name="${cfg}|${plat}"
|
||||
open_tag FileConfiguration \
|
||||
Name="${cfg}|${plat}" \
|
||||
|
||||
tag Tool \
|
||||
Name="VCCustomBuildTool" \
|
||||
Description="Assembling \$(InputFileName)" \
|
||||
CommandLine="$(eval echo \$asm_${cfg}_cmdline)"\
|
||||
Outputs="\$(InputName).obj"
|
||||
CommandLine="$(eval echo \$asm_${cfg}_cmdline)" \
|
||||
Outputs="\$(InputName).obj" \
|
||||
|
||||
close_tag FileConfiguration
|
||||
done
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "${f##*.}" == "cpp" ]; then
|
||||
for plat in "${platforms[@]}"; do
|
||||
for cfg in Debug Release; do
|
||||
open_tag FileConfiguration \
|
||||
Name="${cfg}|${plat}"
|
||||
tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
CompileAs="2"
|
||||
close_tag FileConfiguration
|
||||
done
|
||||
done
|
||||
fi
|
||||
close_tag File
|
||||
close_tag File
|
||||
|
||||
break
|
||||
fi
|
||||
@@ -185,57 +175,61 @@ unset target
|
||||
for opt in "$@"; do
|
||||
optval="${opt#*=}"
|
||||
case "$opt" in
|
||||
--help|-h) show_help
|
||||
;;
|
||||
--target=*) target="${optval}"
|
||||
;;
|
||||
--out=*) outfile="$optval"
|
||||
;;
|
||||
--name=*) name="${optval}"
|
||||
;;
|
||||
--proj-guid=*) guid="${optval}"
|
||||
;;
|
||||
--module-def=*)
|
||||
link_opts="${link_opts} ModuleDefinitionFile=${optval}"
|
||||
;;
|
||||
--exe) proj_kind="exe"
|
||||
;;
|
||||
--lib) proj_kind="lib"
|
||||
;;
|
||||
--static-crt) use_static_runtime=true
|
||||
;;
|
||||
--ver=*) vs_ver="$optval"
|
||||
case $optval in
|
||||
[789])
|
||||
;;
|
||||
*) die Unrecognized Visual Studio Version in $opt
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-I*) opt="${opt%/}"
|
||||
incs="${incs}${incs:+;}"${opt##-I}""
|
||||
yasmincs="${yasmincs} ${opt}"
|
||||
;;
|
||||
-D*) defines="${defines}${defines:+;}${opt##-D}"
|
||||
;;
|
||||
-L*) # fudge . to $(OutDir)
|
||||
if [ "${opt##-L}" == "." ]; then
|
||||
libdirs="${libdirs}${libdirs:+;}"\$(OutDir)""
|
||||
else
|
||||
# Also try directories for this platform/configuration
|
||||
libdirs="${libdirs}${libdirs:+;}"${opt##-L}""
|
||||
libdirs="${libdirs}${libdirs:+;}"${opt##-L}/\$(PlatformName)/\$(ConfigurationName)""
|
||||
libdirs="${libdirs}${libdirs:+;}"${opt##-L}/\$(PlatformName)""
|
||||
fi
|
||||
;;
|
||||
-l*) libs="${libs}${libs:+ }${opt##-l}.lib"
|
||||
;;
|
||||
-*) die_unknown $opt
|
||||
;;
|
||||
*) file_list[${#file_list[@]}]="$opt"
|
||||
case "$opt" in
|
||||
*.asm) uses_asm=true;;
|
||||
esac
|
||||
--help|-h) show_help
|
||||
;;
|
||||
--target=*) target="${optval}"
|
||||
;;
|
||||
--out=*) outfile="$optval"
|
||||
;;
|
||||
--name=*) name="${optval}"
|
||||
;;
|
||||
--proj-guid=*) guid="${optval}"
|
||||
;;
|
||||
--module-def=*) link_opts="${link_opts} ModuleDefinitionFile=${optval}"
|
||||
;;
|
||||
--exe) proj_kind="exe"
|
||||
;;
|
||||
--lib) proj_kind="lib"
|
||||
;;
|
||||
--static-crt) use_static_runtime=true
|
||||
;;
|
||||
--ver=*)
|
||||
vs_ver="$optval"
|
||||
case "$optval" in
|
||||
[789])
|
||||
;;
|
||||
*) die Unrecognized Visual Studio Version in $opt
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-I*)
|
||||
opt="${opt%/}"
|
||||
incs="${incs}${incs:+;}"${opt##-I}""
|
||||
yasmincs="${yasmincs} ${opt}"
|
||||
;;
|
||||
-D*) defines="${defines}${defines:+;}${opt##-D}"
|
||||
;;
|
||||
-L*) # fudge . to $(OutDir)
|
||||
if [ "${opt##-L}" == "." ]; then
|
||||
libdirs="${libdirs}${libdirs:+;}"\$(OutDir)""
|
||||
else
|
||||
# Also try directories for this platform/configuration
|
||||
libdirs="${libdirs}${libdirs:+;}"${opt##-L}""
|
||||
libdirs="${libdirs}${libdirs:+;}"${opt##-L}/\$(PlatformName)/\$(ConfigurationName)""
|
||||
libdirs="${libdirs}${libdirs:+;}"${opt##-L}/\$(PlatformName)""
|
||||
fi
|
||||
;;
|
||||
-l*) libs="${libs}${libs:+ }${opt##-l}.lib"
|
||||
;;
|
||||
-*) die_unknown $opt
|
||||
;;
|
||||
*)
|
||||
file_list[${#file_list[@]}]="$opt"
|
||||
case "$opt" in
|
||||
*.asm) uses_asm=true
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
done
|
||||
outfile=${outfile:-/dev/stdout}
|
||||
@@ -278,11 +272,7 @@ done
|
||||
|
||||
# List Keyword for this target
|
||||
case "$target" in
|
||||
x86*)
|
||||
keyword="ManagedCProj"
|
||||
;;
|
||||
arm*|iwmmx*)
|
||||
keyword="Win32Proj"
|
||||
x86*) keyword="ManagedCProj"
|
||||
;;
|
||||
*) die "Unsupported target $target!"
|
||||
esac
|
||||
@@ -298,402 +288,188 @@ case "$target" in
|
||||
asm_Debug_cmdline="yasm -Xvc -g cv8 -f \$(PlatformName) ${yasmincs} "\$(InputPath)""
|
||||
asm_Release_cmdline="yasm -Xvc -f \$(PlatformName) ${yasmincs} "\$(InputPath)""
|
||||
;;
|
||||
arm*|iwmmx*)
|
||||
case "${name}" in
|
||||
obj_int_extract) platforms[0]="Win32"
|
||||
;;
|
||||
*) platforms[0]="Pocket PC 2003 (ARMV4)"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*) die "Unsupported target $target!"
|
||||
esac
|
||||
|
||||
# List Command-line Arguments for this target
|
||||
case "$target" in
|
||||
arm*|iwmmx*)
|
||||
if [ "$name" == "example" ];then
|
||||
ARGU="--codec vp6 --flipuv --progress _bnd.vp6"
|
||||
fi
|
||||
if [ "$name" == "xma" ];then
|
||||
ARGU="--codec vp6 -h 240 -w 320 -v"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
generate_vcproj() {
|
||||
case "$proj_kind" in
|
||||
exe) vs_ConfigurationType=1
|
||||
;;
|
||||
*) vs_ConfigurationType=4
|
||||
;;
|
||||
exe) vs_ConfigurationType=1
|
||||
;;
|
||||
*) vs_ConfigurationType=4
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "<?xml version=\"1.0\" encoding=\"Windows-1252\"?>"
|
||||
open_tag VisualStudioProject \
|
||||
ProjectType="Visual C++" \
|
||||
Version="${vs_ver_id}" \
|
||||
Name="${name}" \
|
||||
ProjectGUID="{${guid}}" \
|
||||
RootNamespace="${name}" \
|
||||
Keyword="${keyword}"
|
||||
open_tag VisualStudioProject \
|
||||
ProjectType="Visual C++" \
|
||||
Version="${vs_ver_id}" \
|
||||
Name="${name}" \
|
||||
ProjectGUID="{${guid}}" \
|
||||
RootNamespace="${name}" \
|
||||
Keyword="${keyword}" \
|
||||
|
||||
open_tag Platforms
|
||||
open_tag Platforms
|
||||
for plat in "${platforms[@]}"; do
|
||||
tag Platform Name="$plat"
|
||||
tag Platform Name="$plat"
|
||||
done
|
||||
close_tag Platforms
|
||||
|
||||
open_tag ToolFiles
|
||||
open_tag ToolFiles
|
||||
case "$target" in
|
||||
x86*) $uses_asm && tag ToolFile RelativePath="$self_dirname/../x86-msvs/yasm.rules"
|
||||
;;
|
||||
arm*|iwmmx*)
|
||||
if [ "$name" == "vpx" ];then
|
||||
case "$target" in
|
||||
armv5*)
|
||||
tag ToolFile RelativePath="$self_dirname/../arm-wince-vs8/armasmv5.rules"
|
||||
;;
|
||||
armv6*)
|
||||
tag ToolFile RelativePath="$self_dirname/../arm-wince-vs8/armasmv6.rules"
|
||||
;;
|
||||
iwmmxt*)
|
||||
tag ToolFile RelativePath="$self_dirname/../arm-wince-vs8/armasmxscale.rules"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
close_tag ToolFiles
|
||||
|
||||
open_tag Configurations
|
||||
open_tag Configurations
|
||||
for plat in "${platforms[@]}"; do
|
||||
plat_no_ws=`echo $plat | sed 's/[^A-Za-z0-9_]/_/g'`
|
||||
open_tag Configuration \
|
||||
Name="Debug|$plat" \
|
||||
OutputDirectory="\$(SolutionDir)$plat_no_ws/\$(ConfigurationName)" \
|
||||
IntermediateDirectory="$plat_no_ws/\$(ConfigurationName)/${name}" \
|
||||
ConfigurationType="$vs_ConfigurationType" \
|
||||
CharacterSet="1"
|
||||
|
||||
if [ "$target" == "armv6-wince-vs8" ] || [ "$target" == "armv5te-wince-vs8" ] || [ "$target" == "iwmmxt-wince-vs8" ] || [ "$target" == "iwmmxt2-wince-vs8" ];then
|
||||
case "$name" in
|
||||
vpx) tag Tool \
|
||||
Name="VCPreBuildEventTool" \
|
||||
CommandLine="call obj_int_extract.bat \$(ConfigurationName)"
|
||||
tag Tool \
|
||||
Name="VCMIDLTool" \
|
||||
TargetEnvironment="1"
|
||||
tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
ExecutionBucket="7" \
|
||||
Optimization="0" \
|
||||
AdditionalIncludeDirectories="$incs" \
|
||||
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=\$(CEVER);UNDER_CE;\$(PLATFORMDEFINES);WINCE;DEBUG;_LIB;\$(ARCHFAM);\$(_ARCHFAM_);_UNICODE;UNICODE;" \
|
||||
MinimalRebuild="true" \
|
||||
RuntimeLibrary="1" \
|
||||
BufferSecurityCheck="false" \
|
||||
UsePrecompiledHeader="0" \
|
||||
WarningLevel="3" \
|
||||
DebugInformationFormat="1" \
|
||||
CompileAs="1"
|
||||
tag Tool \
|
||||
Name="VCResourceCompilerTool" \
|
||||
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=\$(CEVER);UNDER_CE;\$(PLATFORMDEFINES)" \
|
||||
Culture="1033" \
|
||||
AdditionalIncludeDirectories="\$(IntDir)" \
|
||||
;;
|
||||
example|xma) tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
ExecutionBucket="7" \
|
||||
Optimization="0" \
|
||||
AdditionalIncludeDirectories="$incs" \
|
||||
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=\$(CEVER);UNDER_CE;\$(PLATFORMDEFINES);WINCE;DEBUG;_CONSOLE;\$(ARCHFAM);\$(_ARCHFAM_);_UNICODE;UNICODE;" \
|
||||
MinimalRebuild="true" \
|
||||
RuntimeLibrary="1" \
|
||||
BufferSecurityCheck="false" \
|
||||
UsePrecompiledHeader="0" \
|
||||
WarningLevel="3" \
|
||||
DebugInformationFormat="1" \
|
||||
CompileAs="1"
|
||||
tag Tool \
|
||||
Name="VCResourceCompilerTool" \
|
||||
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=\$(CEVER);UNDER_CE;\$(PLATFORMDEFINES)" \
|
||||
Culture="1033" \
|
||||
AdditionalIncludeDirectories="\$(IntDir)" \
|
||||
;;
|
||||
obj_int_extract) tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
Optimization="0" \
|
||||
AdditionalIncludeDirectories="$incs" \
|
||||
PreprocessorDefinitions="WIN32;DEBUG;_CONSOLE" \
|
||||
RuntimeLibrary="1" \
|
||||
WarningLevel="3" \
|
||||
DebugInformationFormat="1" \
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
open_tag Configuration \
|
||||
Name="Debug|$plat" \
|
||||
OutputDirectory="\$(SolutionDir)$plat_no_ws/\$(ConfigurationName)" \
|
||||
IntermediateDirectory="$plat_no_ws/\$(ConfigurationName)/${name}" \
|
||||
ConfigurationType="$vs_ConfigurationType" \
|
||||
CharacterSet="1" \
|
||||
|
||||
case "$target" in
|
||||
x86*) tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
Optimization="0" \
|
||||
AdditionalIncludeDirectories="$incs" \
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;$defines" \
|
||||
RuntimeLibrary="$debug_runtime" \
|
||||
UsePrecompiledHeader="0" \
|
||||
WarningLevel="3" \
|
||||
DebugInformationFormat="1" \
|
||||
Detect64BitPortabilityProblems="true" \
|
||||
x86*)
|
||||
case "$name" in
|
||||
*)
|
||||
tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
Optimization="0" \
|
||||
AdditionalIncludeDirectories="$incs" \
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;$defines" \
|
||||
RuntimeLibrary="$debug_runtime" \
|
||||
UsePrecompiledHeader="0" \
|
||||
WarningLevel="3" \
|
||||
DebugInformationFormat="1" \
|
||||
Detect64BitPortabilityProblems="true" \
|
||||
|
||||
$uses_asm && tag Tool Name="YASM" IncludePaths="$incs" Debug="1"
|
||||
$uses_asm && tag Tool Name="YASM" IncludePaths="$incs" Debug="1"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$proj_kind" in
|
||||
exe)
|
||||
case "$target" in
|
||||
x86*) tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
AdditionalDependencies="$debug_libs \$(NoInherit)" \
|
||||
AdditionalLibraryDirectories="$libdirs" \
|
||||
GenerateDebugInformation="true" \
|
||||
ProgramDatabaseFile="\$(OutDir)/${name}.pdb" \
|
||||
|
||||
;;
|
||||
arm*|iwmmx*)
|
||||
x86*)
|
||||
case "$name" in
|
||||
obj_int_extract) tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
OutputFile="${name}.exe" \
|
||||
GenerateDebugInformation="true"
|
||||
;;
|
||||
*) tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
AdditionalDependencies="$debug_libs" \
|
||||
OutputFile="\$(OutDir)/${name}.exe" \
|
||||
LinkIncremental="2" \
|
||||
AdditionalLibraryDirectories="${libdirs};"..\lib/$plat_no_ws"" \
|
||||
DelayLoadDLLs="\$(NOINHERIT)" \
|
||||
GenerateDebugInformation="true" \
|
||||
ProgramDatabaseFile="\$(OutDir)/${name}.pdb" \
|
||||
SubSystem="9" \
|
||||
StackReserveSize="65536" \
|
||||
StackCommitSize="4096" \
|
||||
EntryPointSymbol="mainWCRTStartup" \
|
||||
TargetMachine="3"
|
||||
*)
|
||||
tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
AdditionalDependencies="$debug_libs \$(NoInherit)" \
|
||||
AdditionalLibraryDirectories="$libdirs" \
|
||||
GenerateDebugInformation="true" \
|
||||
ProgramDatabaseFile="\$(OutDir)/${name}.pdb" \
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
lib)
|
||||
case "$target" in
|
||||
arm*|iwmmx*) tag Tool \
|
||||
Name="VCLibrarianTool" \
|
||||
AdditionalOptions=" /subsystem:windowsce,4.20 /machine:ARM" \
|
||||
OutputFile="\$(OutDir)/${name}.lib" \
|
||||
;;
|
||||
*) tag Tool \
|
||||
Name="VCLibrarianTool" \
|
||||
OutputFile="\$(OutDir)/${name}${lib_sfx}d.lib" \
|
||||
;;
|
||||
x86*)
|
||||
tag Tool \
|
||||
Name="VCLibrarianTool" \
|
||||
OutputFile="\$(OutDir)/${name}${lib_sfx}d.lib" \
|
||||
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
dll) tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
AdditionalDependencies="\$(NoInherit)" \
|
||||
LinkIncremental="2" \
|
||||
GenerateDebugInformation="true" \
|
||||
AssemblyDebug="1" \
|
||||
TargetMachine="1" \
|
||||
$link_opts
|
||||
dll)
|
||||
tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
AdditionalDependencies="\$(NoInherit)" \
|
||||
LinkIncremental="2" \
|
||||
GenerateDebugInformation="true" \
|
||||
AssemblyDebug="1" \
|
||||
TargetMachine="1" \
|
||||
$link_opts \
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$target" == "armv6-wince-vs8" ] || [ "$target" == "armv5te-wince-vs8" ] || [ "$target" == "iwmmxt-wince-vs8" ] || [ "$target" == "iwmmxt2-wince-vs8" ];then
|
||||
case "$name" in
|
||||
vpx) tag DeploymentTool \
|
||||
ForceDirty="-1" \
|
||||
RegisterOutput="0"
|
||||
;;
|
||||
example|xma) tag DeploymentTool \
|
||||
ForceDirty="-1" \
|
||||
RegisterOutput="0"
|
||||
tag DebuggerTool \
|
||||
Arguments="${ARGU}"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
close_tag Configuration
|
||||
|
||||
open_tag Configuration \
|
||||
Name="Release|$plat" \
|
||||
OutputDirectory="\$(SolutionDir)$plat_no_ws/\$(ConfigurationName)" \
|
||||
IntermediateDirectory="$plat_no_ws/\$(ConfigurationName)/${name}" \
|
||||
ConfigurationType="$vs_ConfigurationType" \
|
||||
CharacterSet="1" \
|
||||
WholeProgramOptimization="0"
|
||||
open_tag Configuration \
|
||||
Name="Release|$plat" \
|
||||
OutputDirectory="\$(SolutionDir)$plat_no_ws/\$(ConfigurationName)" \
|
||||
IntermediateDirectory="$plat_no_ws/\$(ConfigurationName)/${name}" \
|
||||
ConfigurationType="$vs_ConfigurationType" \
|
||||
CharacterSet="1" \
|
||||
WholeProgramOptimization="0" \
|
||||
|
||||
if [ "$target" == "armv6-wince-vs8" ] || [ "$target" == "armv5te-wince-vs8" ] || [ "$target" == "iwmmxt-wince-vs8" ] || [ "$target" == "iwmmxt2-wince-vs8" ];then
|
||||
case "$name" in
|
||||
vpx) tag Tool \
|
||||
Name="VCPreBuildEventTool" \
|
||||
CommandLine="call obj_int_extract.bat \$(ConfigurationName)"
|
||||
tag Tool \
|
||||
Name="VCMIDLTool" \
|
||||
TargetEnvironment="1"
|
||||
tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
ExecutionBucket="7" \
|
||||
Optimization="2" \
|
||||
FavorSizeOrSpeed="1" \
|
||||
AdditionalIncludeDirectories="$incs" \
|
||||
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=\$(CEVER);UNDER_CE;\$(PLATFORMDEFINES);WINCE;_LIB;\$(ARCHFAM);\$(_ARCHFAM_);_UNICODE;UNICODE;" \
|
||||
RuntimeLibrary="0" \
|
||||
BufferSecurityCheck="false" \
|
||||
UsePrecompiledHeader="0" \
|
||||
WarningLevel="3" \
|
||||
DebugInformationFormat="0" \
|
||||
CompileAs="1"
|
||||
tag Tool \
|
||||
Name="VCResourceCompilerTool" \
|
||||
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=\$(CEVER);UNDER_CE;\$(PLATFORMDEFINES)" \
|
||||
Culture="1033" \
|
||||
AdditionalIncludeDirectories="\$(IntDir)" \
|
||||
;;
|
||||
example|xma) tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
ExecutionBucket="7" \
|
||||
Optimization="2" \
|
||||
FavorSizeOrSpeed="1" \
|
||||
AdditionalIncludeDirectories="$incs" \
|
||||
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=\$(CEVER);UNDER_CE;\$(PLATFORMDEFINES);WINCE;_CONSOLE;\$(ARCHFAM);\$(_ARCHFAM_);_UNICODE;UNICODE;" \
|
||||
RuntimeLibrary="0" \
|
||||
BufferSecurityCheck="false" \
|
||||
UsePrecompiledHeader="0" \
|
||||
WarningLevel="3" \
|
||||
DebugInformationFormat="0" \
|
||||
CompileAs="1"
|
||||
tag Tool \
|
||||
Name="VCResourceCompilerTool" \
|
||||
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=\$(CEVER);UNDER_CE;\$(PLATFORMDEFINES)" \
|
||||
Culture="1033" \
|
||||
AdditionalIncludeDirectories="\$(IntDir)" \
|
||||
;;
|
||||
obj_int_extract) tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
AdditionalIncludeDirectories="$incs" \
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" \
|
||||
RuntimeLibrary="0" \
|
||||
UsePrecompiledHeader="0" \
|
||||
WarningLevel="3" \
|
||||
Detect64BitPortabilityProblems="true" \
|
||||
DebugInformationFormat="0" \
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
case "$target" in
|
||||
x86*)
|
||||
case "$name" in
|
||||
*)
|
||||
tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
AdditionalIncludeDirectories="$incs" \
|
||||
Optimization="2" \
|
||||
FavorSizeorSpeed="1" \
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;$defines" \
|
||||
RuntimeLibrary="$release_runtime" \
|
||||
UsePrecompiledHeader="0" \
|
||||
WarningLevel="3" \
|
||||
DebugInformationFormat="0" \
|
||||
Detect64BitPortabilityProblems="true" \
|
||||
|
||||
case "$target" in
|
||||
x86*) tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
AdditionalIncludeDirectories="$incs" \
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;$defines" \
|
||||
RuntimeLibrary="$release_runtime" \
|
||||
UsePrecompiledHeader="0" \
|
||||
WarningLevel="3" \
|
||||
DebugInformationFormat="0" \
|
||||
Detect64BitPortabilityProblems="true"
|
||||
|
||||
$uses_asm && tag Tool Name="YASM" IncludePaths="$incs"
|
||||
;;
|
||||
$uses_asm && tag Tool Name="YASM" IncludePaths="$incs"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$proj_kind" in
|
||||
exe)
|
||||
case "$target" in
|
||||
x86*) tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
AdditionalDependencies="$libs \$(NoInherit)" \
|
||||
AdditionalLibraryDirectories="$libdirs" \
|
||||
;;
|
||||
arm*|iwmmx*)
|
||||
x86*)
|
||||
case "$name" in
|
||||
obj_int_extract) tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
OutputFile="${name}.exe" \
|
||||
LinkIncremental="1" \
|
||||
GenerateDebugInformation="false" \
|
||||
SubSystem="0" \
|
||||
OptimizeReferences="0" \
|
||||
EnableCOMDATFolding="0" \
|
||||
TargetMachine="0"
|
||||
;;
|
||||
*) tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
AdditionalDependencies="$libs" \
|
||||
OutputFile="\$(OutDir)/${name}.exe" \
|
||||
LinkIncremental="1" \
|
||||
AdditionalLibraryDirectories="${libdirs};"..\lib/$plat_no_ws"" \
|
||||
DelayLoadDLLs="\$(NOINHERIT)" \
|
||||
GenerateDebugInformation="true" \
|
||||
ProgramDatabaseFile="\$(OutDir)/${name}.pdb" \
|
||||
SubSystem="9" \
|
||||
StackReserveSize="65536" \
|
||||
StackCommitSize="4096" \
|
||||
OptimizeReferences="2" \
|
||||
EnableCOMDATFolding="2" \
|
||||
EntryPointSymbol="mainWCRTStartup" \
|
||||
TargetMachine="3"
|
||||
*)
|
||||
tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
AdditionalDependencies="$libs \$(NoInherit)" \
|
||||
AdditionalLibraryDirectories="$libdirs" \
|
||||
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
lib)
|
||||
lib)
|
||||
case "$target" in
|
||||
arm*|iwmmx*) tag Tool \
|
||||
Name="VCLibrarianTool" \
|
||||
AdditionalOptions=" /subsystem:windowsce,4.20 /machine:ARM" \
|
||||
OutputFile="\$(OutDir)/${name}.lib" \
|
||||
;;
|
||||
*) tag Tool \
|
||||
Name="VCLibrarianTool" \
|
||||
OutputFile="\$(OutDir)/${name}${lib_sfx}.lib" \
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
dll) # note differences to debug version: LinkIncremental, AssemblyDebug
|
||||
tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
AdditionalDependencies="\$(NoInherit)" \
|
||||
LinkIncremental="1" \
|
||||
GenerateDebugInformation="true" \
|
||||
TargetMachine="1" \
|
||||
$link_opts
|
||||
esac
|
||||
x86*)
|
||||
tag Tool \
|
||||
Name="VCLibrarianTool" \
|
||||
OutputFile="\$(OutDir)/${name}${lib_sfx}.lib" \
|
||||
|
||||
if [ "$target" == "armv6-wince-vs8" ] || [ "$target" == "armv5te-wince-vs8" ] || [ "$target" == "iwmmxt-wince-vs8" ] || [ "$target" == "iwmmxt2-wince-vs8" ];then
|
||||
case "$name" in
|
||||
vpx) tag DeploymentTool \
|
||||
ForceDirty="-1" \
|
||||
RegisterOutput="0"
|
||||
;;
|
||||
example|xma) tag DeploymentTool \
|
||||
ForceDirty="-1" \
|
||||
RegisterOutput="0"
|
||||
tag DebuggerTool \
|
||||
Arguments="${ARGU}"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
dll) # note differences to debug version: LinkIncremental, AssemblyDebug
|
||||
tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
AdditionalDependencies="\$(NoInherit)" \
|
||||
LinkIncremental="1" \
|
||||
GenerateDebugInformation="true" \
|
||||
TargetMachine="1" \
|
||||
$link_opts \
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
close_tag Configuration
|
||||
done
|
||||
close_tag Configurations
|
||||
|
||||
open_tag Files
|
||||
generate_filter srcs "Source Files" "cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
generate_filter hdrs "Header Files" "h;hpp;hxx;hm;inl;inc;xsd"
|
||||
open_tag Files
|
||||
generate_filter srcs "Source Files" "c;def;odl;idl;hpj;bat;asm;asmx"
|
||||
generate_filter hdrs "Header Files" "h;hm;inl;inc;xsd"
|
||||
generate_filter resrcs "Resource Files" "rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
generate_filter resrcs "Build Files" "mk"
|
||||
close_tag Files
|
||||
|
@@ -139,9 +139,6 @@ process_global() {
|
||||
echo "${indent}${proj_guid}.${config}.ActiveCfg = ${config}"
|
||||
echo "${indent}${proj_guid}.${config}.Build.0 = ${config}"
|
||||
|
||||
if [ "$target" == "armv6-wince-vs8" ] || [ "$target" == "armv5te-wince-vs8" ] || [ "$target" == "iwmmxt-wince-vs8" ] || [ "$target" == "iwmmxt2-wince-vs8" ];then
|
||||
echo "${indent}${proj_guid}.${config}.Deploy.0 = ${config}"
|
||||
fi
|
||||
done
|
||||
IFS=${IFS_bak}
|
||||
done
|
||||
|
4
configure
vendored
4
configure
vendored
@@ -80,19 +80,15 @@ all_platforms="${all_platforms} armv5te-linux-rvct"
|
||||
all_platforms="${all_platforms} armv5te-linux-gcc"
|
||||
all_platforms="${all_platforms} armv5te-none-rvct"
|
||||
all_platforms="${all_platforms} armv5te-symbian-gcc"
|
||||
all_platforms="${all_platforms} armv5te-wince-vs8"
|
||||
all_platforms="${all_platforms} armv6-darwin-gcc"
|
||||
all_platforms="${all_platforms} armv6-linux-rvct"
|
||||
all_platforms="${all_platforms} armv6-linux-gcc"
|
||||
all_platforms="${all_platforms} armv6-none-rvct"
|
||||
all_platforms="${all_platforms} armv6-symbian-gcc"
|
||||
all_platforms="${all_platforms} armv6-wince-vs8"
|
||||
all_platforms="${all_platforms} iwmmxt-linux-rvct"
|
||||
all_platforms="${all_platforms} iwmmxt-linux-gcc"
|
||||
all_platforms="${all_platforms} iwmmxt-wince-vs8"
|
||||
all_platforms="${all_platforms} iwmmxt2-linux-rvct"
|
||||
all_platforms="${all_platforms} iwmmxt2-linux-gcc"
|
||||
all_platforms="${all_platforms} iwmmxt2-wince-vs8"
|
||||
all_platforms="${all_platforms} armv7-darwin-gcc" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} armv7-linux-rvct" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} armv7-linux-gcc" #neon Cortex-A8
|
||||
|
3
docs.mk
3
docs.mk
@@ -34,7 +34,8 @@ TXT_DOX = $(call enabled,TXT_DOX)
|
||||
|
||||
EXAMPLE_PATH += $(SRC_PATH_BARE) #for CHANGELOG, README, etc
|
||||
|
||||
doxyfile: libs.doxy_template libs.doxy examples.doxy
|
||||
doxyfile: $(if $(findstring examples, $(ALL_TARGETS)),examples.doxy)
|
||||
doxyfile: libs.doxy_template libs.doxy
|
||||
@echo " [CREATE] $@"
|
||||
@cat $^ > $@
|
||||
@echo "STRIP_FROM_PATH += $(SRC_PATH_BARE) $(BUILD_ROOT)" >> $@
|
||||
|
@@ -19,7 +19,7 @@
|
||||
#define VPX_CODEC_DISABLE_COMPAT 1
|
||||
#include "vpx/vpx_decoder.h"
|
||||
#include "vpx/vp8dx.h"
|
||||
#define interface (&vpx_codec_vp8_dx_algo)
|
||||
#define interface (vpx_codec_vp8_dx())
|
||||
@EXTRA_INCLUDES
|
||||
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
#define VPX_CODEC_DISABLE_COMPAT 1
|
||||
#include "vpx/vpx_decoder.h"
|
||||
#include "vpx/vp8dx.h"
|
||||
#define interface (&vpx_codec_vp8_dx_algo)
|
||||
#define interface (vpx_codec_vp8_dx())
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DEC_INCLUDES
|
||||
|
||||
|
||||
|
@@ -19,7 +19,7 @@
|
||||
#define VPX_CODEC_DISABLE_COMPAT 1
|
||||
#include "vpx/vpx_encoder.h"
|
||||
#include "vpx/vp8cx.h"
|
||||
#define interface (&vpx_codec_vp8_cx_algo)
|
||||
#define interface (vpx_codec_vp8_cx())
|
||||
#define fourcc 0x30385056
|
||||
@EXTRA_INCLUDES
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
#define VPX_CODEC_DISABLE_COMPAT 1
|
||||
#include "vpx/vpx_encoder.h"
|
||||
#include "vpx/vp8cx.h"
|
||||
#define interface (&vpx_codec_vp8_cx_algo)
|
||||
#define interface (vpx_codec_vp8_cx())
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ENC_INCLUDES
|
||||
|
||||
|
||||
|
@@ -33,7 +33,7 @@ Initializing The Codec
|
||||
----------------------
|
||||
The decoder is initialized by the following code. This is an example for
|
||||
the VP8 decoder, but the code is analogous for all algorithms. Replace
|
||||
`&vpx_codec_vp8_dx_algo` with a pointer to the interface exposed by the
|
||||
`vpx_codec_vp8_dx()` with a pointer to the interface exposed by the
|
||||
algorithm you want to use. The `cfg` argument is left as NULL in this
|
||||
example, because we want the algorithm to determine the stream
|
||||
configuration (width/height) and allocate memory automatically. This
|
||||
|
23
libs.mk
23
libs.mk
@@ -126,29 +126,6 @@ INSTALL-SRCS-$(CONFIG_CODEC_SRCS) += $(call enabled,CODEC_EXPORTS)
|
||||
ifeq ($(CONFIG_EXTERNAL_BUILD),yes)
|
||||
ifeq ($(CONFIG_MSVS),yes)
|
||||
|
||||
ifeq ($(ARCH_ARM),yes)
|
||||
ifeq ($(HAVE_ARMV5TE),yes)
|
||||
ARM_ARCH=v5
|
||||
endif
|
||||
ifeq ($(HAVE_ARMV6),yes)
|
||||
ARM_ARCH=v6
|
||||
endif
|
||||
obj_int_extract.vcproj: $(SRC_PATH_BARE)/build/make/obj_int_extract.c
|
||||
@cp $(SRC_PATH_BARE)/build/arm-wince-vs8/obj_int_extract.bat .
|
||||
@echo " [CREATE] $@"
|
||||
$(SRC_PATH_BARE)/build/make/gen_msvs_proj.sh\
|
||||
--exe\
|
||||
--target=$(TOOLCHAIN)\
|
||||
$(if $(CONFIG_STATIC_MSVCRT),--static-crt) \
|
||||
--name=obj_int_extract\
|
||||
--proj-guid=E1360C65-D375-4335-8057-7ED99CC3F9B2\
|
||||
--out=$@ $^\
|
||||
-I".";"$(SRC_PATH_BARE)"
|
||||
|
||||
PROJECTS-$(BUILD_LIBVPX) += obj_int_extract.vcproj
|
||||
PROJECTS-$(BUILD_LIBVPX) += obj_int_extract.bat
|
||||
endif
|
||||
|
||||
vpx.def: $(call enabled,CODEC_EXPORTS)
|
||||
@echo " [CREATE] $@"
|
||||
$(SRC_PATH_BARE)/build/make/gen_msvs_def.sh\
|
||||
|
@@ -31,7 +31,7 @@
|
||||
The WebM project is an open source project supported by its community. For
|
||||
questions about this SDK, please mail the apps-devel@webmproject.org list.
|
||||
To contribute, see http://www.webmproject.org/code/contribute and mail
|
||||
vpx-devel@webmproject.org.
|
||||
codec-devel@webmproject.org.
|
||||
*/
|
||||
|
||||
/*!\page changelog CHANGELOG
|
||||
|
27
solution.mk
27
solution.mk
@@ -9,32 +9,6 @@
|
||||
##
|
||||
|
||||
|
||||
ifeq ($(ARCH_ARM),yes)
|
||||
ARM_DEVELOP=no
|
||||
ARM_DEVELOP:=$(if $(filter %vpx.vcproj,$(wildcard *.vcproj)),yes)
|
||||
|
||||
ifeq ($(ARM_DEVELOP),yes)
|
||||
vpx.sln:
|
||||
@echo " [COPY] $@"
|
||||
@cp $(SRC_PATH_BARE)/build/arm-wince-vs8/vpx.sln .
|
||||
PROJECTS-yes += vpx.sln
|
||||
else
|
||||
vpx.sln: $(wildcard *.vcproj)
|
||||
@echo " [CREATE] $@"
|
||||
$(SRC_PATH_BARE)/build/make/gen_msvs_sln.sh \
|
||||
$(if $(filter %vpx.vcproj,$^),--dep=vpxdec:vpx) \
|
||||
$(if $(filter %vpx.vcproj,$^),--dep=xma:vpx) \
|
||||
--ver=$(CONFIG_VS_VERSION)\
|
||||
--target=$(TOOLCHAIN)\
|
||||
--out=$@ $^
|
||||
vpx.sln.mk: vpx.sln
|
||||
@true
|
||||
|
||||
PROJECTS-yes += vpx.sln vpx.sln.mk
|
||||
-include vpx.sln.mk
|
||||
endif
|
||||
|
||||
else
|
||||
vpx.sln: $(wildcard *.vcproj)
|
||||
@echo " [CREATE] $@"
|
||||
$(SRC_PATH_BARE)/build/make/gen_msvs_sln.sh \
|
||||
@@ -48,7 +22,6 @@ vpx.sln.mk: vpx.sln
|
||||
|
||||
PROJECTS-yes += vpx.sln vpx.sln.mk
|
||||
-include vpx.sln.mk
|
||||
endif
|
||||
|
||||
# Always install this file, as it is an unconditional post-build rule.
|
||||
INSTALL_MAPS += src/% $(SRC_PATH_BARE)/%
|
||||
|
12
usage.dox
12
usage.dox
@@ -25,7 +25,7 @@
|
||||
codec may write into to store details about a single instance of that codec.
|
||||
Most of the context is implementation specific, and thus opaque to the
|
||||
application. The context structure as seen by the application is of fixed
|
||||
size, and thus can be allocated eith with automatic storage or dynamically
|
||||
size, and thus can be allocated with automatic storage or dynamically
|
||||
on the heap.
|
||||
|
||||
Most operations require an initialized codec context. Codec context
|
||||
@@ -74,7 +74,7 @@
|
||||
the ABI is versioned. The ABI version number must be passed at
|
||||
initialization time to ensure the application is using a header file that
|
||||
matches the library. The current ABI version number is stored in the
|
||||
prepropcessor macros #VPX_CODEC_ABI_VERSION, #VPX_ENCODER_ABI_VERSION, and
|
||||
preprocessor macros #VPX_CODEC_ABI_VERSION, #VPX_ENCODER_ABI_VERSION, and
|
||||
#VPX_DECODER_ABI_VERSION. For convenience, each initialization function has
|
||||
a wrapper macro that inserts the correct version number. These macros are
|
||||
named like the initialization methods, but without the _ver suffix.
|
||||
@@ -125,7 +125,7 @@
|
||||
|
||||
The special value <code>0</code> is reserved to represent an infinite
|
||||
deadline. In this case, the codec will perform as much processing as
|
||||
possible to yeild the highest quality frame.
|
||||
possible to yield the highest quality frame.
|
||||
|
||||
By convention, the value <code>1</code> is used to mean "return as fast as
|
||||
possible."
|
||||
@@ -135,7 +135,7 @@
|
||||
|
||||
/*! \page usage_xma External Memory Allocation
|
||||
Applications that wish to have fine grained control over how and where
|
||||
decoders allocate memory \ref MAY make use of the e_xternal Memory Allocation
|
||||
decoders allocate memory \ref MAY make use of the eXternal Memory Allocation
|
||||
(XMA) interface. Not all codecs support the XMA \ref usage_features.
|
||||
|
||||
To use a decoder in XMA mode, the decoder \ref MUST be initialized with the
|
||||
@@ -143,7 +143,7 @@
|
||||
allocate is heavily dependent on the size of the encoded video frames. The
|
||||
size of the video must be known before requesting the decoder's memory map.
|
||||
This stream information can be obtained with the vpx_codec_peek_stream_info()
|
||||
function, which does not require a contructed decoder context. If the exact
|
||||
function, which does not require a constructed decoder context. If the exact
|
||||
stream is not known, a stream info structure can be created that reflects
|
||||
the maximum size that the decoder instance is required to support.
|
||||
|
||||
@@ -175,7 +175,7 @@
|
||||
\section usage_xma_seg_szalign Segment Size and Alignment
|
||||
The sz (size) and align (alignment) parameters describe the required size
|
||||
and alignment of the requested segment. Alignment will always be a power of
|
||||
two. Applications \ref MUST honor the aligment requested. Failure to do so
|
||||
two. Applications \ref MUST honor the alignment requested. Failure to do so
|
||||
could result in program crashes or may incur a speed penalty.
|
||||
|
||||
\section usage_xma_seg_flags Segment Flags
|
||||
|
@@ -16,7 +16,6 @@
|
||||
#include "findnearmv.h"
|
||||
#include "entropymode.h"
|
||||
#include "systemdependent.h"
|
||||
#include "vpxerrors.h"
|
||||
|
||||
|
||||
extern void vp8_init_scan_order_mask();
|
||||
@@ -71,7 +70,7 @@ int vp8_alloc_frame_buffers(VP8_COMMON *oci, int width, int height)
|
||||
if (vp8_yv12_alloc_frame_buffer(&oci->yv12_fb[i], width, height, VP8BORDERINPIXELS) < 0)
|
||||
{
|
||||
vp8_de_alloc_frame_buffers(oci);
|
||||
return ALLOC_FAILURE;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,13 +87,13 @@ int vp8_alloc_frame_buffers(VP8_COMMON *oci, int width, int height)
|
||||
if (vp8_yv12_alloc_frame_buffer(&oci->temp_scale_frame, width, 16, VP8BORDERINPIXELS) < 0)
|
||||
{
|
||||
vp8_de_alloc_frame_buffers(oci);
|
||||
return ALLOC_FAILURE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (vp8_yv12_alloc_frame_buffer(&oci->post_proc_buffer, width, height, VP8BORDERINPIXELS) < 0)
|
||||
{
|
||||
vp8_de_alloc_frame_buffers(oci);
|
||||
return ALLOC_FAILURE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
oci->mb_rows = height >> 4;
|
||||
@@ -106,7 +105,7 @@ int vp8_alloc_frame_buffers(VP8_COMMON *oci, int width, int height)
|
||||
if (!oci->mip)
|
||||
{
|
||||
vp8_de_alloc_frame_buffers(oci);
|
||||
return ALLOC_FAILURE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
oci->mi = oci->mip + oci->mode_info_stride + 1;
|
||||
@@ -117,7 +116,7 @@ int vp8_alloc_frame_buffers(VP8_COMMON *oci, int width, int height)
|
||||
if (!oci->above_context)
|
||||
{
|
||||
vp8_de_alloc_frame_buffers(oci);
|
||||
return ALLOC_FAILURE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
vp8_update_mode_info_border(oci->mi, oci->mb_rows, oci->mb_cols);
|
||||
|
@@ -11,13 +11,13 @@
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "vpx_ports/arm.h"
|
||||
#include "g_common.h"
|
||||
#include "pragmas.h"
|
||||
#include "subpixel.h"
|
||||
#include "loopfilter.h"
|
||||
#include "recon.h"
|
||||
#include "idct.h"
|
||||
#include "onyxc_int.h"
|
||||
#include "vp8/common/g_common.h"
|
||||
#include "vp8/common/pragmas.h"
|
||||
#include "vp8/common/subpixel.h"
|
||||
#include "vp8/common/loopfilter.h"
|
||||
#include "vp8/common/recon.h"
|
||||
#include "vp8/common/idct.h"
|
||||
#include "vp8/common/onyxc_int.h"
|
||||
|
||||
extern void (*vp8_build_intra_predictors_mby_ptr)(MACROBLOCKD *x);
|
||||
extern void vp8_build_intra_predictors_mby(MACROBLOCKD *x);
|
||||
|
@@ -10,9 +10,9 @@
|
||||
|
||||
|
||||
#include <math.h>
|
||||
#include "filter.h"
|
||||
#include "subpixel.h"
|
||||
#include "arm/bilinearfilter_arm.h"
|
||||
#include "vp8/common/filter.h"
|
||||
#include "vp8/common/subpixel.h"
|
||||
#include "bilinearfilter_arm.h"
|
||||
|
||||
void vp8_filter_block2d_bil_armv6
|
||||
(
|
||||
|
@@ -11,8 +11,8 @@
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include <math.h>
|
||||
#include "filter.h"
|
||||
#include "subpixel.h"
|
||||
#include "vp8/common/filter.h"
|
||||
#include "vp8/common/subpixel.h"
|
||||
#include "vpx_ports/mem.h"
|
||||
|
||||
extern void vp8_filter_block2d_first_pass_armv6
|
||||
|
@@ -11,8 +11,8 @@
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include <math.h>
|
||||
#include "loopfilter.h"
|
||||
#include "onyxc_int.h"
|
||||
#include "vp8/common/loopfilter.h"
|
||||
#include "vp8/common/onyxc_int.h"
|
||||
|
||||
extern prototype_loopfilter(vp8_loop_filter_horizontal_edge_armv6);
|
||||
extern prototype_loopfilter(vp8_loop_filter_vertical_edge_armv6);
|
||||
|
@@ -10,8 +10,8 @@
|
||||
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "recon.h"
|
||||
#include "blockd.h"
|
||||
#include "vp8/common/recon.h"
|
||||
#include "vp8/common/blockd.h"
|
||||
|
||||
extern void vp8_recon16x16mb_neon(unsigned char *pred_ptr, short *diff_ptr, unsigned char *dst_ptr, int ystride, unsigned char *udst_ptr, unsigned char *vdst_ptr);
|
||||
|
||||
|
@@ -10,10 +10,10 @@
|
||||
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "blockd.h"
|
||||
#include "reconintra.h"
|
||||
#include "vp8/common/blockd.h"
|
||||
#include "vp8/common/reconintra.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "recon.h"
|
||||
#include "vp8/common/recon.h"
|
||||
|
||||
#if HAVE_ARMV7
|
||||
extern void vp8_build_intra_predictors_mby_neon_func(
|
||||
|
@@ -12,8 +12,6 @@
|
||||
#include "blockd.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
|
||||
const int vp8_block2type[25] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1};
|
||||
|
||||
const unsigned char vp8_block2left[25] =
|
||||
{
|
||||
0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8
|
||||
|
@@ -28,11 +28,6 @@ void vpx_log(const char *format, ...);
|
||||
#define DCPREDSIMTHRESH 0
|
||||
#define DCPREDCNTTHRESH 3
|
||||
|
||||
#define Y1CONTEXT 0
|
||||
#define UCONTEXT 1
|
||||
#define VCONTEXT 2
|
||||
#define Y2CONTEXT 3
|
||||
|
||||
#define MB_FEATURE_TREE_PROBS 3
|
||||
#define MAX_MB_SEGMENTS 4
|
||||
|
||||
@@ -48,6 +43,11 @@ typedef struct
|
||||
int r, c;
|
||||
} POS;
|
||||
|
||||
#define PLANE_TYPE_Y_NO_DC 0
|
||||
#define PLANE_TYPE_Y2 1
|
||||
#define PLANE_TYPE_UV 2
|
||||
#define PLANE_TYPE_Y_WITH_DC 3
|
||||
|
||||
|
||||
typedef char ENTROPY_CONTEXT;
|
||||
typedef struct
|
||||
@@ -58,8 +58,6 @@ typedef struct
|
||||
ENTROPY_CONTEXT y2;
|
||||
} ENTROPY_CONTEXT_PLANES;
|
||||
|
||||
extern const int vp8_block2type[25];
|
||||
|
||||
extern const unsigned char vp8_block2left[25];
|
||||
extern const unsigned char vp8_block2above[25];
|
||||
|
||||
|
@@ -1,570 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef bool_coder_h
|
||||
#define bool_coder_h 1
|
||||
|
||||
/* Arithmetic bool coder with largish probability range.
|
||||
Timothy S Murphy 6 August 2004 */
|
||||
|
||||
/* So as not to force users to drag in too much of my idiosyncratic C++ world,
|
||||
I avoid fancy storage management. */
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
|
||||
typedef unsigned char vp8bc_index_t; // probability index
|
||||
|
||||
/* There are a couple of slight variants in the details of finite-precision
|
||||
arithmetic coding. May be safely ignored by most users. */
|
||||
|
||||
enum vp8bc_rounding
|
||||
{
|
||||
vp8bc_down = 0, // just like VP8
|
||||
vp8bc_down_full = 1, // handles minimum probability correctly
|
||||
vp8bc_up = 2
|
||||
};
|
||||
|
||||
#if _MSC_VER
|
||||
|
||||
/* Note that msvc by default does not inline _anything_ (regardless of the
|
||||
setting of inline_depth) and that a command-line option (-Ob1 or -Ob2)
|
||||
is required to inline even the smallest functions. */
|
||||
|
||||
# pragma inline_depth( 255) // I mean it when I inline something
|
||||
# pragma warning( disable : 4099) // No class vs. struct harassment
|
||||
# pragma warning( disable : 4250) // dominance complaints
|
||||
# pragma warning( disable : 4284) // operator-> in templates
|
||||
# pragma warning( disable : 4800) // bool conversion
|
||||
|
||||
// don't let prefix ++,-- stand in for postfix, disaster would ensue
|
||||
|
||||
# pragma warning( error : 4620 4621)
|
||||
|
||||
#endif // _MSC_VER
|
||||
|
||||
|
||||
#if __cplusplus
|
||||
|
||||
// Sometimes one wishes to be definite about integer lengths.
|
||||
|
||||
struct int_types
|
||||
{
|
||||
typedef const bool cbool;
|
||||
typedef const signed char cchar;
|
||||
typedef const short cshort;
|
||||
typedef const int cint;
|
||||
typedef const int clong;
|
||||
|
||||
typedef const double cdouble;
|
||||
typedef const size_t csize_t;
|
||||
|
||||
typedef unsigned char uchar; // 8 bits
|
||||
typedef const uchar cuchar;
|
||||
|
||||
typedef short int16;
|
||||
typedef unsigned short uint16;
|
||||
typedef const int16 cint16;
|
||||
typedef const uint16 cuint16;
|
||||
|
||||
typedef int int32;
|
||||
typedef unsigned int uint32;
|
||||
typedef const int32 cint32;
|
||||
typedef const uint32 cuint32;
|
||||
|
||||
typedef unsigned int uint;
|
||||
typedef unsigned int ulong;
|
||||
typedef const uint cuint;
|
||||
typedef const ulong culong;
|
||||
|
||||
|
||||
// All structs consume space, may as well have a vptr.
|
||||
|
||||
virtual ~int_types();
|
||||
};
|
||||
|
||||
|
||||
struct bool_coder_spec;
|
||||
struct bool_coder;
|
||||
struct bool_writer;
|
||||
struct bool_reader;
|
||||
|
||||
|
||||
struct bool_coder_namespace : int_types
|
||||
{
|
||||
typedef vp8bc_index_t Index;
|
||||
typedef bool_coder_spec Spec;
|
||||
typedef const Spec c_spec;
|
||||
|
||||
enum Rounding
|
||||
{
|
||||
Down = vp8bc_down,
|
||||
down_full = vp8bc_down_full,
|
||||
Up = vp8bc_up
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
// Archivable specification of a bool coder includes rounding spec
|
||||
// and probability mapping table. The latter replaces a uchar j
|
||||
// (0 <= j < 256) with an arbitrary uint16 tbl[j] = p.
|
||||
// p/65536 is then the probability of a zero.
|
||||
|
||||
struct bool_coder_spec : bool_coder_namespace
|
||||
{
|
||||
friend struct bool_coder;
|
||||
friend struct bool_writer;
|
||||
friend struct bool_reader;
|
||||
friend struct bool_coder_spec_float;
|
||||
friend struct bool_coder_spec_explicit_table;
|
||||
friend struct bool_coder_spec_exponential_table;
|
||||
friend struct BPsrc;
|
||||
private:
|
||||
uint w; // precision
|
||||
Rounding r;
|
||||
|
||||
uint ebits, mbits, ebias;
|
||||
uint32 mmask;
|
||||
|
||||
Index max_index, half_index;
|
||||
|
||||
uint32 mantissa(Index i) const
|
||||
{
|
||||
assert(i < half_index);
|
||||
return (1 << mbits) + (i & mmask);
|
||||
}
|
||||
uint exponent(Index i) const
|
||||
{
|
||||
assert(i < half_index);
|
||||
return ebias - (i >> mbits);
|
||||
}
|
||||
|
||||
uint16 Ptbl[256]; // kinda clunky, but so is storage management.
|
||||
|
||||
/* Cost in bits of encoding a zero at every probability, scaled by 2^20.
|
||||
Assumes that index is at most 8 bits wide. */
|
||||
|
||||
uint32 Ctbl[256];
|
||||
|
||||
uint32 split(Index i, uint32 R) const // 1 <= split <= max( 1, R-1)
|
||||
{
|
||||
if (!ebias)
|
||||
return 1 + (((R - 1) * Ptbl[i]) >> 16);
|
||||
|
||||
if (i >= half_index)
|
||||
return R - split(max_index - i, R);
|
||||
|
||||
return 1 + (((R - 1) * mantissa(i)) >> exponent(i));
|
||||
}
|
||||
|
||||
uint32 max_range() const
|
||||
{
|
||||
return (1 << w) - (r == down_full ? 0 : 1);
|
||||
}
|
||||
uint32 min_range() const
|
||||
{
|
||||
return (1 << (w - 1)) + (r == down_full ? 1 : 0);
|
||||
}
|
||||
uint32 Rinc() const
|
||||
{
|
||||
return r == Up ? 1 : 0;
|
||||
}
|
||||
|
||||
void check_prec() const;
|
||||
|
||||
bool float_init(uint Ebits, uint Mbits);
|
||||
|
||||
void cost_init();
|
||||
|
||||
bool_coder_spec(
|
||||
uint prec, Rounding rr, uint Ebits = 0, uint Mbits = 0
|
||||
)
|
||||
: w(prec), r(rr)
|
||||
{
|
||||
float_init(Ebits, Mbits);
|
||||
}
|
||||
public:
|
||||
// Read complete spec from file.
|
||||
bool_coder_spec(FILE *);
|
||||
|
||||
// Write spec to file.
|
||||
void dump(FILE *) const;
|
||||
|
||||
// return probability index best approximating prob.
|
||||
Index operator()(double prob) const;
|
||||
|
||||
// probability corresponding to index
|
||||
double operator()(Index i) const;
|
||||
|
||||
Index complement(Index i) const
|
||||
{
|
||||
return max_index - i;
|
||||
}
|
||||
|
||||
Index max_index() const
|
||||
{
|
||||
return max_index;
|
||||
}
|
||||
Index half_index() const
|
||||
{
|
||||
return half_index;
|
||||
}
|
||||
|
||||
uint32 cost_zero(Index i) const
|
||||
{
|
||||
return Ctbl[i];
|
||||
}
|
||||
uint32 cost_one(Index i) const
|
||||
{
|
||||
return Ctbl[ max_index - i];
|
||||
}
|
||||
uint32 cost_bit(Index i, bool b) const
|
||||
{
|
||||
return Ctbl[b? max_index-i:i];
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/* Pseudo floating-point probability specification.
|
||||
|
||||
At least one of Ebits and Mbits must be nonzero.
|
||||
|
||||
Since all arithmetic is done at 32 bits, Ebits is at most 5.
|
||||
|
||||
Total significant bits in index is Ebits + Mbits + 1.
|
||||
|
||||
Below the halfway point (i.e. when the top significant bit is 0),
|
||||
the index is (e << Mbits) + m.
|
||||
|
||||
The exponent e is between 0 and (2**Ebits) - 1,
|
||||
the mantissa m is between 0 and (2**Mbits) - 1.
|
||||
|
||||
Prepending an implicit 1 to the mantissa, the probability is then
|
||||
|
||||
(2**Mbits + m) >> (e - 2**Ebits - 1 - Mbits),
|
||||
|
||||
which has (1/2)**(2**Ebits + 1) as a minimum
|
||||
and (1/2) * [1 - 2**(Mbits + 1)] as a maximum.
|
||||
|
||||
When the index is above the halfway point, the probability is the
|
||||
complement of the probability associated to the complement of the index.
|
||||
|
||||
Note that the probability increases with the index and that, because of
|
||||
the symmetry, we cannot encode probability exactly 1/2; though we
|
||||
can get as close to 1/2 as we like, provided we have enough Mbits.
|
||||
|
||||
The latter is of course not a problem in practice, one never has
|
||||
exact probabilities and entropy errors are second order, that is, the
|
||||
"overcoding" of a zero will be largely compensated for by the
|
||||
"undercoding" of a one (or vice-versa).
|
||||
|
||||
Compared to arithmetic probability specs (a la VP8), this will do better
|
||||
at very high and low probabilities and worse at probabilities near 1/2,
|
||||
as well as facilitating the usage of wider or narrower probability indices.
|
||||
*/
|
||||
|
||||
struct bool_coder_spec_float : bool_coder_spec
|
||||
{
|
||||
bool_coder_spec_float(
|
||||
uint Ebits = 3, uint Mbits = 4, Rounding rr = down_full, uint prec = 12
|
||||
)
|
||||
: bool_coder_spec(prec, rr, Ebits, Mbits)
|
||||
{
|
||||
cost_init();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
struct bool_coder_spec_explicit_table : bool_coder_spec
|
||||
{
|
||||
bool_coder_spec_explicit_table(
|
||||
cuint16 probability_table[256] = 0, // default is tbl[i] = i << 8.
|
||||
Rounding = down_full,
|
||||
uint precision = 16
|
||||
);
|
||||
};
|
||||
|
||||
// Contruct table via multiplicative interpolation between
|
||||
// p[128] = 1/2 and p[0] = (1/2)^x.
|
||||
// Since we are working with 16-bit precision, x is at most 16.
|
||||
// For probabilities to increase with i, we must have x > 1.
|
||||
// For 0 <= i <= 128, p[i] = (1/2)^{ 1 + [1 - (i/128)]*[x-1] }.
|
||||
// Finally, p[128+i] = 1 - p[128 - i].
|
||||
|
||||
struct bool_coder_spec_exponential_table : bool_coder_spec
|
||||
{
|
||||
bool_coder_spec_exponential_table(uint x, Rounding = down_full, uint prec = 16);
|
||||
};
|
||||
|
||||
|
||||
// Commonalities between writer and reader.
|
||||
|
||||
struct bool_coder : bool_coder_namespace
|
||||
{
|
||||
friend struct bool_writer;
|
||||
friend struct bool_reader;
|
||||
friend struct BPsrc;
|
||||
private:
|
||||
uint32 Low, Range;
|
||||
cuint32 min_range;
|
||||
cuint32 rinc;
|
||||
c_spec spec;
|
||||
|
||||
void _reset()
|
||||
{
|
||||
Low = 0;
|
||||
Range = spec.max_range();
|
||||
}
|
||||
|
||||
bool_coder(c_spec &s)
|
||||
: min_range(s.min_range()),
|
||||
rinc(s.Rinc()),
|
||||
spec(s)
|
||||
{
|
||||
_reset();
|
||||
}
|
||||
|
||||
uint32 half() const
|
||||
{
|
||||
return 1 + ((Range - 1) >> 1);
|
||||
}
|
||||
public:
|
||||
c_spec &Spec() const
|
||||
{
|
||||
return spec;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
struct bool_writer : bool_coder
|
||||
{
|
||||
friend struct BPsrc;
|
||||
private:
|
||||
uchar *Bstart, *Bend, *B;
|
||||
int bit_lag;
|
||||
bool is_toast;
|
||||
void carry();
|
||||
void reset()
|
||||
{
|
||||
_reset();
|
||||
bit_lag = 32 - spec.w;
|
||||
is_toast = 0;
|
||||
}
|
||||
void raw(bool value, uint32 split);
|
||||
public:
|
||||
bool_writer(c_spec &, uchar *Dest, size_t Len);
|
||||
virtual ~bool_writer();
|
||||
|
||||
void operator()(Index p, bool v)
|
||||
{
|
||||
raw(v, spec.split(p, Range));
|
||||
}
|
||||
|
||||
uchar *buf() const
|
||||
{
|
||||
return Bstart;
|
||||
}
|
||||
size_t bytes_written() const
|
||||
{
|
||||
return B - Bstart;
|
||||
}
|
||||
|
||||
// Call when done with input, flushes internal state.
|
||||
// DO NOT write any more data after calling this.
|
||||
|
||||
bool_writer &flush();
|
||||
|
||||
void write_bits(int n, uint val)
|
||||
{
|
||||
if (n)
|
||||
{
|
||||
uint m = 1 << (n - 1);
|
||||
|
||||
do
|
||||
{
|
||||
raw((bool)(val & m), half());
|
||||
}
|
||||
while (m >>= 1);
|
||||
}
|
||||
}
|
||||
|
||||
# if 0
|
||||
// We are agnostic about storage management.
|
||||
// By default, overflows throw an assert but user can
|
||||
// override to provide an expanding buffer using ...
|
||||
|
||||
virtual void overflow(uint Len) const;
|
||||
|
||||
// ... this function copies already-written data into new buffer
|
||||
// and retains new buffer location.
|
||||
|
||||
void new_buffer(uchar *dest, uint Len);
|
||||
|
||||
// Note that storage management is the user's responsibility.
|
||||
# endif
|
||||
};
|
||||
|
||||
|
||||
// This could be adjusted to use a little less lookahead.
|
||||
|
||||
struct bool_reader : bool_coder
|
||||
{
|
||||
friend struct BPsrc;
|
||||
private:
|
||||
cuchar *const Bstart; // for debugging
|
||||
cuchar *B;
|
||||
cuchar *const Bend;
|
||||
cuint shf;
|
||||
uint bct;
|
||||
bool raw(uint32 split);
|
||||
public:
|
||||
bool_reader(c_spec &s, cuchar *src, size_t Len);
|
||||
|
||||
bool operator()(Index p)
|
||||
{
|
||||
return raw(spec.split(p, Range));
|
||||
}
|
||||
|
||||
uint read_bits(int num_bits)
|
||||
{
|
||||
uint v = 0;
|
||||
|
||||
while (--num_bits >= 0)
|
||||
v += v + (raw(half()) ? 1 : 0);
|
||||
|
||||
return v;
|
||||
}
|
||||
};
|
||||
|
||||
extern "C" {
|
||||
|
||||
#endif /* __cplusplus */
|
||||
|
||||
|
||||
/* C interface */
|
||||
|
||||
typedef struct bool_coder_spec bool_coder_spec;
|
||||
typedef struct bool_writer bool_writer;
|
||||
typedef struct bool_reader bool_reader;
|
||||
|
||||
typedef const bool_coder_spec c_bool_coder_spec;
|
||||
typedef const bool_writer c_bool_writer;
|
||||
typedef const bool_reader c_bool_reader;
|
||||
|
||||
|
||||
/* Optionally override default precision when constructing coder_specs.
|
||||
Just pass a zero pointer if you don't care.
|
||||
Precision is at most 16 bits for table specs, at most 23 otherwise. */
|
||||
|
||||
struct vp8bc_prec
|
||||
{
|
||||
enum vp8bc_rounding r; /* see top header file for def */
|
||||
unsigned int prec; /* range precision in bits */
|
||||
};
|
||||
|
||||
typedef const struct vp8bc_prec vp8bc_c_prec;
|
||||
|
||||
/* bool_coder_spec contains mapping of uchars to actual probabilities
|
||||
(16 bit uints) as well as (usually immaterial) selection of
|
||||
exact finite-precision algorithm used (for now, the latter can only
|
||||
be overridden using the C++ interface).
|
||||
See comments above the corresponding C++ constructors for discussion,
|
||||
especially of exponential probability table generation. */
|
||||
|
||||
bool_coder_spec *vp8bc_vp8spec(); // just like vp8
|
||||
|
||||
bool_coder_spec *vp8bc_literal_spec(
|
||||
const unsigned short prob_map[256], // 0 is like vp8 w/more precision
|
||||
vp8bc_c_prec*
|
||||
);
|
||||
|
||||
bool_coder_spec *vp8bc_float_spec(
|
||||
unsigned int exponent_bits, unsigned int mantissa_bits, vp8bc_c_prec*
|
||||
);
|
||||
|
||||
bool_coder_spec *vp8bc_exponential_spec(unsigned int min_exp, vp8bc_c_prec *);
|
||||
|
||||
bool_coder_spec *vp8bc_spec_from_file(FILE *);
|
||||
|
||||
|
||||
void vp8bc_destroy_spec(c_bool_coder_spec *);
|
||||
|
||||
void vp8bc_spec_to_file(c_bool_coder_spec *, FILE *);
|
||||
|
||||
|
||||
/* Nearest index to supplied probability of zero, 0 <= prob <= 1. */
|
||||
|
||||
vp8bc_index_t vp8bc_index(c_bool_coder_spec *, double prob);
|
||||
|
||||
vp8bc_index_t vp8bc_index_from_counts(
|
||||
c_bool_coder_spec *p, unsigned int zero_ct, unsigned int one_ct
|
||||
);
|
||||
|
||||
/* In case you want to look */
|
||||
|
||||
double vp8bc_probability(c_bool_coder_spec *, vp8bc_index_t);
|
||||
|
||||
/* Opposite index */
|
||||
|
||||
vp8bc_index_t vp8bc_complement(c_bool_coder_spec *, vp8bc_index_t);
|
||||
|
||||
/* Cost in bits of encoding a zero at given probability, scaled by 2^20.
|
||||
(assumes that an int holds at least 32 bits). */
|
||||
|
||||
unsigned int vp8bc_cost_zero(c_bool_coder_spec *, vp8bc_index_t);
|
||||
|
||||
unsigned int vp8bc_cost_one(c_bool_coder_spec *, vp8bc_index_t);
|
||||
unsigned int vp8bc_cost_bit(c_bool_coder_spec *, vp8bc_index_t, int);
|
||||
|
||||
|
||||
/* bool_writer interface */
|
||||
|
||||
/* Length = 0 disables checking for writes beyond buffer end. */
|
||||
|
||||
bool_writer *vp8bc_create_writer(
|
||||
c_bool_coder_spec *, unsigned char *Destination, size_t Length
|
||||
);
|
||||
|
||||
/* Flushes out any buffered data and returns total # of bytes written. */
|
||||
|
||||
size_t vp8bc_destroy_writer(bool_writer *);
|
||||
|
||||
void vp8bc_write_bool(bool_writer *, int boolean_val, vp8bc_index_t false_prob);
|
||||
|
||||
void vp8bc_write_bits(
|
||||
bool_writer *, unsigned int integer_value, int number_of_bits
|
||||
);
|
||||
|
||||
c_bool_coder_spec *vp8bc_writer_spec(c_bool_writer *);
|
||||
|
||||
|
||||
/* bool_reader interface */
|
||||
|
||||
/* Length = 0 disables checking for reads beyond buffer end. */
|
||||
|
||||
bool_reader *vp8bc_create_reader(
|
||||
c_bool_coder_spec *, const unsigned char *Source, size_t Length
|
||||
);
|
||||
void vp8bc_destroy_reader(bool_reader *);
|
||||
|
||||
int vp8bc_read_bool(bool_reader *, vp8bc_index_t false_prob);
|
||||
|
||||
unsigned int vp8bc_read_bits(bool_reader *, int number_of_bits);
|
||||
|
||||
c_bool_coder_spec *vp8bc_reader_spec(c_bool_reader *);
|
||||
|
||||
#if __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* bool_coder_h */
|
@@ -1,93 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef CODEC_COMMON_INTERFACE_H
|
||||
#define CODEC_COMMON_INTERFACE_H
|
||||
|
||||
#define __export
|
||||
#define _export
|
||||
#define dll_export __declspec( dllexport )
|
||||
#define dll_import __declspec( dllimport )
|
||||
|
||||
// Playback ERROR Codes.
|
||||
#define NO_DECODER_ERROR 0
|
||||
#define REMOTE_DECODER_ERROR -1
|
||||
|
||||
#define DFR_BAD_DCT_COEFF -100
|
||||
#define DFR_ZERO_LENGTH_FRAME -101
|
||||
#define DFR_FRAME_SIZE_INVALID -102
|
||||
#define DFR_OUTPUT_BUFFER_OVERFLOW -103
|
||||
#define DFR_INVALID_FRAME_HEADER -104
|
||||
#define FR_INVALID_MODE_TOKEN -110
|
||||
#define ETR_ALLOCATION_ERROR -200
|
||||
#define ETR_INVALID_ROOT_PTR -201
|
||||
#define SYNCH_ERROR -400
|
||||
#define BUFFER_UNDERFLOW_ERROR -500
|
||||
#define PB_IB_OVERFLOW_ERROR -501
|
||||
|
||||
// External error triggers
|
||||
#define PB_HEADER_CHECKSUM_ERROR -601
|
||||
#define PB_DATA_CHECKSUM_ERROR -602
|
||||
|
||||
// DCT Error Codes
|
||||
#define DDCT_EXPANSION_ERROR -700
|
||||
#define DDCT_INVALID_TOKEN_ERROR -701
|
||||
|
||||
// exception_errors
|
||||
#define GEN_EXCEPTIONS -800
|
||||
#define EX_UNQUAL_ERROR -801
|
||||
|
||||
// Unrecoverable error codes
|
||||
#define FATAL_PLAYBACK_ERROR -1000
|
||||
#define GEN_ERROR_CREATING_CDC -1001
|
||||
#define GEN_THREAD_CREATION_ERROR -1002
|
||||
#define DFR_CREATE_BMP_FAILED -1003
|
||||
|
||||
// YUV buffer configuration structure
|
||||
typedef struct
|
||||
{
|
||||
int y_width;
|
||||
int y_height;
|
||||
int y_stride;
|
||||
|
||||
int uv_width;
|
||||
int uv_height;
|
||||
int uv_stride;
|
||||
|
||||
unsigned char *y_buffer;
|
||||
unsigned char *u_buffer;
|
||||
unsigned char *v_buffer;
|
||||
|
||||
} YUV_BUFFER_CONFIG;
|
||||
typedef enum
|
||||
{
|
||||
C_SET_KEY_FRAME,
|
||||
C_SET_FIXED_Q,
|
||||
C_SET_FIRSTPASS_FILE,
|
||||
C_SET_EXPERIMENTAL_MIN,
|
||||
C_SET_EXPERIMENTAL_MAX = C_SET_EXPERIMENTAL_MIN + 255,
|
||||
C_SET_CHECKPROTECT,
|
||||
C_SET_TESTMODE,
|
||||
C_SET_INTERNAL_SIZE,
|
||||
C_SET_RECOVERY_FRAME,
|
||||
C_SET_REFERENCEFRAME,
|
||||
C_SET_GOLDENFRAME
|
||||
|
||||
#ifndef VP50_COMP_INTERFACE
|
||||
// Specialist test facilities.
|
||||
// C_VCAP_PARAMS, // DO NOT USE FOR NOW WITH VFW CODEC
|
||||
#endif
|
||||
|
||||
} C_SETTING;
|
||||
|
||||
typedef unsigned long C_SET_VALUE;
|
||||
|
||||
|
||||
#endif
|
@@ -1,121 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef FOURCC_HPP
|
||||
#define FOURCC_HPP
|
||||
|
||||
#include <iosfwd>
|
||||
#include <cstring>
|
||||
|
||||
|
||||
#if defined(__POWERPC__) || defined(__APPLE__) || defined(__MERKS__)
|
||||
using namespace std;
|
||||
#endif
|
||||
|
||||
class four_cc
|
||||
{
|
||||
public:
|
||||
|
||||
four_cc();
|
||||
four_cc(const char*);
|
||||
explicit four_cc(unsigned long);
|
||||
|
||||
bool operator==(const four_cc&) const;
|
||||
bool operator!=(const four_cc&) const;
|
||||
|
||||
bool operator==(const char*) const;
|
||||
bool operator!=(const char*) const;
|
||||
|
||||
operator unsigned long() const;
|
||||
unsigned long as_long() const;
|
||||
|
||||
four_cc& operator=(unsigned long);
|
||||
|
||||
char operator[](int) const;
|
||||
|
||||
std::ostream& put(std::ostream&) const;
|
||||
|
||||
bool printable() const;
|
||||
|
||||
private:
|
||||
|
||||
union
|
||||
{
|
||||
char code[4];
|
||||
unsigned long code_as_long;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
inline four_cc::four_cc()
|
||||
{
|
||||
}
|
||||
|
||||
inline four_cc::four_cc(unsigned long x)
|
||||
: code_as_long(x)
|
||||
{
|
||||
}
|
||||
|
||||
inline four_cc::four_cc(const char* str)
|
||||
{
|
||||
memcpy(code, str, 4);
|
||||
}
|
||||
|
||||
|
||||
inline bool four_cc::operator==(const four_cc& rhs) const
|
||||
{
|
||||
return code_as_long == rhs.code_as_long;
|
||||
}
|
||||
|
||||
inline bool four_cc::operator!=(const four_cc& rhs) const
|
||||
{
|
||||
return !operator==(rhs);
|
||||
}
|
||||
|
||||
inline bool four_cc::operator==(const char* rhs) const
|
||||
{
|
||||
return (memcmp(code, rhs, 4) == 0);
|
||||
}
|
||||
|
||||
inline bool four_cc::operator!=(const char* rhs) const
|
||||
{
|
||||
return !operator==(rhs);
|
||||
}
|
||||
|
||||
|
||||
inline four_cc::operator unsigned long() const
|
||||
{
|
||||
return code_as_long;
|
||||
}
|
||||
|
||||
inline unsigned long four_cc::as_long() const
|
||||
{
|
||||
return code_as_long;
|
||||
}
|
||||
|
||||
inline char four_cc::operator[](int i) const
|
||||
{
|
||||
return code[i];
|
||||
}
|
||||
|
||||
inline four_cc& four_cc::operator=(unsigned long val)
|
||||
{
|
||||
code_as_long = val;
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline std::ostream& operator<<(std::ostream& os, const four_cc& rhs)
|
||||
{
|
||||
return rhs.put(os);
|
||||
}
|
||||
|
||||
#endif
|
@@ -10,12 +10,12 @@
|
||||
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "g_common.h"
|
||||
#include "subpixel.h"
|
||||
#include "loopfilter.h"
|
||||
#include "recon.h"
|
||||
#include "idct.h"
|
||||
#include "onyxc_int.h"
|
||||
#include "vp8/common/g_common.h"
|
||||
#include "vp8/common/subpixel.h"
|
||||
#include "vp8/common/loopfilter.h"
|
||||
#include "vp8/common/recon.h"
|
||||
#include "vp8/common/idct.h"
|
||||
#include "vp8/common/onyxc_int.h"
|
||||
|
||||
extern void vp8_arch_x86_common_init(VP8_COMMON *ctx);
|
||||
extern void vp8_arch_arm_common_init(VP8_COMMON *ctx);
|
||||
|
@@ -1,31 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
#if !defined(_mac_specs_h)
|
||||
#define _mac_specs_h
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern unsigned int vp8_read_tsc();
|
||||
|
||||
extern unsigned int vp8_get_processor_freq();
|
||||
|
||||
extern unsigned int vpx_has_altivec();
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
@@ -1,19 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __INC_PARTIALGFUPDATE_H
|
||||
#define __INC_PARTIALGFUPDATE_H
|
||||
|
||||
#include "onyxc_int.h"
|
||||
|
||||
extern void update_gf_selective(ONYX_COMMON *cm, MACROBLOCKD *x);
|
||||
|
||||
#endif
|
@@ -1,44 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "blockd.h"
|
||||
|
||||
|
||||
void vp8_predict_dc(short *lastdc, short *thisdc, short quant, short *cons)
|
||||
{
|
||||
int diff;
|
||||
int sign;
|
||||
int last_dc = *lastdc;
|
||||
int this_dc = *thisdc;
|
||||
|
||||
if (*cons > DCPREDCNTTHRESH)
|
||||
{
|
||||
this_dc += last_dc;
|
||||
}
|
||||
|
||||
diff = abs(last_dc - this_dc);
|
||||
sign = (last_dc >> 31) ^(this_dc >> 31);
|
||||
sign |= (!last_dc | !this_dc);
|
||||
|
||||
if (sign)
|
||||
{
|
||||
*cons = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (diff <= DCPREDSIMTHRESH * quant)
|
||||
(*cons)++ ;
|
||||
}
|
||||
|
||||
*thisdc = this_dc;
|
||||
*lastdc = this_dc;
|
||||
}
|
@@ -1,18 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __PREDICTDC_H
|
||||
#define __PREDICTDC_H
|
||||
|
||||
void uvvp8_predict_dc(short *lastdc, short *thisdc, short quant, short *cons);
|
||||
void vp8_predict_dc(short *lastdc, short *thisdc, short quant, short *cons);
|
||||
|
||||
#endif
|
@@ -1,71 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
typedef struct core_codec *codec_ptr;
|
||||
typedef struct interface_table *interface_ptr;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
void (*Initialize)();
|
||||
void (*Shutdown)();
|
||||
codec_ptr(*Create)();
|
||||
int (*compress_frame)(codec_ptr, unsigned int *frame_flags, YV12_BUFFER_CONFIG *sd, unsigned long *size, char *dest, INT64 time_stamp);
|
||||
int (*show_frame)(codec_ptr , YV12_BUFFER_CONFIG *dest, int deblock_level, int noise_level, int flags);
|
||||
void (*Remove)(codec_ptr *comp);
|
||||
interface_ptr(*get_interface)(unsigned int id);
|
||||
|
||||
} core_codec;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int (*set_bitrate)(codec_ptr, END_USAGE usage, int Datarate);
|
||||
int (*get_bitrate)(codec_ptr, END_USAGE *usage, int *Datarate);
|
||||
int (*set_mode)(codec_ptr, MODE mode, int Speed, char *File);
|
||||
int (*get_mode)(codec_ptr, MODE *mode, int *Speed, char **File);
|
||||
} codec_settings_basic;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int (*set_bitrate)(codec_ptr, END_USAGE usage, int Datarate);
|
||||
int (*get_bitrate)(codec_ptr, END_USAGE *usage, int *Datarate);
|
||||
int (*set_mode)(codec_ptr, MODE mode, int Speed, char *File);
|
||||
int (*get_mode)(codec_ptr, MODE *mode, int *Speed, char **File);
|
||||
int (*set_denoise)(codec_ptr, int Level);
|
||||
int (*get_denoise)(codec_ptr, int *Level);
|
||||
int (*set_sharpness)(codec_ptr, int sharpness);
|
||||
int (*get_sharpness)(codec_ptr, int *sharpness);
|
||||
int (*set_keyframing)(codec_ptr, int Auto, int max_distance);
|
||||
int (*get_keyframing)(codec_ptr, int *Auto, int *max_distance);
|
||||
int (*set_buffering)(codec_ptr, int buffer_level, int max_buffer_level);
|
||||
int (*get_buffering)(codec_ptr, int *buffer_level, int *max_buffer_level);
|
||||
int (*set_adjust_frame_rate)(codec_ptr, int Allowed, int at_buffer_level_pct);
|
||||
int (*get_adjust_frame_rate)(codec_ptr, int *Allowed, int *at_buffer_level_pct);
|
||||
int (*set_adjust_frame_size)(codec_ptr, int Allowed, int down_at_buffer_level_pct, int up_at_buffer_level_pct);
|
||||
int (*get_adjust_frame_size)(codec_ptr, int *Allowed, int *down_at_buffer_level_pct, int *up_at_buffer_level_pct);
|
||||
int (*set_adjust_quality)(codec_ptr, int Allowed, int min_quantizer, int max_quantizer);
|
||||
int (*get_adjust_quality)(codec_ptr, int *Allowed, int *min_quantizer, int *max_quantizer);
|
||||
int (*set_vbrparms)(codec_ptr, int Bias, int Min, int Max);
|
||||
int (*get_vbrparms)(codec_ptr, int *Bias, int *Min, int *Max);
|
||||
|
||||
} codec_settings_v1;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int (*request_recovery)(codec_ptr);
|
||||
int (*request_droppable)(codec_ptr);
|
||||
int (*internal_size)(codec_ptr, VPX_SCALING Vertical, VPX_SCALING Horizontal);
|
||||
int (*update_last)(codec_ptr);
|
||||
int (*update_gold)(codec_ptr);
|
||||
int (*use_only_last)(codec_ptr);
|
||||
int (*use_only_gold)(codec_ptr);
|
||||
int (*update_entropy)(codec_ptr);
|
||||
|
||||
} codec_realtime_requests;
|
@@ -94,6 +94,5 @@ typedef struct vp8_recon_rtcd_vtable
|
||||
#define RECON_INVOKE(ctx,fn) vp8_recon_##fn
|
||||
#endif
|
||||
|
||||
void vp8_recon_intra4x4mb(const vp8_recon_rtcd_vtable_t *rtcd, MACROBLOCKD *x);
|
||||
void vp8_recon_intra_mbuv(const vp8_recon_rtcd_vtable_t *rtcd, MACROBLOCKD *x);
|
||||
#endif
|
||||
|
@@ -313,89 +313,3 @@ void vp8_intra_prediction_down_copy(MACROBLOCKD *x)
|
||||
}
|
||||
|
||||
|
||||
void vp8_recon_intra4x4mb(const vp8_recon_rtcd_vtable_t *rtcd, MACROBLOCKD *x)
|
||||
{
|
||||
int i;
|
||||
|
||||
vp8_intra_prediction_down_copy(x);
|
||||
|
||||
#if ARCH_ARM
|
||||
{
|
||||
BLOCKD *b = &x->block[0];
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
b += 1;
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
b += 1;
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
b += 1;
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
b += 1;
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
b += 1;
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
b += 1;
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
b += 1;
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
b += 1;
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
b += 1;
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
b += 1;
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
b += 1;
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
b += 1;
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
b += 1;
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
b += 1;
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
b += 1;
|
||||
|
||||
vp8_predict_intra4x4(b, b->bmi.mode, b->predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
}
|
||||
#else
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
BLOCKD *b = &x->block[i];
|
||||
|
||||
vp8_predict_intra4x4(b, x->block[i].bmi.mode, x->block[i].predictor);
|
||||
RECON_INVOKE(rtcd, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride);
|
||||
}
|
||||
#endif
|
||||
|
||||
vp8_recon_intra_mbuv(rtcd, x);
|
||||
|
||||
}
|
||||
|
@@ -1,76 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
#if !defined(VFWSETTING_HPP)
|
||||
#define VFWSETTING_HPP
|
||||
//______________________________________________________________________________
|
||||
//
|
||||
// VFWSetting.hpp
|
||||
//
|
||||
|
||||
#include "four_cc.hpp"
|
||||
#include <iosfwd>
|
||||
|
||||
namespace vpxvp
|
||||
{
|
||||
|
||||
//--------------------------------------
|
||||
class VFWSetting
|
||||
{
|
||||
friend std::ostream& operator<<(std::ostream& os, const VFWSetting& vfws);
|
||||
|
||||
public:
|
||||
|
||||
enum Mode
|
||||
{
|
||||
m_setting,
|
||||
m_config
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
header_size = 8,
|
||||
Size = 16
|
||||
};
|
||||
|
||||
VFWSetting(four_cc fcc);
|
||||
~VFWSetting();
|
||||
|
||||
four_cc fcc() const;
|
||||
Mode mode() const;
|
||||
|
||||
int setting() const;
|
||||
int value() const;
|
||||
void setting_value(int i_setting, int i_value); // Sets mode to m_setting
|
||||
|
||||
long size() const;
|
||||
const void* data() const;
|
||||
int data(const void* p_data, unsigned long ul_size);
|
||||
|
||||
private:
|
||||
|
||||
VFWSetting(const VFWSetting& vfws); // Not implemented
|
||||
VFWSetting& operator=(const VFWSetting& vfws); // Not implemented
|
||||
|
||||
int extract_(const void* p_data, unsigned long ul_size);
|
||||
void update_() const;
|
||||
|
||||
four_cc m_fcc;
|
||||
Mode m_mode;
|
||||
int m_i_setting;
|
||||
int m_i_value;
|
||||
|
||||
mutable unsigned char m_p_data[Size];
|
||||
};
|
||||
|
||||
} // namespace vpxvp
|
||||
|
||||
#endif // VFWSETTING_HPP
|
@@ -1,24 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _VPX_REF_BUILD_PREFIX_h
|
||||
#define _VPX_REF_BUILD_PREFIX_h
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* include guards */
|
@@ -1,112 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef VPXBLIT_H_INCL
|
||||
#define VPXBLIT_H_INCL
|
||||
/*==============================================================================
|
||||
Includes
|
||||
==============================================================================*/
|
||||
|
||||
/*==============================================================================
|
||||
Defines
|
||||
==============================================================================*/
|
||||
|
||||
|
||||
#ifdef VPX_BIG_ENDIAN
|
||||
#define BYTE_ZERO(X) ((X & 0xFF000000) >> (24 - 2) )
|
||||
#define BYTE_ONE(X) ((X & 0x00FF0000) >> (16 - 2) )
|
||||
#define BYTE_TWO(X) ((X & 0x0000FF00) >> (8 - 2) )
|
||||
#define BYTE_THREE(X) ((X & 0x000000FF) << (0 + 2) )
|
||||
|
||||
#define BYTE_ZERO_UV(X) ((X & 0x0000FF00) >> (8 - 2) )
|
||||
#define BYTE_ONE_UV(X) ((X & 0x000000FF) << (0 + 2) )
|
||||
|
||||
#define REREFERENCE(X) (*((int *) &(X)))
|
||||
|
||||
#else
|
||||
|
||||
#define BYTE_THREE(X) ((X & 0xFF000000) >> (24 - 2) )
|
||||
#define BYTE_TWO(X) ((X & 0x00FF0000) >> (16 - 2) )
|
||||
#define BYTE_ONE(X) ((X & 0x0000FF00) >> (8 - 2) )
|
||||
#define BYTE_ZERO(X) ((X & 0x000000FF) << (0 + 2) )
|
||||
|
||||
#define BYTE_ONE_UV(X) ((X & 0x0000FF00) >> (8 - 2) )
|
||||
#define BYTE_ZERO_UV(X) ((X & 0x000000FF) << (0 + 2) )
|
||||
|
||||
#define REREFERENCE(X) (*((int *) &(X)))
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*==============================================================================
|
||||
Type Definitions
|
||||
==============================================================================*/
|
||||
typedef struct // YUV buffer configuration structure
|
||||
{
|
||||
int y_width;
|
||||
int y_height;
|
||||
int y_stride;
|
||||
|
||||
int uv_width;
|
||||
int uv_height;
|
||||
int uv_stride;
|
||||
|
||||
char *y_buffer;
|
||||
char *u_buffer;
|
||||
char *v_buffer;
|
||||
|
||||
char *uv_start;
|
||||
int uv_dst_area;
|
||||
int uv_used_area;
|
||||
|
||||
} VPX_BLIT_CONFIG;
|
||||
|
||||
typedef struct tx86_params
|
||||
{
|
||||
unsigned int pushed_registers[6];
|
||||
unsigned int return_address;
|
||||
unsigned int dst;
|
||||
unsigned int scrn_pitch;
|
||||
VPX_BLIT_CONFIG *buff_config;
|
||||
} x86_params;
|
||||
|
||||
/*=============================================================================
|
||||
Enums
|
||||
==============================================================================*/
|
||||
|
||||
|
||||
/*==============================================================================
|
||||
Structures
|
||||
==============================================================================*/
|
||||
|
||||
/*==============================================================================
|
||||
Constants
|
||||
==============================================================================*/
|
||||
|
||||
|
||||
/*==============================================================================
|
||||
Variables
|
||||
==============================================================================*/
|
||||
|
||||
|
||||
|
||||
|
||||
/*==============================================================================
|
||||
Function Protoypes/MICROS
|
||||
==============================================================================*/
|
||||
int vpx_get_size_of_pixel(unsigned int bd);
|
||||
void *vpx_get_blitter(unsigned int bd);
|
||||
void vpx_set_blit(void);
|
||||
void vpx_destroy_blit(void);
|
||||
|
||||
|
||||
|
||||
#endif //VPXBLIT_H_INCL
|
@@ -1,48 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _VPX_BLIT_C64_h
|
||||
#define _VPX_BLIT_C64_h
|
||||
|
||||
/****************************************************************************
|
||||
* Typedefs
|
||||
****************************************************************************/
|
||||
|
||||
typedef struct // YUV buffer configuration structure
|
||||
{
|
||||
int y_width;
|
||||
int y_height;
|
||||
int y_stride;
|
||||
|
||||
int uv_width;
|
||||
int uv_height;
|
||||
int uv_stride;
|
||||
|
||||
unsigned char *y_buffer;
|
||||
unsigned char *u_buffer;
|
||||
unsigned char *v_buffer;
|
||||
|
||||
unsigned char *y_ptr_scrn;
|
||||
unsigned char *u_ptr_scrn;
|
||||
unsigned char *v_ptr_scrn;
|
||||
|
||||
} DXV_YUV_BUFFER_CONFIG;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned char *rgbptr_scrn;
|
||||
unsigned char *y_ptr_scrn;
|
||||
unsigned char *u_ptr_scrn;
|
||||
unsigned char *v_ptr_scrn;
|
||||
unsigned char *rgbptr_scrn2;
|
||||
} DXV_FINAL_VIDEO;
|
||||
|
||||
#endif /* include guards */
|
@@ -1,13 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#define ALLOC_FAILURE -2
|
@@ -10,7 +10,7 @@
|
||||
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "loopfilter.h"
|
||||
#include "vp8/common/loopfilter.h"
|
||||
|
||||
prototype_loopfilter(vp8_loop_filter_horizontal_edge_c);
|
||||
prototype_loopfilter(vp8_loop_filter_vertical_edge_c);
|
||||
|
@@ -11,7 +11,7 @@
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "vpx_ports/mem.h"
|
||||
#include "subpixel.h"
|
||||
#include "vp8/common/subpixel.h"
|
||||
|
||||
extern const short vp8_six_tap_mmx[8][6*8];
|
||||
extern const short vp8_bilinear_filters_mmx[8][2*8];
|
||||
|
@@ -11,13 +11,13 @@
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "vpx_ports/x86.h"
|
||||
#include "g_common.h"
|
||||
#include "subpixel.h"
|
||||
#include "loopfilter.h"
|
||||
#include "recon.h"
|
||||
#include "idct.h"
|
||||
#include "pragmas.h"
|
||||
#include "onyxc_int.h"
|
||||
#include "vp8/common/g_common.h"
|
||||
#include "vp8/common/subpixel.h"
|
||||
#include "vp8/common/loopfilter.h"
|
||||
#include "vp8/common/recon.h"
|
||||
#include "vp8/common/idct.h"
|
||||
#include "vp8/common/pragmas.h"
|
||||
#include "vp8/common/onyxc_int.h"
|
||||
|
||||
void vp8_arch_x86_common_init(VP8_COMMON *ctx)
|
||||
{
|
||||
|
@@ -11,11 +11,11 @@
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "vpx_ports/arm.h"
|
||||
#include "blockd.h"
|
||||
#include "pragmas.h"
|
||||
#include "postproc.h"
|
||||
#include "dequantize.h"
|
||||
#include "onyxd_int.h"
|
||||
#include "vp8/common/blockd.h"
|
||||
#include "vp8/common/pragmas.h"
|
||||
#include "vp8/common/postproc.h"
|
||||
#include "vp8/decoder/dequantize.h"
|
||||
#include "vp8/decoder/onyxd_int.h"
|
||||
|
||||
void vp8_arch_arm_decode_init(VP8D_COMP *pbi)
|
||||
{
|
||||
|
@@ -9,8 +9,8 @@
|
||||
*/
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "idct.h"
|
||||
#include "dequantize.h"
|
||||
#include "vp8/common/idct.h"
|
||||
#include "vp8/decoder/dequantize.h"
|
||||
|
||||
void vp8_dequant_dc_idct_add_y_block_v6
|
||||
(short *q, short *dq, unsigned char *pre,
|
||||
|
@@ -10,9 +10,8 @@
|
||||
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "dequantize.h"
|
||||
#include "predictdc.h"
|
||||
#include "idct.h"
|
||||
#include "vp8/decoder/dequantize.h"
|
||||
#include "vp8/common/idct.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
|
||||
#if HAVE_ARMV7
|
||||
|
@@ -9,8 +9,8 @@
|
||||
*/
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "idct.h"
|
||||
#include "dequantize.h"
|
||||
#include "vp8/common/idct.h"
|
||||
#include "vp8/decoder/dequantize.h"
|
||||
|
||||
/* place these declarations here because we don't want to maintain them
|
||||
* outside of this scope
|
||||
|
@@ -10,10 +10,10 @@
|
||||
|
||||
|
||||
#include "treereader.h"
|
||||
#include "entropymv.h"
|
||||
#include "entropymode.h"
|
||||
#include "vp8/common/entropymv.h"
|
||||
#include "vp8/common/entropymode.h"
|
||||
#include "onyxd_int.h"
|
||||
#include "findnearmv.h"
|
||||
#include "vp8/common/findnearmv.h"
|
||||
|
||||
#if CONFIG_DEBUG
|
||||
#include <assert.h>
|
||||
|
@@ -10,28 +10,27 @@
|
||||
|
||||
|
||||
#include "onyxd_int.h"
|
||||
#include "header.h"
|
||||
#include "reconintra.h"
|
||||
#include "reconintra4x4.h"
|
||||
#include "recon.h"
|
||||
#include "reconinter.h"
|
||||
#include "vp8/common/header.h"
|
||||
#include "vp8/common/reconintra.h"
|
||||
#include "vp8/common/reconintra4x4.h"
|
||||
#include "vp8/common/recon.h"
|
||||
#include "vp8/common/reconinter.h"
|
||||
#include "dequantize.h"
|
||||
#include "detokenize.h"
|
||||
#include "invtrans.h"
|
||||
#include "alloccommon.h"
|
||||
#include "entropymode.h"
|
||||
#include "quant_common.h"
|
||||
#include "vp8/common/invtrans.h"
|
||||
#include "vp8/common/alloccommon.h"
|
||||
#include "vp8/common/entropymode.h"
|
||||
#include "vp8/common/quant_common.h"
|
||||
#include "vpx_scale/vpxscale.h"
|
||||
#include "vpx_scale/yv12extend.h"
|
||||
#include "setupintrarecon.h"
|
||||
#include "vp8/common/setupintrarecon.h"
|
||||
|
||||
#include "decodemv.h"
|
||||
#include "extend.h"
|
||||
#include "vp8/common/extend.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "idct.h"
|
||||
#include "vp8/common/idct.h"
|
||||
#include "dequantize.h"
|
||||
#include "predictdc.h"
|
||||
#include "threading.h"
|
||||
#include "vp8/common/threading.h"
|
||||
#include "decoderthreading.h"
|
||||
#include "dboolhuff.h"
|
||||
|
||||
|
@@ -11,8 +11,7 @@
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "dequantize.h"
|
||||
#include "predictdc.h"
|
||||
#include "idct.h"
|
||||
#include "vp8/common/idct.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
|
||||
extern void vp8_short_idct4x4llm_c(short *input, short *output, int pitch) ;
|
||||
|
@@ -11,7 +11,7 @@
|
||||
|
||||
#ifndef DEQUANTIZE_H
|
||||
#define DEQUANTIZE_H
|
||||
#include "blockd.h"
|
||||
#include "vp8/common/blockd.h"
|
||||
|
||||
#define prototype_dequant_block(sym) \
|
||||
void sym(BLOCKD *x)
|
||||
|
@@ -9,8 +9,8 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "type_aliases.h"
|
||||
#include "blockd.h"
|
||||
#include "vp8/common/type_aliases.h"
|
||||
#include "vp8/common/blockd.h"
|
||||
#include "onyxd_int.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "vpx_ports/mem.h"
|
||||
|
@@ -10,8 +10,8 @@
|
||||
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "dequantize.h"
|
||||
#include "onyxd_int.h"
|
||||
#include "vp8/decoder/dequantize.h"
|
||||
#include "vp8/decoder/onyxd_int.h"
|
||||
|
||||
extern void vp8_arch_x86_decode_init(VP8D_COMP *pbi);
|
||||
extern void vp8_arch_arm_decode_init(VP8D_COMP *pbi);
|
||||
|
@@ -9,7 +9,7 @@
|
||||
*/
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "idct.h"
|
||||
#include "vp8/common/idct.h"
|
||||
#include "dequantize.h"
|
||||
|
||||
void vp8_dequant_dc_idct_add_c(short *input, short *dq, unsigned char *pred,
|
||||
|
@@ -9,25 +9,25 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "onyxc_int.h"
|
||||
#include "vp8/common/onyxc_int.h"
|
||||
#if CONFIG_POSTPROC
|
||||
#include "postproc.h"
|
||||
#include "vp8/common/postproc.h"
|
||||
#endif
|
||||
#include "onyxd.h"
|
||||
#include "vp8/common/onyxd.h"
|
||||
#include "onyxd_int.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "alloccommon.h"
|
||||
#include "vp8/common/alloccommon.h"
|
||||
#include "vpx_scale/yv12extend.h"
|
||||
#include "loopfilter.h"
|
||||
#include "swapyv12buffer.h"
|
||||
#include "g_common.h"
|
||||
#include "threading.h"
|
||||
#include "vp8/common/loopfilter.h"
|
||||
#include "vp8/common/swapyv12buffer.h"
|
||||
#include "vp8/common/g_common.h"
|
||||
#include "vp8/common/threading.h"
|
||||
#include "decoderthreading.h"
|
||||
#include <stdio.h>
|
||||
|
||||
#include "quant_common.h"
|
||||
#include "vp8/common/quant_common.h"
|
||||
#include "vpx_scale/vpxscale.h"
|
||||
#include "systemdependent.h"
|
||||
#include "vp8/common/systemdependent.h"
|
||||
#include "vpx_ports/vpx_timer.h"
|
||||
#include "detokenize.h"
|
||||
#if ARCH_ARM
|
||||
|
@@ -12,10 +12,10 @@
|
||||
#ifndef __INC_VP8D_INT_H
|
||||
#define __INC_VP8D_INT_H
|
||||
#include "vpx_ports/config.h"
|
||||
#include "onyxd.h"
|
||||
#include "vp8/common/onyxd.h"
|
||||
#include "treereader.h"
|
||||
#include "onyxc_int.h"
|
||||
#include "threading.h"
|
||||
#include "vp8/common/onyxc_int.h"
|
||||
#include "vp8/common/threading.h"
|
||||
#include "dequantize.h"
|
||||
|
||||
typedef struct
|
||||
|
@@ -10,8 +10,8 @@
|
||||
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "recon.h"
|
||||
#include "reconintra.h"
|
||||
#include "vp8/common/recon.h"
|
||||
#include "vp8/common/reconintra.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "onyxd_int.h"
|
||||
|
||||
|
@@ -17,13 +17,13 @@
|
||||
#endif
|
||||
#include "onyxd_int.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "threading.h"
|
||||
#include "vp8/common/threading.h"
|
||||
|
||||
#include "loopfilter.h"
|
||||
#include "extend.h"
|
||||
#include "vp8/common/loopfilter.h"
|
||||
#include "vp8/common/extend.h"
|
||||
#include "vpx_ports/vpx_timer.h"
|
||||
#include "detokenize.h"
|
||||
#include "reconinter.h"
|
||||
#include "vp8/common/reconinter.h"
|
||||
#include "reconintra_mt.h"
|
||||
|
||||
extern void mb_init_dequantizer(VP8D_COMP *pbi, MACROBLOCKD *xd);
|
||||
@@ -473,22 +473,16 @@ void vp8mt_de_alloc_temp_buffers(VP8D_COMP *pbi, int mb_rows)
|
||||
|
||||
if (pbi->b_multithreaded_rd)
|
||||
{
|
||||
if (pbi->mt_current_mb_col)
|
||||
{
|
||||
vpx_free(pbi->mt_current_mb_col);
|
||||
pbi->mt_current_mb_col = NULL ;
|
||||
}
|
||||
|
||||
/* Free above_row buffers. */
|
||||
if (pbi->mt_yabove_row)
|
||||
{
|
||||
for (i=0; i< mb_rows; i++)
|
||||
{
|
||||
if (pbi->mt_yabove_row[i])
|
||||
{
|
||||
vpx_free(pbi->mt_yabove_row[i]);
|
||||
pbi->mt_yabove_row[i] = NULL ;
|
||||
}
|
||||
}
|
||||
vpx_free(pbi->mt_yabove_row);
|
||||
pbi->mt_yabove_row = NULL ;
|
||||
@@ -498,11 +492,8 @@ void vp8mt_de_alloc_temp_buffers(VP8D_COMP *pbi, int mb_rows)
|
||||
{
|
||||
for (i=0; i< mb_rows; i++)
|
||||
{
|
||||
if (pbi->mt_uabove_row[i])
|
||||
{
|
||||
vpx_free(pbi->mt_uabove_row[i]);
|
||||
pbi->mt_uabove_row[i] = NULL ;
|
||||
}
|
||||
}
|
||||
vpx_free(pbi->mt_uabove_row);
|
||||
pbi->mt_uabove_row = NULL ;
|
||||
@@ -512,11 +503,8 @@ void vp8mt_de_alloc_temp_buffers(VP8D_COMP *pbi, int mb_rows)
|
||||
{
|
||||
for (i=0; i< mb_rows; i++)
|
||||
{
|
||||
if (pbi->mt_vabove_row[i])
|
||||
{
|
||||
vpx_free(pbi->mt_vabove_row[i]);
|
||||
pbi->mt_vabove_row[i] = NULL ;
|
||||
}
|
||||
}
|
||||
vpx_free(pbi->mt_vabove_row);
|
||||
pbi->mt_vabove_row = NULL ;
|
||||
@@ -527,11 +515,8 @@ void vp8mt_de_alloc_temp_buffers(VP8D_COMP *pbi, int mb_rows)
|
||||
{
|
||||
for (i=0; i< mb_rows; i++)
|
||||
{
|
||||
if (pbi->mt_yleft_col[i])
|
||||
{
|
||||
vpx_free(pbi->mt_yleft_col[i]);
|
||||
pbi->mt_yleft_col[i] = NULL ;
|
||||
}
|
||||
}
|
||||
vpx_free(pbi->mt_yleft_col);
|
||||
pbi->mt_yleft_col = NULL ;
|
||||
@@ -541,11 +526,8 @@ void vp8mt_de_alloc_temp_buffers(VP8D_COMP *pbi, int mb_rows)
|
||||
{
|
||||
for (i=0; i< mb_rows; i++)
|
||||
{
|
||||
if (pbi->mt_uleft_col[i])
|
||||
{
|
||||
vpx_free(pbi->mt_uleft_col[i]);
|
||||
pbi->mt_uleft_col[i] = NULL ;
|
||||
}
|
||||
}
|
||||
vpx_free(pbi->mt_uleft_col);
|
||||
pbi->mt_uleft_col = NULL ;
|
||||
@@ -555,11 +537,8 @@ void vp8mt_de_alloc_temp_buffers(VP8D_COMP *pbi, int mb_rows)
|
||||
{
|
||||
for (i=0; i< mb_rows; i++)
|
||||
{
|
||||
if (pbi->mt_vleft_col[i])
|
||||
{
|
||||
vpx_free(pbi->mt_vleft_col[i]);
|
||||
pbi->mt_vleft_col[i] = NULL ;
|
||||
}
|
||||
}
|
||||
vpx_free(pbi->mt_vleft_col);
|
||||
pbi->mt_vleft_col = NULL ;
|
||||
@@ -644,29 +623,17 @@ void vp8_decoder_remove_threads(VP8D_COMP *pbi)
|
||||
|
||||
sem_destroy(&pbi->h_event_end_decoding);
|
||||
|
||||
if (pbi->h_decoding_thread)
|
||||
{
|
||||
vpx_free(pbi->h_decoding_thread);
|
||||
pbi->h_decoding_thread = NULL;
|
||||
}
|
||||
|
||||
if (pbi->h_event_start_decoding)
|
||||
{
|
||||
vpx_free(pbi->h_event_start_decoding);
|
||||
pbi->h_event_start_decoding = NULL;
|
||||
}
|
||||
|
||||
if (pbi->mb_row_di)
|
||||
{
|
||||
vpx_free(pbi->mb_row_di);
|
||||
pbi->mb_row_di = NULL ;
|
||||
}
|
||||
|
||||
if (pbi->de_thread_data)
|
||||
{
|
||||
vpx_free(pbi->de_thread_data);
|
||||
pbi->de_thread_data = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -12,7 +12,7 @@
|
||||
#ifndef tree_reader_h
|
||||
#define tree_reader_h 1
|
||||
|
||||
#include "treecoder.h"
|
||||
#include "vp8/common/treecoder.h"
|
||||
|
||||
#include "dboolhuff.h"
|
||||
|
||||
|
@@ -9,8 +9,8 @@
|
||||
*/
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "idct.h"
|
||||
#include "dequantize.h"
|
||||
#include "vp8/common/idct.h"
|
||||
#include "vp8/decoder/dequantize.h"
|
||||
|
||||
void vp8_dequant_dc_idct_add_y_block_mmx
|
||||
(short *q, short *dq, unsigned char *pre,
|
||||
|
@@ -9,8 +9,8 @@
|
||||
*/
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "idct.h"
|
||||
#include "dequantize.h"
|
||||
#include "vp8/common/idct.h"
|
||||
#include "vp8/decoder/dequantize.h"
|
||||
|
||||
void idct_dequant_dc_0_2x_sse2
|
||||
(short *q, short *dq, unsigned char *pre,
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -11,7 +11,7 @@
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "vpx_ports/x86.h"
|
||||
#include "onyxd_int.h"
|
||||
#include "vp8/decoder/onyxd_int.h"
|
||||
|
||||
|
||||
#if HAVE_MMX
|
||||
|
@@ -11,8 +11,8 @@
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "vpx_ports/arm.h"
|
||||
#include "variance.h"
|
||||
#include "onyx_int.h"
|
||||
#include "vp8/encoder/variance.h"
|
||||
#include "vp8/encoder/onyx_int.h"
|
||||
|
||||
extern void (*vp8_yv12_copy_partial_frame_ptr)(YV12_BUFFER_CONFIG *src_ybc, YV12_BUFFER_CONFIG *dst_ybc, int Fraction);
|
||||
extern void vp8_yv12_copy_partial_frame(YV12_BUFFER_CONFIG *src_ybc, YV12_BUFFER_CONFIG *dst_ybc, int Fraction);
|
||||
@@ -29,8 +29,8 @@ void vp8_arch_arm_encoder_init(VP8_COMP *cpi)
|
||||
#if HAVE_ARMV6
|
||||
if (has_media)
|
||||
{
|
||||
/*cpi->rtcd.variance.sad16x16 = vp8_sad16x16_c;
|
||||
cpi->rtcd.variance.sad16x8 = vp8_sad16x8_c;
|
||||
cpi->rtcd.variance.sad16x16 = vp8_sad16x16_armv6;
|
||||
/*cpi->rtcd.variance.sad16x8 = vp8_sad16x8_c;
|
||||
cpi->rtcd.variance.sad8x16 = vp8_sad8x16_c;
|
||||
cpi->rtcd.variance.sad8x8 = vp8_sad8x8_c;
|
||||
cpi->rtcd.variance.sad4x4 = vp8_sad4x4_c;*/
|
||||
@@ -46,6 +46,9 @@ void vp8_arch_arm_encoder_init(VP8_COMP *cpi)
|
||||
cpi->rtcd.variance.subpixvar8x16 = vp8_sub_pixel_variance8x16_c;
|
||||
cpi->rtcd.variance.subpixvar16x8 = vp8_sub_pixel_variance16x8_c;*/
|
||||
cpi->rtcd.variance.subpixvar16x16 = vp8_sub_pixel_variance16x16_armv6;
|
||||
cpi->rtcd.variance.halfpixvar16x16_h = vp8_variance_halfpixvar16x16_h_armv6;
|
||||
cpi->rtcd.variance.halfpixvar16x16_v = vp8_variance_halfpixvar16x16_v_armv6;
|
||||
cpi->rtcd.variance.halfpixvar16x16_hv = vp8_variance_halfpixvar16x16_hv_armv6;
|
||||
|
||||
/*cpi->rtcd.variance.mse16x16 = vp8_mse16x16_c;
|
||||
cpi->rtcd.variance.getmbss = vp8_get_mb_ss_c;*/
|
||||
|
84
vp8/encoder/arm/armv6/vp8_sad16x16_armv6.asm
Normal file
84
vp8/encoder/arm/armv6/vp8_sad16x16_armv6.asm
Normal file
@@ -0,0 +1,84 @@
|
||||
;
|
||||
; Copyright (c) 2011 The WebM project authors. All Rights Reserved.
|
||||
;
|
||||
; Use of this source code is governed by a BSD-style license
|
||||
; that can be found in the LICENSE file in the root of the source
|
||||
; tree. An additional intellectual property rights grant can be found
|
||||
; in the file PATENTS. All contributing project authors may
|
||||
; be found in the AUTHORS file in the root of the source tree.
|
||||
;
|
||||
|
||||
|
||||
EXPORT |vp8_sad16x16_armv6|
|
||||
|
||||
ARM
|
||||
REQUIRE8
|
||||
PRESERVE8
|
||||
|
||||
AREA ||.text||, CODE, READONLY, ALIGN=2
|
||||
|
||||
; r0 const unsigned char *src_ptr
|
||||
; r1 int src_stride
|
||||
; r2 const unsigned char *ref_ptr
|
||||
; r3 int ref_stride
|
||||
; stack max_sad (not used)
|
||||
|vp8_sad16x16_armv6| PROC
|
||||
stmfd sp!, {r4-r12, lr}
|
||||
mov r4, #0 ; sad = 0;
|
||||
mov r5, #8 ; loop count
|
||||
|
||||
loop
|
||||
; 1st row
|
||||
ldr r6, [r0, #0x0] ; load 4 src pixels (1A)
|
||||
ldr r8, [r2, #0x0] ; load 4 ref pixels (1A)
|
||||
ldr r7, [r0, #0x4] ; load 4 src pixels (1A)
|
||||
ldr r9, [r2, #0x4] ; load 4 ref pixels (1A)
|
||||
ldr r10, [r0, #0x8] ; load 4 src pixels (1B)
|
||||
ldr r11, [r0, #0xC] ; load 4 src pixels (1B)
|
||||
|
||||
usada8 r4, r8, r6, r4 ; calculate sad for 4 pixels
|
||||
usad8 r8, r7, r9 ; calculate sad for 4 pixels
|
||||
|
||||
ldr r12, [r2, #0x8] ; load 4 ref pixels (1B)
|
||||
ldr lr, [r2, #0xC] ; load 4 ref pixels (1B)
|
||||
|
||||
add r0, r0, r1 ; set src pointer to next row
|
||||
add r2, r2, r3 ; set dst pointer to next row
|
||||
|
||||
usada8 r4, r10, r12, r4 ; calculate sad for 4 pixels
|
||||
usada8 r8, r11, lr, r8 ; calculate sad for 4 pixels
|
||||
|
||||
ldr r6, [r0, #0x0] ; load 4 src pixels (2A)
|
||||
ldr r7, [r0, #0x4] ; load 4 src pixels (2A)
|
||||
add r4, r4, r8 ; add partial sad values
|
||||
|
||||
; 2nd row
|
||||
ldr r8, [r2, #0x0] ; load 4 ref pixels (2A)
|
||||
ldr r9, [r2, #0x4] ; load 4 ref pixels (2A)
|
||||
ldr r10, [r0, #0x8] ; load 4 src pixels (2B)
|
||||
ldr r11, [r0, #0xC] ; load 4 src pixels (2B)
|
||||
|
||||
usada8 r4, r6, r8, r4 ; calculate sad for 4 pixels
|
||||
usad8 r8, r7, r9 ; calculate sad for 4 pixels
|
||||
|
||||
ldr r12, [r2, #0x8] ; load 4 ref pixels (2B)
|
||||
ldr lr, [r2, #0xC] ; load 4 ref pixels (2B)
|
||||
|
||||
add r0, r0, r1 ; set src pointer to next row
|
||||
add r2, r2, r3 ; set dst pointer to next row
|
||||
|
||||
usada8 r4, r10, r12, r4 ; calculate sad for 4 pixels
|
||||
usada8 r8, r11, lr, r8 ; calculate sad for 4 pixels
|
||||
|
||||
subs r5, r5, #1 ; decrement loop counter
|
||||
add r4, r4, r8 ; add partial sad values
|
||||
|
||||
bne loop
|
||||
|
||||
mov r0, r4 ; return sad
|
||||
ldmfd sp!, {r4-r12, pc}
|
||||
|
||||
ENDP
|
||||
|
||||
END
|
||||
|
@@ -9,8 +9,8 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "boolhuff.h"
|
||||
#include "blockd.h"
|
||||
#include "vp8/encoder/boolhuff.h"
|
||||
#include "vp8/common/blockd.h"
|
||||
|
||||
const unsigned int vp8_prob_cost[256] =
|
||||
{
|
||||
|
@@ -9,13 +9,13 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "encodemb.h"
|
||||
#include "reconinter.h"
|
||||
#include "quantize.h"
|
||||
#include "invtrans.h"
|
||||
#include "recon.h"
|
||||
#include "reconintra.h"
|
||||
#include "dct.h"
|
||||
#include "vp8/encoder/encodemb.h"
|
||||
#include "vp8/common/reconinter.h"
|
||||
#include "vp8/encoder/quantize.h"
|
||||
#include "vp8/common/invtrans.h"
|
||||
#include "vp8/common/recon.h"
|
||||
#include "vp8/common/reconintra.h"
|
||||
#include "vp8/encoder/dct.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
|
||||
extern void vp8_subtract_b_neon_func(short *diff, unsigned char *src, unsigned char *pred, int stride, int pitch);
|
||||
|
@@ -9,13 +9,13 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "onyxc_int.h"
|
||||
#include "onyx_int.h"
|
||||
#include "quantize.h"
|
||||
#include "vp8/common/onyxc_int.h"
|
||||
#include "vp8/encoder/onyx_int.h"
|
||||
#include "vp8/encoder/quantize.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "vpx_scale/yv12extend.h"
|
||||
#include "vpx_scale/vpxscale.h"
|
||||
#include "alloccommon.h"
|
||||
#include "vp8/common/alloccommon.h"
|
||||
|
||||
extern void vp8_memcpy_neon(unsigned char *dst_ptr, unsigned char *src_ptr, int sz);
|
||||
|
||||
|
@@ -12,9 +12,8 @@
|
||||
#include <math.h>
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
|
||||
#include "quantize.h"
|
||||
#include "entropy.h"
|
||||
#include "predictdc.h"
|
||||
#include "vp8/encoder/quantize.h"
|
||||
#include "vp8/common/entropy.h"
|
||||
|
||||
DECLARE_ALIGNED(16, const short, vp8_rvsplus1_default_zig_zag1d[16]) =
|
||||
{
|
||||
|
@@ -9,9 +9,9 @@
|
||||
*/
|
||||
|
||||
#include "vpx_config.h"
|
||||
#include "variance.h"
|
||||
#include "filter.h"
|
||||
#include "arm/bilinearfilter_arm.h"
|
||||
#include "vp8/encoder/variance.h"
|
||||
#include "vp8/common/filter.h"
|
||||
#include "vp8/common/arm/bilinearfilter_arm.h"
|
||||
|
||||
#if HAVE_ARMV6
|
||||
|
||||
@@ -43,7 +43,41 @@ unsigned int vp8_sub_pixel_variance16x16_armv6
|
||||
dst_pixels_per_line, sse);
|
||||
}
|
||||
|
||||
#endif
|
||||
unsigned int vp8_variance_halfpixvar16x16_h_armv6(
|
||||
const unsigned char *src_ptr,
|
||||
int source_stride,
|
||||
const unsigned char *ref_ptr,
|
||||
int recon_stride,
|
||||
unsigned int *sse)
|
||||
{
|
||||
return vp8_sub_pixel_variance16x16_armv6(src_ptr, source_stride, 4, 0,
|
||||
ref_ptr, recon_stride, sse);
|
||||
}
|
||||
|
||||
unsigned int vp8_variance_halfpixvar16x16_v_armv6(
|
||||
const unsigned char *src_ptr,
|
||||
int source_stride,
|
||||
const unsigned char *ref_ptr,
|
||||
int recon_stride,
|
||||
unsigned int *sse)
|
||||
{
|
||||
return vp8_sub_pixel_variance16x16_armv6(src_ptr, source_stride, 0, 4,
|
||||
ref_ptr, recon_stride, sse);
|
||||
}
|
||||
|
||||
unsigned int vp8_variance_halfpixvar16x16_hv_armv6(
|
||||
const unsigned char *src_ptr,
|
||||
int source_stride,
|
||||
const unsigned char *ref_ptr,
|
||||
int recon_stride,
|
||||
unsigned int *sse)
|
||||
{
|
||||
return vp8_sub_pixel_variance16x16_armv6(src_ptr, source_stride, 4, 4,
|
||||
ref_ptr, recon_stride, sse);
|
||||
}
|
||||
|
||||
#endif /* HAVE_ARMV6 */
|
||||
|
||||
|
||||
#if HAVE_ARMV7
|
||||
|
||||
|
@@ -14,21 +14,38 @@
|
||||
|
||||
#if HAVE_ARMV6
|
||||
|
||||
extern prototype_sad(vp8_sad16x16_armv6);
|
||||
extern prototype_variance(vp8_variance16x16_armv6);
|
||||
extern prototype_subpixvariance(vp8_sub_pixel_variance16x16_armv6);
|
||||
extern prototype_variance(vp8_variance_halfpixvar16x16_h_armv6);
|
||||
extern prototype_variance(vp8_variance_halfpixvar16x16_v_armv6);
|
||||
extern prototype_variance(vp8_variance_halfpixvar16x16_hv_armv6);
|
||||
|
||||
#if !CONFIG_RUNTIME_CPU_DETECT
|
||||
|
||||
#undef vp8_variance_sad16x16
|
||||
#define vp8_variance_sad16x16 vp8_sad16x16_armv6
|
||||
|
||||
#undef vp8_variance_subpixvar16x16
|
||||
#define vp8_variance_subpixvar16x16 vp8_sub_pixel_variance16x16_armv6
|
||||
|
||||
#undef vp8_variance_var16x16
|
||||
#define vp8_variance_var16x16 vp8_variance16x16_armv6
|
||||
|
||||
#undef vp8_variance_halfpixvar16x16_h
|
||||
#define vp8_variance_halfpixvar16x16_h vp8_variance_halfpixvar16x16_h_armv6
|
||||
|
||||
#undef vp8_variance_halfpixvar16x16_v
|
||||
#define vp8_variance_halfpixvar16x16_v vp8_variance_halfpixvar16x16_v_armv6
|
||||
|
||||
#undef vp8_variance_halfpixvar16x16_hv
|
||||
#define vp8_variance_halfpixvar16x16_hv vp8_variance_halfpixvar16x16_hv_armv6
|
||||
|
||||
#endif /* !CONFIG_RUNTIME_CPU_DETECT */
|
||||
|
||||
#endif /* HAVE_ARMV6 */
|
||||
|
||||
|
||||
#if HAVE_ARMV7
|
||||
extern prototype_sad(vp8_sad4x4_neon);
|
||||
extern prototype_sad(vp8_sad8x8_neon);
|
||||
|
@@ -9,15 +9,15 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "header.h"
|
||||
#include "vp8/common/header.h"
|
||||
#include "encodemv.h"
|
||||
#include "entropymode.h"
|
||||
#include "findnearmv.h"
|
||||
#include "vp8/common/entropymode.h"
|
||||
#include "vp8/common/findnearmv.h"
|
||||
#include "mcomp.h"
|
||||
#include "systemdependent.h"
|
||||
#include "vp8/common/systemdependent.h"
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include "pragmas.h"
|
||||
#include "vp8/common/pragmas.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "bitstream.h"
|
||||
|
||||
@@ -58,16 +58,6 @@ extern unsigned int active_section;
|
||||
int count_mb_seg[4] = { 0, 0, 0, 0 };
|
||||
#endif
|
||||
|
||||
#if CONFIG_BIG_ENDIAN
|
||||
# define make_endian_16(a) \
|
||||
(((unsigned int)(a & 0xff)) << 8) | (((unsigned int)(a & 0xff00)) >> 8)
|
||||
# define make_endian_32(a) \
|
||||
(((unsigned int)(a & 0xff)) << 24) | (((unsigned int)(a & 0xff00)) << 8) | \
|
||||
(((unsigned int)(a & 0xff0000)) >> 8) | (((unsigned int)(a & 0xff000000)) >> 24)
|
||||
#else
|
||||
# define make_endian_16(a) a
|
||||
# define make_endian_32(a) a
|
||||
#endif
|
||||
|
||||
static void update_mode(
|
||||
vp8_writer *const w,
|
||||
@@ -1392,13 +1382,20 @@ void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned long *size)
|
||||
// every keyframe send startcode, width, height, scale factor, clamp and color type
|
||||
if (oh.type == KEY_FRAME)
|
||||
{
|
||||
int v;
|
||||
|
||||
// Start / synch code
|
||||
cx_data[0] = 0x9D;
|
||||
cx_data[1] = 0x01;
|
||||
cx_data[2] = 0x2a;
|
||||
|
||||
*((unsigned short *)(cx_data + 3)) = make_endian_16((pc->horiz_scale << 14) | pc->Width);
|
||||
*((unsigned short *)(cx_data + 5)) = make_endian_16((pc->vert_scale << 14) | pc->Height);
|
||||
v = (pc->horiz_scale << 14) | pc->Width;
|
||||
cx_data[3] = v;
|
||||
cx_data[4] = v >> 8;
|
||||
|
||||
v = (pc->vert_scale << 14) | pc->Height;
|
||||
cx_data[5] = v;
|
||||
cx_data[6] = v >> 8;
|
||||
|
||||
extra_bytes_packed = 7;
|
||||
cx_data += extra_bytes_packed ;
|
||||
@@ -1666,19 +1663,16 @@ void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned long *size)
|
||||
*size = cpi->bc2.pos + cpi->bc.pos + VP8_HEADER_SIZE + extra_bytes_packed;
|
||||
}
|
||||
|
||||
#if CONFIG_BIG_ENDIAN
|
||||
{
|
||||
int v = (oh.first_partition_length_in_bytes << 5) |
|
||||
(oh.show_frame << 4) |
|
||||
(oh.version << 1) |
|
||||
oh.type;
|
||||
|
||||
v = make_endian_32(v);
|
||||
vpx_memcpy(dest, &v, 3);
|
||||
dest[0] = v;
|
||||
dest[1] = v >> 8;
|
||||
dest[2] = v >> 16;
|
||||
}
|
||||
#else
|
||||
vpx_memcpy(dest, &oh, 3);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef ENTROPY_STATS
|
||||
|
@@ -12,10 +12,10 @@
|
||||
#ifndef __INC_BLOCK_H
|
||||
#define __INC_BLOCK_H
|
||||
|
||||
#include "onyx.h"
|
||||
#include "blockd.h"
|
||||
#include "entropymv.h"
|
||||
#include "entropy.h"
|
||||
#include "vp8/common/onyx.h"
|
||||
#include "vp8/common/blockd.h"
|
||||
#include "vp8/common/entropymv.h"
|
||||
#include "vp8/common/entropy.h"
|
||||
#include "vpx_ports/mem.h"
|
||||
|
||||
// motion search site
|
||||
|
@@ -10,7 +10,7 @@
|
||||
|
||||
|
||||
#include "boolhuff.h"
|
||||
#include "blockd.h"
|
||||
#include "vp8/common/blockd.h"
|
||||
|
||||
|
||||
|
||||
|
@@ -12,22 +12,22 @@
|
||||
#include "vpx_ports/config.h"
|
||||
#include "encodemb.h"
|
||||
#include "encodemv.h"
|
||||
#include "common.h"
|
||||
#include "vp8/common/common.h"
|
||||
#include "onyx_int.h"
|
||||
#include "extend.h"
|
||||
#include "entropymode.h"
|
||||
#include "quant_common.h"
|
||||
#include "vp8/common/extend.h"
|
||||
#include "vp8/common/entropymode.h"
|
||||
#include "vp8/common/quant_common.h"
|
||||
#include "segmentation.h"
|
||||
#include "setupintrarecon.h"
|
||||
#include "vp8/common/setupintrarecon.h"
|
||||
#include "encodeintra.h"
|
||||
#include "reconinter.h"
|
||||
#include "vp8/common/reconinter.h"
|
||||
#include "rdopt.h"
|
||||
#include "pickinter.h"
|
||||
#include "findnearmv.h"
|
||||
#include "reconintra.h"
|
||||
#include "vp8/common/findnearmv.h"
|
||||
#include "vp8/common/reconintra.h"
|
||||
#include <stdio.h>
|
||||
#include <limits.h>
|
||||
#include "subpixel.h"
|
||||
#include "vp8/common/subpixel.h"
|
||||
#include "vpx_ports/vpx_timer.h"
|
||||
|
||||
#if CONFIG_RUNTIME_CPU_DETECT
|
||||
|
@@ -10,15 +10,15 @@
|
||||
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "idct.h"
|
||||
#include "vp8/common/idct.h"
|
||||
#include "quantize.h"
|
||||
#include "reconintra.h"
|
||||
#include "reconintra4x4.h"
|
||||
#include "vp8/common/reconintra.h"
|
||||
#include "vp8/common/reconintra4x4.h"
|
||||
#include "encodemb.h"
|
||||
#include "invtrans.h"
|
||||
#include "recon.h"
|
||||
#include "vp8/common/invtrans.h"
|
||||
#include "vp8/common/recon.h"
|
||||
#include "dct.h"
|
||||
#include "g_common.h"
|
||||
#include "vp8/common/g_common.h"
|
||||
#include "encodeintra.h"
|
||||
|
||||
#define intra4x4ibias_rate 128
|
||||
|
@@ -11,12 +11,12 @@
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "encodemb.h"
|
||||
#include "reconinter.h"
|
||||
#include "vp8/common/reconinter.h"
|
||||
#include "quantize.h"
|
||||
#include "tokenize.h"
|
||||
#include "invtrans.h"
|
||||
#include "recon.h"
|
||||
#include "reconintra.h"
|
||||
#include "vp8/common/invtrans.h"
|
||||
#include "vp8/common/recon.h"
|
||||
#include "vp8/common/reconintra.h"
|
||||
#include "dct.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
|
||||
@@ -518,7 +518,7 @@ void vp8_optimize_mb(MACROBLOCK *x, const VP8_ENCODER_RTCD *rtcd)
|
||||
|
||||
has_2nd_order = (x->e_mbd.mode_info_context->mbmi.mode != B_PRED
|
||||
&& x->e_mbd.mode_info_context->mbmi.mode != SPLITMV);
|
||||
type = has_2nd_order ? 0 : 3;
|
||||
type = has_2nd_order ? PLANE_TYPE_Y_NO_DC : PLANE_TYPE_Y_WITH_DC;
|
||||
|
||||
for (b = 0; b < 16; b++)
|
||||
{
|
||||
@@ -526,23 +526,16 @@ void vp8_optimize_mb(MACROBLOCK *x, const VP8_ENCODER_RTCD *rtcd)
|
||||
ta + vp8_block2above[b], tl + vp8_block2left[b], rtcd);
|
||||
}
|
||||
|
||||
for (b = 16; b < 20; b++)
|
||||
for (b = 16; b < 24; b++)
|
||||
{
|
||||
vp8_optimize_b(x, b, vp8_block2type[b],
|
||||
vp8_optimize_b(x, b, PLANE_TYPE_UV,
|
||||
ta + vp8_block2above[b], tl + vp8_block2left[b], rtcd);
|
||||
}
|
||||
|
||||
for (b = 20; b < 24; b++)
|
||||
{
|
||||
vp8_optimize_b(x, b, vp8_block2type[b],
|
||||
ta + vp8_block2above[b], tl + vp8_block2left[b], rtcd);
|
||||
}
|
||||
|
||||
|
||||
if (has_2nd_order)
|
||||
{
|
||||
b=24;
|
||||
vp8_optimize_b(x, b, vp8_block2type[b],
|
||||
vp8_optimize_b(x, b, PLANE_TYPE_Y2,
|
||||
ta + vp8_block2above[b], tl + vp8_block2left[b], rtcd);
|
||||
}
|
||||
}
|
||||
@@ -572,7 +565,7 @@ void vp8_optimize_mby(MACROBLOCK *x, const VP8_ENCODER_RTCD *rtcd)
|
||||
|
||||
has_2nd_order = (x->e_mbd.mode_info_context->mbmi.mode != B_PRED
|
||||
&& x->e_mbd.mode_info_context->mbmi.mode != SPLITMV);
|
||||
type = has_2nd_order ? 0 : 3;
|
||||
type = has_2nd_order ? PLANE_TYPE_Y_NO_DC : PLANE_TYPE_Y_WITH_DC;
|
||||
|
||||
for (b = 0; b < 16; b++)
|
||||
{
|
||||
@@ -584,7 +577,7 @@ void vp8_optimize_mby(MACROBLOCK *x, const VP8_ENCODER_RTCD *rtcd)
|
||||
if (has_2nd_order)
|
||||
{
|
||||
b=24;
|
||||
vp8_optimize_b(x, b, vp8_block2type[b],
|
||||
vp8_optimize_b(x, b, PLANE_TYPE_Y2,
|
||||
ta + vp8_block2above[b], tl + vp8_block2left[b], rtcd);
|
||||
}
|
||||
}
|
||||
@@ -608,18 +601,11 @@ void vp8_optimize_mbuv(MACROBLOCK *x, const VP8_ENCODER_RTCD *rtcd)
|
||||
ta = (ENTROPY_CONTEXT *)&t_above;
|
||||
tl = (ENTROPY_CONTEXT *)&t_left;
|
||||
|
||||
for (b = 16; b < 20; b++)
|
||||
for (b = 16; b < 24; b++)
|
||||
{
|
||||
vp8_optimize_b(x, b, vp8_block2type[b],
|
||||
vp8_optimize_b(x, b, PLANE_TYPE_UV,
|
||||
ta + vp8_block2above[b], tl + vp8_block2left[b], rtcd);
|
||||
}
|
||||
|
||||
for (b = 20; b < 24; b++)
|
||||
{
|
||||
vp8_optimize_b(x, b, vp8_block2type[b],
|
||||
ta + vp8_block2above[b], tl + vp8_block2left[b], rtcd);
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@@ -9,10 +9,10 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "common.h"
|
||||
#include "vp8/common/common.h"
|
||||
#include "encodemv.h"
|
||||
#include "entropymode.h"
|
||||
#include "systemdependent.h"
|
||||
#include "vp8/common/entropymode.h"
|
||||
#include "vp8/common/systemdependent.h"
|
||||
|
||||
#include <math.h>
|
||||
|
||||
|
@@ -9,9 +9,9 @@
|
||||
*/
|
||||
|
||||
#include "onyx_int.h"
|
||||
#include "threading.h"
|
||||
#include "common.h"
|
||||
#include "extend.h"
|
||||
#include "vp8/common/threading.h"
|
||||
#include "vp8/common/common.h"
|
||||
#include "vp8/common/extend.h"
|
||||
|
||||
#if CONFIG_MULTITHREAD
|
||||
|
||||
|
@@ -14,18 +14,18 @@
|
||||
#include "onyx_int.h"
|
||||
#include "variance.h"
|
||||
#include "encodeintra.h"
|
||||
#include "setupintrarecon.h"
|
||||
#include "vp8/common/setupintrarecon.h"
|
||||
#include "mcomp.h"
|
||||
#include "vpx_scale/vpxscale.h"
|
||||
#include "encodemb.h"
|
||||
#include "extend.h"
|
||||
#include "systemdependent.h"
|
||||
#include "vp8/common/extend.h"
|
||||
#include "vp8/common/systemdependent.h"
|
||||
#include "vpx_scale/yv12extend.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "swapyv12buffer.h"
|
||||
#include "vp8/common/swapyv12buffer.h"
|
||||
#include <stdio.h>
|
||||
#include "rdopt.h"
|
||||
#include "quant_common.h"
|
||||
#include "vp8/common/quant_common.h"
|
||||
#include "encodemv.h"
|
||||
|
||||
//#define OUTPUT_FPF 1
|
||||
@@ -560,8 +560,8 @@ void vp8_first_pass(VP8_COMP *cpi)
|
||||
YV12_BUFFER_CONFIG *gld_yv12 = &cm->yv12_fb[cm->gld_fb_idx];
|
||||
int recon_y_stride = lst_yv12->y_stride;
|
||||
int recon_uv_stride = lst_yv12->uv_stride;
|
||||
int intra_error = 0;
|
||||
int coded_error = 0;
|
||||
long long intra_error = 0;
|
||||
long long coded_error = 0;
|
||||
|
||||
int sum_mvr = 0, sum_mvc = 0;
|
||||
int sum_mvr_abs = 0, sum_mvc_abs = 0;
|
||||
@@ -648,7 +648,7 @@ void vp8_first_pass(VP8_COMP *cpi)
|
||||
this_error += intrapenalty;
|
||||
|
||||
// Cumulative intra error total
|
||||
intra_error += this_error;
|
||||
intra_error += (long long)this_error;
|
||||
|
||||
// Indicate default assumption of intra in the motion map
|
||||
*fp_motion_map_ptr = 0;
|
||||
@@ -800,7 +800,7 @@ void vp8_first_pass(VP8_COMP *cpi)
|
||||
}
|
||||
}
|
||||
|
||||
coded_error += this_error;
|
||||
coded_error += (long long)this_error;
|
||||
|
||||
// adjust to the next column of macroblocks
|
||||
x->src.y_buffer += 16;
|
||||
@@ -2494,7 +2494,7 @@ void vp8_find_next_key_frame(VP8_COMP *cpi, FIRSTPASS_STATS *this_frame)
|
||||
}
|
||||
|
||||
// Calculate the number of bits that should be assigned to the kf group.
|
||||
if ((cpi->bits_left > 0) && ((int)cpi->modified_error_left > 0))
|
||||
if ((cpi->bits_left > 0) && (cpi->modified_error_left > 0.0))
|
||||
{
|
||||
// Max for a single normal frame (not key frame)
|
||||
int max_bits = frame_max_bits(cpi);
|
||||
|
@@ -10,8 +10,8 @@
|
||||
|
||||
|
||||
#include "vpx_ports/config.h"
|
||||
#include "variance.h"
|
||||
#include "onyx_int.h"
|
||||
#include "vp8/encoder/variance.h"
|
||||
#include "vp8/encoder/onyx_int.h"
|
||||
|
||||
|
||||
void vp8_arch_x86_encoder_init(VP8_COMP *cpi);
|
||||
@@ -95,8 +95,9 @@ void vp8_cmachine_specific_config(VP8_COMP *cpi)
|
||||
cpi->rtcd.search.full_search = vp8_full_search_sad;
|
||||
#endif
|
||||
cpi->rtcd.search.diamond_search = vp8_diamond_search_sad;
|
||||
|
||||
#if !(CONFIG_REALTIME_ONLY)
|
||||
cpi->rtcd.temporal.apply = vp8_temporal_filter_apply_c;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Pure C:
|
||||
|
@@ -9,10 +9,10 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "blockd.h"
|
||||
#include "vp8/common/blockd.h"
|
||||
#include "onyx_int.h"
|
||||
#include "treewriter.h"
|
||||
#include "entropymode.h"
|
||||
#include "vp8/common/entropymode.h"
|
||||
|
||||
|
||||
void vp8_init_mode_costs(VP8_COMP *c)
|
||||
|
@@ -9,27 +9,26 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "onyxc_int.h"
|
||||
#include "vp8/common/onyxc_int.h"
|
||||
#include "onyx_int.h"
|
||||
#include "systemdependent.h"
|
||||
#include "vp8/common/systemdependent.h"
|
||||
#include "quantize.h"
|
||||
#include "alloccommon.h"
|
||||
#include "vp8/common/alloccommon.h"
|
||||
#include "mcomp.h"
|
||||
#include "firstpass.h"
|
||||
#include "psnr.h"
|
||||
#include "vpx_scale/vpxscale.h"
|
||||
#include "extend.h"
|
||||
#include "vp8/common/extend.h"
|
||||
#include "ratectrl.h"
|
||||
#include "quant_common.h"
|
||||
#include "vp8/common/quant_common.h"
|
||||
#include "segmentation.h"
|
||||
#include "g_common.h"
|
||||
#include "vp8/common/g_common.h"
|
||||
#include "vpx_scale/yv12extend.h"
|
||||
#include "postproc.h"
|
||||
#include "vp8/common/postproc.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "swapyv12buffer.h"
|
||||
#include "threading.h"
|
||||
#include "vp8/common/swapyv12buffer.h"
|
||||
#include "vp8/common/threading.h"
|
||||
#include "vpx_ports/vpx_timer.h"
|
||||
#include "vpxerrors.h"
|
||||
#include "temporal_filter.h"
|
||||
#if ARCH_ARM
|
||||
#include "vpx_ports/arm.h"
|
||||
@@ -262,42 +261,31 @@ static void setup_features(VP8_COMP *cpi)
|
||||
|
||||
void vp8_dealloc_compressor_data(VP8_COMP *cpi)
|
||||
{
|
||||
if(cpi->tplist!=0)
|
||||
vpx_free(cpi->tplist);
|
||||
vpx_free(cpi->tplist);
|
||||
cpi->tplist = NULL;
|
||||
|
||||
// Delete last frame MV storage buffers
|
||||
if (cpi->lfmv != 0)
|
||||
vpx_free(cpi->lfmv);
|
||||
|
||||
vpx_free(cpi->lfmv);
|
||||
cpi->lfmv = 0;
|
||||
|
||||
if (cpi->lf_ref_frame_sign_bias != 0)
|
||||
vpx_free(cpi->lf_ref_frame_sign_bias);
|
||||
|
||||
vpx_free(cpi->lf_ref_frame_sign_bias);
|
||||
cpi->lf_ref_frame_sign_bias = 0;
|
||||
|
||||
if (cpi->lf_ref_frame != 0)
|
||||
vpx_free(cpi->lf_ref_frame);
|
||||
|
||||
vpx_free(cpi->lf_ref_frame);
|
||||
cpi->lf_ref_frame = 0;
|
||||
|
||||
// Delete sementation map
|
||||
if (cpi->segmentation_map != 0)
|
||||
vpx_free(cpi->segmentation_map);
|
||||
|
||||
vpx_free(cpi->segmentation_map);
|
||||
cpi->segmentation_map = 0;
|
||||
|
||||
if (cpi->active_map != 0)
|
||||
vpx_free(cpi->active_map);
|
||||
|
||||
vpx_free(cpi->active_map);
|
||||
cpi->active_map = 0;
|
||||
|
||||
#if !(CONFIG_REALTIME_ONLY)
|
||||
// Delete first pass motion map
|
||||
if (cpi->fp_motion_map != 0)
|
||||
vpx_free(cpi->fp_motion_map);
|
||||
|
||||
vpx_free(cpi->fp_motion_map);
|
||||
cpi->fp_motion_map = 0;
|
||||
#endif
|
||||
|
||||
vp8_de_alloc_frame_buffers(&cpi->common);
|
||||
|
||||
@@ -319,25 +307,17 @@ void vp8_dealloc_compressor_data(VP8_COMP *cpi)
|
||||
cpi->tok = 0;
|
||||
|
||||
// Structure used to monitor GF usage
|
||||
if (cpi->gf_active_flags != 0)
|
||||
vpx_free(cpi->gf_active_flags);
|
||||
|
||||
vpx_free(cpi->gf_active_flags);
|
||||
cpi->gf_active_flags = 0;
|
||||
|
||||
if(cpi->mb.pip)
|
||||
vpx_free(cpi->mb.pip);
|
||||
|
||||
vpx_free(cpi->mb.pip);
|
||||
cpi->mb.pip = 0;
|
||||
|
||||
#if !(CONFIG_REALTIME_ONLY)
|
||||
if(cpi->total_stats)
|
||||
vpx_free(cpi->total_stats);
|
||||
|
||||
vpx_free(cpi->total_stats);
|
||||
cpi->total_stats = 0;
|
||||
|
||||
if(cpi->this_frame_stats)
|
||||
vpx_free(cpi->this_frame_stats);
|
||||
|
||||
vpx_free(cpi->this_frame_stats);
|
||||
cpi->this_frame_stats = 0;
|
||||
#endif
|
||||
}
|
||||
@@ -442,7 +422,6 @@ static void segmentation_test_function(VP8_PTR ptr)
|
||||
set_segment_data(ptr, &feature_data[0][0], SEGMENT_DELTADATA);
|
||||
|
||||
// Delete sementation map
|
||||
if (seg_map != 0)
|
||||
vpx_free(seg_map);
|
||||
|
||||
seg_map = 0;
|
||||
@@ -536,7 +515,6 @@ static void cyclic_background_refresh(VP8_COMP *cpi, int Q, int lf_adjustment)
|
||||
set_segment_data((VP8_PTR)cpi, &feature_data[0][0], SEGMENT_DELTADATA);
|
||||
|
||||
// Delete sementation map
|
||||
if (seg_map != 0)
|
||||
vpx_free(seg_map);
|
||||
|
||||
seg_map = 0;
|
||||
@@ -1280,6 +1258,8 @@ void vp8_set_speed_features(VP8_COMP *cpi)
|
||||
static void alloc_raw_frame_buffers(VP8_COMP *cpi)
|
||||
{
|
||||
int i, buffers;
|
||||
/* allocate source_buffer to be multiples of 16 */
|
||||
int width = (cpi->oxcf.Width + 15) & ~15;
|
||||
|
||||
buffers = cpi->oxcf.lag_in_frames;
|
||||
|
||||
@@ -1291,7 +1271,7 @@ static void alloc_raw_frame_buffers(VP8_COMP *cpi)
|
||||
|
||||
for (i = 0; i < buffers; i++)
|
||||
if (vp8_yv12_alloc_frame_buffer(&cpi->src_buffer[i].source_buffer,
|
||||
cpi->oxcf.Width, cpi->oxcf.Height,
|
||||
width, cpi->oxcf.Height,
|
||||
16))
|
||||
vpx_internal_error(&cpi->common.error, VPX_CODEC_MEM_ERROR,
|
||||
"Failed to allocate lag buffer");
|
||||
@@ -1299,7 +1279,7 @@ static void alloc_raw_frame_buffers(VP8_COMP *cpi)
|
||||
#if VP8_TEMPORAL_ALT_REF
|
||||
|
||||
if (vp8_yv12_alloc_frame_buffer(&cpi->alt_ref_buffer.source_buffer,
|
||||
cpi->oxcf.Width, cpi->oxcf.Height, 16))
|
||||
width, cpi->oxcf.Height, 16))
|
||||
vpx_internal_error(&cpi->common.error, VPX_CODEC_MEM_ERROR,
|
||||
"Failed to allocate altref buffer");
|
||||
|
||||
@@ -1310,14 +1290,13 @@ static void alloc_raw_frame_buffers(VP8_COMP *cpi)
|
||||
|
||||
static int vp8_alloc_partition_data(VP8_COMP *cpi)
|
||||
{
|
||||
if(cpi->mb.pip)
|
||||
vpx_free(cpi->mb.pip);
|
||||
|
||||
cpi->mb.pip = vpx_calloc((cpi->common.mb_cols + 1) *
|
||||
(cpi->common.mb_rows + 1),
|
||||
sizeof(PARTITION_INFO));
|
||||
if(!cpi->mb.pip)
|
||||
return ALLOC_FAILURE;
|
||||
return 1;
|
||||
|
||||
cpi->mb.pi = cpi->mb.pip + cpi->common.mode_info_stride + 1;
|
||||
|
||||
@@ -1357,7 +1336,6 @@ void vp8_alloc_compressor_data(VP8_COMP *cpi)
|
||||
"Failed to allocate scaled source buffer");
|
||||
|
||||
|
||||
if (cpi->tok != 0)
|
||||
vpx_free(cpi->tok);
|
||||
|
||||
{
|
||||
@@ -1373,7 +1351,6 @@ void vp8_alloc_compressor_data(VP8_COMP *cpi)
|
||||
|
||||
|
||||
// Structures used to minitor GF usage
|
||||
if (cpi->gf_active_flags != 0)
|
||||
vpx_free(cpi->gf_active_flags);
|
||||
|
||||
CHECK_MEM_ERROR(cpi->gf_active_flags, vpx_calloc(1, cm->mb_rows * cm->mb_cols));
|
||||
@@ -1381,12 +1358,10 @@ void vp8_alloc_compressor_data(VP8_COMP *cpi)
|
||||
cpi->gf_active_count = cm->mb_rows * cm->mb_cols;
|
||||
|
||||
#if !(CONFIG_REALTIME_ONLY)
|
||||
if(cpi->total_stats)
|
||||
vpx_free(cpi->total_stats);
|
||||
|
||||
cpi->total_stats = vpx_calloc(1, vp8_firstpass_stats_sz(cpi->common.MBs));
|
||||
|
||||
if(cpi->this_frame_stats)
|
||||
vpx_free(cpi->this_frame_stats);
|
||||
|
||||
cpi->this_frame_stats = vpx_calloc(1, vp8_firstpass_stats_sz(cpi->common.MBs));
|
||||
@@ -1407,7 +1382,6 @@ void vp8_alloc_compressor_data(VP8_COMP *cpi)
|
||||
cpi->mt_sync_range = 16;
|
||||
#endif
|
||||
|
||||
if(cpi->tplist);
|
||||
vpx_free(cpi->tplist);
|
||||
|
||||
CHECK_MEM_ERROR(cpi->tplist, vpx_malloc(sizeof(TOKENLIST) * cpi->common.mb_rows));
|
||||
@@ -2179,9 +2153,11 @@ VP8_PTR vp8_create_compressor(VP8_CONFIG *oxcf)
|
||||
vpx_memset(cpi->active_map , 1, (cpi->common.mb_rows * cpi->common.mb_cols));
|
||||
cpi->active_map_enabled = 0;
|
||||
|
||||
#if !(CONFIG_REALTIME_ONLY)
|
||||
// Create the first pass motion map structure and set to 0
|
||||
// Allocate space for maximum of 15 buffers
|
||||
CHECK_MEM_ERROR(cpi->fp_motion_map, vpx_calloc(15*cpi->common.MBs, 1));
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
// Experimental code for lagged and one pass
|
||||
@@ -3068,21 +3044,27 @@ static void set_quantizer(VP8_COMP *cpi, int Q)
|
||||
VP8_COMMON *cm = &cpi->common;
|
||||
MACROBLOCKD *mbd = &cpi->mb.e_mbd;
|
||||
int update = 0;
|
||||
|
||||
update |= cm->base_qindex != Q;
|
||||
int new_delta_q;
|
||||
cm->base_qindex = Q;
|
||||
|
||||
/* if any of the delta_q values are changing update flag has to be set */
|
||||
/* currently only y2dc_delta_q may change */
|
||||
|
||||
cm->y1dc_delta_q = 0;
|
||||
cm->y2dc_delta_q = 0;
|
||||
cm->y2ac_delta_q = 0;
|
||||
cm->uvdc_delta_q = 0;
|
||||
cm->uvac_delta_q = 0;
|
||||
|
||||
if(Q<4)
|
||||
if (Q < 4)
|
||||
{
|
||||
update |= cm->y2dc_delta_q != 4-Q;
|
||||
cm->y2dc_delta_q = 4-Q;
|
||||
new_delta_q = 4-Q;
|
||||
}
|
||||
else
|
||||
new_delta_q = 0;
|
||||
|
||||
update |= cm->y2dc_delta_q != new_delta_q;
|
||||
cm->y2dc_delta_q = new_delta_q;
|
||||
|
||||
|
||||
// Set Segment specific quatizers
|
||||
mbd->segment_feature_data[MB_LVL_ALT_Q][0] = cpi->segment_feature_data[MB_LVL_ALT_Q][0];
|
||||
@@ -3090,6 +3072,7 @@ static void set_quantizer(VP8_COMP *cpi, int Q)
|
||||
mbd->segment_feature_data[MB_LVL_ALT_Q][2] = cpi->segment_feature_data[MB_LVL_ALT_Q][2];
|
||||
mbd->segment_feature_data[MB_LVL_ALT_Q][3] = cpi->segment_feature_data[MB_LVL_ALT_Q][3];
|
||||
|
||||
/* quantizer has to be reinitialized for any delta_q changes */
|
||||
if(update)
|
||||
vp8cx_init_quantizer(cpi);
|
||||
|
||||
@@ -3141,8 +3124,11 @@ static void update_golden_frame_and_stats(VP8_COMP *cpi)
|
||||
// Update the Golden frame reconstruction buffer if signalled and the GF usage counts.
|
||||
if (cm->refresh_golden_frame)
|
||||
{
|
||||
// Update the golden frame buffer
|
||||
vp8_yv12_copy_frame_ptr(cm->frame_to_show, &cm->yv12_fb[cm->gld_fb_idx]);
|
||||
if (cm->frame_type != KEY_FRAME)
|
||||
{
|
||||
// Update the golden frame buffer
|
||||
vp8_yv12_copy_frame_ptr(cm->frame_to_show, &cm->yv12_fb[cm->gld_fb_idx]);
|
||||
}
|
||||
|
||||
// Select an interval before next GF
|
||||
if (!cpi->auto_gold)
|
||||
@@ -4422,52 +4408,47 @@ static void encode_frame_to_data_rate
|
||||
else
|
||||
cm->frame_to_show = &cm->yv12_fb[cm->new_fb_idx];
|
||||
|
||||
//#pragma omp parallel sections
|
||||
if (cm->no_lpf)
|
||||
{
|
||||
|
||||
//#pragma omp section
|
||||
{
|
||||
|
||||
struct vpx_usec_timer timer;
|
||||
|
||||
vpx_usec_timer_start(&timer);
|
||||
|
||||
if (cpi->sf.auto_filter == 0)
|
||||
vp8cx_pick_filter_level_fast(cpi->Source, cpi);
|
||||
else
|
||||
vp8cx_pick_filter_level(cpi->Source, cpi);
|
||||
|
||||
vpx_usec_timer_mark(&timer);
|
||||
|
||||
cpi->time_pick_lpf += vpx_usec_timer_elapsed(&timer);
|
||||
|
||||
if (cm->no_lpf)
|
||||
cm->filter_level = 0;
|
||||
|
||||
if (cm->filter_level > 0)
|
||||
{
|
||||
vp8cx_set_alt_lf_level(cpi, cm->filter_level);
|
||||
vp8_loop_filter_frame(cm, &cpi->mb.e_mbd, cm->filter_level);
|
||||
cm->last_filter_type = cm->filter_type;
|
||||
cm->last_sharpness_level = cm->sharpness_level;
|
||||
}
|
||||
/* Move storing frame_type out of the above loop since it is also needed in motion search besides loopfilter */
|
||||
cm->last_frame_type = cm->frame_type;
|
||||
|
||||
vp8_yv12_extend_frame_borders_ptr(cm->frame_to_show);
|
||||
|
||||
if (cpi->oxcf.error_resilient_mode == 1)
|
||||
{
|
||||
cm->refresh_entropy_probs = 0;
|
||||
}
|
||||
|
||||
}
|
||||
//#pragma omp section
|
||||
{
|
||||
// build the bitstream
|
||||
vp8_pack_bitstream(cpi, dest, size);
|
||||
}
|
||||
cm->filter_level = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
struct vpx_usec_timer timer;
|
||||
|
||||
vpx_usec_timer_start(&timer);
|
||||
|
||||
if (cpi->sf.auto_filter == 0)
|
||||
vp8cx_pick_filter_level_fast(cpi->Source, cpi);
|
||||
else
|
||||
vp8cx_pick_filter_level(cpi->Source, cpi);
|
||||
|
||||
vpx_usec_timer_mark(&timer);
|
||||
|
||||
cpi->time_pick_lpf += vpx_usec_timer_elapsed(&timer);
|
||||
}
|
||||
|
||||
if (cm->filter_level > 0)
|
||||
{
|
||||
vp8cx_set_alt_lf_level(cpi, cm->filter_level);
|
||||
vp8_loop_filter_frame(cm, &cpi->mb.e_mbd, cm->filter_level);
|
||||
cm->last_filter_type = cm->filter_type;
|
||||
cm->last_sharpness_level = cm->sharpness_level;
|
||||
}
|
||||
|
||||
/* Move storing frame_type out of the above loop since it is also
|
||||
* needed in motion search besides loopfilter */
|
||||
cm->last_frame_type = cm->frame_type;
|
||||
|
||||
vp8_yv12_extend_frame_borders_ptr(cm->frame_to_show);
|
||||
|
||||
if (cpi->oxcf.error_resilient_mode == 1)
|
||||
{
|
||||
cm->refresh_entropy_probs = 0;
|
||||
}
|
||||
|
||||
// build the bitstream
|
||||
vp8_pack_bitstream(cpi, dest, size);
|
||||
|
||||
{
|
||||
YV12_BUFFER_CONFIG *lst_yv12 = &cm->yv12_fb[cm->lst_fb_idx];
|
||||
@@ -4764,16 +4745,19 @@ static void encode_frame_to_data_rate
|
||||
|
||||
if (cpi->oxcf.error_resilient_mode)
|
||||
{
|
||||
// Is this an alternate reference update
|
||||
if (cpi->common.refresh_alt_ref_frame)
|
||||
vp8_yv12_copy_frame_ptr(cm->frame_to_show, &cm->yv12_fb[cm->alt_fb_idx]);
|
||||
if (cm->frame_type != KEY_FRAME)
|
||||
{
|
||||
// Is this an alternate reference update
|
||||
if (cm->refresh_alt_ref_frame)
|
||||
vp8_yv12_copy_frame_ptr(cm->frame_to_show, &cm->yv12_fb[cm->alt_fb_idx]);
|
||||
|
||||
if (cpi->common.refresh_golden_frame)
|
||||
vp8_yv12_copy_frame_ptr(cm->frame_to_show, &cm->yv12_fb[cm->gld_fb_idx]);
|
||||
if (cm->refresh_golden_frame)
|
||||
vp8_yv12_copy_frame_ptr(cm->frame_to_show, &cm->yv12_fb[cm->gld_fb_idx]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (cpi->oxcf.play_alternate && cpi->common.refresh_alt_ref_frame && (cpi->common.frame_type != KEY_FRAME))
|
||||
if (cpi->oxcf.play_alternate && cm->refresh_alt_ref_frame && (cm->frame_type != KEY_FRAME))
|
||||
// Update the alternate reference frame and stats as appropriate.
|
||||
update_alt_ref_frame_and_stats(cpi);
|
||||
else
|
||||
@@ -5230,9 +5214,12 @@ int vp8_get_compressed_data(VP8_PTR ptr, unsigned int *frame_flags, unsigned lon
|
||||
{
|
||||
long long nanosecs = cpi->source_end_time_stamp
|
||||
- cpi->last_end_time_stamp_seen;
|
||||
double this_fps = 10000000.000 / nanosecs;
|
||||
|
||||
vp8_new_frame_rate(cpi, (7 * cpi->oxcf.frame_rate + this_fps) / 8);
|
||||
if (nanosecs > 0)
|
||||
{
|
||||
double this_fps = 10000000.000 / nanosecs;
|
||||
vp8_new_frame_rate(cpi, (7 * cpi->oxcf.frame_rate + this_fps) / 8);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -5243,23 +5230,6 @@ int vp8_get_compressed_data(VP8_PTR ptr, unsigned int *frame_flags, unsigned lon
|
||||
if (cpi->compressor_speed == 2)
|
||||
{
|
||||
vp8_check_gf_quality(cpi);
|
||||
}
|
||||
|
||||
if (!cpi)
|
||||
{
|
||||
#if HAVE_ARMV7
|
||||
#if CONFIG_RUNTIME_CPU_DETECT
|
||||
if (cm->rtcd.flags & HAS_NEON)
|
||||
#endif
|
||||
{
|
||||
vp8_pop_neon(store_reg);
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (cpi->compressor_speed == 2)
|
||||
{
|
||||
vpx_usec_timer_start(&tsctimer);
|
||||
vpx_usec_timer_start(&ticktimer);
|
||||
}
|
||||
|
@@ -14,21 +14,21 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include "vpx_ports/config.h"
|
||||
#include "onyx.h"
|
||||
#include "vp8/common/onyx.h"
|
||||
#include "treewriter.h"
|
||||
#include "tokenize.h"
|
||||
#include "onyxc_int.h"
|
||||
#include "vp8/common/onyxc_int.h"
|
||||
#include "variance.h"
|
||||
#include "dct.h"
|
||||
#include "encodemb.h"
|
||||
#include "quantize.h"
|
||||
#include "entropy.h"
|
||||
#include "threading.h"
|
||||
#include "vp8/common/entropy.h"
|
||||
#include "vp8/common/threading.h"
|
||||
#include "vpx_ports/mem.h"
|
||||
#include "vpx/internal/vpx_codec_internal.h"
|
||||
#include "mcomp.h"
|
||||
#include "temporal_filter.h"
|
||||
#include "findnearmv.h"
|
||||
#include "vp8/common/findnearmv.h"
|
||||
|
||||
//#define SPEEDSTATS 1
|
||||
#define MIN_GF_INTERVAL 4
|
||||
@@ -51,7 +51,9 @@
|
||||
#define MV_ZBIN_BOOST 4
|
||||
#define ZBIN_OQ_MAX 192
|
||||
|
||||
#if !(CONFIG_REALTIME_ONLY)
|
||||
#define VP8_TEMPORAL_ALT_REF 1
|
||||
#endif
|
||||
|
||||
typedef struct
|
||||
{
|
||||
@@ -492,9 +494,11 @@ typedef struct
|
||||
FIRSTPASS_STATS *stats_in, *stats_in_end;
|
||||
struct vpx_codec_pkt_list *output_pkt_list;
|
||||
int first_pass_done;
|
||||
unsigned char *fp_motion_map;
|
||||
|
||||
#if !(CONFIG_REALTIME_ONLY)
|
||||
unsigned char *fp_motion_map;
|
||||
unsigned char *fp_motion_map_stats, *fp_motion_map_stats_save;
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
// Experimental code for lagged and one pass
|
||||
|
@@ -16,7 +16,7 @@
|
||||
#include <fstream>
|
||||
extern "C"
|
||||
{
|
||||
#include "onyx.h"
|
||||
#include "vp8/common/onyx.h"
|
||||
}
|
||||
|
||||
|
||||
|
@@ -14,14 +14,14 @@
|
||||
#include "onyx_int.h"
|
||||
#include "modecosts.h"
|
||||
#include "encodeintra.h"
|
||||
#include "entropymode.h"
|
||||
#include "vp8/common/entropymode.h"
|
||||
#include "pickinter.h"
|
||||
#include "findnearmv.h"
|
||||
#include "vp8/common/findnearmv.h"
|
||||
#include "encodemb.h"
|
||||
#include "reconinter.h"
|
||||
#include "reconintra.h"
|
||||
#include "reconintra4x4.h"
|
||||
#include "g_common.h"
|
||||
#include "vp8/common/reconinter.h"
|
||||
#include "vp8/common/reconintra.h"
|
||||
#include "vp8/common/reconintra4x4.h"
|
||||
#include "vp8/common/g_common.h"
|
||||
#include "variance.h"
|
||||
#include "mcomp.h"
|
||||
#include "rdopt.h"
|
||||
|
@@ -12,7 +12,7 @@
|
||||
#ifndef __INC_PICKINTER_H
|
||||
#define __INC_PICKINTER_H
|
||||
#include "vpx_ports/config.h"
|
||||
#include "onyxc_int.h"
|
||||
#include "vp8/common/onyxc_int.h"
|
||||
|
||||
#define RD_ESTIMATE(RM,DM,R,D) ( ((128+(R)*(RM)) >> 8) + (DM)*(D) )
|
||||
extern int vp8_pick_intra4x4mby_modes(const VP8_ENCODER_RTCD *, MACROBLOCK *mb, int *Rate, int *Distortion);
|
||||
|
@@ -9,13 +9,13 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "onyxc_int.h"
|
||||
#include "vp8/common/onyxc_int.h"
|
||||
#include "onyx_int.h"
|
||||
#include "quantize.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "vpx_scale/yv12extend.h"
|
||||
#include "vpx_scale/vpxscale.h"
|
||||
#include "alloccommon.h"
|
||||
#include "vp8/common/alloccommon.h"
|
||||
#if ARCH_ARM
|
||||
#include "vpx_ports/arm.h"
|
||||
#endif
|
||||
|
@@ -9,8 +9,8 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "variance.h"
|
||||
#include "onyx_int.h"
|
||||
#include "vp8/encoder/variance.h"
|
||||
#include "vp8/encoder/onyx_int.h"
|
||||
|
||||
SADFunction *vp8_sad16x16;
|
||||
SADFunction *vp8_sad16x8;
|
||||
|
@@ -11,7 +11,7 @@
|
||||
|
||||
#include "vpx_scale/yv12config.h"
|
||||
#include "math.h"
|
||||
#include "systemdependent.h" /* for vp8_clear_system_state() */
|
||||
#include "vp8/common/systemdependent.h" /* for vp8_clear_system_state() */
|
||||
|
||||
#define MAX_PSNR 60
|
||||
|
||||
|
@@ -13,8 +13,7 @@
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
|
||||
#include "quantize.h"
|
||||
#include "entropy.h"
|
||||
#include "predictdc.h"
|
||||
#include "vp8/common/entropy.h"
|
||||
|
||||
#define EXACT_QUANT
|
||||
|
||||
|
@@ -16,11 +16,11 @@
|
||||
#include <assert.h>
|
||||
|
||||
#include "math.h"
|
||||
#include "common.h"
|
||||
#include "vp8/common/common.h"
|
||||
#include "ratectrl.h"
|
||||
#include "entropymode.h"
|
||||
#include "vp8/common/entropymode.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "systemdependent.h"
|
||||
#include "vp8/common/systemdependent.h"
|
||||
#include "encodemv.h"
|
||||
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user