Commit Graph

2056 Commits

Author SHA1 Message Date
Martin Storsjö
b1c13f4954 Properly limit the range for the random target motion vectors
A 16x16 pixel block is copied to the destination pointed out by the
target motion vector. Since the motion vector is relative to the
center of the buffer, the upper bound of the range is size/2-16.

Previously we never used negative motion vectors, but there is no
reason not to test that direction. Therefore, the possible range
would be [-size/2,size/2-16]. Additionally pad this range with
INTPEL_NEEDED_MARGIN.
2014-05-04 17:50:55 +03:00
Martin Storsjö
03db750ba9 Limit the ME scanning range to 16 pixels from the end of the buffer
The block size is chosen randomly; if the block size is 16,
LineFullSearch_c will read a block with 16 pixels from kiMaxPos;
thus kiMaxPos cannot be larger than height-16, otherwise the calls
end up with reads out of bounds.
2014-05-04 17:35:01 +03:00
Martin Storsjö
b4fdfa64af Use the new library name in the android sample projects 2014-05-04 16:00:51 +03:00
Martin Storsjö
a0002c2be8 Use $(PROJECT_NAME) in the android .so name 2014-05-04 15:57:40 +03:00
Martin Storsjö
dc57301d0c Rename the DLL definition file according to what the output DLL is named 2014-05-04 15:55:17 +03:00
Martin Storsjö
9d0647b8ac Use $(PROJECT_NAME) for naming the DLL import library as well 2014-05-04 15:54:59 +03:00
Martin Storsjö
b8eeda1740 Properly back up and restore XMM registers on win64 in WelsSampleSadFour4x4_sse2 2014-05-04 15:47:56 +03:00
Martin Storsjö
f99336d866 Don't compare a boolean to an integer
This avoids a warning when building with MSVC.
2014-05-04 14:53:36 +03:00
volvet
e4a9c7f8e4 Merge pull request #779 from zhilwang/intraSad
Add IntraSad asm code.
2014-05-04 16:29:59 +08:00
ruil2
0e7ed62997 Merge pull request #780 from sijchen/md_merge25
[Encoder MD] Add scrolling skip function pointers in MD
2014-05-04 15:31:13 +08:00
sijchen
938019748d add scrolling skip function pointers in MD 2014-05-04 15:03:23 +08:00
Licai Guo
fe5b8d1a69 refine format 2014-05-04 14:51:05 +08:00
ruil2
30687f4647 Merge pull request #761 from sijchen/md_merge31
[Encoder MD] Adjust MD under Screen Content route
2014-05-04 14:25:10 +08:00
Licai Guo
485b2b5b43 Add IntraSad asm code.
Enable intraSad ASM code

Refine format

Add X86_ASM pretect for intraSad ASM code UT

remove duplicated code.
2014-05-04 12:12:38 +08:00
sijchen
ba7b4adb57 Merge pull request #778 from ethanhugg/rename
Parameterize the project name and change it to openh264
2014-05-04 10:24:21 +08:00
Ethan Hugg
deb01d34dd Parameterize the project name and change it to openh264 2014-05-02 08:12:40 -07:00
Ethan Hugg
1560eec2ea Merge pull request #775 from mstorsjo/stub-binaries-target
Add a stub makefile target for binaries
2014-04-30 11:24:11 -07:00
Martin Storsjö
97faa3abb6 Add a stub makefile target for binaries
This avoids the following error when doing "make OS=ios" if gtest
isn't installed:

make: *** No rule to make target `binaries', needed by `all'.  Stop.

This fixes issue #752.
2014-04-30 21:08:17 +03:00
Ethan Hugg
685d595c30 Merge pull request #767 from mstorsjo/avoid-conflicting-msvc-options
Only use the -Gm option in desktop debug MSVC builds
2014-04-30 09:40:25 -07:00
Ethan Hugg
57a23406d7 Merge pull request #766 from mstorsjo/reduce-msvc-runtime-flags
Don't build all object files with -ZW, only the one that needs it
2014-04-30 09:40:12 -07:00
HaiboZhu
37deb06700 Merge pull request #771 from huili2/newseqorder_prefixerror_bugfix
fix new sequence&EC order, and prefix parse bug
2014-04-30 17:31:04 +08:00
sijchen
844f88bbbe Merge pull request #772 from lyao2/scrollingUT
this only solve the problem temporarily. but for the building of tests working, merge this first. 
we need to re-consider the including of typedef headers
2014-04-30 17:20:41 +08:00
lyao2
4248cc9c42 fix typedef re-define issue 2014-04-30 16:46:58 +08:00
huili2
5e6ef17412 fix new sequence&EC order, and prefix parse bug 2014-04-29 20:00:12 -07:00
huili2
e1c51e8019 Merge pull request #769 from ruil2/enc_screen_1
fix the issue that long term reference frame is disable for screen
2014-04-29 17:39:19 +08:00
ruil2
2508cf925f fix the issue that long term reference frame is disable for screen 2014-04-29 17:24:22 +08:00
huili2
2006efc1e0 Merge pull request #768 from ruil2/enc_param
use the parameters set by app instead of the default values
2014-04-29 17:19:55 +08:00
sijchen
e284ee0342 Merge pull request #765 from lyao2/scrollingUT
fix re-define issue
2014-04-29 17:03:41 +08:00
Martin Storsjö
36cda3606e Only use the -Gm option in desktop debug MSVC builds
This option conflicts with -ZW which is used in Windows Phone builds.
2014-04-29 11:56:48 +03:00
Martin Storsjö
239f42a924 Don't build all object files with -ZW, only the one that needs it
This reduces the build time from 69 s to 30 s, reduces the size of
the built wels.lib from 30 MB to 3.9 MB, and reduces the number of
warnings when building wels.lib.
2014-04-29 11:03:17 +03:00
lyao2
1c90837001 remove typedef.h 2014-04-29 15:50:08 +08:00
HaiboZhu
c27c02bc0a Merge pull request #764 from dongzha/Deblock
Remove useless code
2014-04-29 14:50:22 +08:00
dongzha
4f8edb946d Merge pull request #763 from huili2/ec_bug_fix
fix some bugs of EC
2014-04-29 14:27:58 +08:00
dongzhang
793c80df8b Remove useless code 2014-04-29 14:14:47 +08:00
unknown
40ce2396f8 use the parameters set by app instead of the default values 2014-04-29 13:15:28 +08:00
dongzha
1ccaf1175b Merge pull request #762 from huili2/ec_ut_bugfix
bug fix of EC_copy, it fixes the memory issue  for decoder EC Unit Test which may lead crash.
2014-04-29 12:10:28 +08:00
huili2
7772a9dc31 bug fix of EC_copy 2014-04-28 20:34:00 -07:00
sijchen
2ad7bb9233 adjust the intra md under scc 2014-04-29 11:10:15 +08:00
volvet
83abff2139 Merge pull request #759 from mstorsjo/deblock-neon-transpose
Do full register loads instead of single-lane loads in DeblockLumaEq4H_neon
2014-04-28 18:33:32 +08:00
huili2
f148a8a7ae Merge pull request #755 from licaiguo/refine-pNzc
refine pNzc set access
2014-04-28 16:21:36 +08:00
huili2
0cd3f9d952 fix some bugs of EC 2014-04-28 00:48:38 -07:00
Martin Storsjö
23f57adaea Do full register loads instead of single-lane loads in DeblockLumaEq4H_neon
Instead of loading the registers one lane at a time, load full
registers and then transpose them.

This is faster, reducing the runtime for the function from about
506 cycles to 434 cycles (tested on a Cortex A8).

This also avoids an issue which seems like a cpu bug, present
on Sony Xperia T (cpu implementer 0x51 architecture 7 variant 0x1
part 0x04d). On such a device, it seemed like the "vswp q9, q10"
could start executing before the previous
vld4.u8 {d20[x],d21[x],d22[x],d23[x]}, [r3], r1
had finished and written back their result. Changing the
"vswp q9, q10" into "vswp q10, q9", or into separate
"vswp d18, d20; vswp d19, d21" (or the other way around) seemed to
avoid the issue. This happened occasionally (a couple times per
100000 invocations or so).
2014-04-28 10:12:16 +03:00
huili2
9d1af8c378 Merge pull request #751 from huili2/NewSeq_replace_I
use new seq instead of I slice
2014-04-28 13:40:15 +08:00
Licai Guo
669d704fac refine pNzc set access 2014-04-26 16:36:16 -07:00
volvet
c5f04cfbd4 Merge pull request #750 from mstorsjo/deblocking-neon-cpu-features
Check for WELS_CPU_NEON before calling DeblockingBSCalcEnc_neon
2014-04-25 19:05:12 +08:00
volvet
84ff16c015 Merge pull request #749 from mstorsjo/dos-newlines
Remove dos newlines in the android java code
2014-04-25 18:18:11 +08:00
Martin Storsjö
00a724076b Check for WELS_CPU_NEON before calling DeblockingBSCalcEnc_neon
Checking HAVE_NEON is not enough; e.g. android devices with
armeabi-v7a are not required to have NEON, so every use of such
functions should be check WELS_CPU_NEON in the cpu features
as well.
2014-04-25 13:02:22 +03:00
sijchen
bd8d97dddb Merge pull request #748 from huili2/newSeq_bugfix
fix bug of new seq check
2014-04-25 17:54:33 +08:00
huili2
0c544962d8 use new seq instead of I slice 2014-04-25 01:46:00 -07:00
Martin Storsjö
655d9c5dbf Remove dos newlines in the android java code 2014-04-25 11:03:03 +03:00