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).
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.
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.
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.
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/
This fixes valgrind warnings when running this test. The mismatched
delete could also potentially have caused memory corruption issues
while running the tests.
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.
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.
Previously these lines were within an #ifdef MT_ENABLED block,
but now that threading is enabled by default, we should probably
only do it if threading has been requested.
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.
1. add pNalLen in Structure SWelsEncoderOutput to store each nal length
2. rename iNalLengthInByte[MAX_NAL_UNITS_IN_LAYER] to pNalLengthInByte in Structure SLayerBSInfo, the pointer point to pNalLen, like pBSBuf point to pFrameBS.
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.
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.