Commit Graph

1312 Commits

Author SHA1 Message Date
Martin Storsjö
c011890764 Push clobbered neon registers on the stack
According to the calling convention, the registers q4-q7 should be
preserved by functions. The caller (generated by the compiler) could
be using those registers anywhere for any intermediate data.

Functions that use more than 12 of the qX registers must push
the clobbered registers on the stack in order to be able to restore them
afterwards.

In functions that don't use all 16 registers, but clobber some of
the callee saved registers q4-q7, one or more of them are remapped
to reduce the number of registers that have to be saved/restored.

This incurs a very small (around 0.5%) slowdown in the decoder and
encoder.
2014-03-10 22:07:36 +02:00
Martin Storsjö
811c647c0e Remap registers to avoid clobbering the neon registers q4-q7
According to the calling convention, the registers q4-q7 should be
preserved by functions. The caller (generated by the compiler) could
be using those registers anywhere for any intermediate data.

Functions that use 12 or less of the qX registers can avoid
violating the calling convention by simply using other registers instead
of the callee saved registers q4-q7.

This change only remaps the registers used within functions - therefore
this does not affect performance at all. E.g. in functions using
registers q0-q7, we now use q0-q3 and q8-q11 instead.
2014-03-10 22:07:25 +02:00
Ethan Hugg
ca457f57e9 Merge pull request #470 from mstorsjo/android-abi-docs
Add documentation about how to build the different ABI variants for android
2014-03-10 10:25:58 -07:00
Martin Storsjö
23e3bddf71 Add documentation about how to build the different ABI variants for android 2014-03-10 19:23:39 +02:00
Ethan Hugg
3627875986 Merge pull request #456 from mstorsjo/use-common-threadlib
Make the processing lib use mutexes from WelsThreadLib from the common library
2014-03-10 09:45:51 -07:00
Ethan Hugg
567302eb9a Merge pull request #410 from mstorsjo/android-armeabi
Allow building plain armeabi binaries for android
2014-03-10 09:44:19 -07:00
Licai Guo
7a26142fca Merge pull request #468 from mstorsjo/include-time-h
Include time.h in the MemoryAlloc test
2014-03-10 22:10:10 +08:00
Licai Guo
731a1466e6 Merge pull request #469 from huili2/svc_sh_bug_fix
modify and correct SVC slice header parse
2014-03-10 22:09:44 +08:00
Martin Storsjö
c3ddd926ba Include time.h in the MemoryAlloc test
This is required to get the time() function. This fixes building
on older MSVC versions.
2014-03-10 11:38:48 +02:00
Licai Guo
091315f84c modify and correct SVC slice header parse 2014-03-10 02:37:41 -07:00
ruil2
44a49b1fef Merge pull request #458 from mstorsjo/android-threading
Don't try to set thread scope and scheduling policy on android
2014-03-10 17:26:00 +08:00
ruil2
a922155c9a Merge pull request #466 from sijchen/add_memalign_test
Add memalign unit test
2014-03-10 17:25:41 +08:00
ruil2
1477f36de2 Merge pull request #467 from sijchen/add_more_slice_mode_test
Specific slice mode in encoder test
2014-03-10 17:25:31 +08:00
sijchen
385128e403 Merge pull request #465 from ruil2/encoder_trace
use global trace in encoder
reviewed at https://rbcommons.com/s/OpenH264/r/176/
2014-03-10 17:22:19 +08:00
Licai Guo
6d9dfe8954 Merge pull request #454 from mstorsjo/android-any-arch
Support building for any other android architecture
2014-03-10 17:20:58 +08:00
sijchen
dfd3d89a20 specific slice mode in encoder test 2014-03-10 16:57:19 +08:00
sijchen
53a570556d add memalign unit test 2014-03-10 16:28:05 +08:00
ruil2
cbc2b9c986 keep the unrelated changed line 2014-03-10 16:11:27 +08:00
ruil2
e99df3377d Merge pull request #460 from mstorsjo/add-const
Mark pointers as const where possible in vaacalc
2014-03-10 15:35:57 +08:00
ruil2
02bafd9320 Merge pull request #445 from mstorsjo/use-thread-param
Use the iMultipleThreadIdc field from SEncParamExt
2014-03-10 15:28:04 +08:00
ruil2
86f37f047c Merge pull request #452 from mstorsjo/use-slice-mode-enum
Use SliceModeEnum as data type for the slice mode fields
2014-03-10 15:27:04 +08:00
ruil2
2539d6e447 Merge pull request #462 from mstorsjo/fix-typos
Fix two typos in variable and macro names
2014-03-10 15:25:20 +08:00
ruil2
ba6b2a8d62 use global trace in encoder 2014-03-10 15:22:40 +08:00
Licai Guo
d63fc1004e Merge pull request #459 from mstorsjo/ios-default-arch
Set the arch to armv7 by default when building for iOS
2014-03-10 12:32:00 +08:00
Licai Guo
4cc059bf5b Merge pull request #461 from mstorsjo/fix-asm-comments
Remove unnecessary/stray keywords in function signature comments in x86 assembly
2014-03-10 12:29:22 +08:00
huili2
a5411eb747 Merge pull request #464 from licaiguo/fix-type-wels-read-verify
fix WELS_READ_VERIFY
2014-03-10 09:27:56 +08:00
Licai Guo
b2dafa5a92 fix WELS_READ_VERIFY 2014-03-09 18:12:53 -07:00
Martin Storsjö
cc7b81f3c3 Fix a typo in arm assembly, LORD -> LOAD 2014-03-09 19:19:38 +02:00
Martin Storsjö
e31ba7a775 Fix a typo, "heigth" -> "height" 2014-03-09 19:19:37 +02:00
Martin Storsjö
7c435ad295 Remove a stray inline keyword in a function signature comment in x86 assembly
Assembly functions written in external assembly files is obviously
not inlined.
2014-03-09 19:18:03 +02:00
Martin Storsjö
8d6b368a1c Remove unnecessary stray __cdecl annotations in function signature comments in x86 assembly 2014-03-09 19:18:02 +02:00
Martin Storsjö
2a23a508e1 Mark pointers as const where possible in vaacalc 2014-03-09 18:52:17 +02:00
Martin Storsjö
67a9e73a7c Set the arch to armv7 by default when building for iOS
Otherwise it would build for the simulator by default, which
in most cases probably isn't what was intended.
2014-03-09 01:46:43 +02:00
Martin Storsjö
1c6a910c11 Don't try to set thread scope and scheduling policy on android
These APIs aren't implemented on android.
2014-03-08 20:37:42 +02:00
Ethan Hugg
fff3909053 Merge pull request #457 from mstorsjo/ios-enc-defines
Add missing defines when building the encoder for iOS using the xcode project files
2014-03-08 08:48:29 -08:00
Martin Storsjö
fd90d14ece Enable threading when building for iOS using the project files
This was already enabled when building the library for iOS using
the makefiles.
2014-03-08 13:06:05 +02:00
Martin Storsjö
45c21931de Add NO_DYNAMIC_VP when building the encoder lib for the iOS simulator
This was previously only added to builds for actual devices.
2014-03-08 13:05:45 +02:00
Martin Storsjö
c5390521ec Make the processing lib use mutexes from WelsThreadLib from the common library
This requires always building the WelsMutex* functions,
even if MT_ENABLED isn't set.
2014-03-08 12:46:25 +02:00
Ethan Hugg
fb396cd3d2 Merge pull request #455 from mstorsjo/mktargets-sort-files
Explicitly sort the files in mktargets.py
2014-03-07 16:15:05 -08:00
Martin Storsjö
8f88f60637 Explicitly sort the files in mktargets.py
This avoids spurious changes to the targets.mk files when mktargets
is rerun on different platforms and different file systems.

In particular, OS X seems to mostly return files sorted
alphabetically, case insensitively, while they are returned in
a file system specific order on linux.
2014-03-08 01:55:39 +02:00
Martin Storsjö
918af27560 Support building for any other android architecture
This allows e.g. building for mips, as a plain C++ build with
no assembly.
2014-03-08 01:22:31 +02:00
Ethan Hugg
bb915978db Merge pull request #448 from mstorsjo/use-correct-pointer-type
Get rid of an unnecessary cast by declaring the right pointer type
2014-03-07 14:29:51 -08:00
Martin Storsjö
5df2e2a996 Use SliceModeEnum as data type for the slice mode fields
This makes the use of the field clearer and safer by allowing
the compiler check that users actually assign proper enum
values.
2014-03-08 00:23:58 +02:00
Martin Storsjö
ce7b00ea72 Get rid of an unnecessary cast by declaring the right pointer type 2014-03-08 00:17:30 +02:00
Ethan Hugg
09b45e3ef9 Merge pull request #440 from licaiguo/refine-pps-sps
Refine pps sps
2014-03-07 11:02:02 -08:00
Ethan Hugg
fb4f677f77 Merge pull request #446 from mstorsjo/remove-unnecessary-public-param
Move the iCountThreadsNum field to SWelsSvcCodingParam
2014-03-07 09:18:52 -08:00
Ethan Hugg
06fbf808db Merge pull request #451 from mstorsjo/install-static-only
Add separate install-static and install-shared targets
2014-03-07 09:17:57 -08:00
Ethan Hugg
7632510209 Merge pull request #450 from mstorsjo/publish-slice-mode-enum
Move the slice mode enum to the public API
2014-03-07 09:17:03 -08:00
volvet
f62492716f Merge pull request #449 from mstorsjo/avoid-opaque-pointer
Make ParamValidationExt use the actual type instead of a void pointer
2014-03-08 00:27:47 +08:00
volvet
7db269f04a Merge pull request #447 from mstorsjo/remove-misleading-cast
Remove a misleading cast
2014-03-08 00:15:08 +08:00