Commit Graph

174 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ö
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
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
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
sijchen
e284ee0342 Merge pull request #765 from lyao2/scrollingUT
fix re-define issue
2014-04-29 17:03:41 +08:00
lyao2
1c90837001 remove typedef.h 2014-04-29 15:50:08 +08:00
huili2
7772a9dc31 bug fix of EC_copy 2014-04-28 20:34:00 -07:00
huili2
c0d21a23f3 Merge pull request #745 from lyao2/scrollingUT
add scroll detection UT
2014-04-25 15:07:15 +08: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
huili2
4a6259cf74 add slice/frame copy UT for EC 2014-04-23 21:45:17 -07:00
Martin Storsjö
788b67cbde Fix the indentation of a line in targets.mk
This would be avoided if the targets.mk files are updated by
rerunning mktargets.sh instead of manually updating them.
2014-04-23 10:55:30 +03:00
huili2
427da1c990 Merge pull request #714 from ruil2/enc_setting
add usagetype parameter in encoder unit test to test screen content
2014-04-18 17:33:58 +08:00
ruil2
25c04102a9 turn off TestHorizontalSearch_SSE41 unit test becasue of random issues 2014-04-18 11:55:27 +08:00
ruil2
a15e640137 add usagetype parameter in encoder unit test to test screen content 2014-04-18 11:17:25 +08:00
ruil2
2d675cf741 Merge pull request #704 from JuannyWang/sampleNow
[Encoder UT] sample UT code refactor
2014-04-17 15:19:29 +08:00
Licai Guo
3d9d00b27c Update targets.mk 2014-04-17 10:43:10 +08:00
JuannyWang
1c3c560a05 [Encoder UT] sample UT code refactor 2014-04-17 10:12:37 +08:00
JuannyWang
cc26f561f4 decMbAux UT bug fix 2014-04-15 09:29:46 +08:00
Martin Storsjö
04ca4ba488 Don't override the deblocking setting in the encoder test
Since this is on by default now, we don't need a separate test
that has it enabled. Thus we can now remove one of the encoder
tests.

By not overriding the deblocking setting at all, the hash
changes for the other tests that use SEncParamExt.
2014-04-14 15:38:10 +03:00
ruil2
1e3053208d update the default value for bPrefixNalAddingCtrl and iLoopFilterDisableIdc 2014-04-14 14:06:02 +08:00
ruil2
21ed4a1f06 Merge pull request #671 from mstorsjo/c-api-test-warnings
Make the first C function parameter const void* in c_interface_test
2014-04-11 16:25:17 +08:00
Martin Storsjö
6d93d800e7 Make the first C function parameter const void* in c_interface_test
This fixes warnings when building with MSVC.
2014-04-11 10:34:10 +03:00
Martin Storsjö
a25f7b7c84 Declare for loop variables consistently in GetIntraPredictorTest
Previously, the same variable 'i' was sometimes declared within a for
loop and sometimes outside of the loop, all within the same function.

This avoids spurious warnings in MSVC 2005.
2014-04-11 10:31:58 +03:00
volvet
37201e273e Merge pull request #660 from zhilwang/refine-me-asm-ut
Refine ME cross search ASM UT.
2014-04-09 20:38:45 -07:00
Licai Guo
7d7fac2adc Refine ME cross search ASM UT. 2014-04-10 10:41:54 +08:00
JuannyWang
468bfb58ad decodeMbAux UT addition 2014-04-09 16:53:39 +08:00
Licai Guo
c1cab64927 refine decoder side intrapred unit test, test assembly routine
only when the cpu feature can support it
2014-04-08 19:31:16 -07:00
Martin Storsjö
3dcd458ffd Remove trailing whitespace in the source files 2014-04-08 18:13:23 +03:00
Martin Storsjö
1b2d3943f1 Use uintptr_t for casting pointers to integers
This fixes compilation on mingw-w64 and makes failing tests pass
on MSVC in 64 bit mode.
2014-04-08 09:46:47 +03:00
Licai Guo
5c60e8f868 Add ASM related functions for ME cross search
Add asm level functions

Add asm code for ME

Modify format

Add unit test for asm code.

Modify function name and format.

Remove unuse comment

Modify targets file

Add Macro protect for SSE41 funtion test

Modify according to review request.
2014-04-08 11:24:45 +08:00
JuannyWang
801b664201 add encoder UT of mbAux 2014-04-03 16:25:06 +08:00
ganyang
e51b636595 add GetIntraPred UT Files 2014-04-03 10:38:46 +08:00
JuannyWang
df6813063f [Encoder UT] add expGolom UT and encoder trace modification 2014-04-02 13:57:09 +08:00
sijchen
f695227b00 add funtion pointer for search methods 2014-04-02 10:12:39 +08:00
Martin Storsjö
411df4c75f Explicitly request 2 threads when testing slice threading
Previously the default value of iMultipleThreadIdc was 0,
which made sure threads were used for the test with multiple
slices (if run on a multicore machine). Now the default is 1,
so multiple threads has to be requested.

Explicitly request 2 threads, to make sure the threading code is
tested, even on machines with only one core.
2014-04-01 11:39:04 +03:00
ganyang
eb6f6ecf40 Add EncoderMB UT test file, and reformat UT files. 2014-04-01 13:55:22 +08:00
wayne liu
49df436616 fix bug of assign data 2014-03-31 20:20:15 -07:00
ganyang
2d335320c1 add ExpandPic encoder unit test 2014-03-28 10:36:14 +08:00
volvet
f7fba4b122 Merge pull request #580 from ylatuya/api
Prefix API with the Wels namespace
2014-03-26 15:45:02 -07:00
sijchen
59f243b487 Adjust function interface and add void function for further coworking, adjust test accordingly 2014-03-26 16:52:53 +08:00
sijchen
bbe016543f Add basic cross search functions and its unit tests 2014-03-26 16:23:44 +08:00
Dong Zhang
421fe98af4 Add DecUT Motion Compensation on New Code Base 2014-03-25 18:57:52 -07:00
Andoni Morales Alastruey
328740f294 Prefix API with the Wels namespace 2014-03-25 17:40:01 +01:00
Licai Guo
2b1cd597c8 remove relative include paths 2014-03-24 22:14:43 -07:00
Licai Guo
f26bb57415 reorganize tests 2014-03-24 22:14:43 -07:00
sijchen
fcae0c7c48 Change the output of diamond search from qpel to interpel 2014-03-25 11:03:37 +08:00
huili2
cbbbe4cbae add UT for PredMv in decoder 2014-03-20 01:09:04 -07:00
Dong Zhang
3528f4f2b9 Add Unit Test Expand Picture 2014-03-19 20:21:22 -07: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ö
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
Ethan Hugg
fc6f756436 Merge pull request #522 from mstorsjo/layered-encoding-test
Add a test of encoding multiple spatial layers
2014-03-18 09:46:00 -07:00
Martin Storsjö
8f2763b681 Add missing includes of time.h
This fixes building on MSVC.
2014-03-18 11:10:36 +02:00
huili2
090e8cc1ed modify WELS_CLIP1 to be inline functions 2014-03-18 01:54:25 -07:00
Licai Guo
2fd892d98a update master to latest and add ut of intraprediction in decoder 2014-03-18 01:13:52 -07:00
ruil2
b7b01faf29 Merge pull request #526 from licaiguo/IdctResAddPred-pr
add IdctResAddPred unit test for decoder
2014-03-18 15:04:29 +08:00
Licai Guo
95a2a40190 add IdctResAddPred unit test for decoder 2014-03-17 20:09:09 -07:00
Licai Guo
37fa5f554e Merge pull request #513 from ruil2/encoder_interface
Encoder interface
2014-03-18 09:51:32 +08:00
Martin Storsjö
02b4beb70d Add a test of encoding multiple spatial layers
This increases the coverage of the unit tests.
2014-03-17 20:08:45 +02:00
Licai Guo
258828f7ec Merge pull request #503 from mstorsjo/encoder-test-coverage
Add encoder tests with deblocking and/or denoising
2014-03-17 16:46:38 +08:00
ruil2
36abe317a5 modify unit test for return type modification 2014-03-17 11:56:19 +08:00
Martin Storsjö
868f912dc2 Add encoder tests with deblocking and/or denoising
This increases the coverage of assembly routines (and encoder
features in general) tested by the codec unit test.
2014-03-14 22:33:33 +02:00
Ethan Hugg
6944ace5e1 Add time.h for Windows build. 2014-03-14 10:59:35 -07:00
Ethan Hugg
43bc9d7c07 Merge pull request #498 from mstorsjo/add-missing-include
Include time.h in DataGenerator.cpp
2014-03-14 08:21:02 -07:00
Martin Storsjö
dca9d628f7 Include time.h in DataGenerator.cpp
This fixes building on MSVC.
2014-03-14 15:16:34 +02:00
Martin Storsjö
d847aacace Remove an unused variable
This fixes a warning in MSVC.
2014-03-14 15:15:57 +02:00
sijchen
2fe99d688b add basic me test 2014-03-14 16:40:02 +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
ruil2
a922155c9a Merge pull request #466 from sijchen/add_memalign_test
Add memalign unit test
2014-03-10 17:25:41 +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
Martin Storsjö
a93dd7ca42 Use the slice mode enum in BaseEncoderTest 2014-03-07 14:53:29 +02:00
Ethan Hugg
a86c1b048b Merge pull request #391 from mstorsjo/threaded-test
Add a test with sliced encoding
2014-03-03 07:54:14 -08:00
Martin Storsjö
f13b5c3465 Add a test with sliced encoding
This serves as a simple test of the thread library.
2014-03-03 11:08:35 +02:00
Martin Storsjö
b6dd41ebc3 Use gtest functions for comparing hash strings
This prints the mismatched strings if the test failed,
simplifying managing and updating the test suite.
2014-03-03 10:53:31 +02:00
Martin Storsjö
9ccabd1fe3 Fix cropping when using SEncParamBase
The iFrameWidth/iFrameHeight fields are already aligned by the
SetActualPicResolution() function. Previously when iFrameWidth was
aligned directly in ParamBaseTranscode, this aligned value was used
to set iActualWidth/iActualHeight - losing the original, cropped
size.

This makes sure the output bitstream from the test of encoding
res/Static_152_100.yuv actually is cropped as it should.
2014-03-03 10:34:37 +02:00
Martin Storsjö
a5f5b37a25 Renumber vtable entries in the C ABI test 2014-02-26 22:13:59 +02:00
Martin Storsjö
c7ff8876bb Add a new public method for initializing SEncParamExt to default values
This simplifies forward source compatibility when new fields are
added to SEncParamExt - when new fields are added to SEncParamExt,
this method makes sure those fields are initialized to the
default value - otherwise all API users would have to manually check
SEncParamExt every time it is updated to make sure there's no new fields
that should be set to a nonzero value by default (e.g. like
bEnableFrameSkip).
2014-02-26 22:12:11 +02:00
Licai Guo
e762951539 add more unit test on decoder 2014-02-25 22:51:56 -08:00
Martin Storsjö
e88348b76d Allow building tests on MSVC versions where stdint.h is missing
Of the supported MSVC versions, only 2008 actually is missing
stdint.h, it is included in MSVC since 2010.
2014-02-24 15:38:37 +02:00
Martin Storsjö
0f3dfb33b0 Use the local sha1 function names directly without compatibility defines 2014-02-24 15:38:19 +02:00
Martin Storsjö
4f5fd952b6 Use the bundled sha1 implementation instead of relying on openssl
This simplifies running tests on platforms where OpenSSL isn't
commonly available.
2014-02-24 15:38:19 +02:00
Martin Storsjö
e8a2cf6d1f Make the SHA1Result function write the output into a byte array 2014-02-24 15:38:19 +02:00
Martin Storsjö
7a4a066469 Make the SHA1 header compatible with C++ 2014-02-24 15:38:19 +02:00
Martin Storsjö
fdd79e734a Add an SHA1 implementation by Paul Jones 2014-02-24 15:38:15 +02:00
ruil2
3ba6a5f4da Simplify encoder interface--remove EncoderFrame2 from interface
function
2014-02-20 10:33:07 +08:00
Martin Storsjö
49f4dad1b7 Split the encoder Initialize method into two
This avoids the struct type casting and having to pass a parameter
that says which kind of struct it actually is.
2014-02-18 22:51:54 +02:00
Martin Storsjö
a899f05f2d Don't have SEncParamExt inherit SEncParamBase
Instead just duplicate the common fields. These fields had to
be duplicated for the C interface compatibility anyway - but
this way there is no risk to accidentally introduce an ABI
break since there is no need for the layout of SEncParamBase to
actually match the start of SEncParamExt.
2014-02-18 22:51:54 +02:00
Martin Storsjö
6d6a63a703 Mark the Initialize pointer parameter as const
This makes it clear to the callers that the struct will
not be modified by this call.
2014-02-18 22:51:53 +02:00
Martin Storsjö
5cb8518306 Remove the Initialize2 function from the external API
This function no longer needs to be public since one can pass
SEncParamExt to the normal Initialize function.
2014-02-18 22:51:53 +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
ruil2
35fa429fb0 encoder interface update step1 2014-02-18 09:51:47 +08:00
Martin Storsjö
76383c7150 Add a test that verifies that the bool typedef in C is ABI compatible with C++ 2014-02-13 11:03:36 +02:00
Martin Storsjö
ce22f84a2b Regenerate target makefiles after the latest mktargets.py changes 2014-02-12 22:11:05 +02:00
jwwang
4fa810da8b 1. support .c in makefile generator. 2. add test to check C interfaces. 2014-02-12 14:52:35 +08:00
Martin Storsjö
d0185ab253 Remove redundant /./ parts from pathnames in makefiles
This is mostly a cosmetic improvement for the quiet make output.
2014-02-08 18:46:52 +02:00
Martin Storsjö
3a1bc92778 Include <algorithm> for std::min
This fixes building the test code on MSVC 2013.

(Actually building all of the tests on windows still is tricky
due to the OpenSSL dependency for SHA1, but there's a patchset
in review to take care of that.)
2014-02-06 10:55:12 +02:00