246 Commits

Author SHA1 Message Date
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 f38111d76ba127b4045e6a9899cbb753457c7384 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