Commit Graph

965 Commits

Author SHA1 Message Date
ruil2
c31511257b fix cabac encoding bug -- don't get the correct previous mb qp 2014-11-10 15:34:49 +08:00
ruil2
1c44c43b8a add some traces for bitstream output 2014-11-10 15:20:25 +08:00
Martin Storsjö
0aa77d2985 Remove a duplicated field in SWelsSvcCodingParam
The same field already exists in SEncParamExt. When the
initialization was deduplicated in ac404ce, this lead to
reading the now uninitialized field in SWelsSvcCodingParam,
instead of the properly initialized one in the base class.
2014-11-10 09:03:18 +02:00
ruil2
ac404ce69d remove repeat initialization 2014-11-07 14:58:43 +08:00
ruil2
8ed4e83e93 Merge pull request #1490 from sijchen/after_review
[Encoder] Fixing for large number of slices
2014-11-04 15:12:38 +08:00
ruil2
18ed25fbb3 use %lld instead of %8d for longlong type 2014-11-04 10:37:23 +08:00
Sijia Chen
54c677cdd7 fixing OverallMbMap for slice_idx>255 and some log improvements 2014-11-04 09:19:36 +08:00
Martin Storsjö
8ffacf0918 Add casts to avoid warnings about comparison between signed and unsigned
This fixes warnings with gcc and msvc.
2014-11-03 11:28:40 +02:00
Martin Storsjö
0e9541247a Use the right data type for some local variables
pDecEngine->uiOffset is an uint64_t as well, and *pSliceNum
is uint32_t.

This fixes warnings about comparison between signed and unsigned
in gcc and msvc.
2014-11-03 11:28:35 +02:00
sijchen
dbd4330508 Merge pull request #1482 from ruil2/cabac_refine
add setoption trace
2014-11-03 15:39:45 +08:00
ruil2
c19db25043 add setoption trace 2014-11-03 10:37:07 +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
ruil2
3abd54ca73 Merge pull request #1477 from mstorsjo/avoid-msvc-warnings
Avoid warnings when building with MSVC
2014-10-31 15:36:14 +08:00
Sijia Chen
24192cc235 add validation of slice parameters instead of assert 2014-10-30 18:31:50 +08:00
Martin Storsjö
655f3b43b6 Add a cast when converting from int64_t to float
This avoids a warning when building with MSVC.
2014-10-30 11:07:22 +02:00
Martin Storsjö
a291470072 Avoid warnings about converting from int to bool
MSVC used to warn about this.
2014-10-30 11:06:46 +02:00
ruil2
100de97b49 move cabac table to common 2014-10-30 12:42:09 +08:00
Martin Storsjö
7ce4da8a41 Use WelsLog instead of fprintf for normal runtime errors 2014-10-29 22:45:44 +02: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
Martin Storsjö
f2c1395ab6 Remove the pBuffer parameter from the entropy encoder stash functions
The parameter didn't make sense since it only pointed to the
pSliceBsa field, which isn't what should be used to stash
the cabac context.
2014-10-28 14:59:50 +02:00
Martin Storsjö
9a9f92bcfe Don't stash the cabac state into the SBitStringAux buffer
This fixes crashes on some platforms, and fixes valgrind
errors.
2014-10-28 14:59:50 +02: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
sijchen
292d2511e2 Merge pull request #1457 from ruil2/enc_cabac
add encoder cabac support
2014-10-28 16:51:56 +08:00
ruil2
abc01e6b81 add encoder cabac support 2014-10-27 13:06:33 +08:00
dong zhang
d3c8ade8d0 fix Rc int32_t bitrate overflow 2014-10-27 09:54:44 +08:00
ruil2
2dbb757d30 Merge pull request #1451 from sijchen/for_format
Fixes and change naming
2014-10-24 15:18:55 +08:00
sijchen
34cb0d60aa Merge pull request #1450 from mstorsjo/avoid-warnings
Add casts to avoid warnings about comparison between signed and unsigned
2014-10-24 14:41:51 +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
Sijia Chen
ea9b80adb3 fix a wrong range clip 2014-10-24 14:12:53 +08:00
Martin Storsjö
f0c6891627 Add casts to avoid warnings about comparison between signed and unsigned 2014-10-24 09:05:32 +03:00
Sijia Chen
50fd617e86 roll back the file which is mis-formatted by astyle 2014-10-24 13:04:35 +08:00
Sijia Chen
3cce92ea19 fix a small range of slice idx 2014-10-24 12:28:59 +08:00
sijchen
273e1227a5 Merge pull request #1440 from shihuade/APIUTV1.4
fix bug in set option return value
2014-10-24 09:00:56 +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
huili2
94a1d4426e Merge pull request #1437 from sijchen/after_review2
[Encoder] add a thread name for easier profiling
2014-10-23 18:03:24 +08:00
huashi
8d5863a170 fix bug in set option return value 2014-10-23 17:51:35 +08:00
Sijia Chen
97298de90a reformat cpp files for next release 2014-10-23 17:50:50 +08:00
Sijia Chen
41720f8df5 add a thread name for easier profiling 2014-10-23 16:38:05 +08:00
Sijia Chen
a765197b73 add interface and basic implementaion and UT for EncoderStatistics 2014-10-22 11:35:17 +08:00
Sijia Chen
cbe7891300 add clip in ParamTranscode for input para checking 2014-10-21 16:00:46 +08:00
ruil2
5762cbb8fc Merge pull request #1419 from sijchen/fix_sm4_mt
[Encoder] improve the logic of locking in the function
2014-10-17 16:32:40 +08:00
ruil2
89454f0cf9 modify trace level and fix potential issues 2014-10-16 14:57:15 +08:00
Sijia Chen
2479abf5c0 improve the logic of locking in the function 2014-10-15 17:46:59 +08:00
Daniel J. Hofmann
d9e0f2b023 Wtautological-undefined-compare 2014-10-14 23:36:14 +02:00
Daniel J. Hofmann
ba535bda4d Wextra-semi 2014-10-14 22:56:57 +02:00
Daniel J. Hofmann
1e62aafcde Wc++11-extensions 2014-10-14 22:20:10 +02:00
Daniel J. Hofmann
4fc27714bd Wc++11-compat-reserved-user-defined-literal 2014-10-14 22:16:42 +02:00
Ethan Hugg
52419bd13e Merge pull request #1400 from mstorsjo/warning-fix
Fix compiler warnings
2014-10-02 12:26:45 -07:00
Sijia Chen
68fed53687 add checking of frame rate and temporal layer setting for encoder input param
Reviewed at https://rbcommons.com/s/OpenH264/r/836/
2014-09-30 17:54:24 +08:00
Martin Storsjö
311272d341 Use the right log format for printing 64 bit integers 2014-09-30 08:56:40 +03:00
ruil2
6b1630cc90 Merge pull request #1396 from lyao2/rc_trace2
add debug info for RC max bitrate control test
2014-09-29 17:09:28 +08:00
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
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
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
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
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
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
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ö
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
lyao2
522aa4457a enlarge QP range when skipframeflag off on BitRate mode 2014-09-12 14:45:08 +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
bb43c1c9a9 update spatial picture when abnormal exit 2014-09-10 09:45:32 +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
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
ruil2
7e8cde055f add UT for LTR setopton and fix crash issue 2014-09-03 13:28:14 +08: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
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
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
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
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
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
zhiliang wang
f2314151e8 Add x86 32/64bit asm code for SumOfBlocks. 2014-08-13 11:18: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
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
ruil2
af417b5ae4 re-allocate resource when threadIDC changes 2014-08-08 16:43:38 +08: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
0dd0b06287 Merge pull request #1243 from ruil2/comment
add parameter verification
2014-08-05 14:58:01 +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
f68b0811f0 update recontruct frame output 2014-07-31 15:10:12 +08: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
ruil2
e58de20f3a add encoder interface ut 2014-07-25 16:40:14 +08:00
ruil2
1c42743999 fix crash bugs that too large size local varialbe will cause stack overflow 2014-07-25 09:55:41 +08:00
Martin Storsjö
d215a5f879 Actually use iMinQp in WelRcPictureInitBufferBasedQp
This fixes a warning in certain builds, about the variable iMinQp
being set but not used. This also probably is what was intended originally.
2014-07-25 00:46:35 +03:00
zhilwang
811e20f0d9 Merge pull request #1185 from mstorsjo/android-l-preview
Fix building for the Android L preview release, add support for new 64 bit Android ABIs
2014-07-18 16:56:22 +08:00