Commit Graph

152 Commits

Author SHA1 Message Date
ruil2
4751fe7690 add scene change detection in workflow for screen content 2014-03-28 11:30:51 +08:00
ruil2
63cef0f0f4 add preprocessing parameter for screen content 2014-03-28 10:06:42 +08:00
sijchen
a60af6a750 add function pointer 2014-03-28 09:09:21 +08:00
sijchen
59f243b487 Adjust function interface and add void function for further coworking, adjust test accordingly 2014-03-26 16:52:53 +08:00
sijchen
bbe016543f Add basic cross search functions and its unit tests 2014-03-26 16:23:44 +08:00
ruil2
6b3f89d582 move some common functions to common.cpp and add some functions in common 2014-03-25 15:35:55 +08:00
sijchen
99f3bd69c4 Add checking directional MV in ME initial point 2014-03-24 14:16:16 +08:00
Martin Storsjö
b6883b4ef8 Make the iRCMode field use the RC_MODES type instead of plain int
This makes it even clearer for users about how to set this field.
2014-03-21 09:19:30 +02:00
Martin Storsjö
2bc8e61fcf Move the RC_MODES enum to the public header
This allows users to know what values to set for the iRCMode
parameter.
2014-03-21 09:18:17 +02:00
Licai Guo
65e8560dc7 Merge pull request #560 from ruil2/encoder_nal
add uiMaxNalSize to support the maximum nal size setting
2014-03-21 12:52:32 +08:00
Licai Guo
7a29b1f55a Merge pull request #549 from lyao2/rc_tune
RC LOWBR mode merge
2014-03-21 09:15:18 +08:00
ruil2
fd2c950778 add uiMaxNalSize to support the maximum nal size setting 2014-03-21 08:59:38 +08:00
Licai Guo
58966cb2e8 Merge pull request #558 from ruil2/encoder_level
add leve parameter, update profile and usagetype type
2014-03-20 17:16:40 +08:00
ruil2
e6c072b364 add leve parameter, update profile and usagetype type 2014-03-20 17:02:32 +08:00
sijchen
0ea480323e expand MVD table and rename some macros 2014-03-20 16:56:43 +08:00
ruil2
258185f8c2 add maxbitrate parameter 2014-03-20 14:30:20 +08:00
lyao2
071254748f avoid QP sudden fluctates 2014-03-20 13:13:32 +08:00
lyao2
4bc881c3ae RC LOWBR mode merge 2014-03-20 09:26:16 +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