Commit Graph

290 Commits

Author SHA1 Message Date
Licai Guo
4ba216b000 Merge pull request #655 from huili2/EC_interface
add interface for error concealment, to be continued
2014-04-09 09:12:22 +08:00
Martin Storsjö
3dcd458ffd Remove trailing whitespace in the source files 2014-04-08 18:13:23 +03:00
huili2
79c0cec248 add interface for error concealment, to be continued 2014-04-07 22:53:39 -07:00
Ethan Hugg
c644879cf9 Merge pull request #598 from varunbpatil/compiler_warnings
Remove compiler warnings
2014-04-01 10:57:19 -07:00
Licai Guo
9ac1cd0a17 add layer sps/pps to decoder context 2014-03-30 18:50:34 -07:00
Varun B Patil
6663743f4c Remove compiler warnings 2014-03-30 15:13:29 +05:30
Andoni Morales Alastruey
328740f294 Prefix API with the Wels namespace 2014-03-25 17:40:01 +01:00
Licai Guo
e0ef0cabdd Merge pull request #555 from huili2/remove_unused_func
rephrase blockzero function complexity and remove useless functions
2014-03-20 15:57:50 +08:00
wayne liu
06c534d9f2 rephrase blockzero function complexity and remove useless functions 2014-03-19 23:43:55 -07:00
Licai Guo
a688f5278a fix most of the warnings 2014-03-19 01:16:08 -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
Licai Guo
4bbe61a783 Merge pull request #537 from mstorsjo/rename-x86-asm
Rename the asm subdirectories to x86
2014-03-19 08:51:39 +08:00
Licai Guo
d897d362ab Merge pull request #532 from huili2/WELS_CLIP1
Modify MACRO WELS_CLIP1 as inline functions
2014-03-19 08:50:04 +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
8be8fe1775 Fix compiler warning -Werror=maybe-uninitialized 2014-03-18 19:15:25 +01:00
Andoni Morales Alastruey
e9e332bf4c Fix -Werror=sign-compare compiler warnings 2014-03-18 19:15:25 +01: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
huili2
090e8cc1ed modify WELS_CLIP1 to be inline functions 2014-03-18 01:54:25 -07:00
volvet
b21411ad7c Merge pull request #511 from mstorsjo/remove-unused-define
Remove the unused FORMAT_COFF define
2014-03-18 16:11:22 +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
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ö
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
b5a4d706b9 Merge pull request #496 from mstorsjo/use-sign-extend-macro
Use the SIGN_EXTENSION macro where possible
2014-03-17 16:31:03 +08:00
Licai Guo
2c796337ba Merge pull request #510 from huili2/remove_basemb
remove BASE_MB related code
2014-03-17 08:46:25 +08:00
Martin Storsjö
fc260b39e0 Remove the unused FORMAT_COFF define
Nothing in the project currently sets FORMAT_COFF - the other generic
branch works just fine on windows.
2014-03-16 17:54:55 +02:00
Martin Storsjö
eb238e6549 Use the SIGN_EXTENSION macro where possible
This shortens the x86 assembly by 134 lines in total.
2014-03-16 17:54:24 +02:00
Martin Storsjö
ce8da27287 Format x86 assembly constants in a yasm compatible manner
This is similar to what was done in a6463be0cc - yasm requires
these constants to have a zero after $.
2014-03-15 14:38:28 +02:00
huili2
b1f596fd69 remove BASE_MB related code 2014-03-14 02:03:41 -07:00
Licai Guo
f589c580eb clean redundant checks in decoder 2014-03-13 23:56:54 -07:00
Licai Guo
8492aac917 Merge pull request #486 from huili2/nzc_bug_fix
nzc bug fix and clear
2014-03-14 13:11:45 +08:00
huili2
734e60aeeb add according to review opinion 2014-03-13 20:21:10 -07:00
Licai Guo
5bffb627d6 nzc bug fix and clear 2014-03-13 19:31:28 -07: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
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
Licai Guo
091315f84c modify and correct SVC slice header parse 2014-03-10 02:37:41 -07: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
Licai Guo
b2dafa5a92 fix WELS_READ_VERIFY 2014-03-09 18:12:53 -07:00
Martin Storsjö
8d6b368a1c Remove unnecessary stray __cdecl annotations in function signature comments in x86 assembly 2014-03-09 19:18:02 +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
Licai Guo
e5f36822a9 Update targets.mk files 2014-03-07 16:22:59 +08:00
Licai Guo
8ad9e0b60d use temp buffer to store new arrived PPS/SPS 2014-03-06 22:05:12 -08:00
Licai Guo
8a3518f7be set bAuReadyFlag to true when we meet a PPS 2014-03-06 21:50:31 -08:00
Licai Guo
71467f948a mv mc_neon.S to common,add MC arm code to encoder 2014-03-07 12:18:58 +08: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
Licai Guo
201ab42d7e Merge pull request #431 from huili2/large_to_small_sps_bug
Large to small sps bug for issue #373
2014-03-06 16:51:59 +08:00
volvet
8cc332dea1 Merge pull request #432 from zhilwang/arm-asm
Arm asm
2014-03-06 16:50:56 +08:00
Licai Guo
8a7a9195d9 remove unused function 2014-03-05 23:14:57 -08:00
Licai Guo
4260a9b2ba remove CS and RS syntaxs for issue 373 2014-03-05 22:59:27 -08:00
Licai Guo
e7cc8c2780 Add arm asm code for processing. 2014-03-05 16:54:05 +08:00
Licai Guo
9e4ab64c73 move iTotalNumMbRec from refpic to ctx 2014-03-04 19:23:15 -08:00
Licai Guo
248f324c62 Add intra predictor arm asm code. 2014-03-05 10:25:15 +08:00
Ethan Hugg
01a2f582c3 Merge pull request #401 from mstorsjo/android-arm-assembly
Enable the arm assembly in android builds
2014-03-04 09:50:07 -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
volvet
4d729c9418 get cpu cores for android 2014-03-04 15:50:41 +08:00
Martin Storsjö
1118dd4f71 Update the makefile generator to support .S arm assembly files
These are built if ASM_ARCH is set to arm.
2014-03-04 08:56:42 +02:00
Martin Storsjö
03e0dcd814 Convert the arm assembly sources to unix newlines 2014-03-04 08:42:28 +02:00
volvet
d9a02d27f2 remove execute attribute of the arm asm files 2014-03-04 11:45:10 +08:00
volvet
f8b0cec68d Merge pull request #387 from zhilwang/arm-asm
Arm asm
2014-03-04 11:08:17 +08:00
volvet
901b89f7ad Merge pull request #376 from mstorsjo/simplify-x86-asm-makefiles
Simplify makefiles with respect to x86 assembly
2014-03-04 10:16:01 +08:00
Licai Guo
cdeb6449c6 remove unused declarations in as264_common.h 2014-03-03 17:42:47 -08:00
Licai Guo
83d0791163 Modify function name according latest cisco master 2014-03-04 09:18:18 +08:00
Licai Guo
7768cd0a98 Modify code style, remove trailing space. 2014-03-03 15:42:01 +08:00
Licai Guo
ba312b0b20 add checks for spsid and ppsid 2014-03-02 17:09:23 -08: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
volvet
33017fa722 Merge pull request #368 from huili2/sps_buffer_modif
modify SPS, PPS buffer management and remove a build warning
2014-02-28 17:41:46 +08:00
Licai Guo
b7a25df13f Remove deblocking arm asm code to common folder, add cpu detect for arm, clean some code. 2014-02-28 17:08:24 +08: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
Licai Guo
e4b6fc3f9a modify SPS, PPS buffer management and remove a build warning 2014-02-27 22:28:16 -08:00
Licai Guo
0fd9db2878 Add ARM 32bit asm code for decoder. 2014-02-28 13:36:34 +08:00
Licai Guo
e902f0fea4 refine rpl 2014-02-27 21:04:31 -08:00
Licai Guo
573b02797b Merge pull request #363 from huili2/remove_store_base
remove unused codes in reference picture management
2014-02-27 12:39:23 +08:00
Licai Guo
5303eaaeb9 remove store_ref_base_pic_flag related codes in reference picture management 2014-02-26 20:00:32 -08:00
Martin Storsjö
e239d9fddc Fix a typo in a function pointer name 2014-02-26 21:26:54 +02:00
Licai Guo
a9fd78f1e2 add a check to parseSliceHeaderSyntaxes 2014-02-25 00:47:12 -08:00
Licai Guo
3c29c92133 Merge pull request #347 from huili2/active_sps_ref_size
use active SPS parameters instead of other SPS.
2014-02-24 17:03:25 +08:00
huili2
ab6931496b Merge pull request #345 from licaiguo/fix-int-conversion-warning
fix int conversion warning, using LD32/ST32
2014-02-24 17:02:35 +08:00
Licai Guo
2983c92e1c use active SPS parameters instead of other SPS. 2014-02-24 00:52:17 -08:00
Licai Guo
d78f8c7ed8 fix int conversion warning, using LD32/ST32 2014-02-24 00:27:33 -08:00
Licai Guo
b7bee7af0a refine level check 2014-02-24 00:09:40 -08:00
Licai Guo
d5e0b99372 cast to uint32_t in GET_WORD to prevent possible left shift error. 2014-02-23 22:22:13 -08:00
Licai Guo
265741e922 update according to review comments 2014-02-23 18:26:28 -08:00
Licai Guo
fee0f14732 finish syntax checks in ParseSps 2014-02-21 00:16:42 -08:00
Licai Guo
4e0b8d4cbf refine checks in ParseSps 2014-02-20 19:25:11 -08:00
Licai Guo
d69b2faa9f fix the crash issues by changing the type iMbWidth & iMbHeight. 2014-02-19 23:06:35 -08:00
Licai Guo
46b9d5d0da Merge pull request #323 from huili2/check_bit_read
add safety check for bit-reading for headers
2014-02-20 14:17:07 +08:00
Licai Guo
a921bc6589 Merge pull request #320 from huili2/mb_residual_size_check
remain size to prevent MB residual reading overflow
2014-02-20 11:19:57 +08:00
Martin Storsjö
3532781556 Mark source parameters to MC functions as const 2014-02-19 10:19:56 +02:00
Martin Storsjö
ebb890e03e Declare static functions within the file they are used/defined in
It does not make sense to declare but not define static functions
in a header.
2014-02-19 09:51:25 +02:00
Licai Guo
a3c38b5631 add safety check for bit-reading for headers 2014-02-18 22:55:12 -08:00
huili2
0fcd066cde Merge pull request #298 from licaiguo/decoder-syntax-element-step1
add decoder syntax checks
2014-02-19 08:57:50 +08:00
Ethan Hugg
413b301e9c Merge pull request #303 from mstorsjo/simplify-decoder-api
Simplify the Initialize decoder method
2014-02-18 11:27:38 -08:00
Martin Storsjö
3b297ec866 Remove completely unused variables and private fields 2014-02-18 13:04:13 +02:00
Martin Storsjö
1075338b9b Use the actual struct type instead of a void pointer to the decoder Initialize method 2014-02-18 13:00:59 +02:00
Martin Storsjö
658d1e3651 Remove the unused iInitType parameter to the decoder Initialize method 2014-02-18 13:00:45 +02:00
Licai Guo
61b64190dd add decoder syntax checks 2014-02-17 23:57:12 -08:00