62 Commits

Author SHA1 Message Date
sijchen
ffb85046b4 Refactoring: Wrap all the operations related to eSpsPpsIdStrategy to class, to improve code readability 2016-05-04 15:06:02 -07:00
Sindre Aamås
98042f1600 [Decoder] Use encoder x86 IDCT routines
Move asm routines to common. Delete obsolete decoder routines.

Use wider routines where applicable.

~1.07x overall faster decode on a quick 720p30 4Mbps test on Haswell.
2016-03-09 10:41:42 +01:00
Sijia Chen
819f6f5d93 [Encoder] add encoder tasks and task-management class
https://rbcommons.com/s/OpenH264/r/1334/
2015-10-19 22:48:28 -07:00
Sijia Chen
757a596e97 add basic threadpool functions
https://rbcommons.com/s/OpenH264/r/1294/
2015-10-15 10:04:00 -07:00
Martin Storsjö
5ff8af6883 Remove unused source files from the encoder 2015-10-13 12:21:34 +03:00
Martin Storsjö
19bcb45c22 Fix the indentation of a line in a vcproj file
This line seems to have been misindented by a manual edit.
2015-03-25 11:40:28 +02:00
Martin Storsjö
b6a1e1ce83 Remove references to missing files from the vcproj files 2015-03-25 11:40:10 +02:00
huili2
ed1140b846 merge bit_stream.h for encoder&decoder 2015-03-13 16:19:25 +08:00
Martin Storsjö
4f237b51ef Move parts of wels_const.h into a shared header 2015-02-02 12:41:11 +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ö
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
ruil2
055915d720 update windows project for table change 2014-10-30 12:47:26 +08:00
Martin Storsjö
f84560474c Revert unrelated changes to MSVC project file nasm commands
The cabac encoder commit accidentally changed some of the nasm
commands in the MSVC project file, that were previously
made consistent in b17e9bb32 and 7720f2cc5.
2014-10-28 23:38:14 +02:00
ruil2
abc01e6b81 add encoder cabac support 2014-10-27 13:06:33 +08:00
Martin Storsjö
b17e9bb320 Make nasm commands in vcproj files consistent
Some commands had different spacing than others, and commands
for some files had accidentally missed a few parameters.
2014-10-22 10:14:22 +03:00
Martin Storsjö
7720f2cc5d Add literal CRLF at the end of nasm commands that are missing them
These are added by MSVC as soon as the file is touched anyway.

This avoids stray changes to the files if the files are resaved
from within the IDE.
2014-10-22 10:14:08 +03:00
ruil2
ed341048de refine common moudle for part of intra prediction function 2014-09-25 14:03:11 +08:00
Martin Storsjö
f26c7e3f4f Use macros for setting the output directory
This makes sure this is set to the exact same string in all
the configurations, simplifying editing multiple configurations
at the same time.

This changes the output directory for 64 bit binaries from
bin/win64 to bin/x64, but this is the common pattern used by
MSVC in new projects.
2014-07-18 11:23:48 +03:00
Martin Storsjö
c9a6482fc6 Use default paths for and object files and other intermediate files
This makes sure that one can build for all architectures without
having the intermediates from one clobber the other.
2014-07-15 13:00:56 +03:00
Martin Storsjö
79f80ac7da Don't set path to a precompiled header - precompiled headers are disabled 2014-07-09 10:43:57 +03:00
Martin Storsjö
31e3884a68 Enable whole program optimization for both decoder and encoder MSVC projects
Enable it on the project level, instead of having to set separate options
for both compiler and linker.

The processing project actually had the options set in this way originally
as well.
2014-07-04 11:59:45 +03:00
Martin Storsjö
4af37a7d21 Move common tables and definitions into the common library 2014-06-30 09:03:10 +03:00
Martin Storsjö
3a43c6bad4 Remove custom, manual linker options for the encoder in the MSVC project files 2014-06-29 13:51:54 +03:00
Martin Storsjö
dc91e0958b Integrate the lone function from logging.cpp into welsCodecTrace.cpp 2014-06-11 08:08:56 +03:00
ruil2
4c12f8970c cleanup trace module 2014-06-10 10:24:45 +08:00
ruil2
14e5d740cd clean up expand picture. 2014-05-30 11:05:31 +08:00
Martin Storsjö
4354371b4e Revert "Remove the literal CRLF (
) within the nasm commands in msvc project files"
This reverts commit 7aff66d40ccfc9c4daf11691c73f4d5c9a3cba34.

These CRLF marks are readded by MSVC as soon as the project files
are updated from within the GUI anyway.
2014-05-12 09:20:41 +03:00
Martin Storsjö
416bb224e0 Don't hardcode SuppressStartupBanner=true, this is the default value
The fewer fields overridden, the better.
2014-05-09 19:59:06 +03:00
Martin Storsjö
3923d11dc6 Remove unnecessary, empty, file specific FileConfiguration blocks in vcproj files 2014-05-09 19:59:06 +03:00
Martin Storsjö
4635232d93 Don't manually define WIN32/WIN64
All the code that relies on separating them uses the built-in defines
_WIN32 and _WIN64, or the corresponding machine defines (such as
_M_IX86, for MSVC 32 bit inline assembly).
2014-05-09 19:34:04 +03:00
zhilwang
f6293153c8 Merge pull request #802 from mstorsjo/remove-unused-misspelled-define
Remove an unused, misspelled define set on only one source file
2014-05-09 08:45:49 +08:00
Martin Storsjö
f8ae7fcc5f Remove an unused, misspelled define set on only one source file 2014-05-08 11:17:29 +03:00
Martin Storsjö
60f1ea8088 Make manually edited vcproj files match what visual studio actually generates
This changes the indentation from space to tabs, and adds missing
dos newlines to these few lines.

This makes the file be detected as using dos newlines properly in
certain editors.
2014-05-08 11:15:50 +03:00
Licai Guo
e8d8bdc48e Merge pull request #689 from huili2/add_file_CopyMB_EC
divide copy_mb functions into new file for decoder use from encoder and ...
2014-04-15 16:20:08 +08:00
huili2
4ab8c88e98 divide copy_mb functions into new file for decoder use from encoder and add files for EC in decoder only. 2014-04-14 20:17:41 -07:00
Martin Storsjö
5c1666f430 Update the MSVC project files to use the statically linked C runtime library
This makes them match the behaviour of the make based build system.
2014-04-11 10:35:57 +03:00
volvet
8690adf870 Merge pull request #647 from mstorsjo/remove-dynamic-vp
Remove code for loading the VP library dynamically
2014-04-08 10:40:55 -07:00
Martin Storsjö
1342da9bc4 Remove everything related to NO_DYNAMIC_VP
This mode is the default and used everywhere now.
2014-04-08 15:09:21 +03:00
Martin Storsjö
56abd3c15b Link the encoder core directly to the VP library
This avoids using the codepaths for dynamically loading the
DLL, letting the linker resolve it as any other function.
2014-04-08 15:09:21 +03:00
Martin Storsjö
7aff66d40c Remove the literal CRLF (
) within the nasm commands in msvc project files 2014-04-08 11:43:08 +03:00
Martin Storsjö
5d2ca9d7a8 Remove the explicit -O3 parameter to nasm in visual studio project files
According to "nasm -h", there is no -O3 parameter at all, and
the highest optimization level (-Ox) is already the default.

The corresponding parameter never was set when building with the
make build system.
2014-04-08 11:42:14 +03:00
Martin Storsjö
e329ff4cb0 Add the new x86 assembly source files to the msvc project files 2014-04-08 10:17:48 +03:00
Martin Storsjö
cc86533a39 Remove the now unused MT_ENABLE define from project files 2014-04-01 13:21:19 +03:00
ruil2
6b3f89d582 move some common functions to common.cpp and add some functions in common 2014-03-25 15:35:55 +08:00
Licai Guo
e39de8d404 reoranize common to inc/src/x86/arm 2014-03-18 19:41:32 -07:00
Martin Storsjö
ed9c03408f Rename the asm subdirectories to x86
This is consistent with having the arm assembly in a subdirectory
called arm.
2014-03-18 23:09:45 +02: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ö
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ö
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