Commit Graph

159 Commits

Author SHA1 Message Date
ruil2
9ba0a1d977 Merge pull request #1522 from sijchen/after_review
[Encoder] fix a calculation of fAverageFrameRate
2014-11-12 12:29:13 +08:00
Sijia Chen
cd5928d397 fix a calculation of fAverageFrameRate 2014-11-11 16:12:38 -08:00
ruil2
ac404ce69d remove repeat initialization 2014-11-07 14:58:43 +08:00
Sijia Chen
6a2a4efef6 fix names to keep consistent of style
improve UT to cover more cases under GetStatistics
2014-10-24 14:39:50 +08:00
sijchen
43c62d06eb Merge pull request #1439 from sijchen/for_format
[Reformat] format cpp files for next release
2014-10-24 09:00:36 +08:00
Martin Storsjö
57aae73d4c Add casts to avoid warnings about comparison between signed and unsigned 2014-10-23 14:20:38 +03:00
Sijia Chen
4e89e71e8f reformat cpp files for unit tests 2014-10-23 17:54:33 +08:00
Sijia Chen
a765197b73 add interface and basic implementaion and UT for EncoderStatistics 2014-10-22 11:35:17 +08:00
dongzha
f8d5f93b16 Merge pull request #1355 from syureyi/clean
Clean
2014-09-16 09:58:27 +08:00
huili2
b51ff51387 Merge pull request #1350 from lyao2/ut_interface2
add encoder Interface additional option set test
2014-09-15 09:15:28 +08:00
zhuiling
0fe477625c improve py, and change mk according to mk 2014-09-12 10:25:46 +08:00
ruil2
7e8cde055f add UT for LTR setopton and fix crash issue 2014-09-03 13:28:14 +08:00
lyao2
15124b1258 fix bug 2014-09-02 13:41:00 +08:00
lyao2
aa7eb5fd09 code refine 2014-09-02 09:21:31 +08:00
lyao2
849a730608 refine code 2014-09-01 17:49:59 +08:00
lyao2
24bd0b74ae add additional option set test 2014-09-01 16:35:32 +08:00
Martin Storsjö
5809db9eff Avoid using uninitialized memory in the motion estimation tests 2014-08-28 11:51:39 +03:00
zhiliang wang
0163eb520d Add UT for VaaCalc Functions. 2014-08-27 13:53:18 +08:00
Karina
a19974d009 fix crash on mvd cost calculation 2014-08-25 13:30:45 +08:00
ruil2
441dc45e69 add mv range limitation and related ut 2014-08-25 09:53:49 +08:00
zhiliang wang
e6f838e331 Add arm UT for Sad,IntraSad,IntraPred. 2014-08-21 15:36:57 +08:00
HFVideoMac
0f95fac4ca add arm32/64 code for InitHash 2014-08-15 13:47:59 +08:00
zhiliang wang
ef88889404 refine format and add UT cases 2014-08-15 09:22:37 +08:00
zhiliang wang
b35f5797de Add x86 32/64bit asm code for Scc_hash 2014-08-14 18:41:52 +08:00
dongzha
3703ba16a4 Fix build error ARM 2014-08-14 12:54:36 +08:00
zhiliang wang
f2314151e8 Add x86 32/64bit asm code for SumOfBlocks. 2014-08-13 11:18:39 +08:00
ruil2
f7cd6e7aad use WelsEnc namespace instead of WelsSVCEnc 2014-08-11 16:08:49 +08:00
dongzha
7b3bf074b3 Merge pull request #1258 from mstorsjo/fetch-codec-params
Get the actual used parameters in the codec in TemporalLayerSettingTest
2014-08-11 10:53:28 +08:00
dongzha
6190c10de8 Merge pull request #1256 from mstorsjo/speedup-tests
Speed up test cases in EncoderInterfaceTest
2014-08-11 10:47:44 +08:00
Martin Storsjö
352f5eea7a Get the actual used parameters in the codec in TemporalLayerSettingTest
Make sure that pOptions is initialized to the parameters that
the codec actually uses, not the ones that we initially tried
to set.

When calling SetOption to update the codec parameters, this may
cause a reset of the whole codec if e.g. the number of threads
differs from what is set within the codec itself.

If the number of threads was changed by the codec internally
when inited (e.g. changed from 0 to 1), WelsEncoderParamAdjust
may think the whole codec needs to be reset.

This fixes running EncoderInterfaceTest.TemporalLayerSettingTest
on machines where the detected number of cores is 1.
2014-08-08 22:57:22 +03:00
Martin Storsjö
38cc9acdd3 Set a specific frame size in TemporalLayerSettingTest
Previously, this test used whatever size was set in m_iWidth
and m_iHeight before, which depended on the order that the tests
were executed. When this test was the first one executed in the
EncoderInterfaceTest, the width and height were set to the max.

Instead of having the test behaviour depend on the test order,
set a specific size, just as InitializeParamExt and MemoryCheckTest
do.

This reduces the runtime of TemporalLayerSettingTest from 86 seconds
to 26 seconds, when run in valgrind.
2014-08-08 12:24:57 +03:00
Martin Storsjö
c3702d9075 Reduce the number of frames tested in EncoderInterfaceTest
There's little point in running the same test over and over for
a huge number of frames if it doesn't test much different things.

This reduces the runtime of EncoderInterfaceTest.* from 322 seconds
to 140 seconds, when running in valgrind.
2014-08-08 12:23:12 +03:00
Martin Storsjö
642b405f87 Reenable GetIntraPredictorTest tests that were broken on android
These tests work as intended now.
2014-08-08 11:34:45 +03:00
HFVideoMac
84f33aa8e4 Disable failed UT and Fix Build Error onAndroid 2014-08-08 10:53:23 +08:00
zhilwang
439e51bc11 Merge pull request #1249 from dongzha/addArm32SCCNew
add arm 32/64 code and UT for SVC SCC motion estimation
2014-08-08 09:19:51 +08:00
Martin Storsjö
e8fafebd96 Silence warnings and errors when running tests that intentionally produce errors 2014-08-06 21:32:08 +03:00
HFVideoMac
cff49f5e45 add arm 32/64 code and UT for SVC SCC motion estimation 2014-08-06 17:24:36 +08:00
Martin Storsjö
a1bc5fa1b5 Include test_stdint.h to get stdint types for MSVC 2014-07-30 13:51:52 +03:00
ruil2
8dd5d483d4 remove test case because this issue had been fixed 2014-07-29 11:05:48 +08:00
lyao2
4ee434691a fix param initialization bug in UT 2014-07-28 17:43:56 +08:00
Martin Storsjö
6543900747 Don't set iPicWidth or iPicHeight to 0 in random tests
This should fix occasional failures in the EncoderInterfaceTests,
such as in https://travis-ci.org/cisco/openh264/jobs/30815104.
2014-07-25 20:14:55 +03:00
ruil2
e58de20f3a add encoder interface ut 2014-07-25 16:40:14 +08:00
lyao2
562f38afff add interface UT for RC and code refactor 2014-07-24 17:27:55 +08:00
lyao2
d633f8584a add interface UT for memory align check 2014-07-15 15:21:54 +08:00
ruil2
010e423b2b Merge pull request #1169 from sijchen/interfaceUT12
[Encoder UT] Interface: EncoderEncodeParameterSets
2014-07-15 14:20:18 +08:00
Ethan Hugg
b6b7bb7680 Merge pull request #1153 from mstorsjo/silence-error-testing
Silence error logging while running tests that are intended to produce errors
2014-07-14 07:53:45 -07:00
Sijia Chen
b669801e89 add interface UT for WelsEncoderEncodeParameterSets
and fix previous value
2014-07-14 18:36:35 +08:00
Sijia Chen
d1123a8bb1 remove blank lines 2014-07-14 15:34:40 +08:00
Sijia Chen
bc76a8f9b3 add interface UT for ForceIntraFrame 2014-07-14 15:30:01 +08:00
Martin Storsjö
0ee2562004 Silence error logging while running tests that are intended to produce errors
The errors in the test log are distracting, making it look like
a test actually failed.
2014-07-11 12:47:52 +03:00
Sijia Chen
99dc18c0ba add BasicInitialize UT and some fix in create/destroy encoder in the existing interface test 2014-07-11 13:50:58 +08:00
ruil2
45c2fff6b8 interface update 2014-07-09 15:41:04 +08:00
huili2
adb0fa498f astyle all cpp files 2014-07-08 20:01:42 -07:00
huili2
5f8822644f Merge pull request #1108 from mstorsjo/regenerate-makefiles
Regenerate the targets.mk files
I'm not able to see the changes in rbcommons (strange), so directly look at here.
2014-07-09 10:14:04 +08:00
zhilwang
228ea1a668 Merge pull request #1101 from dongzha/AddArm64MBCopy
add arm64 MB COPY code and UT
2014-07-09 09:31:31 +08:00
Martin Storsjö
7fc869cf0f Regenerate the targets.mk files
This makes the indentation of some new lines consistent with the rest.
2014-07-08 11:42:05 +03:00
dongzhang
249b8a0aa6 add arm64 MB COPY code and UT 2014-07-08 14:22:14 +08:00
Martin Storsjö
fba362d1de Fix spacing in include directives
Astyle doesn't change the spacing here, but make it consistent with
all the other files.
2014-07-08 09:01:42 +03:00
dongzhang
eace9b7b00 add MemoryZero Arm64 code and UT 2014-07-08 12:52:48 +08:00
dongzhang
9b753c9c39 add reconstruct UT input limitation 2014-07-08 12:33:14 +08:00
dongzhang
d88b83df44 Add ARM64 Code and UnitTest for reconstruction 2014-07-07 15:31:46 +08:00
Haibo Zhu
da75e15b4a Modify the unit test for WelsDequantIHadamard2x2Dc 2014-07-03 18:40:12 -07:00
lyao2
44faa1c9a7 add encoder interface UT for IDR request 2014-07-02 18:42:05 +08:00
ruil2
bdf9f6b4ff Merge pull request #1043 from mstorsjo/avoid-globals
Get rid of global non-readonly variables within the library
2014-07-02 14:01:35 +08:00
Martin Storsjö
d84d739ec8 Hardwire functions set up in WelsInitFillingPredFuncs
These are never overridden by any assembler optimized versions.
(The assembler optimized intra predictor functions may use such
optimized code internally anyway.)

This avoids global writable data.
2014-07-01 12:00:32 +03:00
Martin Storsjö
d2afebd2d7 Add proper spacing in include directvies 2014-07-01 10:55:04 +03:00
Martin Storsjö
4f594deff9 Don't reset the random number generator within the unit tests
This makes sure we don't accidentally return the same sequence
of random numbers multiple times within one test (which would
be very non-random).

Every time srand(time()) is called, the pseudo random number
generator is initialized to the same value (as long as time()
returned the same value).

By initializing the random number generator once and for all
before starting to run the unit tests, we are sure we don't
need to reinitialize it within all the tests and all the
functions that use random numbers.

This fixes occasional errors in MotionEstimateTest.

MotionEstimateTest was designed to allow the test to occasionally
not succeed - if it didn't succeed, it tried again, up to 100 times.
However, since the YUVPixelDataGenerator function reset the random
seed to time(), every attempt actually ran with the same random
data (as long as all 100 attempts ran within 1 second) - thus if
one attempt in MotionEstimateTest failed, all 100 of them would
fail. If the utility functions don't touch the random seed,
this is not an issue.
2014-07-01 10:20:45 +03:00
zhilwang
2b038fa73b Merge pull request #1037 from mstorsjo/unify-align-macros
Unify macros for alignment
2014-06-30 10:09:05 +08:00
Martin Storsjö
6e815e708d Use ENFORCE_STACK_ALIGN_1D instead of manually doing stack buffer alignment 2014-06-29 00:55:46 +03:00
Martin Storsjö
f300476468 Use the ALIGNED_DECLARE macro instead of __align16 2014-06-29 00:36:02 +03:00
Martin Storsjö
a474e00d15 Fix a typo, Chorma -> Chroma 2014-06-27 23:50:14 +03:00
huili2
dc3fae4477 astyle all 2014-06-25 18:50:41 -07:00
ruil2
1e43075b25 update expand picture UT 2014-06-12 09:37:30 +08:00
huili2
01322d11ff fix memory leak in EncUT_GetIntraPredictor 2014-06-09 18:12:03 -07:00
ruil2
ece06b37da resolve unit test warnings 2014-06-06 13:29:30 +08:00
ruil2
14e5d740cd clean up expand picture. 2014-05-30 11:05:31 +08:00
sijchen
5d1d47c01b fix me func type in UT 2014-05-21 08:57:58 +08:00
dongzhang
749bc4ea7e Fix QP<18 dequant UT bug at encoder side
This should be UT for QP<12.
2014-05-16 11:12:59 +08:00
volvet
9a74427a61 Merge pull request #788 from mstorsjo/factorize-duplicated-test
Avoid duplicating code in the MotionEstimate test

Approved by Sijia.
2014-05-06 15:00:01 +08:00
huili2
f897029034 Merge pull request #791 from zhilwang/intraSad
Add func init for welsfillingPred
2014-05-06 14:00:32 +08:00
zhiliang wang
82b875c388 Add func init on UT source code 2014-05-06 11:16:46 +08:00
Martin Storsjö
92e5489dd3 Avoid duplicating code in the MotionEstimate test
All the tests of the line search (unoptimized and optimized)
use the exact same copypasted structure. Instead factorize this
into a test function which uses the provided function.
2014-05-05 16:15:18 +03:00
Martin Storsjö
c0f2487631 Remove an unused static method
This was added in 44640712f without actually being used.
2014-05-05 15:13:43 +03:00
sijchen
44640712f6 Add FME unit test 2014-05-05 15:41:15 +08:00
Martin Storsjö
1711b497e3 Take the test of TestHorizontalSearch_SSE41 into use
After fixing the ranges, there's no reason to exclude this test.
2014-05-04 17:51:05 +03:00
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
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
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
ruil2
25c04102a9 turn off TestHorizontalSearch_SSE41 unit test becasue of random issues 2014-04-18 11:55:27 +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ö
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
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