Martin Storsjö
a344d100ae
Fix buffer size checks when appending using SNPRINTF/WelsSnprintf
...
Checking iBufferLeft > iBufferUsed does not make sense, since
this would stop writing into the buffer alredy after the buffer
is half full, when there is less space left than has been used.
The right check is iBufferLeft > 0.
2014-01-27 08:03:56 +02:00
Martin Storsjö
98bad4f2b3
Don't manually null terminate after calling SNPRINTF
...
The following pattern is unsafe on all platforms:
n = SNPRINTF(buf, ...);
buf[n] = '\0';
On windows, the _snprintf variants return a negative number
if the buffer was too small, thus buf[n] would be outside
of (before the start of) the buffer.
On other platforms, the C99 snprintf function returns the
total number of characters which would have been written if
the buffer had been large enough, which can be larger than
the buffer size itself, and thus buf[n] would be beyond the
end of the buffer.
The C99 snprintf function always null terminate the buffer.
These invocations of SNPRINTF are within !WIN32, so we can
be sure that the SNPRINTF call itself already null terminated
the buffer.
2014-01-27 08:03:56 +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
Ethan Hugg
36054ac2a2
Merge pull request #212 from varunbpatil/enc_core_cleanup
...
Removed unused header files in encoder core
2014-01-26 19:24:35 -08:00
Martin Storsjö
2963f4ab6e
Remove a hardcoded debug path specific to somebody's environment
...
Instead of using platform specific paths, just use the local
directory instead, reducing the amounts of ifdefs.
2014-01-26 15:22:41 +02:00
Varun B Patil
d809b7e9ee
Removed unused headers in encoder core
2014-01-26 11:28:17 +05:30
volvet
84f6602120
1 fix crash bug 963392, 2 update help print: the max supported gop size should be 8
2014-01-26 13:35:31 +08:00
Varun B Patil
7dbdfbcef8
Use correct format specifier to avoid compiler warnings
2014-01-26 00:47:50 +05:30
Varun B Patil
77f47edf3b
include ifdef guard
2014-01-25 18:08:15 +05:30
volvet
8420fd3454
Merge pull request #210 from mstorsjo/cleanup-macros
...
Cleanup the common/macros.h header
2014-01-25 01:05:27 -08:00
volvet
a1c491499f
Merge pull request #204 from mstorsjo/remove-dynamic-load-trace
...
Remove code for dynamically loading a trace library
2014-01-24 22:32:58 -08:00
Ethan Hugg
58c33b8ee8
Merge pull request #205 from mstorsjo/cleanup-trace
...
Remove the unused dllname parameter to the trace function
2014-01-24 10:46:51 -08:00
Martin Storsjö
89f2c8bf7c
Remove a duplicate median function
...
The decoder used WelsMedian while the encoder used WELS_MEDIAN.
The former has two different implementations, WELS_MEDIAN was
identical to the disabled version of WelsMedian.
Settle on using the same implementation for both decoder and
encoder - whichever version of the implementations is faster
should be used for both.
2014-01-24 15:57:11 +02:00
Martin Storsjö
7df69c1482
Remove an unnecessary field from generated makefiles
2014-01-24 15:02:40 +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ö
d1341554dd
Remove an unnecessary cast when setting function pointers
...
By removing the casts we make sure that the function signature
actually matches and isn't silenced by the cast.
2014-01-24 14:50:39 +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
Martin Storsjö
1f5d786d6a
Remove the unused dllname parameter to the trace function
2014-01-24 12:04:29 +02:00
Martin Storsjö
dd7911bfe7
Remove code for dynamically loading a trace library
...
No code exists within the project for building such a trace library.
This also fixes building on OS X with -Wno-deprecated-declarations
removed, since this code contained calls to deprecated functions
within #ifdef MACOS, which now are enabled when building on OS X.
2014-01-24 11:44:19 +02:00
Ethan Hugg
63c03b10b4
Merge pull request #194 from volvet/remove_MEMORY_REQUEST_ALIGN_BYTES
...
remove MEMORY_REQUEST_ALIGN_BYTES
2014-01-23 10:25:27 -08:00
Martin Storsjö
edc6aa8fa2
Only print detected cpu info when in debug mode
...
The ifdef guards from this block were (accidentally?) commented
out in ec84f4bc
.
2014-01-23 14:47:37 +02:00
volvet
277242b3a0
remove MEMORY_REQUEST_ALIGN_BYTES
2014-01-23 17:21:13 +08:00
Licai Guo
493c31f6a6
Merge pull request #174 from volvet/coverity_issue_fix
...
fix coverity issues 26973, 26974, 26975, 26976, 26972, 26980.
2014-01-22 23:50:47 -08:00
kali2
c0e72338c1
Merge pull request #188 from ruil2/MaxGOPSize_update
...
update Max GOP size and minor fixes for early return-- review request#59
2014-01-22 22:48:41 -08:00
Ethan Hugg
256cd0f610
Merge pull request #172 from volvet/win64_float_fix_for_enc_b
...
fix win64 float issue, enable AQ assembly
2014-01-22 17:25:03 -08:00
Ethan Hugg
691e8379b5
Merge pull request #184 from mstorsjo/c-interface-vtbl
...
Add a public C API to the library by mimicking the C++ ABI with a C struct
2014-01-22 08:11:40 -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ö
36f96cb766
Don't include the headers for dynamically loading the VP library if NO_DYNAMIC_VP is defined
...
bundleloader.h, which is included if MACOS is defined, defines
inline functions that reference bundle loading system functions,
which requires linking to the core foundation framework.
Avoid requiring linking to extra libraries/frameworks if
NO_DYNAMIC_VP is defined.
2014-01-21 21:15:32 +02:00
Martin Storsjö
043575ffb0
Add a public C API to the library
...
Add a struct that matches the C++ interface vtable.
This requires that the C++ interface methods are declared to use
the same calling convention as normal C functions, and that the
C struct exactly matches the layout and ordering of the C++
virtual table - MSVC seemed to reorder methods if there were
overloaded methods.
2014-01-21 20:54:32 +02:00
Martin Storsjö
dd0db820fc
Rename public interface methods to avoid two overloaded methods with the same name
...
This is required to make the order in the C++ virtual table
consistent in MSVC - previously the overloaded methods were
ordered differently in the vtable compared to the interface
declaration.
2014-01-21 20:54:32 +02:00
Martin Storsjö
d1a6929516
Fix building of macos bundle loading code on 64 bit
2014-01-21 15:00:56 +02:00
volvet
1d86dbdc0f
fix coverity issues
2014-01-21 16:17:56 +08:00
volvet
5c9f447c0e
fix win64 float issue, enable AQ assembly
2014-01-21 11:16:48 +08:00
Ethan Hugg
ae027b83d8
Merge pull request #159 from mstorsjo/frameskip-option
...
Add a runtime option for controlling frame skipping
2014-01-20 16:56:32 -08:00
V
a6463be0cc
Allow yasm to be used instead of nasm.
...
http://www.nasm.us/doc/nasmdoc3.html#section-3.4.1 says a zero should
follow $ in numeric constants, but yasm complains about it when not
followed.
2014-01-18 13:59:24 +01:00
Ethan Hugg
2011a7407e
Merge pull request #147 from volvet/illegal_assembly_fix
...
fix illegal instruction use
2014-01-17 14:13:24 -08:00
Martin Storsjö
cee3329ff0
Add a runtime option for controlling frame skipping
2014-01-17 12:39:33 +02:00
Martin Storsjö
b842ff30e5
Make the compiler/ar/linker file output parameters overrideable
...
This is in preparation for allowing building using MSVC via
makefiles.
2014-01-17 12:06:11 +02:00
sijchen
49c24646a9
fix the range of SAD
2014-01-17 13:55:03 +08:00
Varun B Patil
98ff18d15d
fix typo
2014-01-17 00:50:03 +05:30
volvet
856f186b8e
fix illegal instruction use
2014-01-16 15:57:22 +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ö
65b339815e
Get rid of trailing whitespace in the assembly source files
2014-01-13 20:12:04 +02:00
Martin Storsjö
ddcfc09c49
Convert some assembly files to unix newlines
...
This makes them consistent with the rest of them.
2014-01-13 20:12:04 +02: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
ekr
eeb11578ca
Merge pull request #123 from licaiguo/update-vs2010-files
...
Update vs2010 files
2014-01-09 18:07:57 -08:00
Martin Storsjö
3b0844e400
Regenerate the targets makefiles
...
Commit f38111d76b
updated these files
manually (based on older versions of them) to something not generated
by the current mktargets.py/sh, losing the compact pattern rules.
2014-01-09 11:30:40 +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
Martin Storsjö
80669ed059
Use make patterns to avoid needing autogenerated rules for each source file
2014-01-08 16:33:35 +02: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
Ethan Hugg
9cf180dda6
Merge pull request #103 from mstorsjo/remove-commented-out-pragmas
...
Remove commented out pragmas
2014-01-06 08:37:33 -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ö
55b82b3cd7
Rerun astyle on the C++ source files
...
astyle was only run on .cpp files this time - already in
ff6b66917
where the style cleanup was done initially, not all
.h files seem to have gotten the same styling (rerunning astyle
on .h files at that commit produces a huge diff).
2014-01-05 14:59:18 +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
Ethan Hugg
71e48218c4
Merge pull request #63 from mstorsjo/crossbuild
...
Use $(AR) instead of explicitly calling 'ar'
2013-12-27 08:23:06 -08:00
V
7fa09903cf
Add MinGW platform makefile and related source changes
2013-12-23 21:42:31 +01:00
ekr
c01ffd25c8
Merge pull request #58 from ethanhugg/othercontribs
...
Rollup of minor fixes found by Martin Ettl
2013-12-23 03:53:59 -08:00
ekr
c21b70f159
Merge pull request #73 from ruil2/master
...
typo correction
2013-12-23 03:37:24 -08:00
ruil2
973902cf3f
typo correction-- update another file
2013-12-23 11:01:35 +08:00
Ethan Hugg
2f87e0c908
Merge pull request #66 from mstorsjo/valgrind
...
Don't check for scene changes on forced IDR frames
2013-12-19 19:09:41 -08:00
Ethan Hugg
630085ce6e
Cast pointer math to long long int
2013-12-19 14:25:42 -08:00
Ethan Hugg
c49f303b14
Use %llu instead to print a size_t.
2013-12-19 11:40:40 -08:00
Ethan Hugg
b2066e1dc2
Move -Werror to platform file. Also, %zu can't be used on Windows.
2013-12-19 11:27:05 -08:00
Ethan Hugg
50a74382f0
Fix warning and turn on -Werror for Travis
2013-12-19 09:27:22 -08:00
Martin Storsjö
3eda5a899e
Don't check for scene changes on forced IDR frames
...
For the first encoded frame, is bEncCurFrmAsIdrFlag true
while bIdrPeriodFlag is false.
Previously, the scene detection code unnecessarily checked for
a scene change in the first encoded frame (where the reference
frame was an uninitialized frame), triggering valgrind warnings
about using uninitialized memory.
2013-12-18 13:41:32 +02:00
Martin Storsjö
785ac16d28
Use $(AR) instead of explicitly calling 'ar'
...
This simplifies overriding the command used, e.g. for cross
compilation.
2013-12-17 12:29:21 +02:00
Ethan Hugg
69cdf61f49
Merge remote-tracking branch 'upstream/master' into cosmetic
2013-12-16 11:46:07 -08:00
Ethan Hugg
bcf102db83
Fixed warnings found by clang. Removed some trailing whitespace.
2013-12-16 11:36:54 -08:00
Ethan Hugg
c97be377b1
Rollup of minor fixes found by Martin Ettl
2013-12-16 09:25:35 -08:00
Ethan Hugg
8d3b617761
Merge pull request #48 from licaiguo/master
...
Add 64-bit build support for windows & Linux
2013-12-15 13:01:20 -08:00
Varun B Patil
077c29a0f1
Remove redundant NULL check
...
Address of a pointer variable can never be NULL.
2013-12-15 18:36:15 +05:30
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
Martin Storsjö
aa78f205d6
Avoid all calls to libdl (or equivalent) if NO_DYNAMIC_VP is defined
...
The same ifdefs are already used in the corresponding constructors,
so this just avoids a runtime/link time library dependency which
is practically unused in this build setup.
2013-12-14 13:17:14 +02:00
Ethan Hugg
a913cc853e
Merge pull request #32 from mstorsjo/cosmetics
...
Consistently use unix newlines, remove trailing whitespace
2013-12-13 08:54:14 -08:00
Andreas Gal
90e0057ba6
Merge pull request #36 from mstorsjo/no-mfc-include
...
Don't include the MFC header afxres.h in windows resource files
2013-12-13 07:36:40 -08:00
Martin Storsjö
309d0bbffb
Add a missing NO_DYNAMIC_VP ifdef in the CWelsLib destructor
...
Previously this would try to free a dynamically loaded library
even if none was loaded.
2013-12-13 15:46:45 +02:00
Martin Storsjö
b911920a77
Don't include the MFC header afxres.h in windows resource files
...
Just include windows.h instead. This allows building using the
Express edition versions of MSVC as well, that don't include MFC.
2013-12-13 14:43:25 +02:00
Martin Storsjö
f9dea46712
Remove trailing whitespace
...
Most of it was removed in ff6b669176
from C++ source files,
but other files were left unchanged.
2013-12-13 11:24:17 +02:00
Martin Storsjö
8f9a5469be
Convert source files to unix newlines
...
Most files were converted in ff6b669176
, but some (non C++
source files) were left with windows newlines.
2013-12-13 11:20:23 +02:00
Ethan Hugg
ff6b669176
Pretty printed the C++ code with astyle
2013-12-12 14:21:12 -08:00
Martin Storsjö
3331ff6566
Fix a typo in the public codec API
2013-12-12 16:13:45 +02:00
Ethan Hugg
2ca14fed1c
Rebase of EKR's patches for tracing and frame size
2013-12-11 06:51:26 -08:00
EKR
cf92e8d620
Add support for assembly on linux as well as multiple configs
2013-12-10 18:57:32 +08:00
EKR
2edc251ded
First cut at new build system. Tested on Mac
2013-12-10 16:19:42 +08:00
Ethan Hugg
70e5e62f3d
Initial Commit
2013-12-09 04:51:09 -08:00