Commit Graph

246 Commits

Author SHA1 Message Date
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
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
Martin Storsjö
e392932ad2 Initialize sSpatialLayers[0] in SEncParamExt for GetDefaultParams 2014-03-03 10:32:20 +02:00
volvet
775eebaf36 refine build spatial list in processing 2014-03-03 14:04:19 +08:00
Ethan Hugg
6e9df66272 Merge pull request #369 from sijchen/mt_refactor3
[Encoder] remove macros to clear codes
2014-02-28 08:28:18 -08:00
volvet
4808eca022 update comments on welsEncoderEncodeExt 2014-02-28 15:27:54 +08:00
volvet
4c951aab83 refine welsEncoderEncodeExt 2014-02-28 15:13:38 +08:00
sijchen
10a4fb04c7 remove macros to clear codes 2014-02-28 14:54:11 +08:00
Martin Storsjö
6021ff3908 Refactor initializing defaults in a SEncParamExt to a separate function 2014-02-26 22:03:56 +02:00
Martin Storsjö
e239d9fddc Fix a typo in a function pointer name 2014-02-26 21:26:54 +02:00
ruil2
c79e78c4fb cleanup encoder parameters 2014-02-24 10:40:17 +08:00
Martin Storsjö
b31049df89 Respect the iDLayerQp parameter in SEncParamExt
Previously the value set in the parameter struct was ignored
completely.
2014-02-23 00:14:39 +02:00
Martin Storsjö
08c07db3c6 Respect the loop filter disabling encoder parameter
Previously the loop filter was unconditionally enabled
regardless of what encoder parameter was set. If using
SEncParamBase instead, the loop filter was always disabled.
2014-02-23 00:14:39 +02:00
Martin Storsjö
8b7fb36f39 Set missed fields in ParamBaseTranscode
Previously, these fields kept whatever value was set by
FillDefault. The corresponding fields were set properly within
sSpatialLayers, but the fields within the main struct were left
with the default values.

This doesn't change the hashes in the unit test, since these
fields don't seem to be used in the produced bitstream at all.
2014-02-23 00:14:39 +02:00
volvet
2bdf6d3736 Merge pull request #325 from sijchen/writenal_refactor3
add encoder error code and refactor WelsWriteNal
2014-02-21 08:41:02 +08:00
sijchen
e45e859473 Squashed merge from writenal_refactor2 2014-02-20 14:50:04 +08:00
volvet
e565e50d4d add missed namespace for encoder, remove un-used file 2014-02-20 14:33:03 +08:00
Martin Storsjö
7acb6cd4d0 Remove the duplicated IWelsVP.h file
Instead have the encoder include it directly from the processing
library.

Both copies of the files were mostly identical so far.
2014-02-19 15:00:49 +02:00
Martin Storsjö
3532781556 Mark source parameters to MC functions as const 2014-02-19 10:19:56 +02:00
Martin Storsjö
1a1b78e9c5 Remove unnecessary declarations of static functions
These functions don't need to be declared in advance at all.
2014-02-19 09:25:27 +02:00
ruil2
dd93aa90b2 Merge pull request #290 from volvet/develop_b
Refactor CWelsPreProcess
2014-02-19 10:18:56 +08:00
Martin Storsjö
80f5aa216a Don't copy out the SEncParamBase, manually read the individual fields instead 2014-02-18 22:51:53 +02:00
Martin Storsjö
b6502a5406 Respect the bEnableRc field in SEncParamExt 2014-02-18 22:51:53 +02:00
Martin Storsjö
f432ddeea8 Remove a field from SWelsSvcCodingParam that already exists in SEncParamExt 2014-02-18 22:51:53 +02:00
Martin Storsjö
bcd57f412a Make Param*Transcode take a const reference
There is no need to modify the caller's struct.
2014-02-18 22:51:53 +02:00
volvet
592665a21d Merge branch 'master' of https://github.com/cisco/openh264 into develop_b 2014-02-18 15:34:06 +08:00
ruil2
8e8972b6e8 fix build fail on osx 2014-02-18 15:16:10 +08:00
volvet
5fe3b6e362 update to the last commit: interface change 2014-02-18 14:00:42 +08:00
ruil2
35fa429fb0 encoder interface update step1 2014-02-18 09:51:47 +08:00
volvet
bb354d7c13 name pre-process steps 2014-02-17 14:41:37 +08:00
volvet
600a79bea6 correct code style 2014-02-17 11:46:52 +08:00
volvet
475309307c move spatial picture related variable to CWelsPreProcess 2014-02-17 11:35:52 +08:00
volvet
488482811c add update spatial pictures method too CWeslPreProcess 2014-02-17 10:53:46 +08:00
volvet
0a5024d176 move alloc spatial picture and free spatial picture to CWelsPreProcess 2014-02-17 10:24:56 +08:00
volvet
7f59e2f8d9 use forward declaration to replace type cast 2014-02-14 16:50:13 +08:00
volvet
d81f3d5037 Merge pull request #279 from sijchen/sad_fix2
fix the range of SAD
2014-02-11 10:32:58 +08:00
Ethan Hugg
8b8e0d4b3e Merge pull request #274 from mstorsjo/typedef-cleanup
Remove typedefs for standard C++ types
2014-02-10 10:46:12 -08:00
Ethan Hugg
1e549e6f9a Merge pull request #271 from mstorsjo/merge-asm-headers
Merge declarations of shared asm functions into the comon library
2014-02-10 10:40:34 -08:00
Ethan Hugg
007f5ba773 Merge pull request #258 from mstorsjo/endian-cleanup
Avoid endian-specific code
2014-02-10 10:36:05 -08:00
Martin Storsjö
80862eec77 Use the C++ constants true/false instead of defining our own
TRUE/FALSE has intentionally been left in use for the few
platform specific APIs that define these constants themselves
and expect them to be used, for consistency.
2014-02-10 08:06:37 +02:00
Martin Storsjö
f2bd22acd5 Use char instead of str_t 2014-02-10 08:06:37 +02:00
Martin Storsjö
2b77fe7f49 Use bool instead of bool_t
bool is one of the built in, standard types in C++, there's no need
for a typedef for it.
2014-02-10 08:05:09 +02:00
Martin Storsjö
17d7b5d72e Use bool_t instead of BOOL_T
One bool typedef is already more than enough, two is too many.
2014-02-10 08:05:09 +02:00
Martin Storsjö
0f7a958ce3 Move declarations of functions in mc_chroma/luma.asm into a header in common 2014-02-10 08:05:02 +02:00
Martin Storsjö
ad209c2d14 Move declarations of functions in expand_picture.asm into a header in common 2014-02-10 08:05:02 +02:00
Martin Storsjö
e66ad9ab86 Remove the real32_t typedef
The float type is defined in standards and is portably available
on all supported compilers and platforms.
2014-02-08 14:12:03 +02:00
Martin Storsjö
ba6bf7da18 Consistently use inline instead of __inline
This seemed to have been missed in 109fecc.
2014-02-08 14:08:46 +02:00
Martin Storsjö
21687726d0 Avoid requiring byteswapping functions
Instead of byteswapping a 32 bit word and writing it out as a
whole (which could even possibly lead to crashes due to
incorrect alignment on some platforms), write it out explicitly
in the intended byte order.

This avoids having to set a define indicating the endianness.
2014-01-30 10:16:25 +02:00
Martin Storsjö
66c39a4fd4 Remove the array_stack_align.h header from the encoder lib
All of these macros are already available in the common
macros.h header. Unify all the macros to be named ENFORCE_*
instead of mixed FORCE/ENFORCE.
2014-01-29 22:07:52 +02:00
Ethan Hugg
4334812eee Merge pull request #235 from mstorsjo/merge-ls-defines
Merge the ls_defines.h headers into the common sub-library
2014-01-27 14:10:00 -08:00
Ethan Hugg
5616ddb3a5 Merge pull request #242 from mstorsjo/simplify-debug-file-locations
Simplify debugging code by always writing trace files to the current directory
2014-01-27 13:04:29 -08:00
Martin Storsjö
3559f425b4 Consistently use the compat wrappers for file IO
As long as WelsFileHandle* is equal to FILE* this doesn't matter,
but for consistency use the WelsF* functions for all handles
opened by WelsFopen, and use WelsFileHandle* as type for it
instead of FILE*.
2014-01-27 22:49:41 +02:00
Martin Storsjö
98614924e2 Remove the now meaningless field sTracePath 2014-01-27 22:37:11 +02:00
Martin Storsjö
a44808e276 Merge the ls_defines.h headers into the common sub-library 2014-01-27 14:14:41 +02:00
Martin Storsjö
11bdd8adad Move the measure_time.h header to the common library
Both encoder and decoder versions were functionally equivalent,
but I picked the decoder version (but added the static inline
keywords to it) since the encoder one was quite messy with a lot
of commented out code.
2014-01-27 12:58:23 +02:00
volvet
33fe2b5883 Merge pull request #225 from mstorsjo/simplify-ifdefs
Simplify ifdefs in measure_time.h
2014-01-27 00:14:44 -08:00
Martin Storsjö
30bcfea6b8 Simplify ifdefs in measure_time.h
Instead of using "defined(MSC_VER) || defined(__MINGW32__)" to
indicate the windows platform, just check for the _WIN32 define
instead.

Also remove an unused codepath - the removed codepath would
only be used under the condition
"(defined(MSC_VER) || defined(__MINGW32__)) && !defined(_WIN32)",
and I'm not aware of any environment with MSVC or MinGW that
doesn't define _WIN32, thus this codepath never was used.
2014-01-27 08:08:23 +02:00
Martin Storsjö
2f5f25b7e3 Merge the encoder/decoder crt_util_safe_x.h into the common lib 2014-01-27 08:03:03 +02:00
Martin Storsjö
44dfad2217 Make the function signatures actually match when used as function pointer
Hiding the function signature mismatch with a cast can lead to
more concrete breakage being missed.
2014-01-24 14:51:44 +02:00
Martin Storsjö
325dd1ce32 Make a function typedef actually use the right type
All functions that are assigned to function pointers with this
typedef (WelsHadamardQuant2x2Skip_c and WelsHadamardQuant2x2Skip_mmx)
use int32_t instead of BOOL_T for the return value.
2014-01-24 14:50:31 +02:00
volvet
277242b3a0 remove MEMORY_REQUEST_ALIGN_BYTES 2014-01-23 17:21:13 +08:00
ruil2
0a5f4354e9 minor fixes for writting format 2014-01-22 16:09:20 +08:00
ruil2
4fd3bafa65 update Max GOP size and minor fixes for early return 2014-01-22 15:22:58 +08:00
Martin Storsjö
d1a6929516 Fix building of macos bundle loading code on 64 bit 2014-01-21 15:00:56 +02:00
Martin Storsjö
cee3329ff0 Add a runtime option for controlling frame skipping 2014-01-17 12:39:33 +02:00
sijchen
49c24646a9 fix the range of SAD 2014-01-17 13:55:03 +08:00
Ethan Hugg
b1fc94e314 Merge pull request #134 from mstorsjo/encode-sps-pps
Add an encoder method for encoding the SPS/PPS without encoding a frame
2014-01-14 15:31:18 -08:00
Martin Storsjö
11394f492d Remove accidentally added const for plain non-pointer function parameters
This was accidentally added in 61117c85 when the pointer
parameters were made const.
2014-01-13 12:14:43 +02:00
Martin Storsjö
2766215545 Add an encoder method for encoding the SPS/PPS without encoding a frame
This is useful if using a muxer that requires the SPS/PPS to be
available before the first frame is encoded.
2014-01-11 13:58:56 +02:00
Martin Storsjö
6412884211 Mark some read-only global tables const 2014-01-10 23:48:53 +02:00
Martin Storsjö
61117c85d8 Mark pointers to quantization functions const where possible 2014-01-10 23:48:35 +02:00
Licai Guo
77fd9aa4f0 merge macros.h to common/macros.h 2014-01-09 15:41:24 +08:00
ekr
61f1bac9ff Merge pull request #119 from sijchen/merge6
complete the encoder interface of bit rate and frame rate updating
2014-01-08 17:39:08 -08:00
sijchen
4999b816ab complete the encoder interface of bit rate and frame rate updating 2014-01-09 09:20:35 +08:00
Licai Guo
f38111d76b file a new commit
Squashed commit of the following:

commit 26be4c66686d2d75ba1eb381ae562d30474429b2
Merge: 91bde82 8df0566
Author: Licai Guo <guolicai@gmail.com>
Date:   Wed Jan 8 16:56:49 2014 -0800

    Merge remote-tracking branch 'upstream/master' into move_to_common

    Conflicts:
    	codec/common/targets.mk
    	codec/console/dec/targets.mk
    	codec/decoder/targets.mk
    	codec/encoder/targets.mk
    	codec/processing/targets.mk

commit 91bde8209dad40eaa0b26cc75467e4ce52b4c8ae
Merge: c827054 cc2ffee
Author: Licai Guo <guolicai@gmail.com>
Date:   Tue Jan 7 20:16:11 2014 -0800

    Merge remote-tracking branch 'upstream/master' into move_to_common

commit c8270543fab8e40cb4aebf62d7646068afe19484
Author: Licai Guo <guolicai@gmail.com>
Date:   Mon Jan 6 19:12:39 2014 -0800

    enable WelsScan4x4DcAc_ssse3

commit c8d2823d54e54cab146098302441ef44a4638382
Author: Licai Guo <guolicai@gmail.com>
Date:   Mon Jan 6 18:46:06 2014 -0800

    remove trailing white spaces

commit 39866a9cf54db6120aabd6a01afd4aedbead8af0
Author: Licai Guo <guolicai@gmail.com>
Date:   Mon Jan 6 18:06:10 2014 -0800

    move common code(deblocking and cpu) to common, rename decoder's
    Intra-prediction functions prefix.
2014-01-08 17:03:00 -08:00
Ethan Hugg
4033940ba7 Merge pull request #105 from mstorsjo/msvc-disable-inline-asm-on-arm
Use MSVC inline assembly only on (32-bit) X86
2014-01-07 13:13:05 -08:00
Ethan Hugg
057d3e507b Merge pull request #100 from mstorsjo/trailing-whitespace-cpp-comments
Remove trailing whitespace in comments
2014-01-06 09:33:52 -08:00
Martin Storsjö
4a08781c18 Use MSVC inline assembly only on (32-bit) X86
Currently this used the _MSC_VER && !WIN64 to enable the inline
assembly, which still tried to use this code on windows on arm.
Using _MSC_VER && _M_IX86 is enough since _M_IX86 is defined only
when targeting 32 bit x86, not for x64.
2014-01-05 19:20:20 +02:00
Martin Storsjö
790110b2ce Remove commented out pragmas 2014-01-05 15:04:34 +02:00
Martin Storsjö
d3ee1de5ac Remove trailing whitespace in comments
The astyle cleanup keeps trailing whitespace within comments,
but the whitespace here is not significant nor intentional
and thus should be removed.
2014-01-05 14:53:21 +02:00
volvet
ec84f4bcc9 resolve conflict 2014-01-03 14:49:45 +08:00
Martin Storsjö
cf59a34464 Don't use include guards with leading underscores
Defines with leading underscores are reserved.

This fixes issue #10.
2013-12-29 00:13:34 +02:00
V
7fa09903cf Add MinGW platform makefile and related source changes 2013-12-23 21:42:31 +01:00
licaiguo
077ffed5ea Add Windows 64-bit build to VS project files 2013-12-15 15:18:19 +08:00
Licai Guo
ac6828f4fa Enable 64-bit build on Linux & Mac 2013-12-14 20:37:33 -08:00
Ethan Hugg
ff6b669176 Pretty printed the C++ code with astyle 2013-12-12 14:21:12 -08:00
Ethan Hugg
70e5e62f3d Initial Commit 2013-12-09 04:51:09 -08:00