Commit Graph

214 Commits

Author SHA1 Message Date
Martin Storsjö
e1f28cea96 Remove the now unused XCTest.framework references 2014-06-06 10:34:39 +03:00
Martin Storsjö
837a582510 Remove unnecessary autogenerated stub iOS test projects
The actual unit tests will be hooked up in a separate project.
2014-06-05 12:13:58 +03:00
Martin Storsjö
57f6bcc4b0 Convert all tabs to spaces in assembly sources, unify indentation
Previously the assembly sources had mixed indentation consisting
of both spaces and tabs, making it quite hard to read unless
the right tab size was used in the editor.

Tabs have been interpreted as 4 spaces in most cases, matching
the surrounding code.
2014-06-01 01:35:43 +03:00
Martin Storsjö
faaf62afad Get rid of double spaces in macro declarations 2014-06-01 01:13:01 +03:00
Martin Storsjö
ac03b8b503 Avoid unnecessary tabs in macro declarations 2014-06-01 01:13:01 +03:00
ruil2
db11ba7a34 fix vlc overflow 2014-05-27 13:18:52 +08:00
Sijia Chen
7413032185 using WelsRound for all the double-int32_t conversion 2014-05-20 14:06:31 +08:00
sijchen
2e5700d32d Merge pull request #857 from mstorsjo/remove-unused-ifdef
Remove two unused ifdefs
2014-05-20 13:08:27 +08:00
Martin Storsjö
7048fe5377 Remove two unused ifdefs
Nothing in the project sets HAVE_MMX.

The commented out code for setting pSearchMethodFunc can be readded
once it's actually implemented properly.
2014-05-17 22:06:28 +03:00
lyao2
bd7c04f738 enable Scroll detection into workflow 2014-05-15 09:11:58 +08:00
Ethan Hugg
3d5990500b Merge pull request #832 from mstorsjo/asflags
Don't pass all MSVC specific cflags to gas-preprocessor and armasm
2014-05-14 08:01:25 -07:00
Martin Storsjö
3cc01c6239 Use CCASFLAGS when assembling .S sources
This allows overriding whether all of CFLAGS should be passed
when assembling.
2014-05-13 19:39:26 +03:00
Martin Storsjö
4354371b4e Revert "Remove the literal CRLF (
) within the nasm commands in msvc project files"
This reverts commit 7aff66d40c.

These CRLF marks are readded by MSVC as soon as the project files
are updated from within the GUI anyway.
2014-05-12 09:20:41 +03:00
Martin Storsjö
3923d11dc6 Remove unnecessary, empty, file specific FileConfiguration blocks in vcproj files 2014-05-09 19:59:06 +03:00
Martin Storsjö
5842e1b2aa Unify the include directories in the WelsVP project
Some directories had a trailing slash in some configurations, but
not in other configurations. Make sure the directories are the same
in all configurations.
2014-05-09 19:59:06 +03:00
Martin Storsjö
4635232d93 Don't manually define WIN32/WIN64
All the code that relies on separating them uses the built-in defines
_WIN32 and _WIN64, or the corresponding machine defines (such as
_M_IX86, for MSVC 32 bit inline assembly).
2014-05-09 19:34:04 +03:00
Martin Storsjö
094aa24bf6 Remove unused manual defines of _WINDOWS 2014-05-09 19:27:42 +03:00
Martin Storsjö
66f0f6ccbe Rename the WelsVP vcproj file to match the others
The other projects don't have the _2008 suffix.
2014-05-08 11:46:18 +03:00
huili2
5ed24f216b astyle all files 2014-05-05 19:30:21 -07:00
lyao2
34ad719cf2 Squashed commit of the following:
commit f73d6cf0fcae5f401fc2817ab736af996113ca09
Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
Date:   Thu Apr 24 15:02:21 2014 +0800

    remove comments

commit 75416c2cf6c1ebb7aabf9e8c52d8c7163a8009b7
Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
Date:   Thu Apr 24 14:52:09 2014 +0800

    for test

commit 7dfb65ce514edcff892bfb3919921cadcce1d055
Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
Date:   Thu Apr 24 14:12:31 2014 +0800

    for test

commit eff771645e8c349dc4e454ab1751530b3cef18ed
Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
Date:   Thu Apr 24 10:51:34 2014 +0800

    for test

commit 9c42b9a7a04068e70be94529941f549b58e63780
Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
Date:   Wed Apr 23 17:46:59 2014 +0800

    update cpu_flag

commit cce3fccc0a4249b82ab2e0e92fe53579ef942799
Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
Date:   Wed Apr 23 17:26:56 2014 +0800

    for test

commit 3d292995b3c4437a2674a687cc4e8da1b5fb83f5
Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
Date:   Wed Apr 23 16:45:57 2014 +0800

    remove space

commit c608c2ba7cf010f1dcf8c0344f68536c48e181cb
Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
Date:   Wed Apr 23 16:42:43 2014 +0800

    remove tabs

commit 3b769342a06e25ad23a2c86f23a94d0d7ca1a4c8
Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
Date:   Wed Apr 23 16:33:55 2014 +0800

    refine UT case

commit 89b869f0c8f8c9bbd61e9de32caa77877aeae064
Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
Date:   Tue Apr 22 13:40:50 2014 +0800

    Squashed commit of the following:

    commit abe55494134ef8342ffe9566df4e1b3265fe21b6
    Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
    Date:   Tue Apr 22 10:50:07 2014 +0800

        set MV range

    commit 8c7f70c351e50d945c29118bed8b3781c22b7dbc
    Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
    Date:   Mon Apr 21 16:53:10 2014 +0800

        refinement

    commit bf35f19a7dc88743aacf8e89e681e0ef3302d40a
    Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
    Date:   Fri Apr 18 17:24:31 2014 +0800

        correct tabs

    commit 130b7f895d7020bfc571d910966891da93150242
    Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
    Date:   Fri Apr 18 17:17:06 2014 +0800

        correct format

    commit 0429703b0844363559dd2b3d44e45034232a9d8f
    Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
    Date:   Fri Apr 18 15:12:44 2014 +0800

        add scroll UT
2014-04-24 15:12:49 +08:00
Martin Storsjö
764f787dcb Rename the makefile variable for arm assembly sources
This is in preparation for adding support for the aarc64 assembly
files as well.
2014-04-23 10:55:30 +03:00
Dmitriy Tyagniy
4e8428fbfc Updated XCode projects to properly launch for arm64 architecture 2014-04-16 11:53:44 +03:00
Martin Storsjö
5c1666f430 Update the MSVC project files to use the statically linked C runtime library
This makes them match the behaviour of the make based build system.
2014-04-11 10:35:57 +03:00
volvet
42bd7227aa fix ios build 2014-04-10 22:10:46 -07:00
sijchen
a758282ee7 Merge pull request #635 from lyao2/new_scroll_dev
add scroll detection files
2014-04-09 13:56:24 +08:00
Martin Storsjö
6e996d77b1 Remove the unused WELSVP_EXPORTS define 2014-04-08 22:40:01 +03:00
volvet
8690adf870 Merge pull request #647 from mstorsjo/remove-dynamic-vp
Remove code for loading the VP library dynamically
2014-04-08 10:40:55 -07:00
volvet
605ae416a0 Merge pull request #649 from mstorsjo/unify-msvc-project-settings
Switch to use the DLL version of the C runtime in WelsVP
2014-04-08 10:39:10 -07:00
Licai Guo
8d31783c17 Merge pull request #644 from mstorsjo/remove-dos-newlines
Remove stray dos newlines
2014-04-08 21:54:20 +08:00
Martin Storsjö
ab3f1ca969 Switch to use the DLL version of the C runtime in WelsVP
This matches what is set in the WelsEncCore project.
2014-04-08 15:18:40 +03:00
Martin Storsjö
56abd3c15b Link the encoder core directly to the VP library
This avoids using the codepaths for dynamically loading the
DLL, letting the linker resolve it as any other function.
2014-04-08 15:09:21 +03:00
Martin Storsjö
7aff66d40c Remove the literal CRLF (&#x0D;&#x0A;) within the nasm commands in msvc project files 2014-04-08 11:43:08 +03:00
Martin Storsjö
5d2ca9d7a8 Remove the explicit -O3 parameter to nasm in visual studio project files
According to "nasm -h", there is no -O3 parameter at all, and
the highest optimization level (-Ox) is already the default.

The corresponding parameter never was set when building with the
make build system.
2014-04-08 11:42:14 +03:00
Martin Storsjö
d6cb592e83 Remove stray dos newlines
These were added in 4ced8a9e and 9645f380.
2014-04-08 11:17:57 +03:00
lyao2
21c74fe8ba correct formatted file headers 2014-04-08 14:49:47 +08:00
lyao2
7cbc76d32c Squashed commit of the following:
commit a83d75aed2fae9e0ae877642fbbd8e82b6bacca6
Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
Date:   Fri Apr 4 15:40:54 2014 +0800

    check makefile

commit 097bd858ef46b6febda098253cc0d48e2eb0c95c
Author: lyao2 <lyao2@LYAO2-WS01.cisco.com>
Date:   Fri Apr 4 09:43:24 2014 +0800

    add mask flag

commit 34e86276000bac158abdfb839b1a5aaebac1e235
add scroll detection files
2014-04-04 16:03:58 +08:00
volvet
33d2052856 fix static block assign in scd screen 2014-04-02 17:39:06 -07:00
sijchen
f695227b00 add funtion pointer for search methods 2014-04-02 10:12:39 +08:00
Ethan Hugg
c644879cf9 Merge pull request #598 from varunbpatil/compiler_warnings
Remove compiler warnings
2014-04-01 10:57:19 -07:00
volvet
9714e97fbe fix ios encDemo build 2014-03-30 23:09:01 -07:00
Varun B Patil
6663743f4c Remove compiler warnings 2014-03-30 15:13:29 +05:30
unknown
94eb2e6860 modify the output directory of welsvp in VC project. 2014-03-26 13:40:47 +08:00
ruil2
3a4346a898 create complexity analysis for screen content 2014-03-26 13:06:56 +08:00
ruil2
4ced8a9edd add complexity calculation for screen content 2014-03-26 10:09:06 +08:00
Martin Storsjö
3d076fe1f8 Readd a missed prototype for the WelsProcessingSampleSad8x8_neon function
The common WelsSampleSad8x8_neon function has different alignment
requirements than WelsProcessingSampleSad8x8_neon - until it has
been sorted out that the common version can be used in the processing
lib, the separate version for processing is used.

This fixes building with neon optimizations enabled.
2014-03-25 11:05:39 +02:00
Martin Storsjö
a6713c3351 Remove accidentally added dos newlines 2014-03-25 10:56:21 +02:00
ruil2
6b3f89d582 move some common functions to common.cpp and add some functions in common 2014-03-25 15:35:55 +08:00
unknown
2af7024af9 add complexity calculation parameter for screen content 2014-03-25 09:38:07 +08:00
volvet
7642b5f5fc use overwrite for scene change detector 2014-03-24 18:25:42 +08:00
Licai Guo
cb46a3cf37 Merge pull request #547 from volvet/add-build-for-scene-change-detect-for-desktop
add scene change detector for screen in builder
2014-03-20 10:57:38 +08:00
volvet
157b876775 add set method for scene change detection 2014-03-20 09:12:29 +08:00
volvet
048c23431c add screen detector in builder 2014-03-19 16:55:21 +08:00
Licai Guo
53553f351e Merge pull request #542 from volvet/add-scene-change-detector-screen
Add scene change detector screen
2014-03-19 16:28:36 +08:00
volvet
fc4cd8b597 Merge pull request #543 from zhilwang/reorgcommon-xcode
Modify xcode project to fit common reorg.
2014-03-19 15:36:21 +08:00
Licai Guo
3febdc1d2e Modify xcode project to fit common reorg. 2014-03-19 15:08:14 +08:00
volvet
0f35049bb4 remove blank space 2014-03-19 15:00:54 +08:00
volvet
84903f145e add screen change detector for desktop share 2014-03-19 14:56:45 +08:00
ruil2
3238c913cc Merge pull request #535 from volvet/add-scene-change-detector
Add scene change detector
2014-03-19 14:52:08 +08:00
Licai Guo
e39de8d404 reoranize common to inc/src/x86/arm 2014-03-18 19:41:32 -07:00
volvet
7313ecdbd0 Merge pull request #538 from mstorsjo/use-apple-builtin-define
Use __APPLE__ instead of APPLE_IOS for apple/arm specific features
2014-03-19 09:45:56 +08:00
Martin Storsjö
9586c59b9e Use __APPLE__ instead of APPLE_IOS in the arm assembly sources 2014-03-18 23:15:49 +02:00
Martin Storsjö
ed9c03408f Rename the asm subdirectories to x86
This is consistent with having the arm assembly in a subdirectory
called arm.
2014-03-18 23:09:45 +02:00
Ethan Hugg
197423f271 Merge pull request #520 from ylatuya/master
Fix compiler warnings and remove dead code
2014-03-18 13:28:02 -07:00
Andoni Morales Alastruey
ae60f1bee9 Fix compiler warnings and remove dead code
Fix several -Werror=unused-variable and -Werror=unused-but-set-variable
and removed dead code found with this warnings
2014-03-18 19:15:25 +01:00
Martin Storsjö
e1b5e038d2 Use .obj as suffix for object files on MSVC
This avoids warnings when linking about "unrecognized source file
type, object file assumed".
2014-03-18 19:41:06 +02:00
volvet
af522899bd remove black space at lineend 2014-03-18 18:00:18 +08:00
volvet
d7b7419040 add scene change detector for further extension 2014-03-18 17:54:58 +08:00
volvet
fb1958ad13 Merge pull request #519 from mstorsjo/push-xmm-registers
Backup/restore the xmm6-xmm15 SSE registers within asm functions on win64

Reviewed by zhiliang
2014-03-18 15:04:54 +08:00
volvet
e75cd2298b Merge pull request #517 from mstorsjo/simplify-x86-asm-func-macro
Fold ALIGN 16 and the function label into WELS_EXTERN
2014-03-18 09:29:17 +08:00
Martin Storsjö
4633626d69 Remove XMMREG_PROTECT
This isn't necessary any longer, when all the assembly routines
take care of restoring registers as necessary.
2014-03-17 13:47:01 +02:00
Martin Storsjö
3cf52554f7 Backup/restore the xmm6-xmm15 SSE registers within asm functions on win64
According to the Win64 ABI, these registers need to be preserved,
and compilers are allowed to rely on their content to stay
available - not only for float usage but for any usage, anywhere,
in the calling C++ code.

This adds a macro which pushes the clobbered registers onto the
stack if targeting win64 (and a matching one which restores them).
The parameter to the macro is the number of xmm registers used
(e.g. if using xmm0 - xmm7, the parameter is 8), or in other
words, the number of the highest xmm register used plus one.

This is similar to how the same issue is handled for the NEON
registers q4-q7 with the vpush instruction, except that they needed
to be preserved on all platforms, not only on one particular platform.

This allows removing the XMMREG_PROTECT_* hacks, which can
easily fail if the compiler chooses to use the callee saved
xmm registers in an unexpected spot.
2014-03-17 13:44:33 +02:00
Martin Storsjö
9293f2f947 Remove commented out rodata sections and tables in assembly files 2014-03-17 13:42:18 +02:00
Martin Storsjö
eec968234d Fold ALIGN 16 and the function label into WELS_EXTERN
This simplifies the structure for all x86 assembly functions,
reducing the amount of duplicated code structure.
2014-03-17 13:35:00 +02:00
Martin Storsjö
f96918283f Remove commented out code for old, 32-bit only x86 assembly function prologues/epilogues 2014-03-17 11:20:11 +02:00
Licai Guo
fc4e0cacec Merge pull request #483 from volvet/develop_b
use large/medium/similar to define scene change result
2014-03-17 16:32:31 +08:00
Martin Storsjö
d45e624cd4 Simplify code by using the arg11 and arg12 defines 2014-03-15 14:42:27 +02:00
Martin Storsjö
9199798f22 Fix a typo in a macro name, EXTENTION -> EXTENSION 2014-03-14 10:13:18 +02:00
Martin Storsjö
2bce50283f Fix a mismatched ifdef comment
This is an ifdef block for HAVE_NEON.
2014-03-14 10:01:18 +02:00
volvet
fc5c48830a fix the condition of scene change flag and comments 2014-03-14 09:53:24 +08:00
volvet
c8761c08ae use large/medium/similar to define scene change result 2014-03-13 10:43:20 +08:00
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
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
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
Martin Storsjö
e31ba7a775 Fix a typo, "heigth" -> "height" 2014-03-09 19:19:37 +02:00
Martin Storsjö
2a23a508e1 Mark pointers as const where possible in vaacalc 2014-03-09 18:52:17 +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
Martin Storsjö
c87bb2b449 Remove unused/undeclared arm assembly macro parameters
The SAD_VAR_16_END macro only takes 3 parameters, never 4,
and SAD_SSD_16_END never is called with more than 3 parameters
either.
2014-03-07 10:26:54 +02:00
Martin Storsjö
c0043f7053 Use the three-operand form of add/sub with shift
When using unified syntax, the two operand form with a shift
isn't allowed.
2014-03-06 16:21:54 +02:00
Martin Storsjö
8ba79262bf Rename a function to avoid conflicts between almost duplicate neon functions
There's a different version of the same function in the encoder,
but they're not identical - the encoder version has got stricter
alignment requirements.

If someone can confirm that it is ok to use the function from the
encoder, pixel_sad_neon.S in processing could be deleted, and the
encoder version moved to codec/common instead.
2014-03-06 16:19:48 +02:00
Martin Storsjö
4e4bfcc1bc Regenerate makefiles to include the encoder arm assembly 2014-03-06 16:11:54 +02:00
Licai Guo
e7cc8c2780 Add arm asm code for processing. 2014-03-05 16:54:05 +08:00
Licai Guo
efcee63692 Remove .DS_Store file. 2014-03-05 10:24:05 +08:00
Licai Guo
bb244d736b Partly add arm asm code to encoder. 2014-03-05 10:24:05 +08:00
Martin Storsjö
9cf34e7615 Unify the interface for the different variants of WelsCPUFeatureDetect
The caller of the function should not need to know exactly which
implementation of it is being used.

For the variants that don't support detecting the number of cores,
the pNumberOfLogicProcessors parameter can be left untouched
and the caller will use a higher level API for finding it out.

This simplifies all the calling code, and simplifies adding
more implementations of cpu feature detection.
2014-03-04 10:18:30 +02:00
Martin Storsjö
3ccd2ae4cf Remove a redundant makefile ifdef
ASM_ARCH=x86 is only set if USE_ASM is enabled.
2014-03-01 23:56:14 +02:00
Martin Storsjö
7d2c761604 Allow using the USE_ASM makefile variable for architectures other than x86
Add an ASM_ARCH variable which specifies which kind of assembly
is supposed to be built.
2014-02-28 10:19:53 +02:00
volvet
73ce4adc85 add encode test for iOS 2014-02-26 14:53:31 +08:00
Licai Guo
fc056c7ef0 Refine structure of iOS project to fix the issue. 2014-02-25 13:46:18 +08:00
Martin Storsjö
38dbd57d36 Remove unnecessary precompiled headers
This reduces the huge amount of near-useless small extra files
scattered around for the sake of the platform demo projects.

This requires explicitly listing all the ncessary include paths.
2014-02-24 13:26:37 +02:00