Commit Graph

189 Commits

Author SHA1 Message Date
Martin Storsjö
c301db696e Remove a stray srand
The individual tests shouldn't reseed the random number generator
(other than for local debugging).

Hardcoding a specific random seed here leads to this test (and
all subsequent tests) not testing things randomly as intended, but
always testing the same parameters.
2015-02-27 12:06:44 +02:00
Martin Storsjö
7208ed14b1 Store a const char* instead of a std::string in gtest parameter arrays
This avoids valgrind warnings about using unintialized data.
2015-02-19 14:52:11 +02:00
Sijia Chen
f9080ac090 complete logic of simulcastavc with sps_pps_listing 2015-02-11 17:31:17 +08:00
dong zhang
7d6d86b63a add a UT for large picture 2015-02-11 16:31:00 +08:00
Sijia Chen
943981abc4 fix a nal generation for simulcast avc and add nal-type check for simulcast avc UT 2015-02-09 13:50:31 +08:00
ruil2
8fc2af760f Merge pull request #1804 from sijchen/fix_over3
[Encoder] fix potential overflow under large bit rate
2015-02-06 14:22:01 +08:00
Sijia Chen
431bcee310 1, update the max-nal-size setting in UT and param check since we are using a larger input check
2, fix potential overflow (will change bs but little impact on bs)
2015-02-06 13:24:20 +08:00
Sijia Chen
bc1b28b5dd fix for in-middle changing simulcast avc setting 2015-02-05 16:34:28 +08:00
Martin Storsjö
6c1aa29431 Avoid declaring a new variable shadowing an existing one in the same function
All the following loops below assume that int iIdx already is declared.
2015-02-04 11:25:09 +02:00
dong zhang
d3b2be5ec2 add UT for set MaxNalUnitLen
ignore the cases: 2 MBs in one picture, and the multithreads case, enable them when code is ready
2015-02-04 14:39:11 +08:00
Martin Storsjö
a3063531c4 Remove accidental double semicolons 2015-02-02 09:20:35 +02:00
ruil2
1b48e6c88c Merge pull request #1756 from sijchen/savc4
[Encoder] Implementation of bSimulcastAVC and UT
2015-01-27 10:42:50 +08:00
Sijia Chen
8d5ec6759d add support of SimulcastAVC functions 2015-01-26 15:25:09 +08:00
Sijia Chen
f13624316e fix level-idc related input checking and a statistics calculation
will change bs but tested there is little impact on RD
being reviewed at: https://rbcommons.com/s/OpenH264/r/1084/
2015-01-26 15:20:58 +08:00
ruil2
e7fff10d91 Merge pull request #1745 from sijchen/fix_ut
[UT] fix a random failure of UT
2015-01-21 17:31:34 +08:00
Sijia Chen
5b10c1ff8d fix random failure of UT under randon seed 1421732719 2015-01-20 15:47:05 +08:00
Sijia Chen
8cc53b0231 astyle an unformatted file 2015-01-20 10:50:44 +08:00
Sijia Chen
489d121549 add a default param function for EncodeDecoderAPI test 2015-01-20 10:49:25 +08:00
Martin Storsjö
d6f7a07b14 Undefine a define for writing debug files 2015-01-19 10:06:30 +02:00
Martin Storsjö
c1aa2a1edb Use WelsClip3 instead of WELS_CLIP3 for random values
Since WELS_CLIP3 is a macro, using it will cause the arguments
to be evalated multiple times, which means that the clip will
not work as intended. If using a rand() argument, always use
WelsClip3 instead, which is an inline function.
2015-01-19 10:02:21 +02:00
Martin Storsjö
fcae7fd300 Compare macro block widths instead of picture widths
Since cropping is disabled (prepareParam does
memset (pParam, 0, sizeof (SEncParamExt)); which clears the
cropping flag), we need to make sure that the number of
macroblocks differ, not only the number of pixels.
2015-01-19 10:01:12 +02:00
Martin Storsjö
58f1fef520 Fix a comparison in ParameterSetStrategy_SPS_LISTING_AND_PPS_INCREASING3
Previously, this test picked a width at random until it found
a width that had been used before, meaning that all tests were
made with the same single width.
2015-01-19 09:58:25 +02:00
Sijia Chen
d9502aa71d rename the strategy to enum 2015-01-19 10:49:38 +08:00
Martin Storsjö
4f33b38ac1 Move a conversion from size_t to int into one single place within BaseDecoderTest.cpp 2015-01-16 13:38:07 +02:00
Martin Storsjö
96384bd578 Add casts when converting from size_t or std::streamsize to int 2015-01-16 13:38:07 +02:00
Martin Storsjö
af938a640f Add casts when converting from float to int 2015-01-16 13:38:07 +02:00
Martin Storsjö
99925984b3 Consistently compare integers with integers and bools with bools
MSVC warns when comparing integers with booleans in with the gtest
assertion macros.
2015-01-16 13:37:15 +02:00
Sijia Chen
98ed302990 add new SpsPpsStrategy and UT 2015-01-15 18:04:39 +08:00
sijchen
e9ec603fd7 Merge pull request #1727 from huili2/addUT_parseonly_frameincomplete
add UT for incomplete frame for parse only
2015-01-15 16:23:05 +08:00
huili2
ea533e6405 add UT for incomplete frame for parse only 2015-01-14 18:00:33 -08:00
dongzha
993caea18c Merge pull request #1721 from huili2/DecodeFrameNodelay
add new API as DecodeFrameNoDelay for immediate decoding
2015-01-15 09:54:10 +08:00
Sijia Chen
ea06cbe06b enhance param checking with num-ref and related logging 2015-01-12 10:39:51 +08:00
huili2
e3e5208509 add new API as DecodeFrameNoDelay for immediate decoding, which will be recommended decoding method for h.264 bitstream 2014-12-30 23:43:47 -08:00
huili2
b12b39a47b disable color format check for parse only 2014-12-28 23:43:09 -08:00
huili2
9c0bbeb4da unify parseonly to have 0x0001 2014-12-24 23:11:49 -08:00
Martin Storsjö
f4b3724976 Increase the minimum frame size in a test with multiple spatial layers
Make sure the input frame size is large enough that the downsampled
layers also have a nonzero resolution.
2014-12-16 11:13:22 +02:00
Martin Storsjö
59fefbe7c7 Use an inline function instead of a macro for clipping which contains rand()
When using a macro, the macro parameters get evaluated
multiple times, which means that the rand() value compared
actually isn't the same that is used as return value.

This makes sure that clipping works as intended for the
random tests.
2014-12-16 11:13:22 +02:00
ruil2
5ab5fe155b keep the consistency between sps level and parameter level 2014-12-15 09:56:54 +08:00
huili2
984497cc09 modify freeze output to proper location 2014-12-11 23:42:04 -08:00
ruil2
ec99819ce8 Merge pull request #1614 from sijchen/fix_idr_id1
[Encoder] fix idr_id: idr_id should be adding regardless of the sps strategy
2014-12-11 16:41:59 +08:00
Sijia Chen
f1a7a1a966 encoder log level adjustment in UT to avoid too many output and some formatting 2014-12-11 14:31:32 +08:00
Sijia Chen
32d6193f97 fix idr_id: idr_id should be adding regardless of the sps strategy 2014-12-11 10:58:27 +08:00
Sijia Chen
87c83c0d36 fix a UT function 2014-12-10 10:49:58 +08:00
ruil2
56c895ffb4 1. should not set WELS_LOG_ERROR level in encoder initilization.
2.fix UT bug
2014-12-05 17:08:00 +08:00
Martin Storsjö
90eee67eb7 Don't set invalid iLoopFilterDisableIdc in RandomParamExtCombination 2014-11-28 13:05:32 +02:00
dong zhang
2e5243e5fc add timestamp in decoder 2014-11-26 13:03:46 +08:00
huili2
b231e3f000 parse only add and UT 2014-11-24 00:04:36 -08:00
Martin Storsjö
45c322a8ae Reduce the number of rounds in DecoderCrashTest
Currently this one single test accounts for 12-20% of the total
runtime of running the unit test suite.
2014-11-14 10:41:21 +02:00
huili2
32697b046b add a simple UT for debugging decoder crash 2014-11-03 23:05:34 -08:00
Martin Storsjö
c1b48640fb Don't try to use pow(int,int)
When building for android or older MSVC versions, this makes the build
fail, when it is ambiguous which pow() overload to use, when there
is no function matching pow(int, int).
2014-11-03 11:23:10 +02:00
dong zhang
cf85745752 add decoder cabac support and add UT 2014-11-03 10:03:43 +08:00
sijchen
c7b5051738 Merge pull request #1469 from shihuade/APIUTV1.5.2
refactor --for BaseEncoderTest
2014-11-03 09:31:11 +08:00
Martin Storsjö
53e2f67e80 Set constraint set 0 and 1 flags for non-scalable as well
This allows decoders to know that a baseline stream doesn't
contain any of the features that aren't in the constrained
baseline subset.

Set the flags based on what profile we target.
2014-10-31 10:48:09 +02:00
Martin Storsjö
ec0d151879 Make sure the width/height is large enough in SetOptionEncParamExt
When using 4 downsampled layers, make sure the random width/height
is large enough that the downsampled layers don't have a zero size.

Since the value never will be too small now, there's no need to
use WELS_CLIP3 any longer.
2014-10-30 08:54:18 +02:00
sijchen
3a1f0a3d95 Merge pull request #1471 from mstorsjo/fix-warnings
Remove unused variables and an impossible condition
2014-10-30 09:10:08 +08:00
Martin Storsjö
1c2940479d Silence warning logging while running tests that can produce errors 2014-10-29 22:44:40 +02:00
Martin Storsjö
2907cb2875 Remove an impossible condition
uiIntraPeriod is unsigned, and thus can't ever be negative.

The subtraction on the line above can't ever make the value wrap
around either, since param_.uiIntraPeriod % uiGOPSize always is
smaller than or equal to param_.uiIntraPeriod. Thus, the check
never is necessary even if the value would be signed either.

This fixes warnings when building with clang.
2014-10-29 22:07:21 +02:00
Martin Storsjö
a625dc836d Remove unused variables 2014-10-29 22:07:20 +02:00
huashi
54c24dfd60 refactor --for BaseEncoderTest 2014-10-29 17:53:08 +08:00
ruil2
58cc29225e Merge pull request #1463 from sijchen/after_review4
[Encoder] for reference selection under screen
2014-10-29 17:17:07 +08:00
huashi
26615fffd0 set option for ParamExt----random cases 2014-10-28 20:36:33 +08:00
Sijia Chen
4fab8c2ee7 for reference selection under screen:
1, ref_list_mgr_svc.cpp, Ln314: fix a wrong DeleteLTRFromLongList which should not be used under screen strategy
2, ref_list_mgr_svc.cpp, Ln910: remove the frame which is furthest in distance to the current frame in ref list
3, wels_preprocess.cpp: use scene LTR ref list when the current frame is scene LTR
-, ref_list_mgr_svc.cpp, Ln811: add DEBUG trace
reviewed at: https://rbcommons.com/s/OpenH264/r/870/
2014-10-28 16:58:59 +08:00
ruil2
abc01e6b81 add encoder cabac support 2014-10-27 13:06:33 +08:00
Martin Storsjö
f0c6891627 Add casts to avoid warnings about comparison between signed and unsigned 2014-10-24 09:05:32 +03:00
huili2
dcdcc7f3b8 Merge pull request #1443 from dongzha/AddUTSwitch
add UT for sim-SVC layer switch
2014-10-24 10:21:36 +08:00
Sijia Chen
4e89e71e8f reformat cpp files for unit tests 2014-10-23 17:54:33 +08:00
dong zhang
769c38d4c4 add UT for sim-SVC switch 2014-10-23 15:50:43 +08:00
Haibo Zhu
9d182ee515 Add picture bIsComplete flag to reflect the status of decoder
Modify the output error status and add some some judgement
2014-10-15 11:36:24 -07:00
Ethan Hugg
52419bd13e Merge pull request #1400 from mstorsjo/warning-fix
Fix compiler warnings
2014-10-02 12:26:45 -07:00
HaiboZhu
007fb47004 Merge pull request #1399 from huili2/ParseOnlyAPI
add API only for decode parser
2014-09-30 14:51:49 +08:00
Martin Storsjö
0affe66f93 Remove unused variables 2014-09-30 08:57:29 +03:00
huili2
efdefdba28 add API only for decode parser for HW decoding support 2014-09-29 19:14:58 -07:00
shihuade
d875d923f8 refator for API test--prepareEncDecParam and EncodeOneFrame 2014-09-29 19:58:43 +08:00
Sijia Chen
cf2cf9efd9 add basic strategy for lossy+no LTR route 2014-09-26 16:40:19 +08:00
Martin Storsjö
a59a989d9b Silence warnings with gcc in GetOptionTid_AVC_NOPREFIX 2014-09-23 09:39:18 +03:00
HaiboZhu
06e56ecdd8 Merge pull request #1380 from huili2/ec_option_free
add freely setoption for EC_idc and UT
2014-09-22 15:51:19 +08:00
huili2
f6fb459a7f add freely setoption for EC_idc and UT 2014-09-21 21:51:48 -07:00
Sijia Chen
84ca659f06 add parameter and one case in UT 2014-09-19 14:46:02 +08:00
dongzha
c213c6ba30 1. add Tid API UT
2. add Trace UT
3. Fix a crash issue when set NULL trace
2014-09-17 09:26:54 +08:00
Ethan Hugg
4e54fd191b Merge pull request #1361 from mstorsjo/avoid-comparing-uninitialized
Make sure uiIDRPicId is initialized within EncodeDecodeTest
2014-09-16 08:39:22 -07:00
Ethan Hugg
19dcff8616 Merge pull request #1360 from mstorsjo/use-correct-delete
Use the correct version of delete within a unit test
2014-09-16 08:38:20 -07:00
Martin Storsjö
a6cc71208e Make sure uiIDRPicId is initialized within EncodeDecodeTest
This fixes valgrind warnings about comparison with uninitialized
values.
2014-09-16 11:59:09 +03:00
Martin Storsjö
58eba54e8c Use the correct version of delete within a unit test
This fixes valgrind warnings when running this test. The mismatched
delete could also potentially have caused memory corruption issues
while running the tests.
2014-09-16 11:57:24 +03:00
Martin Storsjö
e7cd53e81b Fix build warnings with gcc in EncodeDecodeTest
Avoid a comparison between signed and unsigned integers, and avoid
a warning about a variable which is set but not used.
2014-09-16 10:10:57 +03:00
dongzha
f8d5f93b16 Merge pull request #1355 from syureyi/clean
Clean
2014-09-16 09:58:27 +08:00
lyao2
72862118f9 Fix bug RC_QUALITY_MODE not works as expected 2014-09-15 15:31:20 +08:00
huili2
4001551027 Merge pull request #1349 from dongzha/AddAPIUTEncoder_Decoder
add encoder/decoder api test for LTR and EC flag
2014-09-15 09:15:08 +08:00
lyao2
522aa4457a enlarge QP range when skipframeflag off on BitRate mode 2014-09-12 14:45:08 +08:00
dongzha
311f7006fd 1. add encoder-engine-decoder API UT for: IDR request, LTR request
2. add decoder api UT for EC: Disable/Enable EC
3. Fix a decoder bug when EC is disabled
   itoltalMbDec should be set to zero when encouter a new sequence/picture, even   when EC is disabled.
2014-09-12 11:12:59 +08:00
zhuiling
0fe477625c improve py, and change mk according to mk 2014-09-12 10:25:46 +08:00
dongzha
67b5a79c2e Merge pull request #1313 from huili2/SDP_support
add decoder capability info
2014-08-28 10:47:12 +08:00
huili2
0b23d0facb add decoder capability info 2014-08-27 17:48:58 -07:00
ruil2
ac7fac9644 get mv and mvd from level limitation 2014-08-26 16:30:57 +08:00
dong zhang
8da63eae33 1. add encoder/decoder api test for IDR id and framenum
2. use random value as input, instead of using *.264
2014-08-25 11:02:31 +08:00
ruil2
7fb9e57f30 Revert "ut_win32"
This reverts commit 462f56d413.
2014-08-21 10:07:03 +08:00
unknown
462f56d413 ut_win32 2014-08-20 10:46:05 +08:00
huili2
f82726d7ef enable api test for decoder VclNal 2014-08-14 00:52:21 -07:00
Martin Storsjö
df16cd9d0c Print the random seed at startup
Also add an option for overriding the seed at startup.

This allows reproducing temporary issues by rerunning the test suite
with the same random seed.

Note that if tests are added or removed (or tests are skipped by passing
the --gtest_filter option), or if running on a different libc, the same
seed might result in different random values.
2014-08-06 19:32:25 +03:00
ruil2
11f0a11177 Merge pull request #1242 from huili2/test_dataformat
setget_dataformat_ut
2014-08-01 12:27:38 +08:00
huili2
ecfd7df157 Merge pull request #1237 from syureyi/mobileutat
Mobileutat
2014-07-31 17:15:16 +08:00