356 Commits

Author SHA1 Message Date
Martin Storsjö
4f237b51ef Move parts of wels_const.h into a shared header 2015-02-02 12:41:11 +02:00
sijchen
e7a7a35611 Merge pull request #1779 from mstorsjo/share-memalign
Move the memory allocation/deallocation routines to the common library
2015-02-02 18:14:55 +08:00
zhilwang
fb5c60b6fc Merge pull request #1782 from mstorsjo/avoid-yasm-warnings
Move DEFAULT REL into the x86_64 cases
2015-02-01 17:38:59 -08:00
zhilwang
7629543e3e Merge pull request #1784 from mstorsjo/force-arm-mode
Force armv7/neon within the arm assembly header file
2015-02-01 17:36:36 -08:00
Martin Storsjö
5a78735802 Force armv7/neon within the arm assembly header file
This avoids having to add extra compiler flags to be able to build
them.
2015-02-02 00:53:39 +02:00
Martin Storsjö
3243a78959 Move DEFAULT REL into the x86_64 cases
This fixes warnings when building for x86_32 using yasm, which says
the "DEFAULT REL" is ignored for non-64-bit targets.
2015-02-02 00:49:37 +02:00
Martin Storsjö
2356eb1ff6 Move the memory allocation/deallocation routines to the common library
They are still used slightly differently in the encoder and decoder;
the decoder uses plain functions while the encoder uses one object
keeping track of the number of allocated bytes, and keeping track
of the requested alignment.
2015-01-30 11:30:59 +02:00
Martin Storsjö
078d96bef7 Don't overwrite the git-tracked version.h
When generating a new version of the header, that includes the
actual git hash, don't overwrite the file that is tracked by git.
Instead create a new file, and include this only if the build system
indicates that it exists (by setting a define). This allows the
untouched source tree to be built from within an IDE even if make
has not been run.

This reduces the hassle with a file that needs to be ignored in the
git configuration.

The downside is that the generated file isn't used if building
from within an IDE, if the header has been updated by calling make
before (since the IDE configuration doesn't know whether the user
actually has run make). Since users of the IDE might not build via
make in the command line at all (in the same source checkout at least),
this should not be an issue in practice. The previous way things worked,
the version hash (generated by make) when used in an IDE could actually
be outdated and misleading.
2015-01-30 10:55:16 +02:00
Sijia Chen
a4f09f4d76 update the version info to sync with recent change of API 2015-01-29 11:14:08 +08:00
Martin Storsjö
f03edd79c2 Merge all MC unit tests into one file
Since both encoder and decoder use the same MC implementation now,
one set of tests is enough.
2015-01-28 23:59:37 +02:00
Martin Storsjö
9a0663620a Move the MC routines to the common library
Use the decoder versions of the functions (which are capable
of handling widths 4/8/16 for luma, not only 16 as in the
encoder). By using the more generic versions, there may be a small
performance loss since the functions need to check the width
in every call. Actual measurements show that the actual change is
very small (and the shared routines turn out to actually be faster
than the existing ones in ARM NEON setups).
2015-01-28 15:32:46 +02:00
Martin Storsjö
4ca8ad2612 Initialize pCodecInstance in the constructor
This avoids using uninitialized memory if SetCodecInstance
isn't ever called (as in DecUT_ParseSyntax).
2015-01-26 13:16:09 +02:00
zhuiling
a45c661525 to support different chroma qp
fix travis ci error
2015-01-23 09:06:09 +08:00
zhiliang wang
01b74ea7c1 Add asm code for NoneZeroCount and refine related code 2015-01-04 16:39:17 +08:00
huili2
2c99f5810e Merge pull request #1659 from syureyi/scalinglist
Scalinglist
2014-12-23 10:50:49 +08:00
Sijia Chen
eb8e25a038 update the version header file for 1.3 2014-12-22 14:13:30 +08:00
sijchen
9a602cac1b Merge pull request #1657 from mstorsjo/clip-bitrate
Make sure the random test bitrate is high enough
2014-12-21 18:49:26 -08:00
sijchen
5b2469c0b5 Merge pull request #1642 from mstorsjo/avoid-rebuilds
Avoid rebuilds if the version header hasn't changed
2014-12-18 15:51:07 +08:00
Martin Storsjö
f90cd367d2 Avoid rebuilds if the version header hasn't changed
When generating the version header, don't overwrite it if the
new version is identical to the old one.
2014-12-16 12:23:50 +02:00
Martin Storsjö
59fefbe7c7 Use an inline function instead of a macro for clipping which contains rand()
When using a macro, the macro parameters get evaluated
multiple times, which means that the rand() value compared
actually isn't the same that is used as return value.

This makes sure that clipping works as intended for the
random tests.
2014-12-16 11:13:22 +02:00
ruil2
5ab5fe155b keep the consistency between sps level and parameter level 2014-12-15 09:56:54 +08:00
huili2
3e57fdc448 add this log for codec 2014-12-10 22:15:32 -08:00
ruil2
d543ae89db add maxbitrate verification 2014-11-25 17:12:06 +08:00
Sijia Chen
54c677cdd7 fixing OverallMbMap for slice_idx>255 and some log improvements 2014-11-04 09:19:36 +08:00
ruil2
100de97b49 move cabac table to common 2014-10-30 12:42:09 +08:00
ruil2
c83ab3bca1 Merge pull request #1462 from sijchen/after_review1
updated documents from v1.2
2014-10-29 17:17:38 +08:00
Sijia Chen
4fab8c2ee7 for reference selection under screen:
1, ref_list_mgr_svc.cpp, Ln314: fix a wrong DeleteLTRFromLongList which should not be used under screen strategy
2, ref_list_mgr_svc.cpp, Ln910: remove the frame which is furthest in distance to the current frame in ref list
3, wels_preprocess.cpp: use scene LTR ref list when the current frame is scene LTR
-, ref_list_mgr_svc.cpp, Ln811: add DEBUG trace
reviewed at: https://rbcommons.com/s/OpenH264/r/870/
2014-10-28 16:58:59 +08:00
Sijia Chen
4292f91ae5 add updated documents from v1.2 2014-10-28 13:55:37 +08:00
dong zhang
d3c8ade8d0 fix Rc int32_t bitrate overflow 2014-10-27 09:54:44 +08:00
sijchen
43c62d06eb Merge pull request #1439 from sijchen/for_format
[Reformat] format cpp files for next release
2014-10-24 09:00:36 +08:00
Martin Storsjö
0a3d4c4ebc Only use pthread_setname_np on Android >= 9 (2.3)
Older versions of Android don't have this function.
2014-10-23 15:36:40 +03:00
Sijia Chen
97298de90a reformat cpp files for next release 2014-10-23 17:50:50 +08:00
Sijia Chen
41720f8df5 add a thread name for easier profiling 2014-10-23 16:38:05 +08:00
Daniel J. Hofmann
39d725c113 Wnewline-eof 2014-10-14 23:23:50 +02:00
Daniel J. Hofmann
2ff61475d6 Wc++11-extra-semi 2014-10-14 22:21:06 +02:00
zhiliang wang
19c02bdfa8 Fix crash issue due to commit 8945348. 2014-09-26 11:16:13 +08:00
ruil2
ed341048de refine common moudle for part of intra prediction function 2014-09-25 14:03:11 +08:00
dongzha
c213c6ba30 1. add Tid API UT
2. add Trace UT
3. Fix a crash issue when set NULL trace
2014-09-17 09:26:54 +08:00
zhuiling
0fe477625c improve py, and change mk according to mk 2014-09-12 10:25:46 +08:00
ruil2
40e952f981 remove "\n" which shoudl be added by the trace sink 2014-08-27 14:34:05 +08:00
Martin Storsjö
81ac3d2a9b Fix building svc_motion_estimation.S for android
The .align directive takes an argument in number of bits, i.e. the
actual alignment is 2^n. Previously building with binutils failed,
since 16 isn't a valid parameter to .align, the maximum is 15.

Thus, this makes the code try to align to 16 bytes, instead of aligning
to 65536 bytes.

This fixes building for android.

This also clears up the same mistake in the aarch64 code, even though
that one built just fine.
2014-08-15 09:53:42 +03:00
Martin Storsjö
f69c9074e7 Add ifdef HAVE_NEON around the contents of arm_arch_common_macro.S
This file is built on its own from within the xcode projects,
even though it isn't necessary. Previously its contents was just
empty, but now a .syntax unified was added, which failed the build
when building for arm64.

Make this file a no-op, just like the other arm assembly source files,
unless HAVE_NEON is defined.
2014-08-15 08:49:31 +03:00
ruil2
493d254a4a merge level table 2014-08-12 09:28:40 +08:00
Martin Storsjö
38d2d64ede Explicitly add .syntax unified when building for iOS
This is the default when building with the clang built-in assembler,
but not if using the external assembler - thus always specify it,
for clarity.

Also use the three-operand for of a sub instruction in BS_NZC_CHECK.
The same is already done in the gnu version of the macro.

This fixes building most of the arm assembly with Apple's external
assembler. While this isn't a necessary goal in itself, there's no
harm in doing this either.
2014-08-08 14:09:37 +03:00
Martin Storsjö
5f0ef6a5a9 Add attributes incidating intentional data type aliasing
Interpreting data of one type via a pointer of a different type is an
aliasing violating. This means that a compiler optimizer's analyzer
can assume that data loaded into an array as uint32_t isn't related
to data read out from the same array as uint64_t, and e.g. reorder
loads/stores.

Since these structs are intentionally used to load data via pointers
of a wrong size, tell the compiler that these accesses may alias
other reads.

This fixes the GetIntraPredictorTest tests of WelsI4x4LumaPredV_c
and WelsI4x4LumaPredH_c. (The compiler optimizer did the wrong thing
as long as WelsFillingPred8to16_c or WelsFillingPred8x2to16_c were
inlined into the calling function.)
2014-08-08 11:34:45 +03:00
ruil2
e58de20f3a add encoder interface ut 2014-07-25 16:40:14 +08:00
Martin Storsjö
d5a45ec513 Mark the x86 assembly object files as not requiring an executable stack
This avoids having to add extra linker flags in order to specify this.

This is similar to how this already is handled for the arm assembly.
2014-07-25 00:56:39 +03:00
zhilwang
811e20f0d9 Merge pull request #1185 from mstorsjo/android-l-preview
Fix building for the Android L preview release, add support for new 64 bit Android ABIs
2014-07-18 16:56:22 +08:00
ruil2
ef7cce3d14 modify trace output 2014-07-17 10:09:52 +08:00
Martin Storsjö
9aaeef9264 Manually define the SWelsTime struct on unix, don't rely on struct timeb
We don't use the ftime function on unix for filling SWelsTime anyway,
we fill the time and millitm fields manually.

On android, the sys/timeb.h header has been removed in the next
platform version (currently available in NDK r10 in the "L preview"
release), since this header and the ftime function have been removed
from the POSIX 2008 specification.

This fixes compilation when targeting the Android "L preview" release,
even when targeting the 32 bit ABIs.
2014-07-16 21:32:18 +03:00