Commit Graph

1785 Commits

Author SHA1 Message Date
lyao2
3904c025cb add debug info for RC max bitrate control test 2014-09-29 15:41:03 +08:00
Sijia Chen
6673a5f71e 1, fix a value in preprocess to avoid warning in UT
2, refactor to wrap the operation to m_pSpatialPic into WelsPreprocess
2014-09-28 13:12:16 +08:00
Sijia Chen
cf2cf9efd9 add basic strategy for lossy+no LTR route 2014-09-26 16:40:19 +08:00
zhiliang wang
19c02bdfa8 Fix crash issue due to commit 8945348. 2014-09-26 11:16:13 +08:00
ruil2
bab0bf18f8 Merge pull request #1387 from dongzha/MoveDoubleInSCCRC
remove double in SCC rc
2014-09-25 16:53:46 +08:00
huili2
8945348c87 Merge pull request #1385 from ruil2/function
enable ARM assembly for SampleSad16x16
2014-09-25 15:04:46 +08:00
ruil2
ed341048de refine common moudle for part of intra prediction function 2014-09-25 14:03:11 +08:00
ruil2
bef3d87f34 Merge pull request #1384 from sijchen/add_para21
[Encoder] Add a new reading para
2014-09-25 12:45:38 +08:00
dong zhang
9f20c727d1 remove double in SCC rc 2014-09-25 11:09:35 +08:00
sijchen
d0f9b218f4 Merge pull request #1383 from ruil2/rc_refine
refine scc rc
2014-09-24 16:31:49 +08:00
ruil2
ffebbdb9b2 enable ARM assembly for SampleSad16x16 2014-09-24 15:59:36 +08:00
ruil2
4e57a46ca5 Merge pull request #1382 from huili2/dataformat_bugfix
add protection for decoder and data format
2014-09-24 13:47:02 +08:00
ruil2
c618cb1eaf refine scc rc 2014-09-24 09:54:01 +08:00
huili2
a3bdf4ffc9 Merge pull request #1378 from sijchen/ref_refac22
[Encoder] Refactor a function for further strategy adjustment
2014-09-24 08:59:02 +08:00
Sijia Chen
147c9052b8 add reading of the new option 2014-09-23 18:04:24 +08:00
huili2
f8d2ae42ef add protection for decoder and data format 2014-09-23 00:29:23 -07: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
sijchen
fd8db0451e Merge pull request #1377 from ruil2/scc_rc_1
add scc rate control
2014-09-19 17:08:48 +08:00
Sijia Chen
ee2f87dbbc refactor a function for further strategy adjustment 2014-09-19 16:17:04 +08:00
ruil2
17df23c2eb Merge pull request #1375 from sijchen/ref_refac11
[Encoder] Use function pointer for pEndofUpdateRefList
2014-09-19 16:01:14 +08:00
ruil2
66e38cc9ed add scc rate control 2014-09-19 15:56:49 +08:00
Sijia Chen
c480ffdad5 use function pointer as refactoring for further strategy adjustment 2014-09-19 14:48:45 +08:00
Sijia Chen
84ca659f06 add parameter and one case in UT 2014-09-19 14:46:02 +08:00
huili2
f5b9d920ff Merge pull request #1369 from ruil2/console
set timestamp for each input frame to preparing for scc rate control
2014-09-18 14:46:28 +08:00
sijchen
64fa8a6b60 Merge pull request #1371 from ruil2/win_project
update interface definition
2014-09-18 14:38:58 +08:00
ruil2
ac2de4cbab Merge pull request #1370 from dongzha/addAPIUTTid
Add Tid/Trace API UT and Fix a bug when set NULL trace
2014-09-18 14:29:26 +08:00
ruil2
3ba0a9956a update interface definition 2014-09-18 14:20:16 +08:00
huili2
c4a446b43a Merge pull request #1367 from ruil2/rename
rename namespace and funciton name to avoid conflicts with old library
2014-09-18 13:23:27 +08:00
ruil2
880bf2d621 set timestamp for each input frame to preparing for scc rate control 2014-09-18 12:12:15 +08:00
Sijia Chen
7e71714863 add a missed line in last commit 2014-09-17 18:13:43 +08:00
Sijia Chen
05684744c9 remove duplicate constant macro and modify the num_ref check accordingly 2014-09-17 18:10:27 +08:00
ruil2
3ff145e839 rename namespace and funciton name to avoid conflicts with old library 2014-09-17 15:50:59 +08:00
ruil2
25b723c413 Merge pull request #1366 from lyao2/refine_frameskip2
fix skipframe count error
2014-09-17 15:19:40 +08:00
lyao2
ca96def4ff fix skipframe count error 2014-09-17 14:26:05 +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
dongzha
8538b22f23 Merge pull request #1359 from mstorsjo/cleanup-simplification
Simplify code by getting rid of unnecesary SafeDelete/SafeFree macros
2014-09-17 08:49:24 +08:00
dongzha
399ca33284 Merge pull request #1356 from ruil2/memory
refine memory tag in order to trace issues related memory
2014-09-17 08:46:02 +08:00
Martin Storsjö
9d9c609aab Remove some now unused macros 2014-09-16 11:53:19 +03:00
Martin Storsjö
958113073f Simplify code by calling WelsFree directly instead of using a helper function
This makes the code simpler and clearer. It's not necessary to use the
_SafeFree helper macro in neither of the case - in one case the
pointer is overwritten immediately, in the other case it's witihin
the destructor where the pointer won't ever be read again.
2014-09-16 11:53:19 +03:00
Martin Storsjö
37ae6505d4 Use delete instead of the _SafeDelete macro
Since this is the destructor of the class, the member variables
won't be read afterwards, and setting the pointers to NULL afterwards
is redundant.
2014-09-16 11:53:19 +03:00
Martin Storsjö
c5091e73be Remove unnecesary use of _SafeDelete
It is not necessary to check whether a pointer is NULL before
deleting it, "delete NULL" is explicitly ok.

The deleted pointer is a local variable here, so setting it to
NULL after deleting isn't necessary in these cases either.
2014-09-16 11:53:19 +03:00
Martin Storsjö
8eafdfa598 Remove an unused macro 2014-09-16 11:52:06 +03:00
dongzha
f8d5f93b16 Merge pull request #1355 from syureyi/clean
Clean
2014-09-16 09:58:27 +08:00
ruil2
b85a09163f refine memory tag in order to trace issues related memory 2014-09-16 09:49:44 +08:00
lyao2
72862118f9 Fix bug RC_QUALITY_MODE not works as expected 2014-09-15 15:31:20 +08:00
lyao2
631ca210a8 Fix bug RC_QUALITY_MODE not works as expected 2014-09-15 13:21:29 +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
ruil2
c6a136c742 using default value for LTR. 2014-09-11 10:32:46 +08:00
ruil2
1a394d1432 Merge pull request #1343 from huili2/ec_disable_set
disable EC SetOption
2014-09-10 15:15:49 +08:00
huili2
84848bb7d3 disable EC SetOption 2014-09-09 20:12:01 -07:00
ruil2
bb43c1c9a9 update spatial picture when abnormal exit 2014-09-10 09:45:32 +08:00
ruil2
f003fa1fe6 Merge pull request #1341 from sijchen/enable_ltr01
[Encoder] fix a LTR range problem when LTR num is larger than 2
2014-09-10 08:51:44 +08:00
Sijia Chen
6f553c9742 remove unused lines 2014-09-09 15:09:07 +08:00
Sijia Chen
79157ce632 fix a LTR range problem when LTR num is larger than 2 2014-09-09 15:05:57 +08:00
Sijia Chen
a6df69c305 remove unsupported lines in cfg to avoid misleading 2014-09-09 14:20:27 +08:00
dongzha
ef590de0dc Merge pull request #1335 from lyao2/fixppsbug
fix pps caused death loop issue
2014-09-05 14:18:16 +08:00
huili2
684c42536d Merge pull request #1330 from ruil2/delivery_status
modify delivery status interface
2014-09-05 13:32:52 +08:00
lyao2
881667a533 fix pps caused death loop issue 2014-09-05 13:28:13 +08:00
ruil2
4fc144b698 Merge pull request #1333 from huili2/print_ver_master
modify version info in enc/dec
2014-09-05 13:23:49 +08:00
huili2
1b1ea2b9ef modify version info in enc/dec 2014-09-04 21:55:06 -07:00
ruil2
d63172db9b Merge pull request #1331 from sijchen/add_setoption
[Encoder] add setoption of 'isLosslessLink' for further strategy tuning
2014-09-05 12:49:25 +08:00
ruil2
2f041c7a4b modify delivery status interface 2014-09-05 10:57:51 +08:00
huili2
43dc6f01e1 Merge pull request #1322 from ruil2/MinCr_waring
add MinCr checking and output warings if the MinCr isn't met
2014-09-05 09:39:56 +08:00
sijchen
61926f208c add a setoption for further setting 2014-09-04 14:24:14 +08:00
lyao2
f2437f24b9 fix bug that iMaxSpatialBitrate is not correct assigned 2014-09-03 17:40:19 +08:00
huili2
c287a9109f Merge pull request #1324 from ruil2/ltr_check_update
add UT for LTR setopton and fix crash issue
2014-09-03 15:51:23 +08:00
dongzha
315d9315c4 Merge pull request #1325 from huili2/ps_ne_deal_v1.1.1
when sps/pps non exist, return dsNoParamSets
2014-09-03 13:56:30 +08:00
ruil2
7e8cde055f add UT for LTR setopton and fix crash issue 2014-09-03 13:28:14 +08:00
huili2
0227f87b7a when sps/pps non exist, return dsNoParamSets 2014-09-02 22:22:18 -07:00
ruil2
4ece8efaed add MinCr checking and output warings if the MinCr isn't met 2014-09-03 10:41:54 +08:00
ruil2
b5a01efa96 avoid LTR reference frames overflow 2014-09-02 10:23:03 +08:00
ruil2
d4eff959ed fix auto threadIdc issue 2014-08-29 13:57:08 +08:00
ruil2
3ff6bf8ac1 Merge pull request #1315 from dongzha/RemoveIntraPeriod
Fix following IntraPeriod set issue
2014-08-28 17:09:10 +08:00
dong zhang
0187c84f29 Fix following IntraPeriod set issue
1. In WelsInitSps function, if kuiIntraPeriod is huge, uiLog2MaxFrameNum might be bigger than 15, which may introduce illegal H264 bitstream.
2. if pSvcParm.uiIntraPeriod is not zero (e.g. 14) at the initial, it will init sps.iLog2MaxPocLsb. to 5.
 But if I changed pSvcParm.uiIntraPeriod to 40, sps.iLog2MaxPocLsb. is still 5, need to recalcuted this parameter.
 (Same with uiLog2MaxFrameNum.)
2014-08-28 16:35:23 +08:00
huili2
2361f7543b Merge pull request #1314 from ruil2/add_trace
update trace output
2014-08-28 15:59:56 +08:00
ruil2
cafb91a66a remove redundent lines 2014-08-28 11:24:28 +08:00
ruil2
cebf586c3a update trace output 2014-08-28 11:04:25 +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
dongzha
9b97138786 Merge pull request #1310 from ruil2/trace_update_1
add warning trace
2014-08-27 17:35:14 +08:00
ruil2
8935bfaa91 Merge pull request #1308 from dongzha/ModifyEncOutput
add crop output for encoder
2014-08-27 17:04:49 +08:00
ruil2
770400103f add warning trace 2014-08-27 17:01:23 +08:00
dong zhang
6d4a628331 add crop output for encoder 2014-08-27 15:44:49 +08:00
ruil2
40e952f981 remove "\n" which shoudl be added by the trace sink 2014-08-27 14:34:05 +08:00
ruil2
9b5902b94a update the number of reference when ltr changes 2014-08-27 12:19:59 +08:00
ruil2
ac7fac9644 get mv and mvd from level limitation 2014-08-26 16:30:57 +08:00
lyao2
0c32465aac fix pps assert issue when enable bEnableSpsPpsIdAddition 2014-08-26 13:31:14 +08:00
dongzha
863dc78c25 Merge pull request #1301 from ruil2/ltr_check_1
add more LTR parameters
2014-08-26 12:22:27 +08:00
ruil2
d6f0dee0c4 add more LTR parameters 2014-08-26 11:06:30 +08:00
Karina
ddbd41cbc5 remove unused variables 2014-08-26 09:13:20 +08:00
Karina
11c9f2037d format update 2014-08-25 15:31:36 +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
HaiboZhu
dddb825bbd Merge pull request #1288 from lyao2/threadIDC
fix Loop filter error under multithreads on encoder when #TEST_BED enabled
2014-08-22 11:00:07 +08:00
lyao2
6047ff930e fix deblockIDC and mutithread logic error 2014-08-22 09:19:14 +08:00
zhiliang wang
e6f838e331 Add arm UT for Sad,IntraSad,IntraPred. 2014-08-21 15:36:57 +08:00
zhiliang wang
e3d8524c82 Refine EncDemo. 2014-08-21 09:10:49 +08:00
lyao2
47f1ac7307 fix Loop filter error under multithreads on encoder when #TEST_BED enabled 2014-08-20 11:54:07 +08:00
dongzha
3596b6ced0 avoid encoder crash with random pixel input 2014-08-19 15:36:27 +08:00
Martin Storsjö
81ac3d2a9b Fix building svc_motion_estimation.S for android
The .align directive takes an argument in number of bits, i.e. the
actual alignment is 2^n. Previously building with binutils failed,
since 16 isn't a valid parameter to .align, the maximum is 15.

Thus, this makes the code try to align to 16 bytes, instead of aligning
to 65536 bytes.

This fixes building for android.

This also clears up the same mistake in the aarch64 code, even though
that one built just fine.
2014-08-15 09:53:42 +03:00
dongzha
464244ccbe Merge pull request #1280 from mstorsjo/arm-common-ifdefs
Add ifdef HAVE_NEON around the contents of arm_arch_common_macro.S
2014-08-15 14:19:14 +08:00
HaiboZhu
955d27b3a2 Merge pull request #1278 from syureyi/perf
improve perf
2014-08-15 14:18:01 +08:00
Martin Storsjö
f69c9074e7 Add ifdef HAVE_NEON around the contents of arm_arch_common_macro.S
This file is built on its own from within the xcode projects,
even though it isn't necessary. Previously its contents was just
empty, but now a .syntax unified was added, which failed the build
when building for arm64.

Make this file a no-op, just like the other arm assembly source files,
unless HAVE_NEON is defined.
2014-08-15 08:49:31 +03:00
HFVideoMac
0f95fac4ca add arm32/64 code for InitHash 2014-08-15 13:47:59 +08:00
dongzha
87107c50a3 Merge pull request #1275 from zhilwang/x86_hash_scc
Add x86 32/64bit asm code and UT for SCC hash functions
2014-08-15 10:12:18 +08:00
zhiliang wang
ef88889404 refine format and add UT cases 2014-08-15 09:22:37 +08:00
zhilwang
711f5cabe7 Merge pull request #1273 from dongzha/RefineArmCodeForSumBlock
refine arm code for sum of frame
2014-08-15 09:02:15 +08:00
zhiliang wang
76863f977a Refine asm code format 2014-08-15 08:46:55 +08:00
zhiliang wang
b35f5797de Add x86 32/64bit asm code for Scc_hash 2014-08-14 18:41:52 +08:00
HaiboZhu
1e34a61dd6 Merge pull request #1269 from huili2/enc_console_help
correct enc console help info
2014-08-14 17:07:16 +08:00
HFVideoMac
e14186b535 refine arm code for sum of frame 2014-08-14 14:41:07 +08:00
zhiliang wang
dc833e19f4 Add function define and init for SCC hash function 2014-08-14 14:20:07 +08:00
huili2
e346bc5263 correct enc console help info 2014-08-12 23:25:27 -07:00
zhiliang wang
f2314151e8 Add x86 32/64bit asm code for SumOfBlocks. 2014-08-13 11:18:39 +08:00
syureyi
2ac973474a improve perf 2014-08-12 14:29:39 +08:00
ruil2
493d254a4a merge level table 2014-08-12 09:28:40 +08:00
ruil2
f7cd6e7aad use WelsEnc namespace instead of WelsSVCEnc 2014-08-11 16:08:49 +08:00
ruil2
febb3ebb9b fix an errors that for single slice mode, the number of slices should be 1 2014-08-11 13:58:33 +08:00
ruil2
5948e8af3f Merge pull request #1259 from mstorsjo/fix-singlecpu-tests
Remove a needless, no-op change of the number of threads
2014-08-11 13:31:57 +08:00
Martin Storsjö
2f6a986d7c 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.
2014-08-08 22:26:59 +03:00
Martin Storsjö
38d2d64ede 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.
2014-08-08 14:09:37 +03:00
huili2
dacd22d695 Merge pull request #1254 from mstorsjo/alias-attribute
Add attributes incidating intentional data type aliasing, fix GetIntraPredictorTest on android
2014-08-08 17:36:07 +08:00
ruil2
af417b5ae4 re-allocate resource when threadIDC changes 2014-08-08 16:43:38 +08:00
Martin Storsjö
5f0ef6a5a9 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.)
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
HFVideoMac
cff49f5e45 add arm 32/64 code and UT for SVC SCC motion estimation 2014-08-06 17:24:36 +08:00
huili2
3aec3a2606 Merge pull request #1245 from zhilwang/processing_sad
Add sad arm64 code to processing.
2014-08-06 09:31:22 +08:00
huili2
0dd0b06287 Merge pull request #1243 from ruil2/comment
add parameter verification
2014-08-05 14:58:01 +08:00
zhiliang wang
3139fe7a88 Add sad arm64 code to processing. 2014-08-05 11:23:38 +08:00
ruil2
5356249100 if dynamic slice mode, this limitation should be removed 2014-08-01 16:10:11 +08:00
ruil2
059e19074a add parameter verification 2014-08-01 12:39:29 +08:00
ruil2
11f0a11177 Merge pull request #1242 from huili2/test_dataformat
setget_dataformat_ut
2014-08-01 12:27:38 +08:00
HaiboZhu
aa41dc43bd Merge pull request #1241 from ruil2/comment
fix typo
2014-07-31 16:52:04 +08:00
ruil2
2ec91a0bbe fix typo 2014-07-31 15:14:10 +08:00
ruil2
f68b0811f0 update recontruct frame output 2014-07-31 15:10:12 +08:00
Martin Storsjö
8c663ffe66 Use the common stdint typedefs in processing as well
This fixes building test/processing/ProcessUT_AdaptiveQuantization.cpp
with MSVC.
2014-07-30 13:53:54 +03:00
huili2
e8fdd4cf75 setget_dataformat_ut 2014-07-28 18:41:58 -07:00
ruil2
eff4b3ae4d add a judgment 2014-07-29 09:37:14 +08:00
Martin Storsjö
ae62909aab Unify the indentation in the new aarch64 assembly files 2014-07-28 09:23:36 +03:00
Martin Storsjö
3240a14baa Add a missing .endm in the gnu version of macros 2014-07-28 09:01:24 +03:00
Martin Storsjö
79276c38dd Clear the executable bit for new arm64 assembly source files 2014-07-28 08:29:01 +03:00
HaiboZhu
39d490b23d Merge pull request #1224 from huili2/ec_flag_modif
modify EC API name and remove useless flag
2014-07-28 13:06:23 +08:00
huili2
933c477717 modify EC API name and remove useless flag 2014-07-27 21:35:26 -07:00
huili2
8e2d92e5c9 Merge pull request #1218 from zhilwang/arm64_vaa
Arm64 vaa
2014-07-28 09:30:16 +08:00
ruil2
e58de20f3a add encoder interface ut 2014-07-25 16:40:14 +08:00
zhilwang
b1a76aa936 Merge pull request #1215 from mstorsjo/x86-asm-noexec-stack
Mark the x86 assembly object files as not requiring an executable stack
2014-07-25 14:15:17 +08:00