test end of stream for decoder API UT
add arm 32/64 code and UT for SVC SCC motion estimation
Merge pull request #1249 from dongzha/addArm32SCCNew

add arm 32/64 code and UT for SVC SCC motion estimation
Disable failed UT and Fix  Build Error onAndroid
Merge pull request #1253 from dongzha/FixBugandBuildErroronAndroid

Disable failed UT and Fix  Build Error onAndroid
Add attributes incidating intentional data type aliasing

Interpreting data of one type via a pointer of a different type is an
aliasing violating. This means that a compiler optimizer's analyzer
can assume that data loaded into an array as uint32_t isn't related
to data read out from the same array as uint64_t, and e.g. reorder
loads/stores.

Since these structs are intentionally used to load data via pointers
of a wrong size, tell the compiler that these accesses may alias
other reads.

This fixes the GetIntraPredictorTest tests of WelsI4x4LumaPredV_c
and WelsI4x4LumaPredH_c. (The compiler optimizer did the wrong thing
as long as WelsFillingPred8to16_c or WelsFillingPred8x2to16_c were
inlined into the calling function.)
Reenable GetIntraPredictorTest tests that were broken on android

These tests work as intended now.
re-allocate resource when threadIDC changes
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.
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.
Merge pull request #1255 from ruil2/param_change

re-allocate resource when threadIDC changes
Merge pull request #1254 from mstorsjo/alias-attribute

Add attributes incidating intentional data type aliasing, fix GetIntraPredictorTest on android
Explicitly add .syntax unified when building for iOS

This is the default when building with the clang built-in assembler,
but not if using the external assembler - thus always specify it,
for clarity.

Also use the three-operand for of a sub instruction in BS_NZC_CHECK.
The same is already done in the gnu version of the macro.

This fixes building most of the arm assembly with Apple's external
assembler. While this isn't a necessary goal in itself, there's no
harm in doing this either.
Remove a needless, no-op change of the number of threads

If kiCpuCores < 2, then iCountThreadsNum (and iMultipleThreadIdc)
can't be >= 2, because they're initialized with
WELS_MIN (kiCpuCores, ...) just a few lines above.

If iMultipleThreadIdc is initially set to 0 by the caller, this
removed piece of code would change it to 1, if kiCpuCores < 2.

When iMultipleThreadIdc is changed from the originally set value,
a call to WelsEncoderParamAdjust with the original parameters
would reset the whole codec since iMultipleThreadIdc differs.

This fixes running EncoderInterfaceTest.TemporalLayerSettingTest
on machines where the detected number of cores is 1.
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.
Merge pull request #1257 from mstorsjo/fixup-apple-assembly

Explicitly add .syntax unified when building for iOS
Merge pull request #1250 from huili2/test_EndOfStream

test end of stream for decoder API UT
Merge pull request #1256 from mstorsjo/speedup-tests

Speed up test cases in EncoderInterfaceTest
Merge pull request #1258 from mstorsjo/fetch-codec-params

Get the actual used parameters in the codec in TemporalLayerSettingTest
Merge pull request #1259 from mstorsjo/fix-singlecpu-tests

Remove a needless, no-op change of the number of threads