volvet
bb58c5c720
correct style
2014-02-19 10:04:17 +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
ruil2
f5cd56ea74
use temporal layer num and remove gop size in external configure
2014-02-18 17:06:41 +08: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
Ethan Hugg
dbb894442f
Merge pull request #284 from volvet/clean_spatial_picture_code
...
Clean spatial picture alloc code
2014-02-13 15:18:02 -08:00
volvet
6c5b22ceff
remove duplicate function
2014-02-13 17:40:02 +08:00
volvet
b770bb80c0
Clean spatial picture alloc code
2014-02-13 12:00:02 +08:00
Ethan Hugg
b51963c009
Merge pull request #219 from volvet/mozilla_bug_963392_fix
...
fix crash bug 963392 and update the print help text.
2014-02-11 09:36:59 -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ö
0a14d4c79b
Make the deblocking handling endian independent
...
This avoids having to set a define indicating the endianness.
This doesn't incur any significant measurable slowdown.
2014-01-30 10:33:21 +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
Ethan Hugg
fbcd962169
Merge pull request #256 from mstorsjo/bigendian
...
Make the library work on big endian
2014-01-29 15:24:32 -08:00
Martin Storsjö
cadbec75d8
Fix shifting tricks in deblocking for big endian
...
The code interprets an array of 4 uint8_t values as one uint32_t
and does shifts on the value. The same optimization can be
kept in big endian as well, but the shift has to be done in the
other direction.
This code could be made truly independent of endianness, but
that could cause some minimal performance degradaion, at least
in theory.
This makes "make test" pass on big endian, assuming that
WORDS_BIGENDIAN is defined while building.
2014-01-29 22:30:33 +02:00
Martin Storsjö
47ec78843a
Don't read an uint8_t array as an uint32_t
...
This makes the code work properly on big endian.
The MC case is similar to how it's done in the encoder.
Neither of these should have any significant performance
impact.
2014-01-29 22:27:55 +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
08638a9396
Merge pull request #252 from mstorsjo/share-processing-asm
...
Merge identical assembly code between the processing and encoder libs
2014-01-28 11:04:12 -08:00
Martin Storsjö
3761901ed4
Remove sad.asm from the processing lib, move satd_sad from the encoder to the common lib
...
sad.asm as used in processing is an exact subset of the
code in satd_sad.asm in the encoder.
2014-01-28 13:54:57 +02:00
Martin Storsjö
9840f11784
Remove the now unused count parameter to WelsStrncpy
...
Also remove manual null termination as WelsStrncpy now always
takes care of it.
2014-01-28 12:13:11 +02:00
Martin Storsjö
215eb56453
Use WelsStrncpy instead of STRNCPY
2014-01-28 12:05:28 +02:00
Martin Storsjö
7791a6d28d
Use WelsSnprintf instead of a combination of strlen and STRNCAT
...
This simplifies the code and makes the buffer size checks
more consistent. Additionally, the previous version wrote
the extra space character without checking if it actually fit
into the buffer.
2014-01-28 12:00:04 +02:00
Martin Storsjö
0318922654
Check the right pointer for being non-null in WelsLogDefault
...
In case the log level was invalid, GetLogTag returns null.
Checking pCtx doesn't make sense since nothing within the
if block uses pCtx.
2014-01-28 12:00:04 +02:00
Martin Storsjö
92fa4eb400
Use strlen instead of WelsStrnlen/STRNLEN for known null terminated strings
...
strlen is not dangerous if the string is known to be null
terminated (and MSVC does not warn about its use either).
For the cases in the decoder welsCodecTrace.cpp, the string
passed to all WriteString instances is produced by WelsVsnprintf
which always null terminates the buffer nowadays.
Additionally, as the string was passed to OutputDebugStringA
without any length specifier before, it was already assumed to
be null terminated.
The file name parameter passed to DumpDependencyRec and
DumpRecFrame in encoder.cpp is always null terminated,
which was already assumed as it is passed to WelsFopen as is.
As for the encoder utils.cpp, the strings returned by GetLogPath
are string constants that are null terminated.
2014-01-28 11:40:54 +02:00
Martin Storsjö
082a986990
Use strlen() instead of WelsStrnlen/STRNLEN for string constants
...
A string constant is guaranteed to be null terminated, and thus
doesn't need to use a version of strlen with a fixed buffer size
limit.
2014-01-28 11:38:26 +02:00
Martin Storsjö
da7d3d9bad
Remove an unused and unnecessary string length calculation
...
This is unused since 771ff739b
.
2014-01-28 11:38:22 +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ö
771ff739b6
Simplify debugging code - always write debug trace files to the cur directory
...
This reduces the amount of platform ifdefs.
2014-01-27 22:36:50 +02:00
Martin Storsjö
2bcadff204
Use WelsGetTimeOfDay and WelsStrftime instead of LOCALTIME/FTIME/strftime
2014-01-27 19:20:45 +02:00
Martin Storsjö
3a5ff9b6c8
Use WelsVsnprintf instead of VSPRINTF
2014-01-27 19:18:36 +02:00
Martin Storsjö
f6fe4ddeaa
Use WelsSnprintf instead of SNPRINTF
2014-01-27 19:18:36 +02:00
Ethan Hugg
6fea084a42
Merge pull request #234 from mstorsjo/merge-measure-time
...
Move the measure_time.h header to the common library
2014-01-27 08:57:16 -08:00
Ethan Hugg
d5affbaa3c
Merge pull request #232 from mstorsjo/merge-fopen-wrappers
...
Remove the FOPEN macro, use WelsFopen instead
2014-01-27 08:54:20 -08:00
Ethan Hugg
f3afcd51ff
Merge pull request #231 from mstorsjo/fix-msvc-build
...
Readd a removed include
2014-01-27 07:54:29 -08: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
lyao2
00948873fb
fix spell error of RcInitGoomParameters
2014-01-27 17:29:24 +08:00
Martin Storsjö
c174dcd652
Remove the FOPEN macro, use WelsFopen instead
...
This avoids ifdefs at each place the macro is used.
2014-01-27 10:29:05 +02:00
Martin Storsjö
febf6bb51e
Readd a removed include
...
This fixes builds without NO_DYNAMIC_VP (such as with the MSVC
project files), the include was removed in d809b7e9
.
2014-01-27 10:25:32 +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
volvet
cbe650a3e5
Merge pull request #227 from mstorsjo/snprintf-fixes
...
Fix handling of snprintf return values and buffer size calculations
2014-01-26 22:26:38 -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ö
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
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
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ö
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
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
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ö
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
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
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