Commit Graph

2558 Commits

Author SHA1 Message Date
sijchen
8667452940 adjust the input para judgement of iMaxNalSize 2015-11-25 14:21:32 -08:00
sijchen
05c89b75f0 remove duplicated operation after thread pool and rename a task for clearer meaning 2015-11-25 13:46:21 -08:00
HaiboZhu
a422180695 Merge pull request #2277 from ruil2/qp_trace
add minqp and maxqp parameters in console
2015-11-25 15:05:12 +08:00
Karina
ab7eb1535d add minqp and maxqp parameters in console 2015-11-25 14:21:44 +08:00
huade
d02addd90f remove pCountMbNumInSlice from SSliceCtx 2015-11-25 13:36:37 +08:00
HaiboZhu
60f36eb25a Merge pull request #2275 from HaiboZhu/Fix_Emulation_Prevention_Bytes_Profiles_Bugs
Add protection for emulation prevention bytes and profile_id
2015-11-25 12:30:51 +08:00
HaiboZhu
f47be08065 Merge pull request #2271 from sijchen/rf1
[Encoder] refactor multi-thread logic and add error-dealing
2015-11-25 12:04:00 +08:00
unknown
cc6b409f12 Add protection for emulation prevention bytes and profile_id 2015-11-25 11:48:07 +08:00
HaiboZhu
d85b1f6863 Merge pull request #2274 from shihuade/MultiThread_V4.2_SSliceCtx_PFirstMBInSlice_Pull_BugFixed
fixed bug for firsMbIndex in multi-thread-slice encoding with slicemo…
2015-11-25 11:12:24 +08:00
HaiboZhu
404315ab19 Merge pull request #2270 from huili2/parseonly_api_bugfix
disable wrongly calling for parseonly related
2015-11-25 09:00:54 +08:00
sijchen
13cb84e695 use different task when load-balancing or not to save computation 2015-11-24 14:19:15 -08:00
sijchen
1247006cbb remove unneeded variable 2015-11-24 13:39:27 -08:00
sijchen
2df092bcae refactor multi-thread logic 2015-11-24 13:35:55 -08:00
sijchen
2fc9c08710 put duplicated codes into one function 2015-11-24 11:14:58 -08:00
huade
29dd5e71be fixed bug for firsMbIndex in multi-thread-slice encoding with slicemode==SM_SIZELIMITED_SLICE 2015-11-24 17:55:30 +08:00
HaiboZhu
01016b1c83 Merge pull request #2264 from sijchen/api41
[Encoder] put bUseLoadBalancing into actual usage and add test case for it
2015-11-24 14:16:21 +08:00
huili2
9fade10d77 disable wrongly calling for parseonly related 2015-11-24 11:11:27 +08:00
huade
f263f0710a remove pSliceComplexRatio from SliceThreading 2015-11-24 10:44:23 +08:00
HaiboZhu
aeb55e07fe Merge pull request #2268 from HaiboZhu/Update_ftell_fseek_support_long_file
Update encoder console to support 64bit file length
2015-11-24 10:35:54 +08:00
Haibo Zhu
d7644664a6 Update the ftell and fseek to support 64bit length 2015-11-24 09:23:18 +08:00
huade
b001785eee remove pSliceConsumeTime in SSliceCtx and pSliceThreading 2015-11-24 08:58:37 +08:00
sijchen
f3c4b878ff update the usage of flag and MD5 value 2015-11-23 11:54:43 -08:00
huade
9ef07c5b99 remove pFirstMbInSlice in SSliceCtx 2015-11-20 09:51:01 +08:00
huade
b77b68ffa0 change input parameters for UpdateMbNeighbourInfoForNextSlice etc. 2015-11-19 17:18:03 +08:00
huade
c842c5c946 change input parameters for DynamicAdjustSlicePEncCtxAll etc, SSliceCtx refactoring 2015-11-19 15:00:38 +08:00
huade
c298755da5 SSliceCtx structure refactoring----change input parameters for AssignMbMapMultipleSlices 2015-11-19 13:29:16 +08:00
huade
b60bb67b4e SSliceCtx struture refactoring----change input paramters for Init/UninitSlicePEncCtx() 2015-11-19 13:19:34 +08:00
huade
35ab32b1a3 remove (ppCtx)->pSliceCtxList and only keep DqLayer->sSliceCtx to simply the structure manage 2015-11-19 11:03:50 +08:00
HaiboZhu
f9d8e9a76e Merge pull request #2249 from huili2/remove_output_colorformat
remove data format in decoder API
2015-11-19 09:11:29 +08:00
ruil2
174f09bd10 Merge pull request #2246 from shihuade/MultiThread_V4.1_SliceCtx_V2_Pull
SSliceCtx structure refactoring----change input parameters for UpdateSl…
2015-11-18 13:42:20 +08:00
huade
8d44427dc6 SSliceCtx struture refactoring----change input paramters for UpdateSlicepEncCtxWithPartition 2015-11-17 20:54:27 +08:00
huade
06eb03578d SSliceCtx struture refactoring----change input paramters for UpdateMbListNeighborParallel 2015-11-17 17:54:58 +08:00
huili2
dc2cbe4a22 remove API data format in decoder in 1.6 2015-11-17 13:58:57 +08:00
sijchen
7bc1b7abf5 Merge pull request #2240 from ruil2/qp_trace
add qp related trace
2015-11-16 10:36:24 -08:00
sijchen
18fdf6292d Merge pull request #2239 from ruil2/remove_trace
remove iAbsDiffPicNumMinus1 processing for no reference frame
2015-11-16 10:36:00 -08:00
huade
953f74a8a2 astyle for codec/encoder/core/src/slice_multi_threading.cpp 2015-11-16 15:20:24 +08:00
Karina
96b5b3965e add qp related trace 2015-11-16 13:08:48 +08:00
Karina
42222b8e7e remove iAbsDiffPicNumMinus1 processing for no reference frame 2015-11-16 12:22:10 +08:00
HaiboZhu
8d2883277c Merge pull request #2236 from sijchen/thp82
[Encoder] add error handling of task returns
2015-11-16 10:26:45 +08:00
huade
0d4d32efbd fixed bug for NeedDynamicAdjust() 2015-11-16 08:57:38 +08:00
sijchen
6fe05b0996 add error handling of task returns 2015-11-13 12:05:06 -08:00
sijchen
b5d890c1ea Merge pull request #2224 from sijchen/thp73
[Encoder] put the logic related to multiple D layer into a class …
2015-11-13 11:57:07 -08:00
Haibo Zhu
628befe8be Revert "Merge pull request #2217 from huili2/simply_dec_ctx"
This reverts commit 27172bafd7, reversing
changes made to 24916a652e.
2015-11-13 20:16:03 +08:00
Karina
7c1fbad53a fix crash 2015-11-13 17:16:26 +08:00
sijchen
e508c86dac fix the missing loadbalancing part 2015-11-12 13:15:07 -08:00
sijchen
aeb5ab4b99 [Encoder] put the logic related to multiple D layer into a class for better structure 2015-11-11 22:55:16 -08:00
HaiboZhu
beacba76e3 Merge pull request #2220 from sijchen/thp61
[Encoder] add preencodingtasklist in task management
2015-11-12 13:54:49 +08:00
HaiboZhu
1a2606f45d Merge pull request #2219 from sijchen/api3
[Encoder] change API for slicing part for easier usage
2015-11-11 09:19:03 +08:00
HaiboZhu
27172bafd7 Merge pull request #2217 from huili2/simply_dec_ctx
remove bParseonly in ctx using that in param, and slightly modify the…
2015-11-11 09:18:04 +08:00
sijchen
33c378f7b7 change API for slicing part for easier usage (the UseLoadBalancing flag is still under working) 2015-11-10 09:50:06 -08:00
HaiboZhu
643df65c58 Merge pull request #2212 from ruil2/rc2
remove an useless code line
2015-11-09 09:53:28 +08:00
Karina
e20ce63778 do GOM rate control for I frame 2015-11-06 16:08:52 +08:00
Karina
a251504aa2 remove an useless code line 2015-11-06 13:43:21 +08:00
Sijia Chen
2dab8bf087 fix for a slicing and multi-threading setting 2015-11-03 14:42:56 -08:00
Sijia Chen
ee27d13262 add preencodingtasklist in task manegement
add interface to enable different task list
2015-11-03 09:33:26 -08:00
sijchen
597adfd98c Merge pull request #2207 from sijchen/thp53
[Encoder] remove unneeded codes and add some logs (basing on PR2206)
2015-11-03 09:05:55 -08:00
sijchen
b0c6ea9385 Merge pull request #2206 from sijchen/thp42
[Encoder] adjust encoder tasks, add ut and enable new thread pool under some cases
2015-11-03 09:05:43 -08:00
Sijia Chen
3d3884641c use the correct commit number in comment 2015-11-02 23:19:02 -08:00
Sijia Chen
3e0ee69812 remove unneeded codes and add some logs 2015-11-02 23:15:29 -08:00
HaiboZhu
cda6a1fa76 Merge pull request #2191 from mstorsjo/cabac-warnings
Avoid warnings in the cabac code
2015-10-29 14:19:22 +08:00
HaiboZhu
17934b9843 Merge pull request #2192 from sijchen/fix_slc
[Encoder] change an improper setting of max_slice_count
2015-10-29 14:17:26 +08:00
HaiboZhu
0292647449 Merge pull request #2195 from sijchen/add_stat_log
[Encoder] Log enhancement for easier debugging
2015-10-29 14:17:19 +08:00
sijchen
1ed0e8c37b Merge pull request #2196 from shihuade/PSliceRefact_V1.5
refact WelsMarkPicScreen  based on pSlice buffer refactoring
2015-10-28 21:28:42 -07:00
huade
d962ff1ed1 refact WelsMarkPicScreen based on pSlice buffer refactoring 2015-10-29 09:17:39 +08:00
Sijia Chen
32669bc941 change an improper setting of max_slice_count 2015-10-28 13:55:21 -07:00
Sijia Chen
054a297ca7 adjust encoder tasks, add ut and enable new thread pool under some slice modes 2015-10-28 09:39:26 -07:00
Martin Storsjö
1661a60090 Avoid warnings in the cabac code
Use int32_t for a parameter that is always 0 or 1, because it is
negated. This fixes "warning C4146: unary minus operator applied
to unsigned type, result still unsigned" in MSVC.

Also add casts to silence MSVC warnings about "conversion from
'WelsEnc::cabac_low_t' to 'uint8_t', possible loss of data".

The generated code still is identical to before, on both gcc
and clang.
2015-10-28 14:39:30 +02:00
HaiboZhu
1a7a3e2462 Merge pull request #2188 from shihuade/PSliceRefact_V1.2
refact WelsMarkPic based on pSlice buffer refactoring
2015-10-28 11:04:22 +08:00
HaiboZhu
fe7684bf37 Merge pull request #2187 from shihuade/PSliceRefact_V1.1
refact slice header init
2015-10-28 09:58:31 +08:00
huade
ff8bb6238d refact WelsMarkPic based on pSlice buffer refactoring 2015-10-27 17:44:55 +08:00
huili2
777dbc09d4 remove bParseonly in ctx using that in param, and slightly modify the initialize process of decoder 2015-10-27 16:12:08 +08:00
HaiboZhu
a3e60a1c6f Merge pull request #2186 from shihuade/PSliceRefact_V1.0
change the AbsDiffPicNumMinus1 check logic
2015-10-27 15:07:54 +08:00
HaiboZhu
51d8e00564 Merge pull request #2180 from saamas/cabac_encode_opt
[Encoder] CABAC optimizations
2015-10-26 09:02:51 +08:00
huade
08f7ad3f1f refact slice header init 2015-10-23 15:46:06 +08:00
huade
741c122399 change the AbsDiffPicNumMinus1 check logic 2015-10-23 14:45:18 +08:00
HaiboZhu
e0cee02d77 Merge pull request #2177 from sijchen/thp21
[Encoder] add encoder tasks and task-management class
2015-10-23 13:21:42 +08:00
Sindre Aamås
ed133d4c3d [Encoder] CABAC optimizations
~2.4x speedup (time attributed to all CABAC-related fuctions) on x86
(Ivy Bridge) with GCC version 4.9.2 (Debian 4.9.2-10).

~1.3x overall faster encode on a quick 720p30 6Mbps test.

Reviewed at https://rbcommons.com/s/OpenH264/r/1347/
2015-10-21 12:53:12 +02:00
Martin Storsjö
80c8b7b1cc Add a missing include of stdlib.h
This is required for malloc in this header.

This fixes building for Windows Phone.
2015-10-20 08:59:41 +03:00
Sijia Chen
819f6f5d93 [Encoder] add encoder tasks and task-management class
https://rbcommons.com/s/OpenH264/r/1334/
2015-10-19 22:48:28 -07:00
Haibo Zhu
151c1d9ffd Fix the macro UPPER_CHECK conditions 2015-10-19 18:12:53 -07:00
sijchen
9befe7b1a3 Merge pull request #2173 from mstorsjo/remove-includes
Remove unused STL includes
2015-10-19 10:41:13 -07:00
Martin Storsjö
dac26cf923 Remove unused STL includes
This fixes building for Android, where libopenh264.so is intended
not to link to any particular STL implementation.
2015-10-19 11:21:29 +03:00
Haibo Zhu
9ba2c9825c (1) add protection for golomb GetUe output value
(2) change the max length of cabac bypass to 16
2015-10-18 20:12:34 -07:00
HaiboZhu
fb61733b27 Merge pull request #2163 from HaiboZhu/Remove_cabac_shift_exponent_too_large
Remove the shift exponent too large warning
2015-10-16 21:16:56 +08:00
HaiboZhu
ea52112d45 Merge pull request #2158 from sijchen/thp0a
[Common] basic thread pool functions
2015-10-16 16:50:39 +08:00
HaiboZhu
7cbc31a0bf Merge pull request #2161 from huili2/MMCO_overflow
prevent too many MMCO num overflow
2015-10-16 16:50:26 +08:00
Haibo Zhu
f1d92ef363 Remove the shift exponent too large warning 2015-10-16 01:13:23 -07:00
huili2
4bafe1c430 prevent too many MMCO num overflow 2015-10-16 10:36:13 +08:00
Sijia Chen
b29760ee31 remove unneeded parts 2015-10-15 11:31:34 -07:00
Sijia Chen
ade32f5c48 implementation for WelsSleep on WP8.0
https://rbcommons.com/s/OpenH264/r/1315/
2015-10-15 11:27:43 -07:00
Sijia Chen
a3f606e58a replacement of std::list for m_cBusyThreads
https://rbcommons.com/s/OpenH264/r/1320/
2015-10-15 11:17:29 -07:00
Sijia Chen
bc566f0923 put m_cIdleThreads to CWelsCircleQueue rather than std::map
https://rbcommons.com/s/OpenH264/r/1313/
2015-10-15 10:24:48 -07:00
Sijia Chen
eb00d5cb9e change std::list to internal implementation and add the new ut file for CWelsCircleQueue
https://rbcommons.com/s/OpenH264/r/1310/
2015-10-15 10:11:29 -07:00
Sijia Chen
757a596e97 add basic threadpool functions
https://rbcommons.com/s/OpenH264/r/1294/
2015-10-15 10:04:00 -07:00
Sijia Chen
6ca397e758 correct a typo along with the in-plan v1.5 release 2015-10-15 09:55:06 -07:00
Sijia Chen
9d25161f40 add version updates after 1.5 release 2015-10-15 09:54:10 -07:00
HaiboZhu
af6a9a838f Merge pull request #2152 from mstorsjo/remove-unused-code
Remove unused source files from the encoder
2015-10-15 12:03:41 +08:00
Haibo Zhu
03d16bb4d1 Remove UBSAN warnings about negative left shift 2015-10-14 19:43:19 -07:00
HaiboZhu
3067d127aa Merge pull request #2153 from mstorsjo/fix-warnings
Fix warnings when building for iOS with xcode
2015-10-13 18:26:56 +08:00
Martin Storsjö
8363d43588 Fix warnings when building for iOS with xcode 2015-10-13 12:27:11 +03:00
Martin Storsjö
5ff8af6883 Remove unused source files from the encoder 2015-10-13 12:21:34 +03:00
Martin Storsjö
837599becc Revert an accidental change that broke MSVC compilation
This reverts an unrelated part of e7e3b4f37f.

Since the function still is declared as taking an int32_t parameter
in the header, changing the function implementation makes it end
up as a different function.
2015-10-13 12:15:01 +03:00
HaiboZhu
6239fbe131 Merge pull request #2150 from huili2/log_memory_decrease
decrease log output for decoder momery info
2015-10-13 16:42:03 +08:00
HaiboZhu
df936ad73b Merge pull request #2131 from sijchen/fix_simul3
[Encoder] Add fix for simulcast for 3 spatial layers
2015-10-13 16:41:15 +08:00
huili2
042ac9aba1 decrease log output for decoder momery info 2015-10-12 10:53:33 +08:00
Haibo Zhu
e7e3b4f37f Init the string value and add protection for WelsStrcat() 2015-10-10 08:45:48 -07:00
sijchen
b37cda2482 Merge pull request #2138 from HaiboZhu/Bugfix_SPS_update_logic_under_EC
Fix a SPS update logic bug under EC mode
2015-10-08 10:11:32 -07:00
Haibo Zhu
4ffdca6b06 Fix the SPS update logic bug under EC mode 2015-10-08 02:01:15 -07:00
Haibo Zhu
2cd3fc805d Fix the 8x8 init bug under CAVCL when scalinglist enable 2015-10-07 19:49:37 -07:00
Sijia Chen
b86bd5f7f6 modify forceIDR log 2015-10-05 16:22:30 -07:00
Sijia Chen
f230c63777 add one more log statstics 2015-10-05 16:16:27 -07:00
Sijia Chen
82cc0535ae Add fix for simulcast if frame rate in the middle spatial layer is smaller 2015-09-30 17:26:50 -07:00
HaiboZhu
f9f2bbf805 Merge pull request #2127 from huili2/repos_DecoderConfigParam
move DecoderConfigParam into InitDecoder
2015-09-23 17:41:52 +08:00
huili2
ecab683f0f move DecoderConfigParam into InitDecoder 2015-09-23 14:37:53 +08:00
huili2
6efeb0ef95 Merge pull request #2124 from HaiboZhu/Bugfix_Duplicate_frame_num
Check the duplicate frame_num in short ref list
2015-09-22 15:45:22 +08:00
unknown
868c8e45a1 Check the duplicate frame_num in short ref list
Add more judgement for return value in WelsMarkAsRef()
2015-09-21 21:31:59 -07:00
Sijia Chen
53c057a8a8 fix for simulcast case when the frame rate of lower resolution is higher, and add test case 2015-09-21 15:42:17 -07:00
HaiboZhu
d0d7ad57c2 Merge pull request #2116 from mstorsjo/remove-tab-indentation
Fix indentation to consistently use spaces instead of tabs
2015-09-16 09:12:07 +08:00
HaiboZhu
8994f1f757 Merge pull request #2115 from fstd/support_netbsd_2
Support NetBSD and OpenBSD; consolidate BSD build.
2015-09-16 09:07:08 +08:00
Martin Storsjö
c31e4e23f2 Fix indentation to consistently use spaces instead of tabs
Also get rid of other stray tabs in scripts.
2015-09-15 08:41:19 +03:00
Martin Storsjö
77bd41ca7e Fix building down_sample_neon.S with gnu binutils 2015-09-14 21:38:26 +03:00
fstd
4d063b84cc Build successfully on OpenBSD (which lacks sysctlbyname(3)) 2015-09-12 21:31:39 +02:00
Guangwei Wang
64657d3cfd add new c and assembly functions to optimize downsampler when downscale equal 1:3/1:4 2015-09-11 16:45:40 +08:00
Haibo Zhu
28d7d303e3 Bug fix with add DecoderConfigParam in ResetDecoder 2015-09-10 16:47:37 +08:00
karina li
2c830e64d7 exception case for width or height is less than 16 2015-09-08 17:21:56 +08:00
HaiboZhu
c48f47ab19 Merge pull request #2099 from nathankidd/master
Use stdbool.h with Visual Studio 2013 or higher
2015-09-06 09:51:44 +08:00
Nathan Kidd
fdabca4cc9 Only use CPU_COUNT if available
Fixes build error on Linux hosts with GLIBC < 2.6.

Resolves issue #2089
2015-09-02 18:24:24 -04:00
Nathan Kidd
f21fffda3b Use stdbool.h with Visual Studio 2013 or higher
2013 is the first version to include the header.

Avoids "codec_api.h(40): error C2632: 'char' followed by 'bool' is illegal"
when building C code.
2015-09-02 09:32:41 -04:00
HaiboZhu
fd7a02b557 Merge pull request #2096 from ruil2/rc0
use individual iDecompositionStages for each spatial layer
2015-09-02 10:10:02 +08:00
karina li
8c7ef9c1a7 use individual iDecompositionStages for each spatial layer 2015-09-01 16:46:59 +08:00
zhilwang
d1fc002430 Merge pull request #2091 from HaiboZhu/Bugfix_CheckRefPicturesComplete_FMO_enable
Fix the bug that calculate mbAddr error when FMO enable
2015-08-28 17:22:36 +08:00
Haibo Zhu
646f3e92de Fix the bug that calculate mbAddr error when FMO enable 2015-08-27 23:46:47 -07:00
huade
7b286bc637 replace LayerBsInfo with FrameBsInfo in thread-based private data structure 2015-08-27 17:24:48 +08:00
zhilwang
5d9b95288f Merge pull request #2083 from HaiboZhu/Bugfix_OutOfMemory_post_process
Force reset decoder when out of memory error
2015-08-26 16:14:32 +08:00
Haibo Zhu
27a9af0b09 Force reset decoder when out of memory error 2015-08-26 00:13:44 -07:00
Haibo Zhu
195dbdd5bd Add bParseOnly flag into Trace 2015-08-25 08:58:28 +08:00
Haibo Zhu
1173f879f1 Change the SParserBsInfo resolution to actual value 2015-08-24 14:37:32 +08:00
huade
47d6ac3b57 bug-fixed----left length of destination buffer for writing slice bs 2015-08-19 09:05:15 +08:00
HaiboZhu
bf33bde15d Merge pull request #2075 from sijchen/fix_abnormal_tid
[Encoder] change the solution when invalid tid is found
2015-08-17 16:38:54 +08:00
karina li
d569a0276b convert maxqp and minqp to encoder 2015-08-17 13:19:20 +08:00
Sijia Chen
82e7dcd84f change the solution when invalid tid is found 2015-08-14 17:01:19 -07:00
Haibo Zhu
5ebb64cc45 Add MAX_DPB_COUNT equals to MAX_REF_PIC_COUNT + 1 to set the size of RefList
Make the reorder search range sync with JM
2015-08-13 23:54:47 -07:00
Sijia Chen
97351a5cdf fix the range of writable cfg to avoid problem 2015-08-13 16:01:49 -07:00
Haibo Zhu
68d9bc230d Add default when iCurTId invalid 2015-08-13 01:11:30 -07:00
HaiboZhu
2273624a6a Merge pull request #2070 from HaiboZhu/Bugfix_Emulation_prevention_three_byte
Add protection about emulation_prevention_three_byte error bytes
2015-08-11 22:52:28 +08:00
Haibo Zhu
e90068c234 Add protection about emulation_prevention_three_byte error bytes 2015-08-11 12:56:09 +08:00
huili2
c45e08a984 prevent error RPLR number overflow case 2015-08-11 09:45:09 +08:00
huili2
6ba10ce6f3 Merge pull request #2065 from HaiboZhu/Bugfix_RPLR_logic
Fix the RPLR logic error when picNumLX <= refIdxLX
2015-08-07 17:30:08 +08:00
huili2
be2b7f196f Merge pull request #2063 from HaiboZhu/Add_EC_memcpy_protection
Add protection for memcpy overlap
2015-08-05 11:09:06 +08:00
huili2
6ab697ef78 Merge pull request #2060 from HaiboZhu/Bugfix_default_value_chroma_array_type
Add default value for ChromaArrayType to avoid NO value
2015-08-05 11:08:41 +08:00