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ö
fc260b39e0
Remove the unused FORMAT_COFF define
...
Nothing in the project currently sets FORMAT_COFF - the other generic
branch works just fine on windows.
2014-03-16 17:54:55 +02:00
Martin Storsjö
eb238e6549
Use the SIGN_EXTENSION macro where possible
...
This shortens the x86 assembly by 134 lines in total.
2014-03-16 17:54:24 +02:00
Martin Storsjö
91e5838621
Indent all WELS_ASM_FUNC_BEGIN properly
...
By having all of them start at the start of the line, the code
is more consistent and readable.
2014-03-16 12:01:54 +02:00
volvet
e654bf6b7f
Merge pull request #490 from ruil2/encoder_slice_auto
...
fix dump file issue
2014-03-16 15:41:26 +08:00
volvet
1c3e87dd3f
Merge pull request #505 from mstorsjo/x86-asm-constants
...
Format x86 assembly constants in a yasm compatible manner
2014-03-16 15:37:16 +08:00
volvet
ac990fdc38
Merge pull request #507 from mstorsjo/more-x86-asm-args
...
Add defines for argument 11 and 12 in asm_inc
2014-03-16 10:21:35 +08:00
volvet
e606bae0e9
Merge pull request #504 from mstorsjo/fix-function-name-typo
...
Fix a typo, Smple -> Sample
2014-03-16 10:18:03 +08:00
Martin Storsjö
d45e624cd4
Simplify code by using the arg11 and arg12 defines
2014-03-15 14:42:27 +02:00
Martin Storsjö
c82f548e6f
Add defines of arg11 and arg12 in asm_inc.asm
2014-03-15 14:42:07 +02:00
Martin Storsjö
ce8da27287
Format x86 assembly constants in a yasm compatible manner
...
This is similar to what was done in a6463be0cc
- yasm requires
these constants to have a zero after $.
2014-03-15 14:38:28 +02:00
Licai Guo
6f2b98975e
Merge pull request #502 from mstorsjo/fix-macro-indentation
...
Fix the indentation of some nasm macros
2014-03-15 07:16:37 +08:00
Martin Storsjö
f4fdb15397
Fix a typo, Smple -> Sample
2014-03-14 23:30:09 +02:00
Martin Storsjö
4d120781c1
Fix the indentation of some nasm macros
2014-03-14 22:26:33 +02:00
Martin Storsjö
cde30c155b
Avoid clobbering the registers q4-q7 in DeblockingBSCalcEnc_neon
...
Remap q5 to q8, q6 to q9, q7 to q10 and q8 to q11, and push
q4 to the stack.
This was missed previously since the codec unittest doesn't
test encoding with loop filter enabled yet.
2014-03-14 22:22:28 +02:00
Martin Storsjö
b3d04d88a0
Check for the right function pointer
...
This code checked whether one function pointer was non-null,
but the went on to call a different function pointer. Check
for the one that actually was called.
2014-03-14 22:20:40 +02:00
volvet
6da9a9e5c8
Merge pull request #489 from sijchen/me_refactor22
...
refactor ME for easier adding other search methods
2014-03-14 17:53:10 +08:00
huili2
b1f596fd69
remove BASE_MB related code
2014-03-14 02:03:41 -07:00
Martin Storsjö
9199798f22
Fix a typo in a macro name, EXTENTION -> EXTENSION
2014-03-14 10:13:18 +02:00
Martin Storsjö
2bce50283f
Fix a mismatched ifdef comment
...
This is an ifdef block for HAVE_NEON.
2014-03-14 10:01:18 +02:00
unknown
94f8c351ca
fix dump file issue
2014-03-14 15:13:24 +08:00
sijchen
6c3d83a8ac
refactor ME for easier adding other search methods
2014-03-14 15:04:35 +08:00
Licai Guo
f589c580eb
clean redundant checks in decoder
2014-03-13 23:56:54 -07:00
Licai Guo
8492aac917
Merge pull request #486 from huili2/nzc_bug_fix
...
nzc bug fix and clear
2014-03-14 13:11:45 +08:00
huili2
734e60aeeb
add according to review opinion
2014-03-13 20:21:10 -07:00
Licai Guo
5bffb627d6
nzc bug fix and clear
2014-03-13 19:31:28 -07:00
volvet
6714b8ae99
Merge pull request #463 from mstorsjo/dont-clobber-neon-registers
...
Avoid clobbering the neon registers q4-q7
Review and verified by zhilwang
2014-03-14 10:28:55 +08:00
volvet
fc5c48830a
fix the condition of scene change flag and comments
2014-03-14 09:53:24 +08:00
volvet
c8761c08ae
use large/medium/similar to define scene change result
2014-03-13 10:43:20 +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
Licai Guo
3d6fdfee3d
Merge pull request #480 from volvet/fix-idr-interval-issue
...
fix idr interval issue
2014-03-12 19:23:51 +08:00
Martin Storsjö
efe32b7900
Make arm assembly labels always start from the beginning of the line
...
A few labels were misformatted.
2014-03-12 12:01:01 +02:00
volvet
8b907c18fd
fix idr interval issue
2014-03-12 17:38:25 +08:00
sijchen
cf37fa3ef4
Merge pull request #476 from ruil2/encoder_slice_auto
...
modify the parameter verification for SM_AUTO_SLICE mode, review at: https://rbcommons.com/s/OpenH264/r/184/
2014-03-12 16:41:57 +08:00
volvet
ce448a21d7
fix double free crash in encoder
2014-03-12 16:21:33 +08:00
volvet
4d74beb928
fix encode crash
2014-03-12 15:46:13 +08:00
ruil2
c7f2a0b7f6
3Author: ruil2 <ruil2@cisco.com>
...
modify the parameter verification for SM_AUTO_SLICE mode -- uiSliceNum
iis ignored
2014-03-12 10:44:13 +08:00
Ethan Hugg
cece1fe2cf
Merge pull request #473 from mstorsjo/arm-non-executable-stack
...
Mark the stack as non-executable in the arm assembly
2014-03-11 09:40:49 -07:00
Martin Storsjö
dbdf8fbe9d
Remove something that looks like a personal todo note from the Android makefiles
2014-03-11 14:27:14 +02:00
Martin Storsjö
52e8973869
Mark the stack as non-executable in the arm assembly
...
Otherwise the linker is forced to enable an executable stack for
executables that the code is linked into.
2014-03-11 14:24:16 +02:00
Licai Guo
b773ec60ab
Merge pull request #472 from mstorsjo/android-remove-mkdir-workaround
...
Remove a dubious/unnecessary workaround for an issue in a nonstandard toolchain
2014-03-11 17:30:00 +08:00
Martin Storsjö
966cc97496
Remove a dubious/unnecessary workaround for an issue in a nonstandard toolchain
...
There's no requirement to work with the Intel NDK. The NDK build
files don't even need to create any cpufeatures subdirectory since
all of the cpufeatures library is handled within the normal build
system. Finally, the encoder makefile tried to create a directory
for "welsdecdemo", not anything for "welsencdemo".
Thus, if this really was necessary, it would already have been noticed
that it missed an entry for "welsencdemo". Therefore, remove this
hack/workaround.
2014-03-11 10:09:17 +02:00
ruil2
7c8ce799c0
fix SM_FIXEDSLCNUM_SLICE bug, add SM_AUTO_SLICE mode
2014-03-11 10:23:46 +08:00
Martin Storsjö
c011890764
Push clobbered neon registers on the stack
...
According to the calling convention, the registers q4-q7 should be
preserved by functions. The caller (generated by the compiler) could
be using those registers anywhere for any intermediate data.
Functions that use more than 12 of the qX registers must push
the clobbered registers on the stack in order to be able to restore them
afterwards.
In functions that don't use all 16 registers, but clobber some of
the callee saved registers q4-q7, one or more of them are remapped
to reduce the number of registers that have to be saved/restored.
This incurs a very small (around 0.5%) slowdown in the decoder and
encoder.
2014-03-10 22:07:36 +02:00
Martin Storsjö
811c647c0e
Remap registers to avoid clobbering the neon registers q4-q7
...
According to the calling convention, the registers q4-q7 should be
preserved by functions. The caller (generated by the compiler) could
be using those registers anywhere for any intermediate data.
Functions that use 12 or less of the qX registers can avoid
violating the calling convention by simply using other registers instead
of the callee saved registers q4-q7.
This change only remaps the registers used within functions - therefore
this does not affect performance at all. E.g. in functions using
registers q0-q7, we now use q0-q3 and q8-q11 instead.
2014-03-10 22:07:25 +02:00
Ethan Hugg
3627875986
Merge pull request #456 from mstorsjo/use-common-threadlib
...
Make the processing lib use mutexes from WelsThreadLib from the common library
2014-03-10 09:45:51 -07:00
Licai Guo
731a1466e6
Merge pull request #469 from huili2/svc_sh_bug_fix
...
modify and correct SVC slice header parse
2014-03-10 22:09:44 +08:00
Licai Guo
091315f84c
modify and correct SVC slice header parse
2014-03-10 02:37:41 -07:00
ruil2
44a49b1fef
Merge pull request #458 from mstorsjo/android-threading
...
Don't try to set thread scope and scheduling policy on android
2014-03-10 17:26:00 +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
cbc2b9c986
keep the unrelated changed line
2014-03-10 16:11:27 +08:00
ruil2
e99df3377d
Merge pull request #460 from mstorsjo/add-const
...
Mark pointers as const where possible in vaacalc
2014-03-10 15:35:57 +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
2539d6e447
Merge pull request #462 from mstorsjo/fix-typos
...
Fix two typos in variable and macro names
2014-03-10 15:25:20 +08:00
ruil2
ba6b2a8d62
use global trace in encoder
2014-03-10 15:22:40 +08:00
Licai Guo
4cc059bf5b
Merge pull request #461 from mstorsjo/fix-asm-comments
...
Remove unnecessary/stray keywords in function signature comments in x86 assembly
2014-03-10 12:29:22 +08:00
Licai Guo
b2dafa5a92
fix WELS_READ_VERIFY
2014-03-09 18:12:53 -07:00
Martin Storsjö
cc7b81f3c3
Fix a typo in arm assembly, LORD -> LOAD
2014-03-09 19:19:38 +02:00
Martin Storsjö
e31ba7a775
Fix a typo, "heigth" -> "height"
2014-03-09 19:19:37 +02:00
Martin Storsjö
7c435ad295
Remove a stray inline keyword in a function signature comment in x86 assembly
...
Assembly functions written in external assembly files is obviously
not inlined.
2014-03-09 19:18:03 +02:00
Martin Storsjö
8d6b368a1c
Remove unnecessary stray __cdecl annotations in function signature comments in x86 assembly
2014-03-09 19:18:02 +02:00
Martin Storsjö
2a23a508e1
Mark pointers as const where possible in vaacalc
2014-03-09 18:52:17 +02:00
Martin Storsjö
1c6a910c11
Don't try to set thread scope and scheduling policy on android
...
These APIs aren't implemented on android.
2014-03-08 20:37:42 +02:00
Martin Storsjö
fd90d14ece
Enable threading when building for iOS using the project files
...
This was already enabled when building the library for iOS using
the makefiles.
2014-03-08 13:06:05 +02:00
Martin Storsjö
45c21931de
Add NO_DYNAMIC_VP when building the encoder lib for the iOS simulator
...
This was previously only added to builds for actual devices.
2014-03-08 13:05:45 +02:00
Martin Storsjö
c5390521ec
Make the processing lib use mutexes from WelsThreadLib from the common library
...
This requires always building the WelsMutex* functions,
even if MT_ENABLED isn't set.
2014-03-08 12:46:25 +02: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
09b45e3ef9
Merge pull request #440 from licaiguo/refine-pps-sps
...
Refine pps sps
2014-03-07 11:02:02 -08: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
volvet
f62492716f
Merge pull request #449 from mstorsjo/avoid-opaque-pointer
...
Make ParamValidationExt use the actual type instead of a void pointer
2014-03-08 00:27:47 +08:00
Martin Storsjö
014f4d8250
Merge the slice mode comments with the enum
2014-03-07 14:53:29 +02: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ö
555bf6340f
Remove a misleading cast
...
uiSliceSizeConstraint is not of the SliceMode type, but is a normal
int.
2014-03-07 14:49:33 +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
volvet
355bbacc2d
Merge pull request #443 from mstorsjo/rerun-mktargets
...
Rerun mktargets.sh
2014-03-07 18:25:20 +08:00
volvet
3382e8f8c4
Merge pull request #441 from mstorsjo/remove-stray-macro-parameters
...
Remove unused/undeclared arm assembly macro parameters
2014-03-07 18:24:33 +08:00
Martin Storsjö
64b4556d13
Rerun mktargets.sh
...
This fixes inconsistent indentation of one line, caused by
manually editing one of the targets.mk files.
2014-03-07 11:30:19 +02:00
Martin Storsjö
5b8ee37162
Merge WelsThreadDestroy into WelsThreadJoin
...
Now calling WelsThreadJoin is enough to finish and clean up
the thread on all platforms.
This unifies the thread cleanup code between windows and unix.
Now all of the threading code should use the exact same codepaths
between windows and unix.
2014-03-07 10:51:28 +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
Martin Storsjö
474deacd7a
Remove the now unused thread cancellation support
...
This makes the thread library build on android - android does
not have pthread_cancel.
2014-03-07 10:51:14 +02:00
Martin Storsjö
baaa38737e
Use pExitEncodeEvent instead of thread cancellation on unix as well
...
This works now that we've got a suitably working implementation
of WelsMultipleEventsWaitSingleBlocking.
2014-03-07 10:49:39 +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
1b9aae8434
Merge pull request #439 from zhilwang/mc-arm-asm
...
mv mc_neon.S to common,add MC arm code to encoder
2014-03-07 16:36:48 +08:00
ruil2
b3c45946ff
modify typing format
2014-03-07 16:29:12 +08:00
Martin Storsjö
c87bb2b449
Remove unused/undeclared arm assembly macro parameters
...
The SAD_VAR_16_END macro only takes 3 parameters, never 4,
and SAD_SSD_16_END never is called with more than 3 parameters
either.
2014-03-07 10:26:54 +02:00
Licai Guo
e5f36822a9
Update targets.mk files
2014-03-07 16:22:59 +08:00
Licai Guo
d986c27b9d
remove mc_neon.S from encoder
2014-03-07 16:11:36 +08:00
ruil2
f0c6c2b318
Merge branch 'master' of https://github.com/cisco/openh264 into encoder_update
2014-03-07 15:59:23 +08:00
Licai Guo
8ad9e0b60d
use temp buffer to store new arrived PPS/SPS
2014-03-06 22:05:12 -08:00
Licai Guo
8a3518f7be
set bAuReadyFlag to true when we meet a PPS
2014-03-06 21:50:31 -08:00
Licai Guo
71467f948a
mv mc_neon.S to common,add MC arm code to encoder
2014-03-07 12:18:58 +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
volvet
14f5518e6a
Merge pull request #437 from mstorsjo/fix-arm-encoder-android
...
Fix building arm encoder assembly for android
2014-03-07 10:41:34 +08:00
ruil2
594fc4fe7b
dump file refactor
2014-03-07 10:23:25 +08:00
volvet
b3fa8dd334
Merge pull request #418 from mstorsjo/ios-neon-detection
...
Use the __ARM_NEON__ built-in compiler define for identifying neon capability on iOS
2014-03-07 09:15:17 +08:00
Ethan Hugg
2f2801dc78
Merge pull request #434 from mstorsjo/threadlib-core-count-android
...
Use the cpu-features NDK library for detecting the number of cores in WelsThreadLib
2014-03-06 08:02:28 -08:00
Martin Storsjö
11bdebb12c
Explicitly enable the UAL syntax when using gnu tools
...
Arm assembly has got two variants of the syntax, the old legacy
syntax, and the new modern UAL (unified assembly language) syntax.
Most arm assembly is the same in the both syntaxes, but some
uncommon cases change the order of suffixes - the "subscs"
instruction would be written "subcss" in the old syntax.
The apple tools default to UAL, while the GNU tools (e.g. in
android) require you to specify ".syntax unified" to enable the
new syntax. When enabling the new syntax with the GNU tools, some
cases of "sub r0, r1, lsl #1 " needs to be written explicitly as
"sub r0, r0, r1, lsl #1 ", handled in the previous commit.
This allows using the same, modern syntax for things like subscs,
without needing to have two alternate forms of writing it.
2014-03-06 16:21:54 +02:00
Martin Storsjö
c0043f7053
Use the three-operand form of add/sub with shift
...
When using unified syntax, the two operand form with a shift
isn't allowed.
2014-03-06 16:21:54 +02:00
Martin Storsjö
f1502c26e3
Don't use WELS_ASM_FUNC_END in the middle of a function
...
WELS_ASM_FUNC_END declares the end of the function, and needs
to be paired with WELS_ASM_FUNC_BEGIN.
2014-03-06 16:21:54 +02:00
Martin Storsjö
8ba79262bf
Rename a function to avoid conflicts between almost duplicate neon functions
...
There's a different version of the same function in the encoder,
but they're not identical - the encoder version has got stricter
alignment requirements.
If someone can confirm that it is ok to use the function from the
encoder, pixel_sad_neon.S in processing could be deleted, and the
encoder version moved to codec/common instead.
2014-03-06 16:19:48 +02:00
Martin Storsjö
4e4bfcc1bc
Regenerate makefiles to include the encoder arm assembly
2014-03-06 16:11:54 +02:00
Martin Storsjö
45e059ec5f
Rename expand_picture.S to expand_picture_neon.S
...
This avoids ambiguity in the make based build system about
whether expand_picture.o should be built from expand_picture.S
or expand_picture.asm.
2014-03-06 16:11:40 +02:00
Martin Storsjö
ce4fa9e272
Correct the endif comment
...
The code block is about HAVE_NEON, not X86_ASM.
2014-03-06 15:43:04 +02: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
Martin Storsjö
276b585f03
Use the cpu-features NDK library for detecting the number of cores in WelsThreadLib
...
On arm, the exact same detection is done in WelsCPUFeatureDetect,
but in the x86 version of that function we use x86 cpuid for getting
the core count, and this is not available on all processors. For the
case when cpuid can't tell the core count, use the NDK function as
higher level API.
The thread lib itself doesn't build properly on android yet, but will
do so soon.
2014-03-06 15:28:59 +02:00
Martin Storsjö
d0a81355b0
Add support for using a separate "master event" in WelsMultipleEventsWait*Blocking
...
This allows making the WelsMultipleEventsWaitSingleBlocking
function work properly in unix, without polling. If a master
event is provided, the function first waits for a signal on
that event - once such a signal is received, it is assumed that
one of the individual events in the list have been signalled as
well. Then the function can proceed to check each of the semaphores
in the list using sem_trywait to find the first one of them that
has been signalled. Assuming that the master event is signalled
in pair with the other events, one of the sem_trywait calls
should succeed.
The same master event is also used in
WelsMultipleEventsWaitAllBlocking, to keep the semaphore values
in sync across calls to the both functions.
2014-03-06 15:03:59 +02:00
Martin Storsjö
de32455d87
Remove the timeout parameter from WelsMultipleEventsWaitSingleBlocking
...
All users of the function passed the value corresponding to
"infinite", and the (currently unused) unix implementation of it
only supported infinite wait as well.
2014-03-06 15:03:59 +02:00
Licai Guo
201ab42d7e
Merge pull request #431 from huili2/large_to_small_sps_bug
...
Large to small sps bug for issue #373
2014-03-06 16:51:59 +08:00
volvet
8cc332dea1
Merge pull request #432 from zhilwang/arm-asm
...
Arm asm
2014-03-06 16:50:56 +08:00
volvet
73452e0993
Merge pull request #429 from mstorsjo/simplify-ifdef-with-macro
...
Use a macro for conditionally logging based on ENABLE_TRACE_MT
2014-03-06 16:01:41 +08:00
Licai Guo
8a7a9195d9
remove unused function
2014-03-05 23:14:57 -08:00
Licai Guo
4260a9b2ba
remove CS and RS syntaxs for issue 373
2014-03-05 22:59:27 -08:00
Licai Guo
7bfe801874
Remove trailing space
2014-03-06 14:55:36 +08:00
Licai Guo
67534b0fc0
arm asm code refine.
2014-03-06 14:30:16 +08:00
Martin Storsjö
fd6f8a83b3
Use a macro for conditionally logging based on ENABLE_TRACE_MT
...
This avoids having an extra ifdef around every single WelsLog
call.
2014-03-06 08:06:34 +02: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
ruil2
a59c8ea04c
Merge pull request #428 from sijchen/read_para3
...
[Encoder Console] add new para reading to get accord with the new API design
2014-03-06 14:04:33 +08:00
sijchen
a4a8eddb04
add new para reading to get accord with the new API design
2014-03-06 13:48:18 +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
volvet
8beb3c8c09
Merge pull request #417 from mstorsjo/unify-event-init
...
Unify the interface for creating/deleting event objects
2014-03-06 09:13:13 +08:00
volvet
97376c6339
Merge pull request #413 from mstorsjo/remove-commented-code
...
Remove commented out, unused code
2014-03-05 22:13:35 +08:00
volvet
7ea70491c8
Merge pull request #411 from mstorsjo/arm-add-func-markers
...
Add .func/.endfunc markers in the arm assembly
2014-03-05 17:40:18 +08:00
Martin Storsjö
f384dde881
Add .func/.endfunc markers in the arm assembly
...
This adds information to debug builds.
This requires adding a separate definition of WELS_ASM_FUNC_END
for apple tools.
2014-03-05 11:25:51 +02:00
Licai Guo
eb3dd8f0ae
Merge pull request #416 from huili2/move_iTotalNumMbRec_to_pCtx
...
move iTotalNumMbRec from refpic to ctx
2014-03-05 17:12:43 +08:00
Licai Guo
e7cc8c2780
Add arm asm code for processing.
2014-03-05 16:54:05 +08:00
Martin Storsjö
ef7e05d47d
Use the __ARM_NEON__ built-in compiler define for identifying neon capability on iOS
...
This avoids having to hardcode the names of devices that don't
support neon.
The devices that don't support neon don't run the armv7 variants
of iOS binaries at all - they would need to be built for the armv6
architecture. (Building for armv6 isn't supported at all in
modern iOS SDKs.)
Therefore we can simply use the __ARM_NEON__ built-in compiler
define to check if NEON code is allowed in the current build,
and have the WelsCPUFeatureDetect function return flags accordingly.
The only thing this disallows is doing an armv6 build which would
optionally enable neon code at runtime if run on an armv7 capable
device, but since Apple allows you to build the same binary for
armv7 separately in the same app bundle, and since armv6 building
isn't even possible in the current iOS SDKs, this isn't really a loss.
This is in contrast to the android builds where the armv7 baseline
does not include NEON.
2014-03-05 09:47:05 +02: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
Martin Storsjö
4814d5828d
Use unnamed semaphores on linux
...
This avoids the risk of namespace collisions for named semaphores
(where the names are global for the whole machine), on platforms
where we strictly don't need to use the named semaphores.
2014-03-05 09:36:46 +02:00
Martin Storsjö
5480ffafdf
Use the WelsEventOpen interface with an event name on windows as well
...
This unifies the event creation interface, even if the event
name itself is unused on windows, allowing use the exact same
code to initialize events regardless of the actual platform.
Some ifdefs still remain in the event initialization code, since
some events are only used on windows.
2014-03-05 09:36:04 +02:00
volvet
e9395bbd35
remove un-supported mgs code
2014-03-05 15:17:07 +08:00
Martin Storsjö
04917cd13f
Remove commented out, unused code
...
Some few lines of commented out code is left, that might be useful
for debugging.
2014-03-05 08:50:59 +02: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
9e4ab64c73
move iTotalNumMbRec from refpic to ctx
2014-03-04 19:23:15 -08:00
Licai Guo
ced9e41b5d
Merge pull request #399 from volvet/refine-multi-layer-process
...
refine-multi-layer-process
2014-03-05 10:45:35 +08:00
Licai Guo
248f324c62
Add intra predictor arm asm code.
2014-03-05 10:25:15 +08:00
Licai Guo
efcee63692
Remove .DS_Store file.
2014-03-05 10:24:05 +08:00
Licai Guo
bb244d736b
Partly add arm asm code to encoder.
2014-03-05 10:24:05 +08:00
volvet
7150adc91b
Merge pull request #407 from mstorsjo/do-blocking-wait
...
Do a blocking wait with WelsMultipleEventsWaitSingleBlocking
2014-03-05 09:18:45 +08:00
Martin Storsjö
dae8f4b737
Exclude the arm assembly header as well
...
This avoids warnings about object files not containing any symbols.
2014-03-04 23:23:19 +02:00
Ethan Hugg
975a3e41bc
Merge pull request #404 from mstorsjo/arm-asm-type-func
...
Mark the arm asm labels as functions
2014-03-04 10:17:07 -08:00
Ethan Hugg
01a2f582c3
Merge pull request #401 from mstorsjo/android-arm-assembly
...
Enable the arm assembly in android builds
2014-03-04 09:50:07 -08:00
volvet
e61bd1b504
Merge pull request #408 from mstorsjo/exclude-asm-headers
...
Exclude assembly files that are used as headers
2014-03-04 21:07:42 +08:00
volvet
bc9ee5b145
Merge pull request #406 from mstorsjo/use-proper-define
...
Use the windows INFINITE define instead of manually casting -1 to uint32_t
2014-03-04 20:57:57 +08:00
Martin Storsjö
773cc4a797
Exclude assembly files that are used as headers
...
This avoids some warnings about object files not containing any
symbols.
2014-03-04 14:57:36 +02:00
Martin Storsjö
cf07d61f06
Do a blocking wait with WelsMultipleEventsWaitSingleBlocking
...
There is no point in doing a timed wait here - there's no work
that we can do if the wait timed out, and sleeping for 1 ms
inbetween doesn't help, it only adds potential extra latency
to reacting to threads that need more work to do.
2014-03-04 14:51:33 +02:00
Martin Storsjö
42592217c2
Use the windows INFINITE define instead of manually casting -1 to uint32_t
2014-03-04 14:47:25 +02: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
Martin Storsjö
e20930ef73
Mark the arm asm labels as functions
...
This fixes calling them from thumb code, on linux.
2014-03-04 11:23:04 +02:00
Martin Storsjö
d411d768b6
Add cpu feature detection for generic arm/linux
...
For platforms without runtime detection, assume whoever built it
with HAVE_NEON actually wanted it.
2014-03-04 10:18:30 +02:00
Martin Storsjö
9cf34e7615
Unify the interface for the different variants of WelsCPUFeatureDetect
...
The caller of the function should not need to know exactly which
implementation of it is being used.
For the variants that don't support detecting the number of cores,
the pNumberOfLogicProcessors parameter can be left untouched
and the caller will use a higher level API for finding it out.
This simplifies all the calling code, and simplifies adding
more implementations of cpu feature detection.
2014-03-04 10:18:30 +02:00
volvet
4d729c9418
get cpu cores for android
2014-03-04 15:50:41 +08:00
Martin Storsjö
1118dd4f71
Update the makefile generator to support .S arm assembly files
...
These are built if ASM_ARCH is set to arm.
2014-03-04 08:56:42 +02:00
Martin Storsjö
03e0dcd814
Convert the arm assembly sources to unix newlines
2014-03-04 08:42:28 +02:00
volvet
13d785ec6a
refine-multi-layer-process
2014-03-04 12:04:04 +08:00
volvet
d9a02d27f2
remove execute attribute of the arm asm files
2014-03-04 11:45:10 +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
f8b0cec68d
Merge pull request #387 from zhilwang/arm-asm
...
Arm asm
2014-03-04 11:08:17 +08:00
volvet
901b89f7ad
Merge pull request #376 from mstorsjo/simplify-x86-asm-makefiles
...
Simplify makefiles with respect to x86 assembly
2014-03-04 10:16:01 +08:00
Licai Guo
cdeb6449c6
remove unused declarations in as264_common.h
2014-03-03 17:42:47 -08:00
Licai Guo
83d0791163
Modify function name according latest cisco master
2014-03-04 09:18:18 +08:00
volvet
bc1850a54d
remove uiFrameIdxRc
2014-03-04 09:08:54 +08:00
Ethan Hugg
1eb688264b
Merge pull request #395 from mstorsjo/printf-64bit-macro
...
Use a standard macro for 64 bit printf conversion specifiers
2014-03-03 09:11:51 -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ö
3c7dde97ee
Use a standard macro for 64 bit printf conversion specifiers
...
This avoids duplicating the printf line with an ifdef every
time a 64 bit number needs to be printed.
2014-03-03 12:33:34 +02:00
volvet
c7d98a8fa3
Merge pull request #394 from ruil2/encoder_update
...
add timestamp in encoder interface --- review request#138
2014-03-03 17:31:48 +08:00
unknown
e0e7107ff1
add timestamp in encoder interface
2014-03-03 17:05:06 +08: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
Martin Storsjö
e392932ad2
Initialize sSpatialLayers[0] in SEncParamExt for GetDefaultParams
2014-03-03 10:32:20 +02:00
Licai Guo
21d6b3481f
Remove trailing space.
2014-03-03 16:05:07 +08:00
Licai Guo
7768cd0a98
Modify code style, remove trailing space.
2014-03-03 15:42:01 +08:00
volvet
775eebaf36
refine build spatial list in processing
2014-03-03 14:04:19 +08:00
ruil2
b552944453
fix sizeof() bug
2014-03-03 10:46:32 +08:00
volvet
e3bf5ced53
Merge pull request #371 from ruil2/encode_ret
...
add verification on return value -- review request #128
2014-03-03 10:27:26 +08:00
volvet
aa043fa4e5
Merge pull request #384 from licaiguo/check-spsid-ppsid
...
add checks for spsid and ppsid
2014-03-03 10:26:00 +08:00
Licai Guo
ba312b0b20
add checks for spsid and ppsid
2014-03-02 17:09:23 -08:00
ruil2
abdeb1951d
format update
2014-03-03 09:07:16 +08:00
volvet
a3f129d8cd
Merge pull request #382 from mstorsjo/avoid-overflow-in-timespec
...
Avoid overflow when populating a struct timespec
2014-03-03 09:05:27 +08:00
ruil2
23df8a9ff6
add video format support verification
2014-03-03 09:03:59 +08:00
volvet
3a602a382b
Merge pull request #379 from mstorsjo/simplify-emms-calling
...
Provide a no-op WelsEmms macro if X86_ASM is disabled
2014-03-03 09:03:41 +08:00
volvet
5be179e0aa
Merge pull request #378 from mstorsjo/fix-building-debug-code
...
Fix building a logging statement in debug code
2014-03-03 09:00:59 +08:00
volvet
e34a08c0da
Merge pull request #380 from mstorsjo/fix-debug-printing
...
Fix printing an event name for debugging
2014-03-03 08:58:30 +08:00
volvet
6c41cccb81
Merge pull request #377 from mstorsjo/threadlib-const-str
...
Add const to string parameters in WelsThreadLib
2014-03-03 08:53:00 +08:00
volvet
8c7e0a6ac6
Merge pull request #381 from mstorsjo/clarify-threading-comment
...
Clarify a comment in the threading code
2014-03-03 08:52:10 +08:00
Martin Storsjö
a96d83e762
Remove the broken WelsEventReset function
...
This function didn't work properly with named semaphores,
which are used in the unix codepaths.
Since it's unused, just remove it instead.
2014-03-03 00:00:17 +02:00
Martin Storsjö
b7db015a8c
Avoid overflow when populating a struct timespec
...
When adding the (dwMilliseconds % 1000) * 1000000 part
to ts.tv_nsec, the ts.tv_nsec field can grow larger than one
whole second. Therefore first add all of dwMilliseconds to
the tv_nsec field and add all whole seconds to the tv_sec
field instead - this way we make sure that the tv_nsec field
actually is less than a second.
2014-03-02 23:53:51 +02:00