ruil2
258185f8c2
add maxbitrate parameter
2014-03-20 14:30:20 +08:00
ruil2
e74f01ad47
use the same frame type EVideoFrameType in encoder internal
2014-03-19 16:11:06 +08:00
sijchen
7f0c7daad9
expand structure of MD and ME
2014-03-18 09:47:05 +08:00
Licai Guo
2c796337ba
Merge pull request #510 from huili2/remove_basemb
...
remove BASE_MB related code
2014-03-17 08:46:25 +08:00
Martin Storsjö
f4fdb15397
Fix a typo, Smple -> Sample
2014-03-14 23:30:09 +02:00
huili2
b1f596fd69
remove BASE_MB related code
2014-03-14 02:03:41 -07:00
sijchen
6c3d83a8ac
refactor ME for easier adding other search methods
2014-03-14 15:04:35 +08:00
volvet
8962b7c98b
Merge pull request #482 from sijchen/me_refactor1
...
mv range setting refactor
2014-03-13 10:21:39 +08:00
sijchen
d809a7981b
mv range setting refactor
2014-03-13 10:18:01 +08:00
volvet
8b907c18fd
fix idr interval issue
2014-03-12 17:38:25 +08:00
ruil2
a922155c9a
Merge pull request #466 from sijchen/add_memalign_test
...
Add memalign unit test
2014-03-10 17:25:41 +08:00
sijchen
385128e403
Merge pull request #465 from ruil2/encoder_trace
...
use global trace in encoder
reviewed at https://rbcommons.com/s/OpenH264/r/176/
2014-03-10 17:22:19 +08:00
sijchen
53a570556d
add memalign unit test
2014-03-10 16:28:05 +08:00
ruil2
02bafd9320
Merge pull request #445 from mstorsjo/use-thread-param
...
Use the iMultipleThreadIdc field from SEncParamExt
2014-03-10 15:28:04 +08:00
ruil2
86f37f047c
Merge pull request #452 from mstorsjo/use-slice-mode-enum
...
Use SliceModeEnum as data type for the slice mode fields
2014-03-10 15:27:04 +08:00
ruil2
ba6b2a8d62
use global trace in encoder
2014-03-10 15:22:40 +08:00
Martin Storsjö
5df2e2a996
Use SliceModeEnum as data type for the slice mode fields
...
This makes the use of the field clearer and safer by allowing
the compiler check that users actually assign proper enum
values.
2014-03-08 00:23:58 +02:00
Martin Storsjö
ce7b00ea72
Get rid of an unnecessary cast by declaring the right pointer type
2014-03-08 00:17:30 +02:00
Ethan Hugg
fb4f677f77
Merge pull request #446 from mstorsjo/remove-unnecessary-public-param
...
Move the iCountThreadsNum field to SWelsSvcCodingParam
2014-03-07 09:18:52 -08:00
Ethan Hugg
7632510209
Merge pull request #450 from mstorsjo/publish-slice-mode-enum
...
Move the slice mode enum to the public API
2014-03-07 09:17:03 -08:00
Martin Storsjö
5f1c207845
Move the slice mode enum to the public header
...
This simplifies setting the slice mode in the public API.
2014-03-07 14:53:29 +02:00
Martin Storsjö
495a4a392e
Make ParamValidationExt use the actual type instead of a void pointer
2014-03-07 14:51:34 +02:00
Martin Storsjö
656e4c5c35
Move the iCountThreadsNum field to SWelsSvcCodingParam
...
There is no point in the user setting this field, it's only used
as an internal field within the encoder.
2014-03-07 14:48:38 +02:00
Martin Storsjö
dbc324d5bb
Use the iMultipleThreadIdc field from SEncParamExt
2014-03-07 14:47:43 +02:00
Martin Storsjö
b4aa9be7de
Use WelsThreadJoin on windows as well
...
This avoids using a separate event just for signalling that
a thread has finished running.
2014-03-07 10:51:28 +02:00
volvet
38a3fada24
Merge pull request #435 from mstorsjo/threadlib-wait-single-unix
...
Make WelsMultipleEventsWaitSingleBlocking usable on unix as well
2014-03-07 16:47:38 +08:00
Licai Guo
a4cecd8004
Merge pull request #426 from volvet/simplify-layer-process
...
simplify-layer-process
2014-03-07 10:58:28 +08:00
Martin Storsjö
636df2bebb
Use WelsMultipleEventsWaitSingleBlocking within the worker thread on unix as well
...
This avoids using a separate thread for handling pUpdateMbListEvent
events, and later allowing using the encode exit event on unix instead
of pthread cancellation.
2014-03-06 15:34:35 +02:00
Martin Storsjö
801da26d1d
Use WelsMultipleEventsWaitSingleBlocking with a master event for waiting on finished threads
...
This allows using the same codepath for both unix and windows
for distributing new slices to code to threads.
This also improves the performance on unix - instead of waiting
for all the current threads to finish their current slice
before handing out a new slice to each of them (where the threads
that finish first will just wait instead of immediately getting
a new slice to work on), we now use the same logic as on windows.
In one setup, it improves the performance of encoding from ~920 fps
to ~950 fps, and in another setup it goes from ~390 fps to ~660 fps.
(These tests were done with the SM_ROWMB_SLICE mode, which
heavily exercises the code for distributing new slices to the
worker threads.)
The extra WelsEventSignal call on windows where it isn't strictly
necessary doesn't incur any measurable slowdown, so it is kept
without any extra ifdefs to keep the code more readable and unified.
2014-03-06 15:33:37 +02:00
volvet
8cc332dea1
Merge pull request #432 from zhilwang/arm-asm
...
Arm asm
2014-03-06 16:50:56 +08:00
ruil2
28a56a6752
Merge pull request #415 from volvet/remove-useless-mgs-code
...
remove un-supported mgs code
2014-03-06 14:05:04 +08:00
volvet
50fe120a3e
simplify-layer-process
2014-03-06 11:19:33 +08:00
ruil2
334c5765c7
remove inter-deblock related parameters
2014-03-06 10:26:53 +08:00
Licai Guo
e7cc8c2780
Add arm asm code for processing.
2014-03-05 16:54:05 +08:00
Martin Storsjö
d4bdef2916
Use an event name that contains the process id
...
This reduces the risk for namespace collisions if two processes
run the encoder simultaneously without address space layout
randomization.
2014-03-05 09:36:46 +02:00
volvet
e9395bbd35
remove un-supported mgs code
2014-03-05 15:17:07 +08:00
volvet
adb27ff0b1
Merge pull request #405 from mstorsjo/simplify-threads
...
Adjust WELS_EVENT definitions to allow sharing more code between unix and win32 codepaths
2014-03-05 12:31:15 +08:00
Licai Guo
248f324c62
Add intra predictor arm asm code.
2014-03-05 10:25:15 +08:00
Licai Guo
bb244d736b
Partly add arm asm code to encoder.
2014-03-05 10:24:05 +08:00
Martin Storsjö
1eaa38b130
Simplify code by allocating the arrays of events and thread handles statically
...
This avoids having to malloc a whole lot of separate arrays,
all which are all bounded by MAX_THREADS_NUM.
2014-03-04 12:17:32 +02:00
Martin Storsjö
ae63f064a0
Share the declarations for WELS_EVENT arrays between win32 and unix codepaths
2014-03-04 12:17:32 +02:00
Martin Storsjö
71bc52d103
Change the unix version of WELS_EVENT to sem_t*
...
Typedeffing WELS_EVENT as sem_t* makes the typedef behave similarly
to the windows version (typedeffed as HANDLE), unifying the code
that allocates and uses these event objects (getting rid of
most of the need for separate codepaths and ifdefs).
2014-03-04 12:17:32 +02:00
Martin Storsjö
e9c3403674
Merge some WIN32 ifdefs that were directly next to each other
2014-03-04 12:17:32 +02:00
volvet
13d785ec6a
refine-multi-layer-process
2014-03-04 12:04:04 +08:00
Licai Guo
26218731c6
Merge pull request #386 from volvet/refine_processing
...
refine build spatial list in processing
2014-03-04 11:15:35 +08:00
volvet
bc1850a54d
remove uiFrameIdxRc
2014-03-04 09:08:54 +08:00
Ethan Hugg
e9593682eb
Merge pull request #392 from mstorsjo/unify-threading-ifdefs
...
Unify ifdef conditions related to threading code
2014-03-03 08:23:30 -08:00
Ethan Hugg
d940a204eb
Merge pull request #388 from mstorsjo/initialize-default
...
Initialize sSpatialLayers[0] in SEncParamExt for GetDefaultParams
2014-03-03 08:20:36 -08:00
Martin Storsjö
e0951599ea
Unify ifdef conditions related to threading code
...
The two different variants of the threadlib basically are
win32 and unix - use _WIN32 to check for this consistently,
instead of occasionally using __GNUC__ to enable the unix
codepath. (__GNUC__ is also defined on mingw, which still is
a windows platform and should use the _WIN32 code.)
2014-03-03 14:55:53 +02:00
Martin Storsjö
9ccabd1fe3
Fix cropping when using SEncParamBase
...
The iFrameWidth/iFrameHeight fields are already aligned by the
SetActualPicResolution() function. Previously when iFrameWidth was
aligned directly in ParamBaseTranscode, this aligned value was used
to set iActualWidth/iActualHeight - losing the original, cropped
size.
This makes sure the output bitstream from the test of encoding
res/Static_152_100.yuv actually is cropped as it should.
2014-03-03 10:34:37 +02:00