Compare commits

..

50 Commits

Author SHA1 Message Date
huili2
bdb7d758c1 Merge pull request #888 from huili2/update_API_docx
Update api docx
2014-05-23 22:54:42 +08:00
huili2
176495defe Merge pull request #887 from huili2/modif_README
Modif readme as release note for v1.0
2014-05-23 22:54:19 +08:00
huili2
890674bde4 add API docx for release v1.0 2014-05-23 07:38:27 -07:00
HaiboZhu
414a1ff975 Merge pull request #883 from huili2/API_dec_modify_v1
Api dec modify v1
2014-05-22 16:20:41 +08:00
huili2
a1ec7f0a35 Merge pull request #885 from ruil2/enc_quant_v1.0
remove some warnings
2014-05-22 16:13:53 +08:00
ruil2
6475c9b7f9 resolve unit test warnings 2014-05-22 16:03:41 +08:00
ruil2
fe05db7bca remove some warings 2014-05-22 15:09:32 +08:00
huili2
a64ddb407c Merge pull request #882 from ruil2/enc_quant_v1.0
Fix the improper slice mmco setting
2014-05-22 14:50:45 +08:00
huili2
a2b445f0b0 v1.0 release note 2014-05-21 23:38:10 -07:00
ruil2
2db1123bec Fix the improper slice mmco setting 2014-05-22 14:30:09 +08:00
huili2
41b71434f7 Merge pull request #881 from ruil2/enc_quant_v1.0
add maxnalsize parameter in configure file
2014-05-22 14:29:30 +08:00
ruil2
c034dcf958 add maxnalsize parameter in configure file 2014-05-22 14:19:30 +08:00
sijchen
77cb7c518c Merge pull request #879 from ruil2/enc_quant_v1.0
clean up console app(merge two path into one)
2014-05-22 00:14:18 -05:00
ruil2
c0cc575e74 clean up console app(merge two path into one) 2014-05-22 11:41:43 +08:00
ruil2
ca68f47db2 Merge pull request #877 from ganyangbbl/remove_enc_warning
[Fix] clean build warning related encoder
2014-05-22 10:56:32 +08:00
huili2
cae151981b modify dec API from void to explicit type, and some comments 2014-05-21 18:49:32 -07:00
huili2
650dc637b6 Merge pull request #869 from sijchen/rc_fix_101
[Fix] put all (int32_t) to WELS_ROUND
2014-05-21 16:49:12 +08:00
ganyang
679449f97d clean build warning related encoder 2014-05-21 15:44:09 +08:00
dongzha
11085e072a Merge pull request #875 from huili2/bug_fix_dec_bs_buffer
Bug fix dec bs buffer expand
2014-05-21 15:39:54 +08:00
huili2
af6105743a expand the bs buffer size 2014-05-21 00:23:41 -07:00
dongzha
3abf06705b Merge pull request #873 from ruil2/enc_quant_v1.0
update the minimum quant limiation as 10
2014-05-21 15:11:58 +08:00
ruil2
dd088d9979 Merge pull request #870 from sijchen/rm_warn_101
[Fix] Expand the size of m_pSpatialPic
2014-05-21 14:27:17 +08:00
ruil2
5eb0f0b92b update the minimum quant limiation as 10. quant 4 can't avoid overflow 2014-05-21 14:07:39 +08:00
sijchen
bf7ff18bae modify the size of m_pSpatialPic, the previous size cannot cover more LTR_num in screen 2014-05-20 17:04:56 +08:00
sijchen
d98d9194fd put all (int32_t) to WELS_ROUND to minimize possible mismatch on double-float calculation on different machines and remove some unnecessary (int32_t) 2014-05-20 16:57:29 +08:00
HaiboZhu
45d79d6d13 Merge pull request #861 from huili2/remove_warning_UT_PredMv
Remove build warning ut pred mv in Linux
2014-05-20 16:11:50 +08:00
HaiboZhu
a103ffc2e3 Merge pull request #866 from huili2/Add_new_seq_check_v1
Add new seq check v1.0
2014-05-20 16:08:58 +08:00
huili2
576b27238c Merge pull request #865 from ruil2/enc_quant_v1.0
set minimum quant as 4 to avoid level code overflow
2014-05-20 11:23:26 +08:00
unknown
680bc349f1 set minimum quant as 4 to avoid level code overflow 2014-05-20 11:04:47 +08:00
HaiboZhu
1d82df67f6 Merge pull request #862 from dongzha/FixEncOption
change comment in encoder option according to issue cisco#859 for openh264v1.0
2014-05-20 10:53:37 +08:00
huili2
996be050b9 add single function for new seq detection 2014-05-19 19:37:45 -07:00
dongzhang
62c12b2985 change comment in encoder option according to issue https://github.com/cisco/openh264/issues/859 2014-05-20 09:45:13 +08:00
huili2
10cbbbb2b2 remove build warning on Linux 2014-05-19 18:00:36 -07:00
huili2
8ca7b2e557 Merge pull request #851 from dongzha/FixEncUTDequantBug
Fix enc ut dequant bug
2014-05-16 13:33:14 +08:00
huili2
335857fe9a Merge pull request #855 from sijchen/bufferlencheck_fixe
add minimum buffer size (same to #854)
2014-05-16 13:17:21 +08:00
sijchen
d0e8ae0cf5 add minimum buffer size 2014-05-16 12:59:50 +08:00
dongzhang
6e34f5a7c9 Fix QP<18 dequant UT bug at encoder side
This should be UT for QP<12.
2014-05-16 10:17:33 +08:00
HaiboZhu
83f89406ca Merge pull request #846 from huili2/v1_bs_buffer_modif
V1 bs buffer modif
2014-05-15 16:31:20 +08:00
huili2
0a9a05ee4e Merge pull request #850 from ruil2/enc_bitrate_setting_v10
fix bitrate setting and add bitrate validation
2014-05-15 16:27:46 +08:00
huili2
294bfd5495 Merge pull request #849 from ruil2/enc_size_v10
fix input source width and height setting issue
2014-05-15 16:27:19 +08:00
ruil2
09cf107367 fix bitrate setting and add bitrate validation 2014-05-15 16:14:07 +08:00
unknown
e5d8957ad2 fix input source width and height setting issue 2014-05-15 16:06:45 +08:00
huili2
2dad4b7eb9 modify bs buffer size to double the AU size 2014-05-14 22:17:17 -07:00
huili2
00696ae9d9 Merge pull request #839 from sijchen/disablemetest
[v1.0] Temporarily disable ME tests due to random failure
2014-05-14 13:56:50 +08:00
sijchen
4f28cf772a temporarily disable ME tests due to random failure 2014-05-14 11:36:22 +08:00
sijchen
cf81b0095c Merge pull request #827 from dongzha/FixBugforDeblocking
Fix a bug in deblocking for neon 32 bit arm implementation
2014-05-14 09:26:17 +08:00
sijchen
c6538f1eb8 Merge pull request #828 from huili2/v1_clear_active_ps
V1 clear active ps
2014-05-13 17:22:48 +08:00
huili2
8b6c6943cd clear active PS when only IDR meets 2014-05-13 01:11:55 -07:00
sijchen
958207392c Merge pull request #811 from huili2/v1_ps_error
V1 ps error
2014-05-09 17:21:47 +08:00
huili2
eb6fdf4412 for PS error logic for EC 2014-05-09 01:18:55 -07:00
351 changed files with 31748 additions and 42925 deletions

9
.gitignore vendored
View File

@@ -1,7 +1,6 @@
# Object files # Object files
*.o *.o
*.obj *.obj
codec/obj
# Dependency files # Dependency files
*.d *.d
@@ -27,16 +26,8 @@ h264dec
h264enc h264enc
codec_unittest codec_unittest
# Other files generated by the MSVC compiler
*.exp
*.pdb
# Executables built by the MSVC project files
bin
# External source # External source
gtest gtest
gmp-api
# Output files from example commands # Output files from example commands
testbin/test_vd_1d.264 testbin/test_vd_1d.264

View File

@@ -5,11 +5,5 @@ compiler:
before_install: before_install:
- sudo apt-get update -qq - sudo apt-get update -qq
- sudo apt-get install -qq nasm g++-4.6-multilib gcc-multilib libc6-dev-i386 - sudo apt-get install -qq nasm g++-4.6-multilib gcc-multilib libc6-dev-i386
install: install: make gtest-bootstrap
- make gmp-bootstrap script: make -B ENABLE64BIT=Yes && make test && make -B ENABLE64BIT=Yes BUILDTYPE=Debug && make test && make -B ENABLE64BIT=No && make test && make -B ENABLE64BIT=No BUILDTYPE=Debug && make test
- make gtest-bootstrap
script:
- make -B ENABLE64BIT=Yes BUILDTYPE=Release all plugin test
- make -B ENABLE64BIT=Yes BUILDTYPE=Debug all plugin test
- make -B ENABLE64BIT=No BUILDTYPE=Release all plugin test
- make -B ENABLE64BIT=No BUILDTYPE=Debug all plugin test

113
Makefile
View File

@@ -6,7 +6,6 @@ CCAS=$(CC)
CXX_O=-o $@ CXX_O=-o $@
CXX_LINK_O=-o $@ CXX_LINK_O=-o $@
AR_OPTS=cr $@ AR_OPTS=cr $@
LINK_LOCAL_DIR=-L.
LINK_LIB=-l$(1) LINK_LIB=-l$(1)
CFLAGS_OPT=-O3 CFLAGS_OPT=-O3
CFLAGS_DEBUG=-g CFLAGS_DEBUG=-g
@@ -16,14 +15,6 @@ PREFIX=/usr/local
SHARED=-shared SHARED=-shared
OBJ=o OBJ=o
PROJECT_NAME=openh264 PROJECT_NAME=openh264
MODULE_NAME=gmpopenh264
CCASFLAGS=$(CFLAGS)
ifeq (,$(wildcard ./gmp-api))
HAVE_GMP_API=No
else
HAVE_GMP_API=Yes
endif
ifeq (,$(wildcard ./gtest)) ifeq (,$(wildcard ./gtest))
HAVE_GTEST=No HAVE_GTEST=No
@@ -67,18 +58,18 @@ ifneq ($(V),Yes)
endif endif
INCLUDES += -Icodec/api/svc -Icodec/common/inc INCLUDES = -Icodec/api/svc -Icodec/common/inc
DECODER_INCLUDES += \ DECODER_INCLUDES = \
-Icodec/decoder/core/inc \ -Icodec/decoder/core/inc \
-Icodec/decoder/plus/inc -Icodec/decoder/plus/inc
ENCODER_INCLUDES += \ ENCODER_INCLUDES = \
-Icodec/encoder/core/inc \ -Icodec/encoder/core/inc \
-Icodec/encoder/plus/inc \ -Icodec/encoder/plus/inc \
-Icodec/processing/interface -Icodec/processing/interface
PROCESSING_INCLUDES += \ PROCESSING_INCLUDES = \
-Icodec/processing/interface \ -Icodec/processing/interface \
-Icodec/processing/src/common \ -Icodec/processing/src/common \
-Icodec/processing/src/scrolldetection -Icodec/processing/src/scrolldetection
@@ -91,51 +82,33 @@ CODEC_UNITTEST_INCLUDES += \
-Igtest/include \ -Igtest/include \
-Icodec/common/inc \ -Icodec/common/inc \
CONSOLE_COMMON_INCLUDES += \ H264DEC_INCLUDES = $(DECODER_INCLUDES) -Icodec/console/dec/inc
-Icodec/console/common/inc H264DEC_LDFLAGS = -L. $(call LINK_LIB,decoder) $(call LINK_LIB,common)
H264DEC_DEPS = $(LIBPREFIX)decoder.$(LIBSUFFIX) $(LIBPREFIX)common.$(LIBSUFFIX)
H264DEC_INCLUDES += $(DECODER_INCLUDES) $(CONSOLE_COMMON_INCLUDES) -Icodec/console/dec/inc H264ENC_INCLUDES = $(ENCODER_INCLUDES) -Icodec/console/enc/inc
H264DEC_LDFLAGS = $(LINK_LOCAL_DIR) $(call LINK_LIB,decoder) $(call LINK_LIB,common) $(call LINK_LIB,console_common) H264ENC_LDFLAGS = -L. $(call LINK_LIB,encoder) $(call LINK_LIB,processing) $(call LINK_LIB,common)
H264DEC_DEPS = $(LIBPREFIX)decoder.$(LIBSUFFIX) $(LIBPREFIX)common.$(LIBSUFFIX) $(LIBPREFIX)console_common.$(LIBSUFFIX) H264ENC_DEPS = $(LIBPREFIX)encoder.$(LIBSUFFIX) $(LIBPREFIX)processing.$(LIBSUFFIX) $(LIBPREFIX)common.$(LIBSUFFIX)
H264ENC_INCLUDES += $(ENCODER_INCLUDES) $(CONSOLE_COMMON_INCLUDES) -Icodec/console/enc/inc CODEC_UNITTEST_LDFLAGS = -L. $(call LINK_LIB,gtest) $(call LINK_LIB,decoder) $(call LINK_LIB,encoder) $(call LINK_LIB,processing) $(call LINK_LIB,common) $(CODEC_UNITTEST_LDFLAGS_SUFFIX)
H264ENC_LDFLAGS = $(LINK_LOCAL_DIR) $(call LINK_LIB,encoder) $(call LINK_LIB,processing) $(call LINK_LIB,common) $(call LINK_LIB,console_common)
H264ENC_DEPS = $(LIBPREFIX)encoder.$(LIBSUFFIX) $(LIBPREFIX)processing.$(LIBSUFFIX) $(LIBPREFIX)common.$(LIBSUFFIX) $(LIBPREFIX)console_common.$(LIBSUFFIX)
CODEC_UNITTEST_LDFLAGS = $(LINK_LOCAL_DIR) $(call LINK_LIB,gtest) $(call LINK_LIB,decoder) $(call LINK_LIB,encoder) $(call LINK_LIB,processing) $(call LINK_LIB,common) $(CODEC_UNITTEST_LDFLAGS_SUFFIX)
CODEC_UNITTEST_DEPS = $(LIBPREFIX)gtest.$(LIBSUFFIX) $(LIBPREFIX)decoder.$(LIBSUFFIX) $(LIBPREFIX)encoder.$(LIBSUFFIX) $(LIBPREFIX)processing.$(LIBSUFFIX) $(LIBPREFIX)common.$(LIBSUFFIX) CODEC_UNITTEST_DEPS = $(LIBPREFIX)gtest.$(LIBSUFFIX) $(LIBPREFIX)decoder.$(LIBSUFFIX) $(LIBPREFIX)encoder.$(LIBSUFFIX) $(LIBPREFIX)processing.$(LIBSUFFIX) $(LIBPREFIX)common.$(LIBSUFFIX)
DECODER_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(DECODER_INCLUDES) -Itest -Itest/decoder DECODER_UNITTEST_INCLUDES = $(CODEC_UNITTEST_INCLUDES) $(DECODER_INCLUDES) -Itest -Itest/decoder
ENCODER_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(ENCODER_INCLUDES) -Itest -Itest/encoder ENCODER_UNITTEST_INCLUDES = $(CODEC_UNITTEST_INCLUDES) $(ENCODER_INCLUDES) -Itest -Itest/encoder
PROCESSING_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(PROCESSING_INCLUDES) -Itest -Itest/processing PROCESSING_UNITTEST_INCLUDES = $(CODEC_UNITTEST_INCLUDES) $(PROCESSING_INCLUDES) -Itest -Itest/processing
API_TEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) -Itest -Itest/api API_TEST_INCLUDES = $(CODEC_UNITTEST_INCLUDES) -Itest -Itest/api
COMMON_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(DECODER_INCLUDES) -Itest -Itest/common
MODULE_INCLUDES += -Igmp-api
.PHONY: test gtest-bootstrap clean .PHONY: test gtest-bootstrap clean
all: libraries binaries all: libraries binaries
clean: clean:
ifeq (android,$(OS))
clean: clean_Android
endif
$(QUIET)rm -f $(OBJS) $(OBJS:.$(OBJ)=.d) $(LIBRARIES) $(BINARIES) $(QUIET)rm -f $(OBJS) $(OBJS:.$(OBJ)=.d) $(LIBRARIES) $(BINARIES)
gmp-bootstrap:
git clone https://github.com/mozilla/gmp-api gmp-api
gtest-bootstrap: gtest-bootstrap:
svn co https://googletest.googlecode.com/svn/trunk/ gtest svn co https://googletest.googlecode.com/svn/trunk/ gtest
ifeq ($(HAVE_GTEST),Yes) ifeq ($(HAVE_GTEST),Yes)
test: codec_unittest$(EXEEXT) test: codec_unittest$(EXEEXT)
ifneq (android,$(OS))
ifneq (ios,$(OS))
./codec_unittest ./codec_unittest
endif
endif
else else
test: test:
@echo "./gtest : No such file or directory." @echo "./gtest : No such file or directory."
@@ -147,24 +120,14 @@ include codec/decoder/targets.mk
include codec/encoder/targets.mk include codec/encoder/targets.mk
include codec/processing/targets.mk include codec/processing/targets.mk
ifeq ($(HAVE_GMP_API),Yes)
include module/targets.mk
endif
ifneq (android, $(OS)) ifneq (android, $(OS))
ifneq (ios, $(OS)) ifneq (ios, $(OS))
include codec/console/dec/targets.mk include codec/console/dec/targets.mk
include codec/console/enc/targets.mk include codec/console/enc/targets.mk
include codec/console/common/targets.mk
endif endif
endif endif
ifneq (ios, $(OS))
libraries: $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX) $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX) libraries: $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX) $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX)
else
libraries: $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX)
endif
LIBRARIES += $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX) $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX) LIBRARIES += $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX) $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX)
$(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX): $(ENCODER_OBJS) $(DECODER_OBJS) $(PROCESSING_OBJS) $(COMMON_OBJS) $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX): $(ENCODER_OBJS) $(DECODER_OBJS) $(PROCESSING_OBJS) $(COMMON_OBJS)
@@ -175,19 +138,6 @@ $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX): $(ENCODER_OBJS) $(DECODER_OBJS)
$(QUIET)rm -f $@ $(QUIET)rm -f $@
$(QUIET_CXX)$(CXX) $(SHARED) $(LDFLAGS) $(CXX_LINK_O) $+ $(SHLDFLAGS) $(QUIET_CXX)$(CXX) $(SHARED) $(LDFLAGS) $(CXX_LINK_O) $+ $(SHLDFLAGS)
ifeq ($(HAVE_GMP_API),Yes)
plugin: $(LIBPREFIX)$(MODULE_NAME).$(SHAREDLIBSUFFIX)
LIBRARIES += $(LIBPREFIX)$(MODULE_NAME).$(SHAREDLIBSUFFIX)
else
plugin:
@echo "./gmp-api : No such file or directory."
@echo "You do not have gmp-api. Run make gmp-bootstrap to get the gmp-api headers."
endif
$(LIBPREFIX)$(MODULE_NAME).$(SHAREDLIBSUFFIX): $(MODULE_OBJS) $(ENCODER_OBJS) $(DECODER_OBJS) $(PROCESSING_OBJS) $(COMMON_OBJS)
$(QUIET)rm -f $@
$(QUIET_CXX)$(CXX) $(SHARED) $(LDFLAGS) $(CXX_LINK_O) $+ $(SHLDFLAGS) $(MODULE_LDFLAGS)
install-headers: install-headers:
mkdir -p $(PREFIX)/include/wels mkdir -p $(PREFIX)/include/wels
install -m 644 codec/api/svc/codec*.h $(PREFIX)/include/wels install -m 644 codec/api/svc/codec*.h $(PREFIX)/include/wels
@@ -212,42 +162,11 @@ include test/api/targets.mk
include test/decoder/targets.mk include test/decoder/targets.mk
include test/encoder/targets.mk include test/encoder/targets.mk
include test/processing/targets.mk include test/processing/targets.mk
include test/common/targets.mk
LIBRARIES += $(LIBPREFIX)ut.$(LIBSUFFIX)
$(LIBPREFIX)ut.$(LIBSUFFIX): $(DECODER_UNITTEST_OBJS) $(ENCODER_UNITTEST_OBJS) $(PROCESSING_UNITTEST_OBJS) $(COMMON_UNITTEST_OBJS) $(API_TEST_OBJS)
$(QUIET)rm -f $@
$(QUIET_AR)$(AR) $(AR_OPTS) $+
LIBRARIES +=$(LIBPREFIX)ut.$(SHAREDLIBSUFFIX)
$(LIBPREFIX)ut.$(SHAREDLIBSUFFIX): $(DECODER_UNITTEST_OBJS) $(ENCODER_UNITTEST_OBJS) $(PROCESSING_UNITTEST_OBJS) $(API_TEST_OBJS) $(COMMON_UNITTEST_OBJS) $(CODEC_UNITTEST_DEPS)
$(QUIET)rm -f $@
$(QUIET_CXX)$(CXX) $(SHARED) $(LDFLAGS) $(CXX_LINK_O) $+ $(CODEC_UNITTEST_LDFLAGS)
binaries: codec_unittest$(EXEEXT) binaries: codec_unittest$(EXEEXT)
BINARIES += codec_unittest$(EXEEXT) BINARIES += codec_unittest$(EXEEXT)
codec_unittest$(EXEEXT): $(DECODER_UNITTEST_OBJS) $(ENCODER_UNITTEST_OBJS) $(PROCESSING_UNITTEST_OBJS) $(API_TEST_OBJS) $(CODEC_UNITTEST_DEPS)
ifeq (ios,$(OS))
codec_unittest$(EXEEXT): $(LIBPREFIX)ut.$(LIBSUFFIX) $(LIBPREFIX)gtest.$(LIBSUFFIX) $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX)
else
ifeq (android,$(OS))
codec_unittest$(EXEEXT): $(LIBPREFIX)ut.$(SHAREDLIBSUFFIX)
cd ./test/build/android && $(NDKROOT)/ndk-build -B APP_ABI=$(APP_ABI) && android update project -t $(TARGET) -p . && ant debug
clean_Android: clean_Android_ut
clean_Android_ut:
-cd ./test/build/android && $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) clean && ant clean
else
codec_unittest$(EXEEXT): $(DECODER_UNITTEST_OBJS) $(ENCODER_UNITTEST_OBJS) $(PROCESSING_UNITTEST_OBJS) $(API_TEST_OBJS) $(COMMON_UNITTEST_OBJS) $(CODEC_UNITTEST_DEPS)
$(QUIET)rm -f $@ $(QUIET)rm -f $@
$(QUIET_CXX)$(CXX) $(CXX_LINK_O) $+ $(CODEC_UNITTEST_LDFLAGS) $(LDFLAGS) $(QUIET_CXX)$(CXX) $(CXX_LINK_O) $+ $(CODEC_UNITTEST_LDFLAGS) $(LDFLAGS)
endif
endif
else else
binaries: binaries:
@: @:

BIN
OpenH264_API_v1.0.docx Normal file

Binary file not shown.

View File

@@ -5,7 +5,7 @@ OpenH264 is a codec library which supports H.264 encoding and decoding. It is su
Encoder Features Encoder Features
---------------- ----------------
- Constrained Baseline Profile up to Level 5.2 (4096x2304) - Constrained Baseline Profile up to Level 5.2 (4096x2304)
- Arbitrary resolution, not constrained to multiples of 16x16 - Arbitrary resolution, support cropping
- Rate control with adaptive quantization, or constant quantization - Rate control with adaptive quantization, or constant quantization
- Slice options: 1 slice per frame, N slices per frame, N macroblocks per slice, or N bytes per slice - Slice options: 1 slice per frame, N slices per frame, N macroblocks per slice, or N bytes per slice
- Multiple threads automatically used for multiple slices - Multiple threads automatically used for multiple slices
@@ -32,6 +32,8 @@ Decoder Features
- Multiple reference frames when specified in Sequence Parameter Set (SPS) - Multiple reference frames when specified in Sequence Parameter Set (SPS)
- Annex B byte stream input - Annex B byte stream input
- YUV 4:2:0 planar output - YUV 4:2:0 planar output
- Decoder output timing conformance
- Error concealment support with slice copy as default method
OS Support OS Support
---------- ----------
@@ -39,7 +41,7 @@ OS Support
- Mac OS X 64-bit and 32-bit - Mac OS X 64-bit and 32-bit
- Linux 64-bit and 32-bit - Linux 64-bit and 32-bit
- Android 32-bit - Android 32-bit
- iOS 64-bit and 32-bit - iOS 64-bit and 32-bit (not fully tested)
Processor Support Processor Support
----------------- -----------------
@@ -136,6 +138,9 @@ Known Issues
See the issue tracker on https://github.com/cisco/openh264/issues See the issue tracker on https://github.com/cisco/openh264/issues
- Encoder errors when resolution exceeds 3840x2160 - Encoder errors when resolution exceeds 3840x2160
- Encoder errors when compressed frame size exceeds half uncompressed size - Encoder errors when compressed frame size exceeds half uncompressed size
- Encoder does not support QP < 10 encoding
- Encoder does not support slice number > 35 encoding
- The result of float-point calculation in rate control will be affected by preciseness of double-typed variable on different platform
- Decoder errors when compressed frame size exceeds 1MB - Decoder errors when compressed frame size exceeds 1MB
- Encoder RC requires frame skipping to be enabled to hit the target bitrate, - Encoder RC requires frame skipping to be enabled to hit the target bitrate,
if frame skipping is disabled the target bitrate may be exceeded if frame skipping is disabled the target bitrate may be exceeded

View File

@@ -1,19 +0,0 @@
Releases
These binary releases are distributed under this license:
http://www.openh264.org/BINARY_LICENSE.txt
v1.0.0
------
http://ciscobinary.openh264.org/download/libopenh264-1.0.0-android19.so.bz2
http://ciscobinary.openh264.org/download/libopenh264-1.0.0-linux32.so.bz2
http://ciscobinary.openh264.org/download/libopenh264-1.0.0-linux64.so.bz2
http://ciscobinary.openh264.org/download/libopenh264-1.0.0-osx64.dylib.bz2
http://ciscobinary.openh264.org/download/openh264-1.0.0-win32msvc.dll.bz2
http://ciscobinary.openh264.org/download/openh264-1.0.0-win64msvc.dll.bz2

View File

@@ -20,6 +20,9 @@ INCLUDE=[]
OUTFILE="targets.mk" OUTFILE="targets.mk"
CPP_SUFFIX=".cpp" CPP_SUFFIX=".cpp"
def make_o(x):
return os.path.splitext(x)[0] + ".$(OBJ)"
def write_cpp_rule_pattern(f): def write_cpp_rule_pattern(f):
src = "$(%s_SRCDIR)/%%%s"%(PREFIX, CPP_SUFFIX) src = "$(%s_SRCDIR)/%%%s"%(PREFIX, CPP_SUFFIX)
dst = "$(%s_SRCDIR)/%%.$(OBJ)"%(PREFIX) dst = "$(%s_SRCDIR)/%%.$(OBJ)"%(PREFIX)
@@ -49,7 +52,7 @@ def write_asm_s_rule_pattern(f):
dst = "$(%s_SRCDIR)/%%.$(OBJ)"%(PREFIX) dst = "$(%s_SRCDIR)/%%.$(OBJ)"%(PREFIX)
f.write("%s: %s\n"%(dst, src)) f.write("%s: %s\n"%(dst, src))
f.write('\t$(QUIET_CCAS)$(CCAS) $(CCASFLAGS) $(ASMFLAGS) $(INCLUDES) $(' + PREFIX + '_CFLAGS) $(' + PREFIX + '_INCLUDES) -c -o $@ $<\n') f.write('\t$(QUIET_CCAS)$(CCAS) $(CFLAGS) $(ASMFLAGS) $(INCLUDES) $(' + PREFIX + '_CFLAGS) $(' + PREFIX + '_INCLUDES) -c -o $@ $<\n')
f.write("\n") f.write("\n")

View File

@@ -7,11 +7,8 @@ python build/mktargets.py --directory codec/processing --library processing
python build/mktargets.py --directory codec/console/dec --binary h264dec python build/mktargets.py --directory codec/console/dec --binary h264dec
python build/mktargets.py --directory codec/console/enc --binary h264enc python build/mktargets.py --directory codec/console/enc --binary h264enc
python build/mktargets.py --directory codec/console/common --library console_common
python build/mktargets.py --directory test/encoder --prefix encoder_unittest python build/mktargets.py --directory test/encoder --prefix encoder_unittest
python build/mktargets.py --directory test/decoder --prefix decoder_unittest python build/mktargets.py --directory test/decoder --prefix decoder_unittest
python build/mktargets.py --directory test/processing --prefix processing_unittest python build/mktargets.py --directory test/processing --prefix processing_unittest
python build/mktargets.py --directory test/api --prefix api_test python build/mktargets.py --directory test/api --prefix api_test
python build/mktargets.py --directory test/common --prefix common_unittest
python build/mktargets.py --directory module --prefix module
python build/mktargets.py --directory gtest --library gtest --out build/gtest-targets.mk --cpp-suffix .cc --include gtest-all.cc python build/mktargets.py --directory gtest --library gtest --out build/gtest-targets.mk --cpp-suffix .cc --include gtest-all.cc

View File

@@ -35,21 +35,18 @@ SYSROOT = $(NDKROOT)/platforms/android-$(NDKLEVEL)/arch-$(ARCH)
CXX = $(TOOLCHAINPREFIX)g++ CXX = $(TOOLCHAINPREFIX)g++
CC = $(TOOLCHAINPREFIX)gcc CC = $(TOOLCHAINPREFIX)gcc
AR = $(TOOLCHAINPREFIX)ar AR = $(TOOLCHAINPREFIX)ar
CFLAGS += -DANDROID_NDK -fpic --sysroot=$(SYSROOT) -MMD -MP CFLAGS += -DLINUX -DANDROID_NDK -fpic --sysroot=$(SYSROOT)
CXXFLAGS += -fno-rtti -fno-exceptions CXXFLAGS += -fno-rtti -fno-exceptions
LDFLAGS += --sysroot=$(SYSROOT) LDFLAGS += --sysroot=$(SYSROOT)
SHLDFLAGS = -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-soname,lib$(PROJECT_NAME).so SHLDFLAGS = -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-soname,lib$(PROJECT_NAME).so
STL_INCLUDES = \ STL_INCLUDES = \
-I$(NDKROOT)/sources/cxx-stl/stlport/stlport -I$(NDKROOT)/sources/cxx-stl/stlport/stlport
STL_LIB = \
$(NDKROOT)/sources/cxx-stl/stlport/libs/$(APP_ABI)/libstlport_static.a
GTEST_INCLUDES = $(STL_INCLUDES) GTEST_INCLUDES = $(STL_INCLUDES)
CODEC_UNITTEST_INCLUDES = $(STL_INCLUDES) CODEC_UNITTEST_INCLUDES = $(STL_INCLUDES)
CODEC_UNITTEST_LDFLAGS_SUFFIX = $(STL_LIB) CODEC_UNITTEST_LDFLAGS_SUFFIX = \
MODULE_INCLUDES = $(STL_INCLUDES) $(NDKROOT)/sources/cxx-stl/stlport/libs/$(APP_ABI)/libstlport_static.a
MODULE_LDFLAGS = $(STL_LIB)
binaries : decdemo encdemo binaries : decdemo encdemo
@@ -59,20 +56,13 @@ decdemo: libraries
encdemo: libraries encdemo: libraries
cd ./codec/build/android/enc && $(NDKROOT)/ndk-build -B APP_ABI=$(APP_ABI) && android update project -t $(TARGET) -p . && ant debug cd ./codec/build/android/enc && $(NDKROOT)/ndk-build -B APP_ABI=$(APP_ABI) && android update project -t $(TARGET) -p . && ant debug
clean_Android: clean_Android_dec clean_Android_enc
clean_Android_dec:
-cd ./codec/build/android/dec && $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) clean && ant clean
clean_Android_enc:
-cd ./codec/build/android/enc && $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) clean && ant clean
COMMON_INCLUDES += -I$(NDKROOT)/sources/android/cpufeatures COMMON_INCLUDES += -I$(NDKROOT)/sources/android/cpufeatures
COMMON_OBJS += $(COMMON_SRCDIR)/src/cpu-features.$(OBJ) COMMON_OBJS += $(COMMON_SRCDIR)/cpu-features.$(OBJ)
COMMON_CFLAGS += \ COMMON_CFLAGS += \
-Dandroid_getCpuIdArm=wels_getCpuIdArm -Dandroid_setCpuArm=wels_setCpuArm \ -Dandroid_getCpuIdArm=wels_getCpuIdArm -Dandroid_setCpuArm=wels_setCpuArm \
-Dandroid_getCpuCount=wels_getCpuCount -Dandroid_getCpuFamily=wels_getCpuFamily \ -Dandroid_getCpuCount=wels_getCpuCount -Dandroid_getCpuFamily=wels_getCpuFamily \
-Dandroid_getCpuFeatures=wels_getCpuFeatures -Dandroid_setCpu=wels_setCpu \ -Dandroid_getCpuFeatures=wels_getCpuFeatures -Dandroid_setCpu=wels_setCpu \
codec/common/src/cpu-features.$(OBJ): $(NDKROOT)/sources/android/cpufeatures/cpu-features.c codec/common/cpu-features.$(OBJ): $(NDKROOT)/sources/android/cpufeatures/cpu-features.c
$(QUIET_CC)$(CC) $(CFLAGS) $(INCLUDES) $(COMMON_CFLAGS) $(COMMON_INCLUDES) -c $(CXX_O) $< $(QUIET_CC)$(CC) $(CFLAGS) $(INCLUDES) $(COMMON_CFLAGS) $(COMMON_INCLUDES) -c $(CXX_O) $<

View File

@@ -1,7 +1,7 @@
include build/platform-arch.mk include build/platform-arch.mk
SHAREDLIBSUFFIX = dylib SHAREDLIBSUFFIX = dylib
SHARED = -dynamiclib SHARED = -dynamiclib
CFLAGS += -Wall -fPIC -MMD -MP CFLAGS += -Wall -fPIC -DMACOS -MMD -MP
LDFLAGS += -lpthread LDFLAGS += -lpthread
ifeq ($(ASM_ARCH), x86) ifeq ($(ASM_ARCH), x86)
ASMFLAGS += -DPREFIX ASMFLAGS += -DPREFIX

View File

@@ -10,8 +10,7 @@ endif
SDK = $(shell xcrun --sdk $(shell echo $(SDKTYPE) | tr A-Z a-z) --show-sdk-version) SDK = $(shell xcrun --sdk $(shell echo $(SDKTYPE) | tr A-Z a-z) --show-sdk-version)
SDK_MIN = 5.1 SDK_MIN = 5.1
XCODE=$(shell xcode-select -p) SDKROOT = /Applications/Xcode.app/Contents/Developer/Platforms/$(SDKTYPE).platform/Developer/SDKs/$(SDKTYPE)$(SDK).sdk
SDKROOT = $(XCODE)/Platforms/$(SDKTYPE).platform/Developer/SDKs/$(SDKTYPE)$(SDK).sdk
CFLAGS += -arch $(ARCH) -isysroot $(SDKROOT) -miphoneos-version-min=$(SDK_MIN) -DAPPLE_IOS CFLAGS += -arch $(ARCH) -isysroot $(SDKROOT) -miphoneos-version-min=$(SDK_MIN) -DAPPLE_IOS
LDFLAGS += -arch $(ARCH) -isysroot $(SDKROOT) -miphoneos-version-min=$(SDK_MIN) LDFLAGS += -arch $(ARCH) -isysroot $(SDKROOT) -miphoneos-version-min=$(SDK_MIN)

View File

@@ -1,6 +1,6 @@
include build/platform-arch.mk include build/platform-arch.mk
SHAREDLIBSUFFIX = so SHAREDLIBSUFFIX = so
CFLAGS += -Wall -fno-strict-aliasing -fPIC -MMD -MP CFLAGS += -Wall -fno-strict-aliasing -fPIC -DLINUX -MMD -MP
LDFLAGS += -lpthread LDFLAGS += -lpthread
ifeq ($(ASM_ARCH), x86) ifeq ($(ASM_ARCH), x86)
ifeq ($(ENABLE64BIT), Yes) ifeq ($(ENABLE64BIT), Yes)

View File

@@ -5,11 +5,13 @@ LDFLAGS +=
ifeq ($(ENABLE64BIT), Yes) ifeq ($(ENABLE64BIT), Yes)
ASMFLAGS += -f win64 ASMFLAGS += -f win64
ASMFLAGS_PLATFORM = -DWIN64 ASMFLAGS_PLATFORM = -DWIN64
CFLAGS += -DWIN64
CC = x86_64-w64-mingw32-gcc CC = x86_64-w64-mingw32-gcc
CXX = x86_64-w64-mingw32-g++ CXX = x86_64-w64-mingw32-g++
AR = x86_64-w64-mingw32-ar AR = x86_64-w64-mingw32-ar
else else
ASMFLAGS += -f win32 -DPREFIX ASMFLAGS += -f win32 -DPREFIX
CFLAGS += -DWIN32
endif endif
EXEEXT = .exe EXEEXT = .exe

View File

@@ -3,25 +3,25 @@ ifeq ($(ASM_ARCH), x86)
ifeq ($(ENABLE64BIT), Yes) ifeq ($(ENABLE64BIT), Yes)
ASMFLAGS += -f win64 ASMFLAGS += -f win64
ASMFLAGS_PLATFORM = -DWIN64 ASMFLAGS_PLATFORM = -DWIN64
CFLAGS += -DWIN64
else else
ASMFLAGS += -f win32 -DPREFIX ASMFLAGS += -f win32 -DPREFIX
CFLAGS += -DWIN32
endif endif
else else
CFLAGS += -DWIN32
endif endif
ifeq ($(ASM_ARCH), arm) ifeq ($(ASM_ARCH), arm)
CCAS = gas-preprocessor.pl -as-type armasm -force-thumb -- armasm CCAS = gas-preprocessor.pl -as-type armasm -force-thumb -- armasm
CCASFLAGS = -nologo -DHAVE_NEON
endif endif
CC=cl CC=cl
CXX=cl CXX=cl
AR=lib AR=lib
CXX_O=-Fo$@ CXX_O=-Fo$@
# -D_VARIADIC_MAX=10 is required to fix building gtest on MSVC 2012, but # -DGTEST_HAS_TR1_TUPLE=0 is temporarily broken in gtest,
# since we don't (easily) know which version of MSVC we use here, we add # using _VARIADIC_MAX=10 to fix building on MSVC 2012 meanwhile.
# it unconditionally. The same issue can also be worked around by adding # Once gtest works with the former again, it should be preferred.
# -DGTEST_HAS_TR1_TUPLE=0 instead, but we prefer this version since it
# matches what gtest itself does.
CFLAGS += -nologo -W3 -EHsc -fp:precise -Zc:wchar_t -Zc:forScope -D_VARIADIC_MAX=10 CFLAGS += -nologo -W3 -EHsc -fp:precise -Zc:wchar_t -Zc:forScope -D_VARIADIC_MAX=10
CXX_LINK_O=-nologo -Fe$@ CXX_LINK_O=-nologo -Fe$@
AR_OPTS=-nologo -out:$@ AR_OPTS=-nologo -out:$@
@@ -29,7 +29,6 @@ CFLAGS_OPT=-O2 -Ob1 -Oy- -Zi -GF -Gm- -GS -Gy -DNDEBUG
CFLAGS_DEBUG=-Od -Oy- -ZI -RTC1 -D_DEBUG CFLAGS_DEBUG=-Od -Oy- -ZI -RTC1 -D_DEBUG
CFLAGS_M32= CFLAGS_M32=
CFLAGS_M64= CFLAGS_M64=
LINK_LOCAL_DIR=
LINK_LIB=$(1).lib LINK_LIB=$(1).lib
LIBSUFFIX=lib LIBSUFFIX=lib
LIBPREFIX= LIBPREFIX=

View File

@@ -191,7 +191,6 @@ long (*GetOption) (ISVCDecoder*, DECODER_OPTION eOptionId, void* pOption);
}; };
#endif #endif
typedef void (*WelsTraceCallback) (void* ctx, int level, const char* string);
int WelsCreateSVCEncoder (ISVCEncoder** ppEncoder); int WelsCreateSVCEncoder (ISVCEncoder** ppEncoder);
void WelsDestroySVCEncoder (ISVCEncoder* pEncoder); void WelsDestroySVCEncoder (ISVCEncoder* pEncoder);

View File

@@ -32,8 +32,9 @@
#ifndef WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__ #ifndef WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__
#define WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__ #define WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__
////////////////Data and /or structures introduced in Cisco OpenH264 application//////////////// ////////////////Data and /or structures introduced in Cisco OpenH264 application////////////////
#include "codec_def.h"
/* Constants */ /* Constants */
#define MAX_TEMPORAL_LAYER_NUM 4 #define MAX_TEMPORAL_LAYER_NUM 4
#define MAX_SPATIAL_LAYER_NUM 4 #define MAX_SPATIAL_LAYER_NUM 4
@@ -58,7 +59,6 @@ typedef enum {
dsBitstreamError = 0x04, /* Error bitstreams(maybe broken internal frame) the decoder cared */ dsBitstreamError = 0x04, /* Error bitstreams(maybe broken internal frame) the decoder cared */
dsDepLayerLost = 0x08, /* Dependented layer is ever lost */ dsDepLayerLost = 0x08, /* Dependented layer is ever lost */
dsNoParamSets = 0x10, /* No parameter set NALs involved */ dsNoParamSets = 0x10, /* No parameter set NALs involved */
dsDataErrorConcealed = 0x20, /* current data Error concealed specified */
/* Errors derived from logic level */ /* Errors derived from logic level */
dsInvalidArgument = 0x1000, /* Invalid argument specified */ dsInvalidArgument = 0x1000, /* Invalid argument specified */
@@ -82,11 +82,6 @@ typedef enum {
ENCODER_OPTION_RC_MODE, ENCODER_OPTION_RC_MODE,
ENCODER_PADDING_PADDING, ENCODER_PADDING_PADDING,
ENCODER_OPTION_PROFILE,
ENCODER_OPTION_LEVEL,
ENCODER_OPTION_NUMBER_REF,
ENCODER_OPTION_DELIVERY_STATUS,
ENCODER_LTR_RECOVERY_REQUEST, ENCODER_LTR_RECOVERY_REQUEST,
ENCODER_LTR_MARKING_FEEDBACK, ENCODER_LTR_MARKING_FEEDBACK,
ENCOCER_LTR_MARKING_PERIOD, ENCOCER_LTR_MARKING_PERIOD,
@@ -98,9 +93,7 @@ typedef enum {
ENCODER_OPTION_CURRENT_PATH, ENCODER_OPTION_CURRENT_PATH,
ENCODER_OPTION_DUMP_FILE, ENCODER_OPTION_DUMP_FILE,
ENCODER_OPTION_TRACE_LEVEL, ENCODER_OPTION_TRACE_LEVEL
ENCODER_OPTION_TRACE_CALLBACK, // a void (*)(void* context, int level, const char* message) function which receives log messages
ENCODER_OPTION_TRACE_CALLBACK_CONTEXT,
} ENCODER_OPTION; } ENCODER_OPTION;
/* Option types introduced in decoder application */ /* Option types introduced in decoder application */
@@ -114,9 +107,6 @@ typedef enum {
DECODER_OPTION_LTR_MARKING_FLAG, // feedback wether current frame mark a LTR DECODER_OPTION_LTR_MARKING_FLAG, // feedback wether current frame mark a LTR
DECODER_OPTION_LTR_MARKED_FRAME_NUM, // feedback frame num marked by current Frame DECODER_OPTION_LTR_MARKED_FRAME_NUM, // feedback frame num marked by current Frame
DECODER_OPTION_ERROR_CON_IDC, //not finished yet, indicate decoder error concealment status, in progress DECODER_OPTION_ERROR_CON_IDC, //not finished yet, indicate decoder error concealment status, in progress
DECODER_OPTION_TRACE_LEVEL,
DECODER_OPTION_TRACE_CALLBACK, // a void (*)(void* context, int level, const char* message) function which receives log messages
DECODER_OPTION_TRACE_CALLBACK_CONTEXT,
} DECODER_OPTION; } DECODER_OPTION;
@@ -236,19 +226,6 @@ typedef enum {
LEVEL_5_2 LEVEL_5_2
} ELevelIdc; } ELevelIdc;
enum {
WELS_LOG_QUIET = 0x00, // Quiet mode
WELS_LOG_ERROR = 1 << 0, // Error log iLevel
WELS_LOG_WARNING = 1 << 1, // Warning log iLevel
WELS_LOG_INFO = 1 << 2, // Information log iLevel
WELS_LOG_DEBUG = 1 << 3, // Debug log, critical algo log
WELS_LOG_DETAIL = 1 << 4, // per packet/frame log
WELS_LOG_RESV = 1 << 5, // Resversed log iLevel
WELS_LOG_LEVEL_COUNT = 6,
WELS_LOG_DEFAULT = WELS_LOG_DEBUG // Default log iLevel in Wels codec
};
typedef struct { typedef struct {
SliceModeEnum uiSliceMode; //by default, uiSliceMode will be SM_SINGLE_SLICE SliceModeEnum uiSliceMode; //by default, uiSliceMode will be SM_SINGLE_SLICE
SSliceArgument sSliceArgument; SSliceArgument sSliceArgument;
@@ -365,24 +342,24 @@ typedef struct {
unsigned char uiSpatialId; unsigned char uiSpatialId;
unsigned char uiQualityId; unsigned char uiQualityId;
unsigned char uiPriorityId; //ignore it currently
unsigned char uiLayerType; unsigned char uiLayerType;
int iNalCount; // Count number of NAL coded already int iNalCount; // Count number of NAL coded already
int* pNalLengthInByte; // Length of NAL size in byte from 0 to iNalCount-1 int iNalLengthInByte[MAX_NAL_UNITS_IN_LAYER]; // Length of NAL size in byte from 0 to iNalCount-1
unsigned char* pBsBuf; // Buffer of bitstream contained unsigned char* pBsBuf; // Buffer of bitstream contained
} SLayerBSInfo, *PLayerBSInfo; } SLayerBSInfo, *PLayerBSInfo;
typedef struct { typedef struct {
int iTemporalId; // Temporal ID int iTemporalId; // Temporal ID
//The sub sequence layers are ordered hierarchically based on their dependency on each other so that any picture in a layer shall not be unsigned char uiFrameType;
//predicted from any picture on any higher layer.
int iSubSeqId; //refer to D.2.11 Sub-sequence information SEI message semantics
int iLayerNum; int iLayerNum;
SLayerBSInfo sLayerInfo[MAX_LAYER_NUM_OF_FRAME]; SLayerBSInfo sLayerInfo[MAX_LAYER_NUM_OF_FRAME];
EVideoFrameType eFrameType; int eOutputFrameType;
long long uiTimeStamp; long long uiTimeStamp;
} SFrameBSInfo, *PFrameBSInfo; } SFrameBSInfo, *PFrameBSInfo;
@@ -395,29 +372,13 @@ typedef struct Source_Picture_s {
long long uiTimeStamp; long long uiTimeStamp;
} SSourcePicture; } SSourcePicture;
typedef struct TagBitrateInfo { typedef struct Bitrate_Info_s {
LAYER_NUM iLayer; LAYER_NUM iLayer;
int iBitrate; //the maximum bitrate int iBitrate; //the maximum bitrate
} SBitrateInfo; } SBitrateInfo;
typedef struct TagDumpLayer { typedef struct Dump_Layer_s {
int iLayer; int iLayer;
char* pFileName; char* pFileName;
} SDumpLayer; } SDumpLayer;
typedef struct TagProfileInfo {
int iLayer;
EProfileIdc uiProfileIdc; //the profile info
} SProfileInfo;
typedef struct TagLevelInfo {
int iLayer;
ELevelIdc uiLevelIdc; //the level info
} SLevelInfo;
typedef struct TagDeliveryStatus {
int iDropNum; //the number of video frames that are dropped continuously before delivery to encoder, which is used by screen content.
int iDropFrameType; // the frame type that is dropped
int iDropFrameSize; // the frame size that is dropped
} SDeliveryStatus;
#endif//WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__ #endif//WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__

View File

@@ -5,7 +5,7 @@
android:versionName="1.0"> android:versionName="1.0">
<uses-sdk android:minSdkVersion="12"/> <uses-sdk android:minSdkVersion="12"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<application android:label="@string/app_name"> <application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".WelsDecTest" <activity android:name=".WelsDecTest"
android:label="@string/app_name"> android:label="@string/app_name">
<intent-filter> <intent-filter>

View File

@@ -1,2 +1,20 @@
# debug/release, default is release
ifeq ($(OPTIM_debug),true)
APP_OPTIM := debug
else
APP_OPTIM := release
endif
# x86/armeabi-v7a/armeabi, default is armeabi-v7a
ifeq ($(ABI_x86),true)
APP_ABI := x86
else
ifeq ($(ABI_armeabi),true)
APP_ABI := armeabi
else
APP_ABI := armeabi-v7a
endif
endif
APP_STL := stlport_shared APP_STL := stlport_shared
APP_PLATFORM := android-12 APP_PLATFORM := android-12

View File

@@ -4,9 +4,7 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := wels LOCAL_MODULE := wels
LOCAL_SRC_FILES := ../../../../../libopenh264.so LOCAL_SRC_FILES := ../../../../../libopenh264.so
ifneq (,$(wildcard $(LOCAL_PATH)/$(LOCAL_SRC_FILES)))
include $(PREBUILT_SHARED_LIBRARY) include $(PREBUILT_SHARED_LIBRARY)
endif
@@ -22,11 +20,11 @@ LOCAL_MODULE := welsdecdemo
# #
CODEC_PATH := ../../../../ CODEC_PATH := ../../../../
CONSOLE_DEC_PATH := ../../../../console/dec CONSOLE_DEC_PATH := ../../../../console/dec
CONSOLE_COMMON_PATH := ../../../../console/common
LOCAL_SRC_FILES := \ LOCAL_SRC_FILES := \
$(CONSOLE_DEC_PATH)/src/h264dec.cpp \ $(CONSOLE_DEC_PATH)/src/h264dec.cpp \
$(CONSOLE_COMMON_PATH)/src/read_config.cpp \ $(CONSOLE_DEC_PATH)/src/read_config.cpp \
$(CONSOLE_DEC_PATH)/src/d3d9_utils.cpp \ $(CONSOLE_DEC_PATH)/src/d3d9_utils.cpp \
$(CODEC_PATH)/common/src/logging.cpp \
myjni.cpp myjni.cpp
# #
# Header Includes # Header Includes
@@ -34,12 +32,15 @@ LOCAL_SRC_FILES := \
LOCAL_C_INCLUDES := \ LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../../../../api/svc \ $(LOCAL_PATH)/../../../../api/svc \
$(LOCAL_PATH)/../../../../console/dec/inc \ $(LOCAL_PATH)/../../../../console/dec/inc \
$(LOCAL_PATH)/../../../../console/common/inc \
$(LOCAL_PATH)/../../../../common/inc $(LOCAL_PATH)/../../../../common/inc
# #
# Compile Flags and Link Libraries # Compile Flags and Link Libraries
# #
LOCAL_CFLAGS := -DANDROID_NDK LOCAL_CFLAGS := -O3 -DANDROID_NDK
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
LOCAL_ARM_MODE := arm
endif
LOCAL_LDLIBS := -llog LOCAL_LDLIBS := -llog
LOCAL_SHARED_LIBRARIES := wels LOCAL_SHARED_LIBRARIES := wels

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -6,7 +6,7 @@
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">"
<Button <Button
android:id="@+id/cfg" android:id="@+id/cfg"
android:layout_width="wrap_content" android:layout_width="wrap_content"

View File

@@ -5,7 +5,7 @@
android:versionName="1.0"> android:versionName="1.0">
<uses-sdk android:minSdkVersion="12"/> <uses-sdk android:minSdkVersion="12"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<application android:label="@string/app_name"> <application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".WelsEncTest" <activity android:name=".WelsEncTest"
android:label="@string/app_name"> android:label="@string/app_name">
<intent-filter> <intent-filter>

View File

@@ -1,2 +1,20 @@
# debug/release, default is release
ifeq ($(OPTIM_debug),true)
APP_OPTIM := debug
else
APP_OPTIM := release
endif
# x86/armeabi-v7a/armeabi, default is armeabi-v7a
ifeq ($(ABI_x86),true)
APP_ABI := x86
else
ifeq ($(ABI_armeabi),true)
APP_ABI := armeabi
else
APP_ABI := armeabi-v7a
endif
endif
APP_STL := stlport_shared APP_STL := stlport_shared
APP_PLATFORM := android-12 APP_PLATFORM := android-12

View File

@@ -1,12 +1,10 @@
# Generate the libwelsencdemo.so file # Generate the libwelsdecdemo.so file
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := wels LOCAL_MODULE := wels
LOCAL_SRC_FILES := ../../../../../libopenh264.so LOCAL_SRC_FILES := ../../../../../libopenh264.so
ifneq (,$(wildcard $(LOCAL_PATH)/$(LOCAL_SRC_FILES)))
include $(PREBUILT_SHARED_LIBRARY) include $(PREBUILT_SHARED_LIBRARY)
endif
@@ -22,10 +20,10 @@ LOCAL_MODULE := welsencdemo
# #
CODEC_PATH := ../../../../ CODEC_PATH := ../../../../
CONSOLE_ENC_PATH := ../../../../console/enc CONSOLE_ENC_PATH := ../../../../console/enc
CONSOLE_COMMON_PATH := ../../../../console/common
LOCAL_SRC_FILES := \ LOCAL_SRC_FILES := \
$(CONSOLE_ENC_PATH)/src/welsenc.cpp \ $(CONSOLE_ENC_PATH)/src/welsenc.cpp \
$(CONSOLE_COMMON_PATH)/src/read_config.cpp \ $(CONSOLE_ENC_PATH)/src/read_config.cpp \
$(CODEC_PATH)/common/src/logging.cpp \
myjni.cpp myjni.cpp
# #
@@ -34,7 +32,6 @@ LOCAL_SRC_FILES := \
LOCAL_C_INCLUDES := \ LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../../../../api/svc \ $(LOCAL_PATH)/../../../../api/svc \
$(LOCAL_PATH)/../../../../console/enc/inc \ $(LOCAL_PATH)/../../../../console/enc/inc \
$(LOCAL_PATH)/../../../../console/common/inc \
$(LOCAL_PATH)/../../../../encoder/core/inc \ $(LOCAL_PATH)/../../../../encoder/core/inc \
$(LOCAL_PATH)/../../../../processing/interface \ $(LOCAL_PATH)/../../../../processing/interface \
$(LOCAL_PATH)/../../../../common/inc $(LOCAL_PATH)/../../../../common/inc
@@ -43,7 +40,11 @@ LOCAL_C_INCLUDES := \
# #
# Compile Flags and Link Libraries # Compile Flags and Link Libraries
# #
LOCAL_CFLAGS := -DANDROID_NDK LOCAL_CFLAGS := -O3 -DANDROID_NDK
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
LOCAL_ARM_MODE := arm
endif
LOCAL_LDLIBS := -llog LOCAL_LDLIBS := -llog
LOCAL_SHARED_LIBRARIES := wels LOCAL_SHARED_LIBRARIES := wels

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -6,7 +6,7 @@
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">"
<Button <Button
android:id="@+id/cfg" android:id="@+id/cfg"
android:layout_width="wrap_content" android:layout_width="wrap_content"

View File

@@ -14,20 +14,33 @@
4C3406CD18D96EA600DFA14A /* cpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C3406C418D96EA600DFA14A /* cpu.cpp */; }; 4C3406CD18D96EA600DFA14A /* cpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C3406C418D96EA600DFA14A /* cpu.cpp */; };
4C3406CE18D96EA600DFA14A /* crt_util_safe_x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C3406C518D96EA600DFA14A /* crt_util_safe_x.cpp */; }; 4C3406CE18D96EA600DFA14A /* crt_util_safe_x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C3406C518D96EA600DFA14A /* crt_util_safe_x.cpp */; };
4C3406CF18D96EA600DFA14A /* deblocking_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C3406C618D96EA600DFA14A /* deblocking_common.cpp */; }; 4C3406CF18D96EA600DFA14A /* deblocking_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C3406C618D96EA600DFA14A /* deblocking_common.cpp */; };
4C3406D018D96EA600DFA14A /* logging.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C3406C718D96EA600DFA14A /* logging.cpp */; };
4C3406D118D96EA600DFA14A /* WelsThreadLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C3406C818D96EA600DFA14A /* WelsThreadLib.cpp */; }; 4C3406D118D96EA600DFA14A /* WelsThreadLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C3406C818D96EA600DFA14A /* WelsThreadLib.cpp */; };
4CC61F0918FF6B4B00E56EAB /* copy_mb_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CC61F0818FF6B4B00E56EAB /* copy_mb_neon.S */; }; 4CC61F0918FF6B4B00E56EAB /* copy_mb_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CC61F0818FF6B4B00E56EAB /* copy_mb_neon.S */; };
4CE443D918B722CD0017DF25 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE443D818B722CD0017DF25 /* Foundation.framework */; }; 4CE443D918B722CD0017DF25 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE443D818B722CD0017DF25 /* Foundation.framework */; };
53C1C9BC193F0FB000404D8F /* expand_pic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 53C1C9BB193F0FB000404D8F /* expand_pic.cpp */; }; 4CE443E718B722CD0017DF25 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE443E618B722CD0017DF25 /* XCTest.framework */; };
5BA8F2C019603F5F00011CE4 /* common_tables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5BA8F2BF19603F5F00011CE4 /* common_tables.cpp */; }; 4CE443E818B722CD0017DF25 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE443D818B722CD0017DF25 /* Foundation.framework */; };
4CE443EA18B722CD0017DF25 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE443E918B722CD0017DF25 /* UIKit.framework */; };
4CE443ED18B722CD0017DF25 /* libcommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE443D518B722CD0017DF25 /* libcommon.a */; };
4CE443F318B722CD0017DF25 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4CE443F118B722CD0017DF25 /* InfoPlist.strings */; };
4CE443F518B722CD0017DF25 /* commonTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE443F418B722CD0017DF25 /* commonTests.m */; };
F0B204F918FD23BF005DA23F /* copy_mb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F0B204F818FD23BF005DA23F /* copy_mb.cpp */; }; F0B204F918FD23BF005DA23F /* copy_mb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F0B204F818FD23BF005DA23F /* copy_mb.cpp */; };
F556A8241906673900E156A8 /* arm_arch64_common_macro.S in Sources */ = {isa = PBXBuildFile; fileRef = F556A8221906673900E156A8 /* arm_arch64_common_macro.S */; }; F556A8241906673900E156A8 /* arm_arch64_common_macro.S in Sources */ = {isa = PBXBuildFile; fileRef = F556A8221906673900E156A8 /* arm_arch64_common_macro.S */; };
F556A8251906673900E156A8 /* expand_picture_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F556A8231906673900E156A8 /* expand_picture_aarch64_neon.S */; }; F556A8251906673900E156A8 /* expand_picture_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F556A8231906673900E156A8 /* expand_picture_aarch64_neon.S */; };
F5AC94FF193EB7D800F58154 /* deblocking_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F5AC94FE193EB7D800F58154 /* deblocking_aarch64_neon.S */; };
F5B8D82D190757290037849A /* mc_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F5B8D82C190757290037849A /* mc_aarch64_neon.S */; }; F5B8D82D190757290037849A /* mc_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F5B8D82C190757290037849A /* mc_aarch64_neon.S */; };
F5BB0BB8196BB5960072D50D /* copy_mb_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F5BB0BB7196BB5960072D50D /* copy_mb_aarch64_neon.S */; };
FAABAA1818E9354A00D4186F /* sad_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAABAA1718E9354A00D4186F /* sad_common.cpp */; }; FAABAA1818E9354A00D4186F /* sad_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAABAA1718E9354A00D4186F /* sad_common.cpp */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
4CE443EB18B722CD0017DF25 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 4CE443CD18B722CC0017DF25 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 4CE443D418B722CD0017DF25;
remoteInfo = common;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */ /* Begin PBXCopyFilesBuildPhase section */
4CE443D318B722CD0017DF25 /* CopyFiles */ = { 4CE443D318B722CD0017DF25 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase; isa = PBXCopyFilesBuildPhase;
@@ -49,6 +62,8 @@
4C3406B818D96EA600DFA14A /* cpu_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpu_core.h; sourceTree = "<group>"; }; 4C3406B818D96EA600DFA14A /* cpu_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpu_core.h; sourceTree = "<group>"; };
4C3406B918D96EA600DFA14A /* crt_util_safe_x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crt_util_safe_x.h; sourceTree = "<group>"; }; 4C3406B918D96EA600DFA14A /* crt_util_safe_x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crt_util_safe_x.h; sourceTree = "<group>"; };
4C3406BA18D96EA600DFA14A /* deblocking_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = deblocking_common.h; sourceTree = "<group>"; }; 4C3406BA18D96EA600DFA14A /* deblocking_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = deblocking_common.h; sourceTree = "<group>"; };
4C3406BB18D96EA600DFA14A /* expand_picture_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = expand_picture_common.h; sourceTree = "<group>"; };
4C3406BC18D96EA600DFA14A /* logging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = logging.h; sourceTree = "<group>"; };
4C3406BD18D96EA600DFA14A /* ls_defines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ls_defines.h; sourceTree = "<group>"; }; 4C3406BD18D96EA600DFA14A /* ls_defines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ls_defines.h; sourceTree = "<group>"; };
4C3406BE18D96EA600DFA14A /* macros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macros.h; sourceTree = "<group>"; }; 4C3406BE18D96EA600DFA14A /* macros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macros.h; sourceTree = "<group>"; };
4C3406BF18D96EA600DFA14A /* mc_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mc_common.h; sourceTree = "<group>"; }; 4C3406BF18D96EA600DFA14A /* mc_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mc_common.h; sourceTree = "<group>"; };
@@ -58,22 +73,22 @@
4C3406C418D96EA600DFA14A /* cpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cpu.cpp; sourceTree = "<group>"; }; 4C3406C418D96EA600DFA14A /* cpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cpu.cpp; sourceTree = "<group>"; };
4C3406C518D96EA600DFA14A /* crt_util_safe_x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = crt_util_safe_x.cpp; sourceTree = "<group>"; }; 4C3406C518D96EA600DFA14A /* crt_util_safe_x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = crt_util_safe_x.cpp; sourceTree = "<group>"; };
4C3406C618D96EA600DFA14A /* deblocking_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = deblocking_common.cpp; sourceTree = "<group>"; }; 4C3406C618D96EA600DFA14A /* deblocking_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = deblocking_common.cpp; sourceTree = "<group>"; };
4C3406C718D96EA600DFA14A /* logging.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = logging.cpp; sourceTree = "<group>"; };
4C3406C818D96EA600DFA14A /* WelsThreadLib.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WelsThreadLib.cpp; sourceTree = "<group>"; }; 4C3406C818D96EA600DFA14A /* WelsThreadLib.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WelsThreadLib.cpp; sourceTree = "<group>"; };
4CC61F0818FF6B4B00E56EAB /* copy_mb_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = copy_mb_neon.S; sourceTree = "<group>"; }; 4CC61F0818FF6B4B00E56EAB /* copy_mb_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = copy_mb_neon.S; sourceTree = "<group>"; };
4CE443D518B722CD0017DF25 /* libcommon.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libcommon.a; sourceTree = BUILT_PRODUCTS_DIR; }; 4CE443D518B722CD0017DF25 /* libcommon.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libcommon.a; sourceTree = BUILT_PRODUCTS_DIR; };
4CE443D818B722CD0017DF25 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 4CE443D818B722CD0017DF25 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
4CE443E518B722CD0017DF25 /* commonTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = commonTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
4CE443E618B722CD0017DF25 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
4CE443E918B722CD0017DF25 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; 4CE443E918B722CD0017DF25 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
53C1C9BA193F0F9E00404D8F /* expand_pic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = expand_pic.h; sourceTree = "<group>"; }; 4CE443F018B722CD0017DF25 /* commonTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "commonTests-Info.plist"; sourceTree = "<group>"; };
53C1C9BB193F0FB000404D8F /* expand_pic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = expand_pic.cpp; sourceTree = "<group>"; }; 4CE443F218B722CD0017DF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
5BA8F2BE19603F3500011CE4 /* wels_common_defs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_common_defs.h; sourceTree = "<group>"; }; 4CE443F418B722CD0017DF25 /* commonTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = commonTests.m; sourceTree = "<group>"; };
5BA8F2BF19603F5F00011CE4 /* common_tables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = common_tables.cpp; sourceTree = "<group>"; };
F0B204F718FD23B6005DA23F /* copy_mb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = copy_mb.h; sourceTree = "<group>"; }; F0B204F718FD23B6005DA23F /* copy_mb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = copy_mb.h; sourceTree = "<group>"; };
F0B204F818FD23BF005DA23F /* copy_mb.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = copy_mb.cpp; sourceTree = "<group>"; }; F0B204F818FD23BF005DA23F /* copy_mb.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = copy_mb.cpp; sourceTree = "<group>"; };
F556A8221906673900E156A8 /* arm_arch64_common_macro.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = arm_arch64_common_macro.S; path = arm64/arm_arch64_common_macro.S; sourceTree = "<group>"; }; F556A8221906673900E156A8 /* arm_arch64_common_macro.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = arm_arch64_common_macro.S; path = arm64/arm_arch64_common_macro.S; sourceTree = "<group>"; };
F556A8231906673900E156A8 /* expand_picture_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = expand_picture_aarch64_neon.S; path = arm64/expand_picture_aarch64_neon.S; sourceTree = "<group>"; }; F556A8231906673900E156A8 /* expand_picture_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = expand_picture_aarch64_neon.S; path = arm64/expand_picture_aarch64_neon.S; sourceTree = "<group>"; };
F5AC94FE193EB7D800F58154 /* deblocking_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = deblocking_aarch64_neon.S; path = arm64/deblocking_aarch64_neon.S; sourceTree = "<group>"; };
F5B8D82C190757290037849A /* mc_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = mc_aarch64_neon.S; path = arm64/mc_aarch64_neon.S; sourceTree = "<group>"; }; F5B8D82C190757290037849A /* mc_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = mc_aarch64_neon.S; path = arm64/mc_aarch64_neon.S; sourceTree = "<group>"; };
F5BB0BB7196BB5960072D50D /* copy_mb_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = copy_mb_aarch64_neon.S; path = arm64/copy_mb_aarch64_neon.S; sourceTree = "<group>"; };
FAABAA1618E9353F00D4186F /* sad_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sad_common.h; sourceTree = "<group>"; }; FAABAA1618E9353F00D4186F /* sad_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sad_common.h; sourceTree = "<group>"; };
FAABAA1718E9354A00D4186F /* sad_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sad_common.cpp; sourceTree = "<group>"; }; FAABAA1718E9354A00D4186F /* sad_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sad_common.cpp; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
@@ -87,6 +102,17 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
4CE443E218B722CD0017DF25 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
4CE443E718B722CD0017DF25 /* XCTest.framework in Frameworks */,
4CE443EA18B722CD0017DF25 /* UIKit.framework in Frameworks */,
4CE443ED18B722CD0017DF25 /* libcommon.a in Frameworks */,
4CE443E818B722CD0017DF25 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */ /* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */ /* Begin PBXGroup section */
@@ -110,14 +136,14 @@
4C3406B718D96EA600DFA14A /* cpu.h */, 4C3406B718D96EA600DFA14A /* cpu.h */,
4C3406B818D96EA600DFA14A /* cpu_core.h */, 4C3406B818D96EA600DFA14A /* cpu_core.h */,
4C3406B918D96EA600DFA14A /* crt_util_safe_x.h */, 4C3406B918D96EA600DFA14A /* crt_util_safe_x.h */,
53C1C9BA193F0F9E00404D8F /* expand_pic.h */,
4C3406BA18D96EA600DFA14A /* deblocking_common.h */, 4C3406BA18D96EA600DFA14A /* deblocking_common.h */,
4C3406BB18D96EA600DFA14A /* expand_picture_common.h */,
4C3406BC18D96EA600DFA14A /* logging.h */,
4C3406BD18D96EA600DFA14A /* ls_defines.h */, 4C3406BD18D96EA600DFA14A /* ls_defines.h */,
4C3406BE18D96EA600DFA14A /* macros.h */, 4C3406BE18D96EA600DFA14A /* macros.h */,
4C3406BF18D96EA600DFA14A /* mc_common.h */, 4C3406BF18D96EA600DFA14A /* mc_common.h */,
4C3406C018D96EA600DFA14A /* measure_time.h */, 4C3406C018D96EA600DFA14A /* measure_time.h */,
4C3406C118D96EA600DFA14A /* typedefs.h */, 4C3406C118D96EA600DFA14A /* typedefs.h */,
5BA8F2BE19603F3500011CE4 /* wels_common_defs.h */,
4C3406C218D96EA600DFA14A /* WelsThreadLib.h */, 4C3406C218D96EA600DFA14A /* WelsThreadLib.h */,
); );
path = inc; path = inc;
@@ -126,13 +152,12 @@
4C3406C318D96EA600DFA14A /* src */ = { 4C3406C318D96EA600DFA14A /* src */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
5BA8F2BF19603F5F00011CE4 /* common_tables.cpp */,
F0B204F818FD23BF005DA23F /* copy_mb.cpp */, F0B204F818FD23BF005DA23F /* copy_mb.cpp */,
FAABAA1718E9354A00D4186F /* sad_common.cpp */, FAABAA1718E9354A00D4186F /* sad_common.cpp */,
4C3406C418D96EA600DFA14A /* cpu.cpp */, 4C3406C418D96EA600DFA14A /* cpu.cpp */,
4C3406C518D96EA600DFA14A /* crt_util_safe_x.cpp */, 4C3406C518D96EA600DFA14A /* crt_util_safe_x.cpp */,
53C1C9BB193F0FB000404D8F /* expand_pic.cpp */,
4C3406C618D96EA600DFA14A /* deblocking_common.cpp */, 4C3406C618D96EA600DFA14A /* deblocking_common.cpp */,
4C3406C718D96EA600DFA14A /* logging.cpp */,
4C3406C818D96EA600DFA14A /* WelsThreadLib.cpp */, 4C3406C818D96EA600DFA14A /* WelsThreadLib.cpp */,
); );
path = src; path = src;
@@ -142,6 +167,7 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4CE4472F18BC61650017DF25 /* common */, 4CE4472F18BC61650017DF25 /* common */,
4CE443EE18B722CD0017DF25 /* commonTests */,
4CE443D718B722CD0017DF25 /* Frameworks */, 4CE443D718B722CD0017DF25 /* Frameworks */,
4CE443D618B722CD0017DF25 /* Products */, 4CE443D618B722CD0017DF25 /* Products */,
); );
@@ -151,6 +177,7 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4CE443D518B722CD0017DF25 /* libcommon.a */, 4CE443D518B722CD0017DF25 /* libcommon.a */,
4CE443E518B722CD0017DF25 /* commonTests.xctest */,
); );
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -159,11 +186,30 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4CE443D818B722CD0017DF25 /* Foundation.framework */, 4CE443D818B722CD0017DF25 /* Foundation.framework */,
4CE443E618B722CD0017DF25 /* XCTest.framework */,
4CE443E918B722CD0017DF25 /* UIKit.framework */, 4CE443E918B722CD0017DF25 /* UIKit.framework */,
); );
name = Frameworks; name = Frameworks;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
4CE443EE18B722CD0017DF25 /* commonTests */ = {
isa = PBXGroup;
children = (
4CE443F418B722CD0017DF25 /* commonTests.m */,
4CE443EF18B722CD0017DF25 /* Supporting Files */,
);
path = commonTests;
sourceTree = "<group>";
};
4CE443EF18B722CD0017DF25 /* Supporting Files */ = {
isa = PBXGroup;
children = (
4CE443F018B722CD0017DF25 /* commonTests-Info.plist */,
4CE443F118B722CD0017DF25 /* InfoPlist.strings */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
4CE4472F18BC61650017DF25 /* common */ = { 4CE4472F18BC61650017DF25 /* common */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@@ -179,8 +225,6 @@
F556A81D1906669F00E156A8 /* arm64 */ = { F556A81D1906669F00E156A8 /* arm64 */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F5BB0BB7196BB5960072D50D /* copy_mb_aarch64_neon.S */,
F5AC94FE193EB7D800F58154 /* deblocking_aarch64_neon.S */,
F5B8D82C190757290037849A /* mc_aarch64_neon.S */, F5B8D82C190757290037849A /* mc_aarch64_neon.S */,
F556A8221906673900E156A8 /* arm_arch64_common_macro.S */, F556A8221906673900E156A8 /* arm_arch64_common_macro.S */,
F556A8231906673900E156A8 /* expand_picture_aarch64_neon.S */, F556A8231906673900E156A8 /* expand_picture_aarch64_neon.S */,
@@ -208,13 +252,31 @@
productReference = 4CE443D518B722CD0017DF25 /* libcommon.a */; productReference = 4CE443D518B722CD0017DF25 /* libcommon.a */;
productType = "com.apple.product-type.library.static"; productType = "com.apple.product-type.library.static";
}; };
4CE443E418B722CD0017DF25 /* commonTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4CE443FB18B722CD0017DF25 /* Build configuration list for PBXNativeTarget "commonTests" */;
buildPhases = (
4CE443E118B722CD0017DF25 /* Sources */,
4CE443E218B722CD0017DF25 /* Frameworks */,
4CE443E318B722CD0017DF25 /* Resources */,
);
buildRules = (
);
dependencies = (
4CE443EC18B722CD0017DF25 /* PBXTargetDependency */,
);
name = commonTests;
productName = commonTests;
productReference = 4CE443E518B722CD0017DF25 /* commonTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */ /* End PBXNativeTarget section */
/* Begin PBXProject section */ /* Begin PBXProject section */
4CE443CD18B722CC0017DF25 /* Project object */ = { 4CE443CD18B722CC0017DF25 /* Project object */ = {
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
LastUpgradeCheck = 0510; LastUpgradeCheck = 0500;
ORGANIZATIONNAME = video; ORGANIZATIONNAME = video;
}; };
buildConfigurationList = 4CE443D018B722CC0017DF25 /* Build configuration list for PBXProject "common" */; buildConfigurationList = 4CE443D018B722CC0017DF25 /* Build configuration list for PBXProject "common" */;
@@ -230,10 +292,22 @@
projectRoot = ""; projectRoot = "";
targets = ( targets = (
4CE443D418B722CD0017DF25 /* common */, 4CE443D418B722CD0017DF25 /* common */,
4CE443E418B722CD0017DF25 /* commonTests */,
); );
}; };
/* End PBXProject section */ /* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
4CE443E318B722CD0017DF25 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4CE443F318B722CD0017DF25 /* InfoPlist.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */
4CE443D118B722CD0017DF25 /* Sources */ = { 4CE443D118B722CD0017DF25 /* Sources */ = {
isa = PBXSourcesBuildPhase; isa = PBXSourcesBuildPhase;
@@ -242,16 +316,13 @@
F5B8D82D190757290037849A /* mc_aarch64_neon.S in Sources */, F5B8D82D190757290037849A /* mc_aarch64_neon.S in Sources */,
4C3406C918D96EA600DFA14A /* arm_arch_common_macro.S in Sources */, 4C3406C918D96EA600DFA14A /* arm_arch_common_macro.S in Sources */,
F556A8241906673900E156A8 /* arm_arch64_common_macro.S in Sources */, F556A8241906673900E156A8 /* arm_arch64_common_macro.S in Sources */,
F5AC94FF193EB7D800F58154 /* deblocking_aarch64_neon.S in Sources */,
4C3406CE18D96EA600DFA14A /* crt_util_safe_x.cpp in Sources */, 4C3406CE18D96EA600DFA14A /* crt_util_safe_x.cpp in Sources */,
4C3406CF18D96EA600DFA14A /* deblocking_common.cpp in Sources */, 4C3406CF18D96EA600DFA14A /* deblocking_common.cpp in Sources */,
5BA8F2C019603F5F00011CE4 /* common_tables.cpp in Sources */, 4C3406D018D96EA600DFA14A /* logging.cpp in Sources */,
4C3406D118D96EA600DFA14A /* WelsThreadLib.cpp in Sources */, 4C3406D118D96EA600DFA14A /* WelsThreadLib.cpp in Sources */,
4C3406CC18D96EA600DFA14A /* mc_neon.S in Sources */, 4C3406CC18D96EA600DFA14A /* mc_neon.S in Sources */,
F5BB0BB8196BB5960072D50D /* copy_mb_aarch64_neon.S in Sources */,
4C3406CB18D96EA600DFA14A /* expand_picture_neon.S in Sources */, 4C3406CB18D96EA600DFA14A /* expand_picture_neon.S in Sources */,
4CC61F0918FF6B4B00E56EAB /* copy_mb_neon.S in Sources */, 4CC61F0918FF6B4B00E56EAB /* copy_mb_neon.S in Sources */,
53C1C9BC193F0FB000404D8F /* expand_pic.cpp in Sources */,
4C3406CD18D96EA600DFA14A /* cpu.cpp in Sources */, 4C3406CD18D96EA600DFA14A /* cpu.cpp in Sources */,
F556A8251906673900E156A8 /* expand_picture_aarch64_neon.S in Sources */, F556A8251906673900E156A8 /* expand_picture_aarch64_neon.S in Sources */,
4C3406CA18D96EA600DFA14A /* deblocking_neon.S in Sources */, 4C3406CA18D96EA600DFA14A /* deblocking_neon.S in Sources */,
@@ -260,13 +331,41 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
4CE443E118B722CD0017DF25 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4CE443F518B722CD0017DF25 /* commonTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */ /* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
4CE443EC18B722CD0017DF25 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4CE443D418B722CD0017DF25 /* common */;
targetProxy = 4CE443EB18B722CD0017DF25 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
4CE443F118B722CD0017DF25 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
4CE443F218B722CD0017DF25 /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */ /* Begin XCBuildConfiguration section */
4CE443F618B722CD0017DF25 /* Debug */ = { 4CE443F618B722CD0017DF25 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
@@ -304,6 +403,7 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
@@ -334,6 +434,7 @@
4CE443F918B722CD0017DF25 /* Debug */ = { 4CE443F918B722CD0017DF25 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default"; CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
CLANG_CXX_LIBRARY = "compiler-default"; CLANG_CXX_LIBRARY = "compiler-default";
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
@@ -365,6 +466,7 @@
4CE443FA18B722CD0017DF25 /* Release */ = { 4CE443FA18B722CD0017DF25 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default"; CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
CLANG_CXX_LIBRARY = "compiler-default"; CLANG_CXX_LIBRARY = "compiler-default";
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
@@ -390,6 +492,44 @@
}; };
name = Release; name = Release;
}; };
4CE443FC18B722CD0017DF25 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
"$(DEVELOPER_FRAMEWORKS_DIR)",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "common/common-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
INFOPLIST_FILE = "commonTests/commonTests-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = xctest;
};
name = Debug;
};
4CE443FD18B722CD0017DF25 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
"$(DEVELOPER_FRAMEWORKS_DIR)",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "common/common-Prefix.pch";
INFOPLIST_FILE = "commonTests/commonTests-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = xctest;
};
name = Release;
};
/* End XCBuildConfiguration section */ /* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */ /* Begin XCConfigurationList section */
@@ -411,6 +551,15 @@
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
4CE443FB18B722CD0017DF25 /* Build configuration list for PBXNativeTarget "commonTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4CE443FC18B722CD0017DF25 /* Debug */,
4CE443FD18B722CD0017DF25 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */ /* End XCConfigurationList section */
}; };
rootObject = 4CE443CD18B722CC0017DF25 /* Project object */; rootObject = 4CE443CD18B722CC0017DF25 /* Project object */;

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>cisco.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

View File

@@ -0,0 +1,58 @@
/*!
* \copy
* Copyright (c) 2013, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#import <XCTest/XCTest.h>
@interface commonTests : XCTestCase
@end
@implementation commonTests
- (void)setUp
{
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
}
- (void)tearDown
{
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
- (void)testExample
{
XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__);
}
@end

View File

@@ -35,6 +35,13 @@
remoteGlobalIDString = 4CE443D518B722CD0017DF25; remoteGlobalIDString = 4CE443D518B722CD0017DF25;
remoteInfo = common; remoteInfo = common;
}; };
4CE444F718B72A900017DF25 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 4CE444F018B72A8F0017DF25 /* common.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 4CE443E518B722CD0017DF25;
remoteInfo = commonTests;
};
4CE444FF18B72AD70017DF25 /* PBXContainerItemProxy */ = { 4CE444FF18B72AD70017DF25 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy; isa = PBXContainerItemProxy;
containerPortal = 4CE444FA18B72AD70017DF25 /* welsdec.xcodeproj */; containerPortal = 4CE444FA18B72AD70017DF25 /* welsdec.xcodeproj */;
@@ -42,6 +49,13 @@
remoteGlobalIDString = 4CE4427918B6FC360017DF25; remoteGlobalIDString = 4CE4427918B6FC360017DF25;
remoteInfo = welsdec; remoteInfo = welsdec;
}; };
4CE4450118B72AD70017DF25 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 4CE444FA18B72AD70017DF25 /* welsdec.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 4CE4428918B6FC360017DF25;
remoteInfo = welsdecTests;
};
/* End PBXContainerItemProxy section */ /* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
@@ -64,10 +78,10 @@
F0E663671810EFA5000C888E /* DEMOViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DEMOViewController.h; sourceTree = "<group>"; }; F0E663671810EFA5000C888E /* DEMOViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DEMOViewController.h; sourceTree = "<group>"; };
F0E663681810EFA5000C888E /* DEMOViewController.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = DEMOViewController.m; sourceTree = "<group>"; }; F0E663681810EFA5000C888E /* DEMOViewController.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = DEMOViewController.m; sourceTree = "<group>"; };
F0E663721810EFF7000C888E /* d3d9_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = d3d9_utils.h; sourceTree = "<group>"; }; F0E663721810EFF7000C888E /* d3d9_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = d3d9_utils.h; sourceTree = "<group>"; };
F0E663741810EFF7000C888E /* read_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = read_config.h; path = ../../common/inc/read_config.h; sourceTree = "<group>"; }; F0E663741810EFF7000C888E /* read_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = read_config.h; sourceTree = "<group>"; };
F0E663761810EFF7000C888E /* d3d9_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = d3d9_utils.cpp; sourceTree = "<group>"; }; F0E663761810EFF7000C888E /* d3d9_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = d3d9_utils.cpp; sourceTree = "<group>"; };
F0E663771810EFF7000C888E /* h264dec.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = h264dec.cpp; sourceTree = "<group>"; }; F0E663771810EFF7000C888E /* h264dec.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = h264dec.cpp; sourceTree = "<group>"; };
F0E663791810EFF7000C888E /* read_config.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = read_config.cpp; path = ../../common/src/read_config.cpp; sourceTree = "<group>"; }; F0E663791810EFF7000C888E /* read_config.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = read_config.cpp; sourceTree = "<group>"; };
F0E663B3181117B9000C888E /* DEMOViewControllerShowResource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DEMOViewControllerShowResource.h; sourceTree = "<group>"; }; F0E663B3181117B9000C888E /* DEMOViewControllerShowResource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DEMOViewControllerShowResource.h; sourceTree = "<group>"; };
F0E663B4181117B9000C888E /* DEMOViewControllerShowResource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DEMOViewControllerShowResource.m; sourceTree = "<group>"; }; F0E663B4181117B9000C888E /* DEMOViewControllerShowResource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DEMOViewControllerShowResource.m; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
@@ -92,6 +106,7 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4CE444F618B72A900017DF25 /* libcommon.a */, 4CE444F618B72A900017DF25 /* libcommon.a */,
4CE444F818B72A900017DF25 /* commonTests.xctest */,
); );
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -100,6 +115,7 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4CE4450018B72AD70017DF25 /* libwelsdec.a */, 4CE4450018B72AD70017DF25 /* libwelsdec.a */,
4CE4450218B72AD70017DF25 /* welsdecTests.xctest */,
); );
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -257,6 +273,13 @@
remoteRef = 4CE444F518B72A900017DF25 /* PBXContainerItemProxy */; remoteRef = 4CE444F518B72A900017DF25 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR; sourceTree = BUILT_PRODUCTS_DIR;
}; };
4CE444F818B72A900017DF25 /* commonTests.xctest */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = commonTests.xctest;
remoteRef = 4CE444F718B72A900017DF25 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
4CE4450018B72AD70017DF25 /* libwelsdec.a */ = { 4CE4450018B72AD70017DF25 /* libwelsdec.a */ = {
isa = PBXReferenceProxy; isa = PBXReferenceProxy;
fileType = archive.ar; fileType = archive.ar;
@@ -264,6 +287,13 @@
remoteRef = 4CE444FF18B72AD70017DF25 /* PBXContainerItemProxy */; remoteRef = 4CE444FF18B72AD70017DF25 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR; sourceTree = BUILT_PRODUCTS_DIR;
}; };
4CE4450218B72AD70017DF25 /* welsdecTests.xctest */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = welsdecTests.xctest;
remoteRef = 4CE4450118B72AD70017DF25 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */ /* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */ /* Begin PBXResourcesBuildPhase section */

View File

@@ -34,6 +34,6 @@
@interface DEMOAppDelegate : UIResponder <UIApplicationDelegate> @interface DEMOAppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow* window; @property (strong, nonatomic) UIWindow *window;
@end @end

View File

@@ -32,17 +32,18 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
@interface DEMOViewController : UIViewController { @interface DEMOViewController : UIViewController
{
BOOL bEnableFlag; BOOL bEnableFlag;
} }
@property (strong, nonatomic) NSMutableArray* resFileArray; @property (strong, nonatomic) NSMutableArray *resFileArray;
@property (retain, nonatomic)UIAlertView* statusIndication; @property (retain, nonatomic)UIAlertView *statusIndication;
@property (assign, nonatomic) NSUInteger selectedRow; @property (assign, nonatomic) NSUInteger selectedRow;
- (IBAction)startDecoderAll: (id)sender; - (IBAction)startDecoderAll:(id)sender;
- (IBAction)startDecoderOne: (id)sender; - (IBAction)startDecoderOne:(id)sender;
@property (weak, nonatomic) IBOutlet UITextField* currentSelectedFileTF; @property (weak, nonatomic) IBOutlet UITextField *currentSelectedFileTF;
//unwind segue //unwind segue
- (IBAction)unwindSegueForShowResourceViewController: (UIStoryboardSegue*)segue; - (IBAction)unwindSegueForShowResourceViewController:(UIStoryboardSegue *)segue;
@end @end

View File

@@ -33,6 +33,6 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
@interface DEMOViewControllerShowResource : UITableViewController @interface DEMOViewControllerShowResource : UITableViewController
@property (strong, nonatomic) NSMutableArray* resFileArray; @property (strong, nonatomic) NSMutableArray *resFileArray;
@property (assign, nonatomic) NSUInteger selectedRow; @property (assign, nonatomic) NSUInteger selectedRow;
@end @end

View File

@@ -7,8 +7,13 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
4CBC1B81194AC4E100214D9E /* intra_pred_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CBC1B80194AC4E100214D9E /* intra_pred_aarch64_neon.S */; };
4CE4427D18B6FC360017DF25 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE4427C18B6FC360017DF25 /* Foundation.framework */; }; 4CE4427D18B6FC360017DF25 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE4427C18B6FC360017DF25 /* Foundation.framework */; };
4CE4428B18B6FC360017DF25 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE4428A18B6FC360017DF25 /* XCTest.framework */; };
4CE4428C18B6FC360017DF25 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE4427C18B6FC360017DF25 /* Foundation.framework */; };
4CE4428E18B6FC360017DF25 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE4428D18B6FC360017DF25 /* UIKit.framework */; };
4CE4429118B6FC360017DF25 /* libwelsdec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE4427918B6FC360017DF25 /* libwelsdec.a */; };
4CE4429718B6FC360017DF25 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4CE4429518B6FC360017DF25 /* InfoPlist.strings */; };
4CE4429918B6FC360017DF25 /* welsdecTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4429818B6FC360017DF25 /* welsdecTests.m */; };
4CE4468A18BC5EAB0017DF25 /* au_parser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466718BC5EAA0017DF25 /* au_parser.cpp */; }; 4CE4468A18BC5EAB0017DF25 /* au_parser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466718BC5EAA0017DF25 /* au_parser.cpp */; };
4CE4468B18BC5EAB0017DF25 /* bit_stream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466818BC5EAA0017DF25 /* bit_stream.cpp */; }; 4CE4468B18BC5EAB0017DF25 /* bit_stream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466818BC5EAA0017DF25 /* bit_stream.cpp */; };
4CE4468C18BC5EAB0017DF25 /* deblocking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466918BC5EAA0017DF25 /* deblocking.cpp */; }; 4CE4468C18BC5EAB0017DF25 /* deblocking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466918BC5EAA0017DF25 /* deblocking.cpp */; };
@@ -17,6 +22,7 @@
4CE4468F18BC5EAB0017DF25 /* decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466C18BC5EAA0017DF25 /* decoder.cpp */; }; 4CE4468F18BC5EAB0017DF25 /* decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466C18BC5EAA0017DF25 /* decoder.cpp */; };
4CE4469018BC5EAB0017DF25 /* decoder_core.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466D18BC5EAA0017DF25 /* decoder_core.cpp */; }; 4CE4469018BC5EAB0017DF25 /* decoder_core.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466D18BC5EAA0017DF25 /* decoder_core.cpp */; };
4CE4469118BC5EAB0017DF25 /* decoder_data_tables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466E18BC5EAA0017DF25 /* decoder_data_tables.cpp */; }; 4CE4469118BC5EAB0017DF25 /* decoder_data_tables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466E18BC5EAA0017DF25 /* decoder_data_tables.cpp */; };
4CE4469218BC5EAB0017DF25 /* expand_pic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466F18BC5EAA0017DF25 /* expand_pic.cpp */; };
4CE4469318BC5EAB0017DF25 /* fmo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467018BC5EAA0017DF25 /* fmo.cpp */; }; 4CE4469318BC5EAB0017DF25 /* fmo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467018BC5EAA0017DF25 /* fmo.cpp */; };
4CE4469418BC5EAB0017DF25 /* get_intra_predictor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467118BC5EAA0017DF25 /* get_intra_predictor.cpp */; }; 4CE4469418BC5EAB0017DF25 /* get_intra_predictor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467118BC5EAA0017DF25 /* get_intra_predictor.cpp */; };
4CE4469518BC5EAB0017DF25 /* manage_dec_ref.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467218BC5EAA0017DF25 /* manage_dec_ref.cpp */; }; 4CE4469518BC5EAB0017DF25 /* manage_dec_ref.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467218BC5EAA0017DF25 /* manage_dec_ref.cpp */; };
@@ -27,15 +33,24 @@
4CE4469A18BC5EAB0017DF25 /* parse_mb_syn_cavlc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467718BC5EAA0017DF25 /* parse_mb_syn_cavlc.cpp */; }; 4CE4469A18BC5EAB0017DF25 /* parse_mb_syn_cavlc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467718BC5EAA0017DF25 /* parse_mb_syn_cavlc.cpp */; };
4CE4469B18BC5EAB0017DF25 /* pic_queue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467818BC5EAA0017DF25 /* pic_queue.cpp */; }; 4CE4469B18BC5EAB0017DF25 /* pic_queue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467818BC5EAA0017DF25 /* pic_queue.cpp */; };
4CE4469C18BC5EAB0017DF25 /* rec_mb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467918BC5EAA0017DF25 /* rec_mb.cpp */; }; 4CE4469C18BC5EAB0017DF25 /* rec_mb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467918BC5EAA0017DF25 /* rec_mb.cpp */; };
4CE4469D18BC5EAB0017DF25 /* utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467A18BC5EAA0017DF25 /* utils.cpp */; };
4CE4469E18BC5EAB0017DF25 /* welsCodecTrace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4468418BC5EAB0017DF25 /* welsCodecTrace.cpp */; };
4CE4469F18BC5EAB0017DF25 /* welsDecoderExt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4468518BC5EAB0017DF25 /* welsDecoderExt.cpp */; }; 4CE4469F18BC5EAB0017DF25 /* welsDecoderExt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4468518BC5EAB0017DF25 /* welsDecoderExt.cpp */; };
4CE447AC18BC6BE90017DF25 /* block_add_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CE447A718BC6BE90017DF25 /* block_add_neon.S */; }; 4CE447AC18BC6BE90017DF25 /* block_add_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CE447A718BC6BE90017DF25 /* block_add_neon.S */; };
4CE447AE18BC6BE90017DF25 /* intra_pred_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CE447A918BC6BE90017DF25 /* intra_pred_neon.S */; }; 4CE447AE18BC6BE90017DF25 /* intra_pred_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CE447A918BC6BE90017DF25 /* intra_pred_neon.S */; };
9ABF4382193EB60900A6BD61 /* expand_pic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9ABF4381193EB60900A6BD61 /* expand_pic.cpp */; };
9AED66561946A1DE009A3567 /* welsCodecTrace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AED66551946A1DE009A3567 /* welsCodecTrace.cpp */; };
9AED66591946A203009A3567 /* utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AED66581946A203009A3567 /* utils.cpp */; };
F0B204FC18FD23D8005DA23F /* error_concealment.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F0B204FB18FD23D8005DA23F /* error_concealment.cpp */; }; F0B204FC18FD23D8005DA23F /* error_concealment.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F0B204FB18FD23D8005DA23F /* error_concealment.cpp */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
4CE4428F18B6FC360017DF25 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 4CE4427118B6FC360017DF25 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 4CE4427818B6FC360017DF25;
remoteInfo = welsdec;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */ /* Begin PBXCopyFilesBuildPhase section */
4CE4427718B6FC360017DF25 /* CopyFiles */ = { 4CE4427718B6FC360017DF25 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase; isa = PBXCopyFilesBuildPhase;
@@ -49,10 +64,14 @@
/* End PBXCopyFilesBuildPhase section */ /* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
4CBC1B80194AC4E100214D9E /* intra_pred_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = intra_pred_aarch64_neon.S; path = arm64/intra_pred_aarch64_neon.S; sourceTree = "<group>"; };
4CE4427918B6FC360017DF25 /* libwelsdec.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libwelsdec.a; sourceTree = BUILT_PRODUCTS_DIR; }; 4CE4427918B6FC360017DF25 /* libwelsdec.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libwelsdec.a; sourceTree = BUILT_PRODUCTS_DIR; };
4CE4427C18B6FC360017DF25 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 4CE4427C18B6FC360017DF25 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
4CE4428918B6FC360017DF25 /* welsdecTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = welsdecTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
4CE4428A18B6FC360017DF25 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
4CE4428D18B6FC360017DF25 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; 4CE4428D18B6FC360017DF25 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
4CE4429418B6FC360017DF25 /* welsdecTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "welsdecTests-Info.plist"; sourceTree = "<group>"; };
4CE4429618B6FC360017DF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
4CE4429818B6FC360017DF25 /* welsdecTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = welsdecTests.m; sourceTree = "<group>"; };
4CE4464518BC5EAA0017DF25 /* as264_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = as264_common.h; sourceTree = "<group>"; }; 4CE4464518BC5EAA0017DF25 /* as264_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = as264_common.h; sourceTree = "<group>"; };
4CE4464618BC5EAA0017DF25 /* au_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = au_parser.h; sourceTree = "<group>"; }; 4CE4464618BC5EAA0017DF25 /* au_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = au_parser.h; sourceTree = "<group>"; };
4CE4464718BC5EAA0017DF25 /* bit_stream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bit_stream.h; sourceTree = "<group>"; }; 4CE4464718BC5EAA0017DF25 /* bit_stream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bit_stream.h; sourceTree = "<group>"; };
@@ -65,6 +84,7 @@
4CE4464E18BC5EAA0017DF25 /* decoder_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoder_context.h; sourceTree = "<group>"; }; 4CE4464E18BC5EAA0017DF25 /* decoder_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoder_context.h; sourceTree = "<group>"; };
4CE4464F18BC5EAA0017DF25 /* decoder_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoder_core.h; sourceTree = "<group>"; }; 4CE4464F18BC5EAA0017DF25 /* decoder_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoder_core.h; sourceTree = "<group>"; };
4CE4465018BC5EAA0017DF25 /* error_code.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = error_code.h; sourceTree = "<group>"; }; 4CE4465018BC5EAA0017DF25 /* error_code.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = error_code.h; sourceTree = "<group>"; };
4CE4465118BC5EAA0017DF25 /* expand_pic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = expand_pic.h; sourceTree = "<group>"; usesTabs = 1; };
4CE4465218BC5EAA0017DF25 /* fmo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fmo.h; sourceTree = "<group>"; usesTabs = 1; }; 4CE4465218BC5EAA0017DF25 /* fmo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fmo.h; sourceTree = "<group>"; usesTabs = 1; };
4CE4465318BC5EAA0017DF25 /* get_intra_predictor.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = get_intra_predictor.h; sourceTree = "<group>"; tabWidth = 4; usesTabs = 0; }; 4CE4465318BC5EAA0017DF25 /* get_intra_predictor.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = get_intra_predictor.h; sourceTree = "<group>"; tabWidth = 4; usesTabs = 0; };
4CE4465418BC5EAA0017DF25 /* manage_dec_ref.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = manage_dec_ref.h; sourceTree = "<group>"; }; 4CE4465418BC5EAA0017DF25 /* manage_dec_ref.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = manage_dec_ref.h; sourceTree = "<group>"; };
@@ -81,6 +101,7 @@
4CE4465F18BC5EAA0017DF25 /* picture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = picture.h; sourceTree = "<group>"; }; 4CE4465F18BC5EAA0017DF25 /* picture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = picture.h; sourceTree = "<group>"; };
4CE4466018BC5EAA0017DF25 /* rec_mb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rec_mb.h; sourceTree = "<group>"; }; 4CE4466018BC5EAA0017DF25 /* rec_mb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rec_mb.h; sourceTree = "<group>"; };
4CE4466118BC5EAA0017DF25 /* slice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slice.h; sourceTree = "<group>"; }; 4CE4466118BC5EAA0017DF25 /* slice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slice.h; sourceTree = "<group>"; };
4CE4466218BC5EAA0017DF25 /* utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = "<group>"; };
4CE4466318BC5EAA0017DF25 /* vlc_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vlc_decoder.h; sourceTree = "<group>"; }; 4CE4466318BC5EAA0017DF25 /* vlc_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vlc_decoder.h; sourceTree = "<group>"; };
4CE4466418BC5EAA0017DF25 /* wels_common_basis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_common_basis.h; sourceTree = "<group>"; }; 4CE4466418BC5EAA0017DF25 /* wels_common_basis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_common_basis.h; sourceTree = "<group>"; };
4CE4466518BC5EAA0017DF25 /* wels_const.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_const.h; sourceTree = "<group>"; }; 4CE4466518BC5EAA0017DF25 /* wels_const.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_const.h; sourceTree = "<group>"; };
@@ -92,6 +113,7 @@
4CE4466C18BC5EAA0017DF25 /* decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoder.cpp; sourceTree = "<group>"; tabWidth = 4; usesTabs = 0; }; 4CE4466C18BC5EAA0017DF25 /* decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoder.cpp; sourceTree = "<group>"; tabWidth = 4; usesTabs = 0; };
4CE4466D18BC5EAA0017DF25 /* decoder_core.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoder_core.cpp; sourceTree = "<group>"; }; 4CE4466D18BC5EAA0017DF25 /* decoder_core.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoder_core.cpp; sourceTree = "<group>"; };
4CE4466E18BC5EAA0017DF25 /* decoder_data_tables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoder_data_tables.cpp; sourceTree = "<group>"; }; 4CE4466E18BC5EAA0017DF25 /* decoder_data_tables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoder_data_tables.cpp; sourceTree = "<group>"; };
4CE4466F18BC5EAA0017DF25 /* expand_pic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = expand_pic.cpp; sourceTree = "<group>"; };
4CE4467018BC5EAA0017DF25 /* fmo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fmo.cpp; sourceTree = "<group>"; }; 4CE4467018BC5EAA0017DF25 /* fmo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fmo.cpp; sourceTree = "<group>"; };
4CE4467118BC5EAA0017DF25 /* get_intra_predictor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = get_intra_predictor.cpp; sourceTree = "<group>"; }; 4CE4467118BC5EAA0017DF25 /* get_intra_predictor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = get_intra_predictor.cpp; sourceTree = "<group>"; };
4CE4467218BC5EAA0017DF25 /* manage_dec_ref.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = manage_dec_ref.cpp; sourceTree = "<group>"; }; 4CE4467218BC5EAA0017DF25 /* manage_dec_ref.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = manage_dec_ref.cpp; sourceTree = "<group>"; };
@@ -102,17 +124,14 @@
4CE4467718BC5EAA0017DF25 /* parse_mb_syn_cavlc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parse_mb_syn_cavlc.cpp; sourceTree = "<group>"; }; 4CE4467718BC5EAA0017DF25 /* parse_mb_syn_cavlc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parse_mb_syn_cavlc.cpp; sourceTree = "<group>"; };
4CE4467818BC5EAA0017DF25 /* pic_queue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pic_queue.cpp; sourceTree = "<group>"; }; 4CE4467818BC5EAA0017DF25 /* pic_queue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pic_queue.cpp; sourceTree = "<group>"; };
4CE4467918BC5EAA0017DF25 /* rec_mb.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rec_mb.cpp; sourceTree = "<group>"; }; 4CE4467918BC5EAA0017DF25 /* rec_mb.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rec_mb.cpp; sourceTree = "<group>"; };
4CE4467A18BC5EAA0017DF25 /* utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = utils.cpp; sourceTree = "<group>"; };
4CE4467D18BC5EAA0017DF25 /* welsCodecTrace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = welsCodecTrace.h; sourceTree = "<group>"; };
4CE4467E18BC5EAA0017DF25 /* welsDecoderExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = welsDecoderExt.h; sourceTree = "<group>"; }; 4CE4467E18BC5EAA0017DF25 /* welsDecoderExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = welsDecoderExt.h; sourceTree = "<group>"; };
4CE4468318BC5EAB0017DF25 /* wels_dec_export.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = wels_dec_export.def; sourceTree = "<group>"; }; 4CE4468318BC5EAB0017DF25 /* wels_dec_export.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = wels_dec_export.def; sourceTree = "<group>"; };
4CE4468418BC5EAB0017DF25 /* welsCodecTrace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsCodecTrace.cpp; sourceTree = "<group>"; };
4CE4468518BC5EAB0017DF25 /* welsDecoderExt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsDecoderExt.cpp; sourceTree = "<group>"; }; 4CE4468518BC5EAB0017DF25 /* welsDecoderExt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsDecoderExt.cpp; sourceTree = "<group>"; };
4CE447A718BC6BE90017DF25 /* block_add_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = block_add_neon.S; sourceTree = "<group>"; }; 4CE447A718BC6BE90017DF25 /* block_add_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = block_add_neon.S; sourceTree = "<group>"; };
4CE447A918BC6BE90017DF25 /* intra_pred_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = intra_pred_neon.S; sourceTree = "<group>"; }; 4CE447A918BC6BE90017DF25 /* intra_pred_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = intra_pred_neon.S; sourceTree = "<group>"; };
9ABF4380193EB5F700A6BD61 /* expand_pic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = expand_pic.h; path = ../../../common/inc/expand_pic.h; sourceTree = "<group>"; };
9ABF4381193EB60900A6BD61 /* expand_pic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = expand_pic.cpp; path = ../../../common/src/expand_pic.cpp; sourceTree = "<group>"; };
9AED66551946A1DE009A3567 /* welsCodecTrace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = welsCodecTrace.cpp; path = ../../../common/src/welsCodecTrace.cpp; sourceTree = "<group>"; };
9AED66571946A1EB009A3567 /* welsCodecTrace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = welsCodecTrace.h; path = ../../../common/inc/welsCodecTrace.h; sourceTree = "<group>"; };
9AED66581946A203009A3567 /* utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = utils.cpp; path = ../../../common/src/utils.cpp; sourceTree = "<group>"; };
9AED665A1946A21D009A3567 /* utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = utils.h; path = ../../../common/inc/utils.h; sourceTree = "<group>"; };
F0B204FA18FD23CF005DA23F /* error_concealment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = error_concealment.h; sourceTree = "<group>"; }; F0B204FA18FD23CF005DA23F /* error_concealment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = error_concealment.h; sourceTree = "<group>"; };
F0B204FB18FD23D8005DA23F /* error_concealment.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = error_concealment.cpp; sourceTree = "<group>"; }; F0B204FB18FD23D8005DA23F /* error_concealment.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = error_concealment.cpp; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
@@ -126,21 +145,25 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
4CE4428618B6FC360017DF25 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
4CE4428B18B6FC360017DF25 /* XCTest.framework in Frameworks */,
4CE4429118B6FC360017DF25 /* libwelsdec.a in Frameworks */,
4CE4428E18B6FC360017DF25 /* UIKit.framework in Frameworks */,
4CE4428C18B6FC360017DF25 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */ /* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */ /* Begin PBXGroup section */
4CBC1B7F194AC4A400214D9E /* arm64 */ = {
isa = PBXGroup;
children = (
4CBC1B80194AC4E100214D9E /* intra_pred_aarch64_neon.S */,
);
name = arm64;
sourceTree = "<group>";
};
4CE4427018B6FC360017DF25 = { 4CE4427018B6FC360017DF25 = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4CE4463E18BC5EAA0017DF25 /* decoder */, 4CE4463E18BC5EAA0017DF25 /* decoder */,
4CE4429218B6FC360017DF25 /* welsdecTests */,
4CE4427B18B6FC360017DF25 /* Frameworks */, 4CE4427B18B6FC360017DF25 /* Frameworks */,
4CE4427A18B6FC360017DF25 /* Products */, 4CE4427A18B6FC360017DF25 /* Products */,
); );
@@ -150,6 +173,7 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4CE4427918B6FC360017DF25 /* libwelsdec.a */, 4CE4427918B6FC360017DF25 /* libwelsdec.a */,
4CE4428918B6FC360017DF25 /* welsdecTests.xctest */,
); );
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -158,11 +182,30 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4CE4427C18B6FC360017DF25 /* Foundation.framework */, 4CE4427C18B6FC360017DF25 /* Foundation.framework */,
4CE4428A18B6FC360017DF25 /* XCTest.framework */,
4CE4428D18B6FC360017DF25 /* UIKit.framework */, 4CE4428D18B6FC360017DF25 /* UIKit.framework */,
); );
name = Frameworks; name = Frameworks;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
4CE4429218B6FC360017DF25 /* welsdecTests */ = {
isa = PBXGroup;
children = (
4CE4429818B6FC360017DF25 /* welsdecTests.m */,
4CE4429318B6FC360017DF25 /* Supporting Files */,
);
path = welsdecTests;
sourceTree = "<group>";
};
4CE4429318B6FC360017DF25 /* Supporting Files */ = {
isa = PBXGroup;
children = (
4CE4429418B6FC360017DF25 /* welsdecTests-Info.plist */,
4CE4429518B6FC360017DF25 /* InfoPlist.strings */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
4CE4463E18BC5EAA0017DF25 /* decoder */ = { 4CE4463E18BC5EAA0017DF25 /* decoder */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@@ -176,7 +219,6 @@
4CE4463F18BC5EAA0017DF25 /* core */ = { 4CE4463F18BC5EAA0017DF25 /* core */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4CBC1B7F194AC4A400214D9E /* arm64 */,
4CE447A518BC6BE90017DF25 /* arm */, 4CE447A518BC6BE90017DF25 /* arm */,
4CE4464418BC5EAA0017DF25 /* inc */, 4CE4464418BC5EAA0017DF25 /* inc */,
4CE4466618BC5EAA0017DF25 /* src */, 4CE4466618BC5EAA0017DF25 /* src */,
@@ -187,8 +229,6 @@
4CE4464418BC5EAA0017DF25 /* inc */ = { 4CE4464418BC5EAA0017DF25 /* inc */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
9AED665A1946A21D009A3567 /* utils.h */,
9ABF4380193EB5F700A6BD61 /* expand_pic.h */,
F0B204FA18FD23CF005DA23F /* error_concealment.h */, F0B204FA18FD23CF005DA23F /* error_concealment.h */,
4CE4464518BC5EAA0017DF25 /* as264_common.h */, 4CE4464518BC5EAA0017DF25 /* as264_common.h */,
4CE4464618BC5EAA0017DF25 /* au_parser.h */, 4CE4464618BC5EAA0017DF25 /* au_parser.h */,
@@ -202,6 +242,7 @@
4CE4464E18BC5EAA0017DF25 /* decoder_context.h */, 4CE4464E18BC5EAA0017DF25 /* decoder_context.h */,
4CE4464F18BC5EAA0017DF25 /* decoder_core.h */, 4CE4464F18BC5EAA0017DF25 /* decoder_core.h */,
4CE4465018BC5EAA0017DF25 /* error_code.h */, 4CE4465018BC5EAA0017DF25 /* error_code.h */,
4CE4465118BC5EAA0017DF25 /* expand_pic.h */,
4CE4465218BC5EAA0017DF25 /* fmo.h */, 4CE4465218BC5EAA0017DF25 /* fmo.h */,
4CE4465318BC5EAA0017DF25 /* get_intra_predictor.h */, 4CE4465318BC5EAA0017DF25 /* get_intra_predictor.h */,
4CE4465418BC5EAA0017DF25 /* manage_dec_ref.h */, 4CE4465418BC5EAA0017DF25 /* manage_dec_ref.h */,
@@ -218,6 +259,7 @@
4CE4465F18BC5EAA0017DF25 /* picture.h */, 4CE4465F18BC5EAA0017DF25 /* picture.h */,
4CE4466018BC5EAA0017DF25 /* rec_mb.h */, 4CE4466018BC5EAA0017DF25 /* rec_mb.h */,
4CE4466118BC5EAA0017DF25 /* slice.h */, 4CE4466118BC5EAA0017DF25 /* slice.h */,
4CE4466218BC5EAA0017DF25 /* utils.h */,
4CE4466318BC5EAA0017DF25 /* vlc_decoder.h */, 4CE4466318BC5EAA0017DF25 /* vlc_decoder.h */,
4CE4466418BC5EAA0017DF25 /* wels_common_basis.h */, 4CE4466418BC5EAA0017DF25 /* wels_common_basis.h */,
4CE4466518BC5EAA0017DF25 /* wels_const.h */, 4CE4466518BC5EAA0017DF25 /* wels_const.h */,
@@ -228,8 +270,6 @@
4CE4466618BC5EAA0017DF25 /* src */ = { 4CE4466618BC5EAA0017DF25 /* src */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
9AED66581946A203009A3567 /* utils.cpp */,
9ABF4381193EB60900A6BD61 /* expand_pic.cpp */,
F0B204FB18FD23D8005DA23F /* error_concealment.cpp */, F0B204FB18FD23D8005DA23F /* error_concealment.cpp */,
4CE4466718BC5EAA0017DF25 /* au_parser.cpp */, 4CE4466718BC5EAA0017DF25 /* au_parser.cpp */,
4CE4466818BC5EAA0017DF25 /* bit_stream.cpp */, 4CE4466818BC5EAA0017DF25 /* bit_stream.cpp */,
@@ -239,6 +279,7 @@
4CE4466C18BC5EAA0017DF25 /* decoder.cpp */, 4CE4466C18BC5EAA0017DF25 /* decoder.cpp */,
4CE4466D18BC5EAA0017DF25 /* decoder_core.cpp */, 4CE4466D18BC5EAA0017DF25 /* decoder_core.cpp */,
4CE4466E18BC5EAA0017DF25 /* decoder_data_tables.cpp */, 4CE4466E18BC5EAA0017DF25 /* decoder_data_tables.cpp */,
4CE4466F18BC5EAA0017DF25 /* expand_pic.cpp */,
4CE4467018BC5EAA0017DF25 /* fmo.cpp */, 4CE4467018BC5EAA0017DF25 /* fmo.cpp */,
4CE4467118BC5EAA0017DF25 /* get_intra_predictor.cpp */, 4CE4467118BC5EAA0017DF25 /* get_intra_predictor.cpp */,
4CE4467218BC5EAA0017DF25 /* manage_dec_ref.cpp */, 4CE4467218BC5EAA0017DF25 /* manage_dec_ref.cpp */,
@@ -249,6 +290,7 @@
4CE4467718BC5EAA0017DF25 /* parse_mb_syn_cavlc.cpp */, 4CE4467718BC5EAA0017DF25 /* parse_mb_syn_cavlc.cpp */,
4CE4467818BC5EAA0017DF25 /* pic_queue.cpp */, 4CE4467818BC5EAA0017DF25 /* pic_queue.cpp */,
4CE4467918BC5EAA0017DF25 /* rec_mb.cpp */, 4CE4467918BC5EAA0017DF25 /* rec_mb.cpp */,
4CE4467A18BC5EAA0017DF25 /* utils.cpp */,
); );
path = src; path = src;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -265,7 +307,7 @@
4CE4467C18BC5EAA0017DF25 /* inc */ = { 4CE4467C18BC5EAA0017DF25 /* inc */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
9AED66571946A1EB009A3567 /* welsCodecTrace.h */, 4CE4467D18BC5EAA0017DF25 /* welsCodecTrace.h */,
4CE4467E18BC5EAA0017DF25 /* welsDecoderExt.h */, 4CE4467E18BC5EAA0017DF25 /* welsDecoderExt.h */,
); );
path = inc; path = inc;
@@ -274,8 +316,8 @@
4CE4468218BC5EAB0017DF25 /* src */ = { 4CE4468218BC5EAB0017DF25 /* src */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
9AED66551946A1DE009A3567 /* welsCodecTrace.cpp */,
4CE4468318BC5EAB0017DF25 /* wels_dec_export.def */, 4CE4468318BC5EAB0017DF25 /* wels_dec_export.def */,
4CE4468418BC5EAB0017DF25 /* welsCodecTrace.cpp */,
4CE4468518BC5EAB0017DF25 /* welsDecoderExt.cpp */, 4CE4468518BC5EAB0017DF25 /* welsDecoderExt.cpp */,
); );
path = src; path = src;
@@ -310,13 +352,31 @@
productReference = 4CE4427918B6FC360017DF25 /* libwelsdec.a */; productReference = 4CE4427918B6FC360017DF25 /* libwelsdec.a */;
productType = "com.apple.product-type.library.static"; productType = "com.apple.product-type.library.static";
}; };
4CE4428818B6FC360017DF25 /* welsdecTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4CE4429F18B6FC360017DF25 /* Build configuration list for PBXNativeTarget "welsdecTests" */;
buildPhases = (
4CE4428518B6FC360017DF25 /* Sources */,
4CE4428618B6FC360017DF25 /* Frameworks */,
4CE4428718B6FC360017DF25 /* Resources */,
);
buildRules = (
);
dependencies = (
4CE4429018B6FC360017DF25 /* PBXTargetDependency */,
);
name = welsdecTests;
productName = welsdecTests;
productReference = 4CE4428918B6FC360017DF25 /* welsdecTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */ /* End PBXNativeTarget section */
/* Begin PBXProject section */ /* Begin PBXProject section */
4CE4427118B6FC360017DF25 /* Project object */ = { 4CE4427118B6FC360017DF25 /* Project object */ = {
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
LastUpgradeCheck = 0510; LastUpgradeCheck = 0500;
ORGANIZATIONNAME = video; ORGANIZATIONNAME = video;
}; };
buildConfigurationList = 4CE4427418B6FC360017DF25 /* Build configuration list for PBXProject "welsdec" */; buildConfigurationList = 4CE4427418B6FC360017DF25 /* Build configuration list for PBXProject "welsdec" */;
@@ -332,10 +392,22 @@
projectRoot = ""; projectRoot = "";
targets = ( targets = (
4CE4427818B6FC360017DF25 /* welsdec */, 4CE4427818B6FC360017DF25 /* welsdec */,
4CE4428818B6FC360017DF25 /* welsdecTests */,
); );
}; };
/* End PBXProject section */ /* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
4CE4428718B6FC360017DF25 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4CE4429718B6FC360017DF25 /* InfoPlist.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */
4CE4427518B6FC360017DF25 /* Sources */ = { 4CE4427518B6FC360017DF25 /* Sources */ = {
isa = PBXSourcesBuildPhase; isa = PBXSourcesBuildPhase;
@@ -344,18 +416,18 @@
4CE4469B18BC5EAB0017DF25 /* pic_queue.cpp in Sources */, 4CE4469B18BC5EAB0017DF25 /* pic_queue.cpp in Sources */,
4CE4469F18BC5EAB0017DF25 /* welsDecoderExt.cpp in Sources */, 4CE4469F18BC5EAB0017DF25 /* welsDecoderExt.cpp in Sources */,
4CE4469318BC5EAB0017DF25 /* fmo.cpp in Sources */, 4CE4469318BC5EAB0017DF25 /* fmo.cpp in Sources */,
4CE4469D18BC5EAB0017DF25 /* utils.cpp in Sources */,
4CE4469118BC5EAB0017DF25 /* decoder_data_tables.cpp in Sources */, 4CE4469118BC5EAB0017DF25 /* decoder_data_tables.cpp in Sources */,
4CE4469718BC5EAB0017DF25 /* mem_align.cpp in Sources */, 4CE4469718BC5EAB0017DF25 /* mem_align.cpp in Sources */,
9ABF4382193EB60900A6BD61 /* expand_pic.cpp in Sources */,
4CE4469518BC5EAB0017DF25 /* manage_dec_ref.cpp in Sources */, 4CE4469518BC5EAB0017DF25 /* manage_dec_ref.cpp in Sources */,
4CE4468A18BC5EAB0017DF25 /* au_parser.cpp in Sources */, 4CE4468A18BC5EAB0017DF25 /* au_parser.cpp in Sources */,
4CE4469218BC5EAB0017DF25 /* expand_pic.cpp in Sources */,
4CE4469918BC5EAB0017DF25 /* mv_pred.cpp in Sources */, 4CE4469918BC5EAB0017DF25 /* mv_pred.cpp in Sources */,
4CE447AC18BC6BE90017DF25 /* block_add_neon.S in Sources */, 4CE447AC18BC6BE90017DF25 /* block_add_neon.S in Sources */,
4CE4469418BC5EAB0017DF25 /* get_intra_predictor.cpp in Sources */, 4CE4469418BC5EAB0017DF25 /* get_intra_predictor.cpp in Sources */,
9AED66561946A1DE009A3567 /* welsCodecTrace.cpp in Sources */,
F0B204FC18FD23D8005DA23F /* error_concealment.cpp in Sources */, F0B204FC18FD23D8005DA23F /* error_concealment.cpp in Sources */,
4CBC1B81194AC4E100214D9E /* intra_pred_aarch64_neon.S in Sources */,
4CE4469018BC5EAB0017DF25 /* decoder_core.cpp in Sources */, 4CE4469018BC5EAB0017DF25 /* decoder_core.cpp in Sources */,
4CE4469E18BC5EAB0017DF25 /* welsCodecTrace.cpp in Sources */,
4CE447AE18BC6BE90017DF25 /* intra_pred_neon.S in Sources */, 4CE447AE18BC6BE90017DF25 /* intra_pred_neon.S in Sources */,
4CE4469618BC5EAB0017DF25 /* mc.cpp in Sources */, 4CE4469618BC5EAB0017DF25 /* mc.cpp in Sources */,
4CE4469C18BC5EAB0017DF25 /* rec_mb.cpp in Sources */, 4CE4469C18BC5EAB0017DF25 /* rec_mb.cpp in Sources */,
@@ -363,20 +435,47 @@
4CE4468D18BC5EAB0017DF25 /* decode_mb_aux.cpp in Sources */, 4CE4468D18BC5EAB0017DF25 /* decode_mb_aux.cpp in Sources */,
4CE4468E18BC5EAB0017DF25 /* decode_slice.cpp in Sources */, 4CE4468E18BC5EAB0017DF25 /* decode_slice.cpp in Sources */,
4CE4468F18BC5EAB0017DF25 /* decoder.cpp in Sources */, 4CE4468F18BC5EAB0017DF25 /* decoder.cpp in Sources */,
9AED66591946A203009A3567 /* utils.cpp in Sources */,
4CE4469818BC5EAB0017DF25 /* memmgr_nal_unit.cpp in Sources */, 4CE4469818BC5EAB0017DF25 /* memmgr_nal_unit.cpp in Sources */,
4CE4468C18BC5EAB0017DF25 /* deblocking.cpp in Sources */, 4CE4468C18BC5EAB0017DF25 /* deblocking.cpp in Sources */,
4CE4469A18BC5EAB0017DF25 /* parse_mb_syn_cavlc.cpp in Sources */, 4CE4469A18BC5EAB0017DF25 /* parse_mb_syn_cavlc.cpp in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
4CE4428518B6FC360017DF25 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4CE4429918B6FC360017DF25 /* welsdecTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */ /* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
4CE4429018B6FC360017DF25 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4CE4427818B6FC360017DF25 /* welsdec */;
targetProxy = 4CE4428F18B6FC360017DF25 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
4CE4429518B6FC360017DF25 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
4CE4429618B6FC360017DF25 /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */ /* Begin XCBuildConfiguration section */
4CE4429A18B6FC360017DF25 /* Debug */ = { 4CE4429A18B6FC360017DF25 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
@@ -414,6 +513,7 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
@@ -444,6 +544,7 @@
4CE4429D18B6FC360017DF25 /* Debug */ = { 4CE4429D18B6FC360017DF25 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default"; CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
CLANG_CXX_LIBRARY = "compiler-default"; CLANG_CXX_LIBRARY = "compiler-default";
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
@@ -467,10 +568,8 @@
"$(SRCROOT)/../../../../common/inc", "$(SRCROOT)/../../../../common/inc",
"$(SRCROOT)/../../../../api/svc", "$(SRCROOT)/../../../../api/svc",
"$(SRCROOT)/../../../../common/arm", "$(SRCROOT)/../../../../common/arm",
"$(SRCROOT)/../../../../common/arm64",
); );
IPHONEOS_DEPLOYMENT_TARGET = 6.1; IPHONEOS_DEPLOYMENT_TARGET = 6.1;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = "-ObjC"; OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
@@ -481,6 +580,7 @@
4CE4429E18B6FC360017DF25 /* Release */ = { 4CE4429E18B6FC360017DF25 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default"; CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
CLANG_CXX_LIBRARY = "compiler-default"; CLANG_CXX_LIBRARY = "compiler-default";
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
@@ -502,10 +602,8 @@
"$(SRCROOT)/../../../../common/inc", "$(SRCROOT)/../../../../common/inc",
"$(SRCROOT)/../../../../api/svc", "$(SRCROOT)/../../../../api/svc",
"$(SRCROOT)/../../../../common/arm", "$(SRCROOT)/../../../../common/arm",
"$(SRCROOT)/../../../../common/arm64",
); );
IPHONEOS_DEPLOYMENT_TARGET = 6.1; IPHONEOS_DEPLOYMENT_TARGET = 6.1;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = "-ObjC"; OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
@@ -513,6 +611,44 @@
}; };
name = Release; name = Release;
}; };
4CE442A018B6FC360017DF25 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
"$(DEVELOPER_FRAMEWORKS_DIR)",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "welsdec/welsdec-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
INFOPLIST_FILE = "welsdecTests/welsdecTests-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = xctest;
};
name = Debug;
};
4CE442A118B6FC360017DF25 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
"$(DEVELOPER_FRAMEWORKS_DIR)",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "welsdec/welsdec-Prefix.pch";
INFOPLIST_FILE = "welsdecTests/welsdecTests-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = xctest;
};
name = Release;
};
/* End XCBuildConfiguration section */ /* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */ /* Begin XCConfigurationList section */
@@ -534,6 +670,15 @@
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
4CE4429F18B6FC360017DF25 /* Build configuration list for PBXNativeTarget "welsdecTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4CE442A018B6FC360017DF25 /* Debug */,
4CE442A118B6FC360017DF25 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */ /* End XCConfigurationList section */
}; };
rootObject = 4CE4427118B6FC360017DF25 /* Project object */; rootObject = 4CE4427118B6FC360017DF25 /* Project object */;

View File

@@ -0,0 +1,2 @@
/* Localized versions of Info.plist keys */

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>cisco.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

View File

@@ -0,0 +1,58 @@
/*!
* \copy
* Copyright (c) 2013, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#import <XCTest/XCTest.h>
@interface welsdecTests : XCTestCase
@end
@implementation welsdecTests
- (void)setUp
{
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
}
- (void)tearDown
{
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
- (void)testExample
{
XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__);
}
@end

View File

@@ -7,6 +7,7 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
9ABF4379192DE20800A6BD61 /* EncUT_MemoryAlloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9ABF4378192DE20800A6BD61 /* EncUT_MemoryAlloc.cpp */; };
FAA3D9D318BD729500BCD52D /* welsenc_ios.cfg in Resources */ = {isa = PBXBuildFile; fileRef = FAA3D9D218BD729500BCD52D /* welsenc_ios.cfg */; }; FAA3D9D318BD729500BCD52D /* welsenc_ios.cfg in Resources */ = {isa = PBXBuildFile; fileRef = FAA3D9D218BD729500BCD52D /* welsenc_ios.cfg */; };
FAA3D9D818BD777100BCD52D /* CiscoVT2people_320x192_12fps.yuv in Resources */ = {isa = PBXBuildFile; fileRef = FAA3D9D718BD777100BCD52D /* CiscoVT2people_320x192_12fps.yuv */; }; FAA3D9D818BD777100BCD52D /* CiscoVT2people_320x192_12fps.yuv in Resources */ = {isa = PBXBuildFile; fileRef = FAA3D9D718BD777100BCD52D /* CiscoVT2people_320x192_12fps.yuv */; };
FAA3D9DD18BD8A5600BCD52D /* layer2.cfg in Resources */ = {isa = PBXBuildFile; fileRef = FAA3D9DC18BD8A5600BCD52D /* layer2.cfg */; }; FAA3D9DD18BD8A5600BCD52D /* layer2.cfg in Resources */ = {isa = PBXBuildFile; fileRef = FAA3D9DC18BD8A5600BCD52D /* layer2.cfg */; };
@@ -35,6 +36,13 @@
remoteGlobalIDString = 4CE4431118B6FFA00017DF25; remoteGlobalIDString = 4CE4431118B6FFA00017DF25;
remoteInfo = welsenc; remoteInfo = welsenc;
}; };
FAFB4FE918BC8E7D00315438 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 4CE4432118B6FFA00017DF25;
remoteInfo = welsencTests;
};
FAFB4FF018BC8E8600315438 /* PBXContainerItemProxy */ = { FAFB4FF018BC8E8600315438 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy; isa = PBXContainerItemProxy;
containerPortal = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */; containerPortal = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */;
@@ -42,6 +50,13 @@
remoteGlobalIDString = 4CE443D518B722CD0017DF25; remoteGlobalIDString = 4CE443D518B722CD0017DF25;
remoteInfo = common; remoteInfo = common;
}; };
FAFB4FF218BC8E8600315438 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 4CE443E518B722CD0017DF25;
remoteInfo = commonTests;
};
FAFB4FF918BC8E9A00315438 /* PBXContainerItemProxy */ = { FAFB4FF918BC8E9A00315438 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy; isa = PBXContainerItemProxy;
containerPortal = FAFB4FF418BC8E9A00315438 /* processing.xcodeproj */; containerPortal = FAFB4FF418BC8E9A00315438 /* processing.xcodeproj */;
@@ -49,6 +64,13 @@
remoteGlobalIDString = 4CE4443118B724B60017DF25; remoteGlobalIDString = 4CE4443118B724B60017DF25;
remoteInfo = processing; remoteInfo = processing;
}; };
FAFB4FFB18BC8E9A00315438 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FAFB4FF418BC8E9A00315438 /* processing.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 4CE4444118B724B60017DF25;
remoteInfo = processingTests;
};
FAFB4FFD18BC8EAA00315438 /* PBXContainerItemProxy */ = { FAFB4FFD18BC8EAA00315438 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy; isa = PBXContainerItemProxy;
containerPortal = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */; containerPortal = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */;
@@ -73,6 +95,7 @@
/* End PBXContainerItemProxy section */ /* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
9ABF4378192DE20800A6BD61 /* EncUT_MemoryAlloc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EncUT_MemoryAlloc.cpp; path = ../../../../../test/encoder/EncUT_MemoryAlloc.cpp; sourceTree = "<group>"; };
FAA3D9D218BD729500BCD52D /* welsenc_ios.cfg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = welsenc_ios.cfg; path = ../../../../../../testbin/welsenc_ios.cfg; sourceTree = "<group>"; }; FAA3D9D218BD729500BCD52D /* welsenc_ios.cfg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = welsenc_ios.cfg; path = ../../../../../../testbin/welsenc_ios.cfg; sourceTree = "<group>"; };
FAA3D9D718BD777100BCD52D /* CiscoVT2people_320x192_12fps.yuv */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CiscoVT2people_320x192_12fps.yuv; path = ../../../../../../res/CiscoVT2people_320x192_12fps.yuv; sourceTree = "<group>"; }; FAA3D9D718BD777100BCD52D /* CiscoVT2people_320x192_12fps.yuv */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CiscoVT2people_320x192_12fps.yuv; path = ../../../../../../res/CiscoVT2people_320x192_12fps.yuv; sourceTree = "<group>"; };
FAA3D9DC18BD8A5600BCD52D /* layer2.cfg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = layer2.cfg; path = ../../../../../../testbin/layer2.cfg; sourceTree = "<group>"; }; FAA3D9DC18BD8A5600BCD52D /* layer2.cfg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = layer2.cfg; path = ../../../../../../testbin/layer2.cfg; sourceTree = "<group>"; };
@@ -91,12 +114,13 @@
FAFB4FC018BC8DD700315438 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; }; FAFB4FC018BC8DD700315438 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
FAFB4FC118BC8DD700315438 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; }; FAFB4FC118BC8DD700315438 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
FAFB4FC318BC8DD700315438 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; }; FAFB4FC318BC8DD700315438 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
FAFB4FCA18BC8DD700315438 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = welsenc.xcodeproj; path = ../welsenc/welsenc.xcodeproj; sourceTree = "<group>"; }; FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = welsenc.xcodeproj; path = ../welsenc/welsenc.xcodeproj; sourceTree = "<group>"; };
FAFB4FEB18BC8E8600315438 /* common.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = common.xcodeproj; path = ../../common/common.xcodeproj; sourceTree = "<group>"; }; FAFB4FEB18BC8E8600315438 /* common.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = common.xcodeproj; path = ../../common/common.xcodeproj; sourceTree = "<group>"; };
FAFB4FF418BC8E9A00315438 /* processing.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = processing.xcodeproj; path = ../../../../processing/build/iOS/processing.xcodeproj; sourceTree = "<group>"; }; FAFB4FF418BC8E9A00315438 /* processing.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = processing.xcodeproj; path = ../../../../processing/build/iOS/processing.xcodeproj; sourceTree = "<group>"; };
FAFB500918BC8F6600315438 /* read_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = read_config.h; sourceTree = "<group>"; }; FAFB500918BC8F6600315438 /* read_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = read_config.h; sourceTree = "<group>"; };
FAFB500A18BC8F6C00315438 /* welsenc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsenc.cpp; sourceTree = "<group>"; }; FAFB500A18BC8F6C00315438 /* welsenc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsenc.cpp; sourceTree = "<group>"; };
FAFB502E18BCA50900315438 /* read_config.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = read_config.cpp; path = ../../common/src/read_config.cpp; sourceTree = "<group>"; }; FAFB502E18BCA50900315438 /* read_config.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = read_config.cpp; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@@ -119,6 +143,7 @@
FAFB4F9C18BC8DD700315438 = { FAFB4F9C18BC8DD700315438 = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
9ABF4378192DE20800A6BD61 /* EncUT_MemoryAlloc.cpp */,
FAFB4FAE18BC8DD700315438 /* encDemo */, FAFB4FAE18BC8DD700315438 /* encDemo */,
FAFB4FA718BC8DD700315438 /* Frameworks */, FAFB4FA718BC8DD700315438 /* Frameworks */,
FAFB4FA618BC8DD700315438 /* Products */, FAFB4FA618BC8DD700315438 /* Products */,
@@ -142,6 +167,7 @@
FAFB4FA818BC8DD700315438 /* Foundation.framework */, FAFB4FA818BC8DD700315438 /* Foundation.framework */,
FAFB4FAA18BC8DD700315438 /* CoreGraphics.framework */, FAFB4FAA18BC8DD700315438 /* CoreGraphics.framework */,
FAFB4FAC18BC8DD700315438 /* UIKit.framework */, FAFB4FAC18BC8DD700315438 /* UIKit.framework */,
FAFB4FCA18BC8DD700315438 /* XCTest.framework */,
); );
name = Frameworks; name = Frameworks;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -180,6 +206,7 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
FAFB4FE818BC8E7D00315438 /* libwelsenc.a */, FAFB4FE818BC8E7D00315438 /* libwelsenc.a */,
FAFB4FEA18BC8E7D00315438 /* welsencTests.xctest */,
); );
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -188,6 +215,7 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
FAFB4FF118BC8E8600315438 /* libcommon.a */, FAFB4FF118BC8E8600315438 /* libcommon.a */,
FAFB4FF318BC8E8600315438 /* commonTests.xctest */,
); );
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -196,6 +224,7 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
FAFB4FFA18BC8E9A00315438 /* libprocessing.a */, FAFB4FFA18BC8E9A00315438 /* libprocessing.a */,
FAFB4FFC18BC8E9A00315438 /* processingTests.xctest */,
); );
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -224,8 +253,7 @@
children = ( children = (
FAFB500918BC8F6600315438 /* read_config.h */, FAFB500918BC8F6600315438 /* read_config.h */,
); );
name = inc; path = inc;
path = ../common/inc;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
/* End PBXGroup section */ /* End PBXGroup section */
@@ -257,7 +285,7 @@
FAFB4F9D18BC8DD700315438 /* Project object */ = { FAFB4F9D18BC8DD700315438 /* Project object */ = {
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
LastUpgradeCheck = 0510; LastUpgradeCheck = 0500;
ORGANIZATIONNAME = video; ORGANIZATIONNAME = video;
}; };
buildConfigurationList = FAFB4FA018BC8DD700315438 /* Build configuration list for PBXProject "encDemo" */; buildConfigurationList = FAFB4FA018BC8DD700315438 /* Build configuration list for PBXProject "encDemo" */;
@@ -300,6 +328,13 @@
remoteRef = FAFB4FE718BC8E7D00315438 /* PBXContainerItemProxy */; remoteRef = FAFB4FE718BC8E7D00315438 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR; sourceTree = BUILT_PRODUCTS_DIR;
}; };
FAFB4FEA18BC8E7D00315438 /* welsencTests.xctest */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = welsencTests.xctest;
remoteRef = FAFB4FE918BC8E7D00315438 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
FAFB4FF118BC8E8600315438 /* libcommon.a */ = { FAFB4FF118BC8E8600315438 /* libcommon.a */ = {
isa = PBXReferenceProxy; isa = PBXReferenceProxy;
fileType = archive.ar; fileType = archive.ar;
@@ -307,6 +342,13 @@
remoteRef = FAFB4FF018BC8E8600315438 /* PBXContainerItemProxy */; remoteRef = FAFB4FF018BC8E8600315438 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR; sourceTree = BUILT_PRODUCTS_DIR;
}; };
FAFB4FF318BC8E8600315438 /* commonTests.xctest */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = commonTests.xctest;
remoteRef = FAFB4FF218BC8E8600315438 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
FAFB4FFA18BC8E9A00315438 /* libprocessing.a */ = { FAFB4FFA18BC8E9A00315438 /* libprocessing.a */ = {
isa = PBXReferenceProxy; isa = PBXReferenceProxy;
fileType = archive.ar; fileType = archive.ar;
@@ -314,6 +356,13 @@
remoteRef = FAFB4FF918BC8E9A00315438 /* PBXContainerItemProxy */; remoteRef = FAFB4FF918BC8E9A00315438 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR; sourceTree = BUILT_PRODUCTS_DIR;
}; };
FAFB4FFC18BC8E9A00315438 /* processingTests.xctest */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = processingTests.xctest;
remoteRef = FAFB4FFB18BC8E9A00315438 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */ /* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */ /* Begin PBXResourcesBuildPhase section */
@@ -342,6 +391,7 @@
FAFB502F18BCA50900315438 /* read_config.cpp in Sources */, FAFB502F18BCA50900315438 /* read_config.cpp in Sources */,
FAFB500B18BC8F6C00315438 /* welsenc.cpp in Sources */, FAFB500B18BC8F6C00315438 /* welsenc.cpp in Sources */,
FAFB4FB918BC8DD700315438 /* AppDelegate.m in Sources */, FAFB4FB918BC8DD700315438 /* AppDelegate.m in Sources */,
9ABF4379192DE20800A6BD61 /* EncUT_MemoryAlloc.cpp in Sources */,
FAFB4FB518BC8DD700315438 /* main.m in Sources */, FAFB4FB518BC8DD700315438 /* main.m in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@@ -398,6 +448,7 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
@@ -430,6 +481,7 @@
"$(inherited)", "$(inherited)",
"/Applications/Xcode\\ 5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include", "/Applications/Xcode\\ 5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
"\"$(SRCROOT)/../../../../api/svc\"", "\"$(SRCROOT)/../../../../api/svc\"",
"\"$(SRCROOT)/../../../../common\"",
"\"$(SRCROOT)/../../../../processing/interface\"", "\"$(SRCROOT)/../../../../processing/interface\"",
"\"$(SRCROOT)/../../../../encoder/core/inc\"", "\"$(SRCROOT)/../../../../encoder/core/inc\"",
); );
@@ -444,6 +496,7 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
@@ -470,6 +523,7 @@
"$(inherited)", "$(inherited)",
"/Applications/Xcode\\ 5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include", "/Applications/Xcode\\ 5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
"\"$(SRCROOT)/../../../../api/svc\"", "\"$(SRCROOT)/../../../../api/svc\"",
"\"$(SRCROOT)/../../../../common\"",
"\"$(SRCROOT)/../../../../processing/interface\"", "\"$(SRCROOT)/../../../../processing/interface\"",
"\"$(SRCROOT)/../../../../encoder/core/inc\"", "\"$(SRCROOT)/../../../../encoder/core/inc\"",
); );
@@ -483,6 +537,7 @@
FAFB4FDB18BC8DD700315438 /* Debug */ = { FAFB4FDB18BC8DD700315438 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS; GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
@@ -501,6 +556,7 @@
FAFB4FDC18BC8DD700315438 /* Release */ = { FAFB4FDC18BC8DD700315438 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS; GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;

View File

@@ -34,6 +34,6 @@
@interface AppDelegate : UIResponder <UIApplicationDelegate> @interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow* window; @property (strong, nonatomic) UIWindow *window;
@end @end

View File

@@ -33,12 +33,12 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
@interface ViewController : UIViewController { @interface ViewController : UIViewController {
UILabel* statusText_; UILabel * statusText_;
} }
@property (retain, nonatomic) IBOutlet UILabel* statusText; @property (retain, nonatomic) IBOutlet UILabel * statusText;
- (IBAction) buttonPressed: (id)sender; -(IBAction) buttonPressed:(id)sender;
@end @end

View File

@@ -7,15 +7,18 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
4C23BC60195A77E0003B81FC /* intra_pred_sad_3_opt_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4C23BC5F195A77E0003B81FC /* intra_pred_sad_3_opt_aarch64_neon.S */; };
4C34066D18C57D0400DFA14A /* intra_pred_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4C34066618C57D0400DFA14A /* intra_pred_neon.S */; }; 4C34066D18C57D0400DFA14A /* intra_pred_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4C34066618C57D0400DFA14A /* intra_pred_neon.S */; };
4C34066E18C57D0400DFA14A /* intra_pred_sad_3_opt_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4C34066718C57D0400DFA14A /* intra_pred_sad_3_opt_neon.S */; }; 4C34066E18C57D0400DFA14A /* intra_pred_sad_3_opt_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4C34066718C57D0400DFA14A /* intra_pred_sad_3_opt_neon.S */; };
4C34067018C57D0400DFA14A /* memory_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4C34066918C57D0400DFA14A /* memory_neon.S */; }; 4C34067018C57D0400DFA14A /* memory_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4C34066918C57D0400DFA14A /* memory_neon.S */; };
4C34067118C57D0400DFA14A /* pixel_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4C34066A18C57D0400DFA14A /* pixel_neon.S */; }; 4C34067118C57D0400DFA14A /* pixel_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4C34066A18C57D0400DFA14A /* pixel_neon.S */; };
4C34067218C57D0400DFA14A /* reconstruct_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4C34066B18C57D0400DFA14A /* reconstruct_neon.S */; }; 4C34067218C57D0400DFA14A /* reconstruct_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4C34066B18C57D0400DFA14A /* reconstruct_neon.S */; };
4CB8F2B419235FC5005D6386 /* pixel_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CB8F2B319235FC5005D6386 /* pixel_aarch64_neon.S */; };
4CBC1B83194ACBB400214D9E /* intra_pred_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CBC1B82194ACBB400214D9E /* intra_pred_aarch64_neon.S */; };
4CE4431518B6FFA00017DF25 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE4431418B6FFA00017DF25 /* Foundation.framework */; }; 4CE4431518B6FFA00017DF25 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE4431418B6FFA00017DF25 /* Foundation.framework */; };
4CE4432318B6FFA00017DF25 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE4432218B6FFA00017DF25 /* XCTest.framework */; };
4CE4432418B6FFA00017DF25 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE4431418B6FFA00017DF25 /* Foundation.framework */; };
4CE4432618B6FFA00017DF25 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE4432518B6FFA00017DF25 /* UIKit.framework */; };
4CE4432918B6FFA00017DF25 /* libwelsenc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE4431118B6FFA00017DF25 /* libwelsenc.a */; };
4CE4432F18B6FFA00017DF25 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4CE4432D18B6FFA00017DF25 /* InfoPlist.strings */; };
4CE4433118B6FFA00017DF25 /* welsencTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4433018B6FFA00017DF25 /* welsencTests.m */; };
4CE4470E18BC605C0017DF25 /* au_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446DD18BC605C0017DF25 /* au_set.cpp */; }; 4CE4470E18BC605C0017DF25 /* au_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446DD18BC605C0017DF25 /* au_set.cpp */; };
4CE4470F18BC605C0017DF25 /* deblocking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446DE18BC605C0017DF25 /* deblocking.cpp */; }; 4CE4470F18BC605C0017DF25 /* deblocking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446DE18BC605C0017DF25 /* deblocking.cpp */; };
4CE4471018BC605C0017DF25 /* decode_mb_aux.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446DF18BC605C0017DF25 /* decode_mb_aux.cpp */; }; 4CE4471018BC605C0017DF25 /* decode_mb_aux.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446DF18BC605C0017DF25 /* decode_mb_aux.cpp */; };
@@ -23,6 +26,7 @@
4CE4471218BC605C0017DF25 /* encoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E118BC605C0017DF25 /* encoder.cpp */; }; 4CE4471218BC605C0017DF25 /* encoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E118BC605C0017DF25 /* encoder.cpp */; };
4CE4471318BC605C0017DF25 /* encoder_data_tables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E218BC605C0017DF25 /* encoder_data_tables.cpp */; }; 4CE4471318BC605C0017DF25 /* encoder_data_tables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E218BC605C0017DF25 /* encoder_data_tables.cpp */; };
4CE4471418BC605C0017DF25 /* encoder_ext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E318BC605C0017DF25 /* encoder_ext.cpp */; }; 4CE4471418BC605C0017DF25 /* encoder_ext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E318BC605C0017DF25 /* encoder_ext.cpp */; };
4CE4471518BC605C0017DF25 /* expand_pic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E418BC605C0017DF25 /* expand_pic.cpp */; };
4CE4471618BC605C0017DF25 /* get_intra_predictor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E518BC605C0017DF25 /* get_intra_predictor.cpp */; }; 4CE4471618BC605C0017DF25 /* get_intra_predictor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E518BC605C0017DF25 /* get_intra_predictor.cpp */; };
4CE4471718BC605C0017DF25 /* mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E618BC605C0017DF25 /* mc.cpp */; }; 4CE4471718BC605C0017DF25 /* mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E618BC605C0017DF25 /* mc.cpp */; };
4CE4471818BC605C0017DF25 /* md.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E718BC605C0017DF25 /* md.cpp */; }; 4CE4471818BC605C0017DF25 /* md.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E718BC605C0017DF25 /* md.cpp */; };
@@ -43,14 +47,22 @@
4CE4472718BC605C0017DF25 /* svc_mode_decision.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F618BC605C0017DF25 /* svc_mode_decision.cpp */; }; 4CE4472718BC605C0017DF25 /* svc_mode_decision.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F618BC605C0017DF25 /* svc_mode_decision.cpp */; };
4CE4472818BC605C0017DF25 /* svc_motion_estimate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F718BC605C0017DF25 /* svc_motion_estimate.cpp */; }; 4CE4472818BC605C0017DF25 /* svc_motion_estimate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F718BC605C0017DF25 /* svc_motion_estimate.cpp */; };
4CE4472918BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F818BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp */; }; 4CE4472918BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F818BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp */; };
4CE4472A18BC605C0017DF25 /* utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F918BC605C0017DF25 /* utils.cpp */; };
4CE4472B18BC605C0017DF25 /* wels_preprocess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446FA18BC605C0017DF25 /* wels_preprocess.cpp */; }; 4CE4472B18BC605C0017DF25 /* wels_preprocess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446FA18BC605C0017DF25 /* wels_preprocess.cpp */; };
4CE4472D18BC605C0017DF25 /* welsCodecTrace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4470518BC605C0017DF25 /* welsCodecTrace.cpp */; };
4CE4472E18BC605C0017DF25 /* welsEncoderExt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4470618BC605C0017DF25 /* welsEncoderExt.cpp */; }; 4CE4472E18BC605C0017DF25 /* welsEncoderExt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4470618BC605C0017DF25 /* welsEncoderExt.cpp */; };
9AED665019469FC1009A3567 /* welsCodecTrace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AED664C19469FC1009A3567 /* welsCodecTrace.cpp */; };
9AED66661946A2B3009A3567 /* utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AED66651946A2B3009A3567 /* utils.cpp */; };
F5617A50196A833A006E2B20 /* reconstruct_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F5617A4F196A833A006E2B20 /* reconstruct_aarch64_neon.S */; };
F5BE8005196B913200ED02ED /* memory_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F5BE8004196B913200ED02ED /* memory_aarch64_neon.S */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
4CE4432718B6FFA00017DF25 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 4CE4430918B6FFA00017DF25 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 4CE4431018B6FFA00017DF25;
remoteInfo = welsenc;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */ /* Begin PBXCopyFilesBuildPhase section */
4CE4430F18B6FFA00017DF25 /* CopyFiles */ = { 4CE4430F18B6FFA00017DF25 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase; isa = PBXCopyFilesBuildPhase;
@@ -64,18 +76,20 @@
/* End PBXCopyFilesBuildPhase section */ /* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
4C23BC5F195A77E0003B81FC /* intra_pred_sad_3_opt_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = intra_pred_sad_3_opt_aarch64_neon.S; path = arm64/intra_pred_sad_3_opt_aarch64_neon.S; sourceTree = "<group>"; };
4C34066618C57D0400DFA14A /* intra_pred_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = intra_pred_neon.S; sourceTree = "<group>"; }; 4C34066618C57D0400DFA14A /* intra_pred_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = intra_pred_neon.S; sourceTree = "<group>"; };
4C34066718C57D0400DFA14A /* intra_pred_sad_3_opt_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = intra_pred_sad_3_opt_neon.S; sourceTree = "<group>"; }; 4C34066718C57D0400DFA14A /* intra_pred_sad_3_opt_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = intra_pred_sad_3_opt_neon.S; sourceTree = "<group>"; };
4C34066918C57D0400DFA14A /* memory_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = memory_neon.S; sourceTree = "<group>"; }; 4C34066918C57D0400DFA14A /* memory_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = memory_neon.S; sourceTree = "<group>"; };
4C34066A18C57D0400DFA14A /* pixel_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = pixel_neon.S; sourceTree = "<group>"; }; 4C34066A18C57D0400DFA14A /* pixel_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = pixel_neon.S; sourceTree = "<group>"; };
4C34066B18C57D0400DFA14A /* reconstruct_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = reconstruct_neon.S; sourceTree = "<group>"; }; 4C34066B18C57D0400DFA14A /* reconstruct_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = reconstruct_neon.S; sourceTree = "<group>"; };
4CB8F2B319235FC5005D6386 /* pixel_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = pixel_aarch64_neon.S; path = arm64/pixel_aarch64_neon.S; sourceTree = "<group>"; };
4CBC1B82194ACBB400214D9E /* intra_pred_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = intra_pred_aarch64_neon.S; path = arm64/intra_pred_aarch64_neon.S; sourceTree = "<group>"; };
4CDBFB9D18E5068D0025A767 /* wels_transpose_matrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_transpose_matrix.h; sourceTree = "<group>"; }; 4CDBFB9D18E5068D0025A767 /* wels_transpose_matrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_transpose_matrix.h; sourceTree = "<group>"; };
4CE4431118B6FFA00017DF25 /* libwelsenc.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libwelsenc.a; sourceTree = BUILT_PRODUCTS_DIR; }; 4CE4431118B6FFA00017DF25 /* libwelsenc.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libwelsenc.a; sourceTree = BUILT_PRODUCTS_DIR; };
4CE4431418B6FFA00017DF25 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 4CE4431418B6FFA00017DF25 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
4CE4432118B6FFA00017DF25 /* welsencTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = welsencTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
4CE4432218B6FFA00017DF25 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
4CE4432518B6FFA00017DF25 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; 4CE4432518B6FFA00017DF25 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
4CE4432C18B6FFA00017DF25 /* welsencTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "welsencTests-Info.plist"; sourceTree = "<group>"; };
4CE4432E18B6FFA00017DF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
4CE4433018B6FFA00017DF25 /* welsencTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = welsencTests.m; sourceTree = "<group>"; };
4CE446AA18BC605C0017DF25 /* as264_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = as264_common.h; sourceTree = "<group>"; }; 4CE446AA18BC605C0017DF25 /* as264_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = as264_common.h; sourceTree = "<group>"; };
4CE446AB18BC605C0017DF25 /* au_set.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = au_set.h; sourceTree = "<group>"; }; 4CE446AB18BC605C0017DF25 /* au_set.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = au_set.h; sourceTree = "<group>"; };
4CE446AC18BC605C0017DF25 /* bit_stream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bit_stream.h; sourceTree = "<group>"; }; 4CE446AC18BC605C0017DF25 /* bit_stream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bit_stream.h; sourceTree = "<group>"; };
@@ -85,6 +99,7 @@
4CE446B118BC605C0017DF25 /* encode_mb_aux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = encode_mb_aux.h; sourceTree = "<group>"; }; 4CE446B118BC605C0017DF25 /* encode_mb_aux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = encode_mb_aux.h; sourceTree = "<group>"; };
4CE446B218BC605C0017DF25 /* encoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = encoder.h; sourceTree = "<group>"; }; 4CE446B218BC605C0017DF25 /* encoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = encoder.h; sourceTree = "<group>"; };
4CE446B318BC605C0017DF25 /* encoder_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = encoder_context.h; sourceTree = "<group>"; }; 4CE446B318BC605C0017DF25 /* encoder_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = encoder_context.h; sourceTree = "<group>"; };
4CE446B418BC605C0017DF25 /* expand_pic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = expand_pic.h; sourceTree = "<group>"; };
4CE446B518BC605C0017DF25 /* extern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = extern.h; sourceTree = "<group>"; }; 4CE446B518BC605C0017DF25 /* extern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = extern.h; sourceTree = "<group>"; };
4CE446B618BC605C0017DF25 /* get_intra_predictor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = get_intra_predictor.h; sourceTree = "<group>"; }; 4CE446B618BC605C0017DF25 /* get_intra_predictor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = get_intra_predictor.h; sourceTree = "<group>"; };
4CE446B718BC605C0017DF25 /* mb_cache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mb_cache.h; sourceTree = "<group>"; }; 4CE446B718BC605C0017DF25 /* mb_cache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mb_cache.h; sourceTree = "<group>"; };
@@ -108,6 +123,7 @@
4CE446C918BC605C0017DF25 /* slice_multi_threading.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slice_multi_threading.h; sourceTree = "<group>"; }; 4CE446C918BC605C0017DF25 /* slice_multi_threading.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slice_multi_threading.h; sourceTree = "<group>"; };
4CE446CA18BC605C0017DF25 /* stat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stat.h; sourceTree = "<group>"; }; 4CE446CA18BC605C0017DF25 /* stat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stat.h; sourceTree = "<group>"; };
4CE446CB18BC605C0017DF25 /* svc_base_layer_md.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_base_layer_md.h; sourceTree = "<group>"; }; 4CE446CB18BC605C0017DF25 /* svc_base_layer_md.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_base_layer_md.h; sourceTree = "<group>"; };
4CE446CC18BC605C0017DF25 /* svc_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_config.h; sourceTree = "<group>"; };
4CE446CD18BC605C0017DF25 /* svc_enc_frame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_enc_frame.h; sourceTree = "<group>"; }; 4CE446CD18BC605C0017DF25 /* svc_enc_frame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_enc_frame.h; sourceTree = "<group>"; };
4CE446CE18BC605C0017DF25 /* svc_enc_golomb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_enc_golomb.h; sourceTree = "<group>"; }; 4CE446CE18BC605C0017DF25 /* svc_enc_golomb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_enc_golomb.h; sourceTree = "<group>"; };
4CE446CF18BC605C0017DF25 /* svc_enc_macroblock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_enc_macroblock.h; sourceTree = "<group>"; }; 4CE446CF18BC605C0017DF25 /* svc_enc_macroblock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_enc_macroblock.h; sourceTree = "<group>"; };
@@ -117,6 +133,7 @@
4CE446D318BC605C0017DF25 /* svc_mode_decision.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_mode_decision.h; sourceTree = "<group>"; }; 4CE446D318BC605C0017DF25 /* svc_mode_decision.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_mode_decision.h; sourceTree = "<group>"; };
4CE446D418BC605C0017DF25 /* svc_motion_estimate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_motion_estimate.h; sourceTree = "<group>"; }; 4CE446D418BC605C0017DF25 /* svc_motion_estimate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_motion_estimate.h; sourceTree = "<group>"; };
4CE446D518BC605C0017DF25 /* svc_set_mb_syn_cavlc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_set_mb_syn_cavlc.h; sourceTree = "<group>"; }; 4CE446D518BC605C0017DF25 /* svc_set_mb_syn_cavlc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_set_mb_syn_cavlc.h; sourceTree = "<group>"; };
4CE446D618BC605C0017DF25 /* utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = "<group>"; };
4CE446D718BC605C0017DF25 /* vlc_encoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vlc_encoder.h; sourceTree = "<group>"; }; 4CE446D718BC605C0017DF25 /* vlc_encoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vlc_encoder.h; sourceTree = "<group>"; };
4CE446D818BC605C0017DF25 /* wels_common_basis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_common_basis.h; sourceTree = "<group>"; }; 4CE446D818BC605C0017DF25 /* wels_common_basis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_common_basis.h; sourceTree = "<group>"; };
4CE446D918BC605C0017DF25 /* wels_const.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_const.h; sourceTree = "<group>"; }; 4CE446D918BC605C0017DF25 /* wels_const.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_const.h; sourceTree = "<group>"; };
@@ -129,6 +146,7 @@
4CE446E118BC605C0017DF25 /* encoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = encoder.cpp; sourceTree = "<group>"; }; 4CE446E118BC605C0017DF25 /* encoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = encoder.cpp; sourceTree = "<group>"; };
4CE446E218BC605C0017DF25 /* encoder_data_tables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = encoder_data_tables.cpp; sourceTree = "<group>"; }; 4CE446E218BC605C0017DF25 /* encoder_data_tables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = encoder_data_tables.cpp; sourceTree = "<group>"; };
4CE446E318BC605C0017DF25 /* encoder_ext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = encoder_ext.cpp; sourceTree = "<group>"; }; 4CE446E318BC605C0017DF25 /* encoder_ext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = encoder_ext.cpp; sourceTree = "<group>"; };
4CE446E418BC605C0017DF25 /* expand_pic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = expand_pic.cpp; sourceTree = "<group>"; };
4CE446E518BC605C0017DF25 /* get_intra_predictor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = get_intra_predictor.cpp; sourceTree = "<group>"; }; 4CE446E518BC605C0017DF25 /* get_intra_predictor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = get_intra_predictor.cpp; sourceTree = "<group>"; };
4CE446E618BC605C0017DF25 /* mc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mc.cpp; sourceTree = "<group>"; }; 4CE446E618BC605C0017DF25 /* mc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mc.cpp; sourceTree = "<group>"; };
4CE446E718BC605C0017DF25 /* md.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = md.cpp; sourceTree = "<group>"; }; 4CE446E718BC605C0017DF25 /* md.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = md.cpp; sourceTree = "<group>"; };
@@ -149,16 +167,13 @@
4CE446F618BC605C0017DF25 /* svc_mode_decision.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = svc_mode_decision.cpp; sourceTree = "<group>"; }; 4CE446F618BC605C0017DF25 /* svc_mode_decision.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = svc_mode_decision.cpp; sourceTree = "<group>"; };
4CE446F718BC605C0017DF25 /* svc_motion_estimate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = svc_motion_estimate.cpp; sourceTree = "<group>"; }; 4CE446F718BC605C0017DF25 /* svc_motion_estimate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = svc_motion_estimate.cpp; sourceTree = "<group>"; };
4CE446F818BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = svc_set_mb_syn_cavlc.cpp; sourceTree = "<group>"; }; 4CE446F818BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = svc_set_mb_syn_cavlc.cpp; sourceTree = "<group>"; };
4CE446F918BC605C0017DF25 /* utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = utils.cpp; sourceTree = "<group>"; };
4CE446FA18BC605C0017DF25 /* wels_preprocess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wels_preprocess.cpp; sourceTree = "<group>"; }; 4CE446FA18BC605C0017DF25 /* wels_preprocess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wels_preprocess.cpp; sourceTree = "<group>"; };
4CE446FD18BC605C0017DF25 /* welsCodecTrace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = welsCodecTrace.h; sourceTree = "<group>"; };
4CE446FE18BC605C0017DF25 /* welsEncoderExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = welsEncoderExt.h; sourceTree = "<group>"; }; 4CE446FE18BC605C0017DF25 /* welsEncoderExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = welsEncoderExt.h; sourceTree = "<group>"; };
4CE4470418BC605C0017DF25 /* wels_enc_export.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = wels_enc_export.def; sourceTree = "<group>"; }; 4CE4470418BC605C0017DF25 /* wels_enc_export.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = wels_enc_export.def; sourceTree = "<group>"; };
4CE4470518BC605C0017DF25 /* welsCodecTrace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsCodecTrace.cpp; sourceTree = "<group>"; };
4CE4470618BC605C0017DF25 /* welsEncoderExt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsEncoderExt.cpp; sourceTree = "<group>"; }; 4CE4470618BC605C0017DF25 /* welsEncoderExt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsEncoderExt.cpp; sourceTree = "<group>"; };
9AED664819469FAF009A3567 /* welsCodecTrace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = welsCodecTrace.h; path = ../../../common/inc/welsCodecTrace.h; sourceTree = "<group>"; };
9AED664C19469FC1009A3567 /* welsCodecTrace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = welsCodecTrace.cpp; path = ../../../common/src/welsCodecTrace.cpp; sourceTree = "<group>"; };
9AED66651946A2B3009A3567 /* utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = utils.cpp; path = ../../../common/src/utils.cpp; sourceTree = "<group>"; };
9AED66671946A2C4009A3567 /* utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = utils.h; path = ../../../common/inc/utils.h; sourceTree = "<group>"; };
F5617A4F196A833A006E2B20 /* reconstruct_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = reconstruct_aarch64_neon.S; path = arm64/reconstruct_aarch64_neon.S; sourceTree = "<group>"; };
F5BE8004196B913200ED02ED /* memory_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = memory_aarch64_neon.S; path = arm64/memory_aarch64_neon.S; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@@ -170,6 +185,17 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
4CE4431E18B6FFA00017DF25 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
4CE4432318B6FFA00017DF25 /* XCTest.framework in Frameworks */,
4CE4432618B6FFA00017DF25 /* UIKit.framework in Frameworks */,
4CE4432418B6FFA00017DF25 /* Foundation.framework in Frameworks */,
4CE4432918B6FFA00017DF25 /* libwelsenc.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */ /* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */ /* Begin PBXGroup section */
@@ -185,22 +211,11 @@
path = arm; path = arm;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
4CB8F2B219235FAC005D6386 /* arm64 */ = {
isa = PBXGroup;
children = (
F5BE8004196B913200ED02ED /* memory_aarch64_neon.S */,
F5617A4F196A833A006E2B20 /* reconstruct_aarch64_neon.S */,
4C23BC5F195A77E0003B81FC /* intra_pred_sad_3_opt_aarch64_neon.S */,
4CBC1B82194ACBB400214D9E /* intra_pred_aarch64_neon.S */,
4CB8F2B319235FC5005D6386 /* pixel_aarch64_neon.S */,
);
name = arm64;
sourceTree = "<group>";
};
4CE4430818B6FFA00017DF25 = { 4CE4430818B6FFA00017DF25 = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4CE446A018BC605B0017DF25 /* encoder */, 4CE446A018BC605B0017DF25 /* encoder */,
4CE4432A18B6FFA00017DF25 /* welsencTests */,
4CE4431318B6FFA00017DF25 /* Frameworks */, 4CE4431318B6FFA00017DF25 /* Frameworks */,
4CE4431218B6FFA00017DF25 /* Products */, 4CE4431218B6FFA00017DF25 /* Products */,
); );
@@ -210,6 +225,7 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4CE4431118B6FFA00017DF25 /* libwelsenc.a */, 4CE4431118B6FFA00017DF25 /* libwelsenc.a */,
4CE4432118B6FFA00017DF25 /* welsencTests.xctest */,
); );
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -218,11 +234,30 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4CE4431418B6FFA00017DF25 /* Foundation.framework */, 4CE4431418B6FFA00017DF25 /* Foundation.framework */,
4CE4432218B6FFA00017DF25 /* XCTest.framework */,
4CE4432518B6FFA00017DF25 /* UIKit.framework */, 4CE4432518B6FFA00017DF25 /* UIKit.framework */,
); );
name = Frameworks; name = Frameworks;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
4CE4432A18B6FFA00017DF25 /* welsencTests */ = {
isa = PBXGroup;
children = (
4CE4433018B6FFA00017DF25 /* welsencTests.m */,
4CE4432B18B6FFA00017DF25 /* Supporting Files */,
);
path = welsencTests;
sourceTree = "<group>";
};
4CE4432B18B6FFA00017DF25 /* Supporting Files */ = {
isa = PBXGroup;
children = (
4CE4432C18B6FFA00017DF25 /* welsencTests-Info.plist */,
4CE4432D18B6FFA00017DF25 /* InfoPlist.strings */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
4CE446A018BC605B0017DF25 /* encoder */ = { 4CE446A018BC605B0017DF25 /* encoder */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@@ -236,7 +271,6 @@
4CE446A118BC605B0017DF25 /* core */ = { 4CE446A118BC605B0017DF25 /* core */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4CB8F2B219235FAC005D6386 /* arm64 */,
4C34066418C57D0400DFA14A /* arm */, 4C34066418C57D0400DFA14A /* arm */,
4CE446A918BC605C0017DF25 /* inc */, 4CE446A918BC605C0017DF25 /* inc */,
4CE446DC18BC605C0017DF25 /* src */, 4CE446DC18BC605C0017DF25 /* src */,
@@ -247,7 +281,6 @@
4CE446A918BC605C0017DF25 /* inc */ = { 4CE446A918BC605C0017DF25 /* inc */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
9AED66671946A2C4009A3567 /* utils.h */,
4CDBFB9D18E5068D0025A767 /* wels_transpose_matrix.h */, 4CDBFB9D18E5068D0025A767 /* wels_transpose_matrix.h */,
4CE446AA18BC605C0017DF25 /* as264_common.h */, 4CE446AA18BC605C0017DF25 /* as264_common.h */,
4CE446AB18BC605C0017DF25 /* au_set.h */, 4CE446AB18BC605C0017DF25 /* au_set.h */,
@@ -258,6 +291,7 @@
4CE446B118BC605C0017DF25 /* encode_mb_aux.h */, 4CE446B118BC605C0017DF25 /* encode_mb_aux.h */,
4CE446B218BC605C0017DF25 /* encoder.h */, 4CE446B218BC605C0017DF25 /* encoder.h */,
4CE446B318BC605C0017DF25 /* encoder_context.h */, 4CE446B318BC605C0017DF25 /* encoder_context.h */,
4CE446B418BC605C0017DF25 /* expand_pic.h */,
4CE446B518BC605C0017DF25 /* extern.h */, 4CE446B518BC605C0017DF25 /* extern.h */,
4CE446B618BC605C0017DF25 /* get_intra_predictor.h */, 4CE446B618BC605C0017DF25 /* get_intra_predictor.h */,
4CE446B718BC605C0017DF25 /* mb_cache.h */, 4CE446B718BC605C0017DF25 /* mb_cache.h */,
@@ -281,6 +315,7 @@
4CE446C918BC605C0017DF25 /* slice_multi_threading.h */, 4CE446C918BC605C0017DF25 /* slice_multi_threading.h */,
4CE446CA18BC605C0017DF25 /* stat.h */, 4CE446CA18BC605C0017DF25 /* stat.h */,
4CE446CB18BC605C0017DF25 /* svc_base_layer_md.h */, 4CE446CB18BC605C0017DF25 /* svc_base_layer_md.h */,
4CE446CC18BC605C0017DF25 /* svc_config.h */,
4CE446CD18BC605C0017DF25 /* svc_enc_frame.h */, 4CE446CD18BC605C0017DF25 /* svc_enc_frame.h */,
4CE446CE18BC605C0017DF25 /* svc_enc_golomb.h */, 4CE446CE18BC605C0017DF25 /* svc_enc_golomb.h */,
4CE446CF18BC605C0017DF25 /* svc_enc_macroblock.h */, 4CE446CF18BC605C0017DF25 /* svc_enc_macroblock.h */,
@@ -290,6 +325,7 @@
4CE446D318BC605C0017DF25 /* svc_mode_decision.h */, 4CE446D318BC605C0017DF25 /* svc_mode_decision.h */,
4CE446D418BC605C0017DF25 /* svc_motion_estimate.h */, 4CE446D418BC605C0017DF25 /* svc_motion_estimate.h */,
4CE446D518BC605C0017DF25 /* svc_set_mb_syn_cavlc.h */, 4CE446D518BC605C0017DF25 /* svc_set_mb_syn_cavlc.h */,
4CE446D618BC605C0017DF25 /* utils.h */,
4CE446D718BC605C0017DF25 /* vlc_encoder.h */, 4CE446D718BC605C0017DF25 /* vlc_encoder.h */,
4CE446D818BC605C0017DF25 /* wels_common_basis.h */, 4CE446D818BC605C0017DF25 /* wels_common_basis.h */,
4CE446D918BC605C0017DF25 /* wels_const.h */, 4CE446D918BC605C0017DF25 /* wels_const.h */,
@@ -302,7 +338,6 @@
4CE446DC18BC605C0017DF25 /* src */ = { 4CE446DC18BC605C0017DF25 /* src */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
9AED66651946A2B3009A3567 /* utils.cpp */,
4CE446DD18BC605C0017DF25 /* au_set.cpp */, 4CE446DD18BC605C0017DF25 /* au_set.cpp */,
4CE446DE18BC605C0017DF25 /* deblocking.cpp */, 4CE446DE18BC605C0017DF25 /* deblocking.cpp */,
4CE446DF18BC605C0017DF25 /* decode_mb_aux.cpp */, 4CE446DF18BC605C0017DF25 /* decode_mb_aux.cpp */,
@@ -310,6 +345,7 @@
4CE446E118BC605C0017DF25 /* encoder.cpp */, 4CE446E118BC605C0017DF25 /* encoder.cpp */,
4CE446E218BC605C0017DF25 /* encoder_data_tables.cpp */, 4CE446E218BC605C0017DF25 /* encoder_data_tables.cpp */,
4CE446E318BC605C0017DF25 /* encoder_ext.cpp */, 4CE446E318BC605C0017DF25 /* encoder_ext.cpp */,
4CE446E418BC605C0017DF25 /* expand_pic.cpp */,
4CE446E518BC605C0017DF25 /* get_intra_predictor.cpp */, 4CE446E518BC605C0017DF25 /* get_intra_predictor.cpp */,
4CE446E618BC605C0017DF25 /* mc.cpp */, 4CE446E618BC605C0017DF25 /* mc.cpp */,
4CE446E718BC605C0017DF25 /* md.cpp */, 4CE446E718BC605C0017DF25 /* md.cpp */,
@@ -330,6 +366,7 @@
4CE446F618BC605C0017DF25 /* svc_mode_decision.cpp */, 4CE446F618BC605C0017DF25 /* svc_mode_decision.cpp */,
4CE446F718BC605C0017DF25 /* svc_motion_estimate.cpp */, 4CE446F718BC605C0017DF25 /* svc_motion_estimate.cpp */,
4CE446F818BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp */, 4CE446F818BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp */,
4CE446F918BC605C0017DF25 /* utils.cpp */,
4CE446FA18BC605C0017DF25 /* wels_preprocess.cpp */, 4CE446FA18BC605C0017DF25 /* wels_preprocess.cpp */,
); );
path = src; path = src;
@@ -347,7 +384,7 @@
4CE446FC18BC605C0017DF25 /* inc */ = { 4CE446FC18BC605C0017DF25 /* inc */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
9AED664819469FAF009A3567 /* welsCodecTrace.h */, 4CE446FD18BC605C0017DF25 /* welsCodecTrace.h */,
4CE446FE18BC605C0017DF25 /* welsEncoderExt.h */, 4CE446FE18BC605C0017DF25 /* welsEncoderExt.h */,
); );
path = inc; path = inc;
@@ -356,8 +393,8 @@
4CE4470218BC605C0017DF25 /* src */ = { 4CE4470218BC605C0017DF25 /* src */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
9AED664C19469FC1009A3567 /* welsCodecTrace.cpp */,
4CE4470418BC605C0017DF25 /* wels_enc_export.def */, 4CE4470418BC605C0017DF25 /* wels_enc_export.def */,
4CE4470518BC605C0017DF25 /* welsCodecTrace.cpp */,
4CE4470618BC605C0017DF25 /* welsEncoderExt.cpp */, 4CE4470618BC605C0017DF25 /* welsEncoderExt.cpp */,
); );
path = src; path = src;
@@ -383,13 +420,31 @@
productReference = 4CE4431118B6FFA00017DF25 /* libwelsenc.a */; productReference = 4CE4431118B6FFA00017DF25 /* libwelsenc.a */;
productType = "com.apple.product-type.library.static"; productType = "com.apple.product-type.library.static";
}; };
4CE4432018B6FFA00017DF25 /* welsencTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4CE4433718B6FFA00017DF25 /* Build configuration list for PBXNativeTarget "welsencTests" */;
buildPhases = (
4CE4431D18B6FFA00017DF25 /* Sources */,
4CE4431E18B6FFA00017DF25 /* Frameworks */,
4CE4431F18B6FFA00017DF25 /* Resources */,
);
buildRules = (
);
dependencies = (
4CE4432818B6FFA00017DF25 /* PBXTargetDependency */,
);
name = welsencTests;
productName = welsencTests;
productReference = 4CE4432118B6FFA00017DF25 /* welsencTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */ /* End PBXNativeTarget section */
/* Begin PBXProject section */ /* Begin PBXProject section */
4CE4430918B6FFA00017DF25 /* Project object */ = { 4CE4430918B6FFA00017DF25 /* Project object */ = {
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
LastUpgradeCheck = 0510; LastUpgradeCheck = 0500;
ORGANIZATIONNAME = video; ORGANIZATIONNAME = video;
}; };
buildConfigurationList = 4CE4430C18B6FFA00017DF25 /* Build configuration list for PBXProject "welsenc" */; buildConfigurationList = 4CE4430C18B6FFA00017DF25 /* Build configuration list for PBXProject "welsenc" */;
@@ -405,10 +460,22 @@
projectRoot = ""; projectRoot = "";
targets = ( targets = (
4CE4431018B6FFA00017DF25 /* welsenc */, 4CE4431018B6FFA00017DF25 /* welsenc */,
4CE4432018B6FFA00017DF25 /* welsencTests */,
); );
}; };
/* End PBXProject section */ /* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
4CE4431F18B6FFA00017DF25 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4CE4432F18B6FFA00017DF25 /* InfoPlist.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */
4CE4430D18B6FFA00017DF25 /* Sources */ = { 4CE4430D18B6FFA00017DF25 /* Sources */ = {
isa = PBXSourcesBuildPhase; isa = PBXSourcesBuildPhase;
@@ -419,36 +486,32 @@
4CE4472718BC605C0017DF25 /* svc_mode_decision.cpp in Sources */, 4CE4472718BC605C0017DF25 /* svc_mode_decision.cpp in Sources */,
4CE4472818BC605C0017DF25 /* svc_motion_estimate.cpp in Sources */, 4CE4472818BC605C0017DF25 /* svc_motion_estimate.cpp in Sources */,
4CE4471D18BC605C0017DF25 /* property.cpp in Sources */, 4CE4471D18BC605C0017DF25 /* property.cpp in Sources */,
4CE4472A18BC605C0017DF25 /* utils.cpp in Sources */,
4CE4471018BC605C0017DF25 /* decode_mb_aux.cpp in Sources */, 4CE4471018BC605C0017DF25 /* decode_mb_aux.cpp in Sources */,
4CE4472018BC605C0017DF25 /* sample.cpp in Sources */, 4CE4472018BC605C0017DF25 /* sample.cpp in Sources */,
4CE4472D18BC605C0017DF25 /* welsCodecTrace.cpp in Sources */,
4CE4471318BC605C0017DF25 /* encoder_data_tables.cpp in Sources */, 4CE4471318BC605C0017DF25 /* encoder_data_tables.cpp in Sources */,
4C34067118C57D0400DFA14A /* pixel_neon.S in Sources */, 4C34067118C57D0400DFA14A /* pixel_neon.S in Sources */,
9AED665019469FC1009A3567 /* welsCodecTrace.cpp in Sources */,
4CE4471F18BC605C0017DF25 /* ref_list_mgr_svc.cpp in Sources */, 4CE4471F18BC605C0017DF25 /* ref_list_mgr_svc.cpp in Sources */,
4CE4472218BC605C0017DF25 /* slice_multi_threading.cpp in Sources */, 4CE4472218BC605C0017DF25 /* slice_multi_threading.cpp in Sources */,
4CE4471518BC605C0017DF25 /* expand_pic.cpp in Sources */,
4C34067018C57D0400DFA14A /* memory_neon.S in Sources */, 4C34067018C57D0400DFA14A /* memory_neon.S in Sources */,
4CE4470F18BC605C0017DF25 /* deblocking.cpp in Sources */, 4CE4470F18BC605C0017DF25 /* deblocking.cpp in Sources */,
4CE4472518BC605C0017DF25 /* svc_encode_mb.cpp in Sources */, 4CE4472518BC605C0017DF25 /* svc_encode_mb.cpp in Sources */,
4CE4471A18BC605C0017DF25 /* mv_pred.cpp in Sources */, 4CE4471A18BC605C0017DF25 /* mv_pred.cpp in Sources */,
4C34066E18C57D0400DFA14A /* intra_pred_sad_3_opt_neon.S in Sources */, 4C34066E18C57D0400DFA14A /* intra_pred_sad_3_opt_neon.S in Sources */,
4C23BC60195A77E0003B81FC /* intra_pred_sad_3_opt_aarch64_neon.S in Sources */,
4CE4472B18BC605C0017DF25 /* wels_preprocess.cpp in Sources */, 4CE4472B18BC605C0017DF25 /* wels_preprocess.cpp in Sources */,
4CE4470E18BC605C0017DF25 /* au_set.cpp in Sources */, 4CE4470E18BC605C0017DF25 /* au_set.cpp in Sources */,
F5BE8005196B913200ED02ED /* memory_aarch64_neon.S in Sources */,
4CBC1B83194ACBB400214D9E /* intra_pred_aarch64_neon.S in Sources */,
4CE4471718BC605C0017DF25 /* mc.cpp in Sources */, 4CE4471718BC605C0017DF25 /* mc.cpp in Sources */,
F5617A50196A833A006E2B20 /* reconstruct_aarch64_neon.S in Sources */,
4CE4472918BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp in Sources */, 4CE4472918BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp in Sources */,
4CE4471818BC605C0017DF25 /* md.cpp in Sources */, 4CE4471818BC605C0017DF25 /* md.cpp in Sources */,
4CE4471B18BC605C0017DF25 /* nal_encap.cpp in Sources */, 4CE4471B18BC605C0017DF25 /* nal_encap.cpp in Sources */,
4CE4471918BC605C0017DF25 /* memory_align.cpp in Sources */, 4CE4471918BC605C0017DF25 /* memory_align.cpp in Sources */,
4CE4472418BC605C0017DF25 /* svc_enc_slice_segment.cpp in Sources */, 4CE4472418BC605C0017DF25 /* svc_enc_slice_segment.cpp in Sources */,
4CE4472318BC605C0017DF25 /* svc_base_layer_md.cpp in Sources */, 4CE4472318BC605C0017DF25 /* svc_base_layer_md.cpp in Sources */,
4CB8F2B419235FC5005D6386 /* pixel_aarch64_neon.S in Sources */,
4CE4471E18BC605C0017DF25 /* ratectl.cpp in Sources */, 4CE4471E18BC605C0017DF25 /* ratectl.cpp in Sources */,
4C34066D18C57D0400DFA14A /* intra_pred_neon.S in Sources */, 4C34066D18C57D0400DFA14A /* intra_pred_neon.S in Sources */,
4CE4471C18BC605C0017DF25 /* picture_handle.cpp in Sources */, 4CE4471C18BC605C0017DF25 /* picture_handle.cpp in Sources */,
9AED66661946A2B3009A3567 /* utils.cpp in Sources */,
4CE4472618BC605C0017DF25 /* svc_encode_slice.cpp in Sources */, 4CE4472618BC605C0017DF25 /* svc_encode_slice.cpp in Sources */,
4CE4471218BC605C0017DF25 /* encoder.cpp in Sources */, 4CE4471218BC605C0017DF25 /* encoder.cpp in Sources */,
4CE4471618BC605C0017DF25 /* get_intra_predictor.cpp in Sources */, 4CE4471618BC605C0017DF25 /* get_intra_predictor.cpp in Sources */,
@@ -458,13 +521,41 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
4CE4431D18B6FFA00017DF25 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4CE4433118B6FFA00017DF25 /* welsencTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */ /* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
4CE4432818B6FFA00017DF25 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4CE4431018B6FFA00017DF25 /* welsenc */;
targetProxy = 4CE4432718B6FFA00017DF25 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
4CE4432D18B6FFA00017DF25 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
4CE4432E18B6FFA00017DF25 /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */ /* Begin XCBuildConfiguration section */
4CE4433218B6FFA00017DF25 /* Debug */ = { 4CE4433218B6FFA00017DF25 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
@@ -502,6 +593,7 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
@@ -532,6 +624,7 @@
4CE4433518B6FFA00017DF25 /* Debug */ = { 4CE4433518B6FFA00017DF25 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default"; CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
CLANG_CXX_LIBRARY = "compiler-default"; CLANG_CXX_LIBRARY = "compiler-default";
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
@@ -557,7 +650,6 @@
"$(SRCROOT)/../../../../processing/interface", "$(SRCROOT)/../../../../processing/interface",
"$(SRCROOT)/../../../../api/svc", "$(SRCROOT)/../../../../api/svc",
"$(SRCROOT)/../../../../common/arm", "$(SRCROOT)/../../../../common/arm",
"$(SRCROOT)/../../../../common/arm64",
); );
IPHONEOS_DEPLOYMENT_TARGET = 6.1; IPHONEOS_DEPLOYMENT_TARGET = 6.1;
ONLY_ACTIVE_ARCH = NO; ONLY_ACTIVE_ARCH = NO;
@@ -571,6 +663,7 @@
4CE4433618B6FFA00017DF25 /* Release */ = { 4CE4433618B6FFA00017DF25 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default"; CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
CLANG_CXX_LIBRARY = "compiler-default"; CLANG_CXX_LIBRARY = "compiler-default";
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
@@ -595,7 +688,6 @@
"$(SRCROOT)/../../../../processing/interface", "$(SRCROOT)/../../../../processing/interface",
"$(SRCROOT)/../../../../api/svc", "$(SRCROOT)/../../../../api/svc",
"$(SRCROOT)/../../../../common/arm", "$(SRCROOT)/../../../../common/arm",
"$(SRCROOT)/../../../../common/arm64",
); );
IPHONEOS_DEPLOYMENT_TARGET = 6.1; IPHONEOS_DEPLOYMENT_TARGET = 6.1;
OTHER_LDFLAGS = "-ObjC"; OTHER_LDFLAGS = "-ObjC";
@@ -605,6 +697,44 @@
}; };
name = Release; name = Release;
}; };
4CE4433818B6FFA00017DF25 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
"$(DEVELOPER_FRAMEWORKS_DIR)",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "welsenc/welsenc-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
INFOPLIST_FILE = "welsencTests/welsencTests-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = xctest;
};
name = Debug;
};
4CE4433918B6FFA00017DF25 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
"$(DEVELOPER_FRAMEWORKS_DIR)",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "welsenc/welsenc-Prefix.pch";
INFOPLIST_FILE = "welsencTests/welsencTests-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = xctest;
};
name = Release;
};
/* End XCBuildConfiguration section */ /* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */ /* Begin XCConfigurationList section */
@@ -626,6 +756,15 @@
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
4CE4433718B6FFA00017DF25 /* Build configuration list for PBXNativeTarget "welsencTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4CE4433818B6FFA00017DF25 /* Debug */,
4CE4433918B6FFA00017DF25 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */ /* End XCConfigurationList section */
}; };
rootObject = 4CE4430918B6FFA00017DF25 /* Project object */; rootObject = 4CE4430918B6FFA00017DF25 /* Project object */;

View File

@@ -0,0 +1,2 @@
/* Localized versions of Info.plist keys */

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>cisco.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

View File

@@ -0,0 +1,58 @@
/*!
* \copy
* Copyright (c) 2013, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#import <XCTest/XCTest.h>
@interface welsencTests : XCTestCase
@end
@implementation welsencTests
- (void)setUp
{
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
}
- (void)tearDown
{
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
- (void)testExample
{
XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__);
}
@end

View File

@@ -1,12 +0,0 @@
# Files generated by Visual Studio 2008
*.user
*.ncb
*.suo
# Files generated by upgrading the project files
*.vcxproj*
Backup
UpgradeLog.htm
# Files generated by Visual Studio 2012
*.sdf

View File

@@ -30,7 +30,6 @@
UseOfMFC="0" UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2" CharacterSet="2"
WholeProgramOptimization="1"
> >
<Tool <Tool
Name="VCPreBuildEventTool" Name="VCPreBuildEventTool"
@@ -54,8 +53,8 @@
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="2" Optimization="2"
InlineFunctionExpansion="1" InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc" AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc;..\..\..\hwDecoder\core\inc;..\..\..\hwDecoder\dxva\inc"
PreprocessorDefinitions="NDEBUG;_LIB;X86_ASM" PreprocessorDefinitions="WIN32;NDEBUG;_LIB;X86_ASM;HAVE_CACHE_LINE_ALIGN"
StringPooling="true" StringPooling="true"
RuntimeLibrary="0" RuntimeLibrary="0"
EnableFunctionLevelLinking="true" EnableFunctionLevelLinking="true"
@@ -64,6 +63,7 @@
ObjectFile=".\..\..\..\obj\decoder\core\release/" ObjectFile=".\..\..\..\obj\decoder\core\release/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\release/" ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\release/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="0" DebugInformationFormat="0"
/> />
<Tool <Tool
@@ -80,6 +80,7 @@
<Tool <Tool
Name="VCLibrarianTool" Name="VCLibrarianTool"
OutputFile="$(OutDir)\welsdcore.lib" OutputFile="$(OutDir)\welsdcore.lib"
SuppressStartupBanner="true"
/> />
<Tool <Tool
Name="VCALinkTool" Name="VCALinkTool"
@@ -89,6 +90,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecCore.bsc" OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecCore.bsc"
/> />
<Tool <Tool
@@ -107,7 +109,6 @@
UseOfMFC="0" UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2" CharacterSet="2"
WholeProgramOptimization="1"
> >
<Tool <Tool
Name="VCPreBuildEventTool" Name="VCPreBuildEventTool"
@@ -132,8 +133,8 @@
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="2" Optimization="2"
InlineFunctionExpansion="1" InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc" AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc;..\..\..\hwDecoder\core\inc;..\..\..\hwDecoder\dxva\inc"
PreprocessorDefinitions="NDEBUG;_LIB;X86_ASM" PreprocessorDefinitions="WIN64;NDEBUG;_LIB;HAVE_CACHE_LINE_ALIGN;X86_ASM"
StringPooling="true" StringPooling="true"
RuntimeLibrary="0" RuntimeLibrary="0"
EnableFunctionLevelLinking="true" EnableFunctionLevelLinking="true"
@@ -142,6 +143,7 @@
ObjectFile=".\..\..\..\obj\decoder\core\release/" ObjectFile=".\..\..\..\obj\decoder\core\release/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\release/" ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\release/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="0" DebugInformationFormat="0"
/> />
<Tool <Tool
@@ -158,6 +160,7 @@
<Tool <Tool
Name="VCLibrarianTool" Name="VCLibrarianTool"
OutputFile="$(OutDir)\welsdcore.lib" OutputFile="$(OutDir)\welsdcore.lib"
SuppressStartupBanner="true"
/> />
<Tool <Tool
Name="VCALinkTool" Name="VCALinkTool"
@@ -167,6 +170,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecCore.bsc" OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecCore.bsc"
/> />
<Tool <Tool
@@ -207,8 +211,8 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc" AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc;..\..\..\hwDecoder\core\inc;..\..\..\hwDecoder\dxva\inc"
PreprocessorDefinitions="_DEBUG;_LIB;X86_ASM" PreprocessorDefinitions="WIN32;_DEBUG;_LIB;X86_ASM;HAVE_CACHE_LINE_ALIGN"
MinimalRebuild="true" MinimalRebuild="true"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="1" RuntimeLibrary="1"
@@ -217,6 +221,7 @@
ObjectFile=".\..\..\..\obj\decoder\core\debug/" ObjectFile=".\..\..\..\obj\decoder\core\debug/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\debug/" ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\debug/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4" DebugInformationFormat="4"
/> />
<Tool <Tool
@@ -233,6 +238,7 @@
<Tool <Tool
Name="VCLibrarianTool" Name="VCLibrarianTool"
OutputFile="$(OutDir)\welsdcore.lib" OutputFile="$(OutDir)\welsdcore.lib"
SuppressStartupBanner="true"
/> />
<Tool <Tool
Name="VCALinkTool" Name="VCALinkTool"
@@ -242,6 +248,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecCore.bsc" OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecCore.bsc"
/> />
<Tool <Tool
@@ -283,8 +290,8 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc" AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc;..\..\..\hwDecoder\core\inc;..\..\..\hwDecoder\dxva\inc"
PreprocessorDefinitions="_DEBUG;_LIB;X86_ASM" PreprocessorDefinitions="WIN64;_DEBUG;_LIB;HAVE_CACHE_LINE_ALIGN;X86_ASM"
MinimalRebuild="true" MinimalRebuild="true"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="1" RuntimeLibrary="1"
@@ -293,6 +300,7 @@
ObjectFile=".\..\..\..\obj\decoder\core\debug/" ObjectFile=".\..\..\..\obj\decoder\core\debug/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\debug/" ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\debug/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3" DebugInformationFormat="3"
/> />
<Tool <Tool
@@ -309,6 +317,7 @@
<Tool <Tool
Name="VCLibrarianTool" Name="VCLibrarianTool"
OutputFile="$(OutDir)\welsdcore.lib" OutputFile="$(OutDir)\welsdcore.lib"
SuppressStartupBanner="true"
/> />
<Tool <Tool
Name="VCALinkTool" Name="VCALinkTool"
@@ -318,6 +327,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecCore.bsc" OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecCore.bsc"
/> />
<Tool <Tool
@@ -346,7 +356,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -355,7 +365,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -364,7 +374,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -373,7 +383,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -386,7 +396,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -395,7 +405,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -404,7 +414,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -413,7 +423,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -426,7 +436,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -435,7 +445,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -444,7 +454,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -453,7 +463,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -466,7 +476,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -475,7 +485,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -484,7 +494,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -493,7 +503,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -506,7 +516,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -515,7 +525,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -524,7 +534,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -533,7 +543,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -546,7 +556,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -555,7 +565,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -564,7 +574,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -573,7 +583,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -586,7 +596,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -595,7 +605,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -604,7 +614,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -613,7 +623,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -626,7 +636,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -635,7 +645,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -644,7 +654,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -653,7 +663,7 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)&#x0D;&#x0A;" CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)"
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
@@ -732,7 +742,11 @@
> >
</File> </File>
<File <File
RelativePath="..\..\..\common\inc\expand_pic.h" RelativePath="..\..\..\decoder\core\inc\expand_pic.h"
>
</File>
<File
RelativePath="..\..\..\common\inc\expand_picture_common.h"
> >
</File> </File>
<File <File
@@ -820,7 +834,7 @@
> >
</File> </File>
<File <File
RelativePath="..\..\..\common\inc\utils.h" RelativePath="..\..\..\decoder\core\inc\utils.h"
> >
</File> </File>
<File <File
@@ -831,10 +845,6 @@
RelativePath="..\..\..\decoder\core\inc\wels_common_basis.h" RelativePath="..\..\..\decoder\core\inc\wels_common_basis.h"
> >
</File> </File>
<File
RelativePath="..\..\..\common\inc\wels_common_defs.h"
>
</File>
<File <File
RelativePath="..\..\..\decoder\core\inc\wels_const.h" RelativePath="..\..\..\decoder\core\inc\wels_const.h"
> >
@@ -852,10 +862,6 @@
RelativePath="..\..\..\decoder\core\src\bit_stream.cpp" RelativePath="..\..\..\decoder\core\src\bit_stream.cpp"
> >
</File> </File>
<File
RelativePath="..\..\..\common\src\common_tables.cpp"
>
</File>
<File <File
RelativePath="..\..\..\common\src\copy_mb.cpp" RelativePath="..\..\..\common\src\copy_mb.cpp"
> >
@@ -901,7 +907,7 @@
> >
</File> </File>
<File <File
RelativePath="..\..\..\common\src\expand_pic.cpp" RelativePath="..\..\..\decoder\core\src\expand_pic.cpp"
> >
</File> </File>
<File <File
@@ -912,6 +918,10 @@
RelativePath="..\..\..\decoder\core\src\get_intra_predictor.cpp" RelativePath="..\..\..\decoder\core\src\get_intra_predictor.cpp"
> >
</File> </File>
<File
RelativePath="..\..\..\common\src\logging.cpp"
>
</File>
<File <File
RelativePath="..\..\..\decoder\core\src\manage_dec_ref.cpp" RelativePath="..\..\..\decoder\core\src\manage_dec_ref.cpp"
> >
@@ -945,7 +955,7 @@
> >
</File> </File>
<File <File
RelativePath="..\..\..\common\src\utils.cpp" RelativePath="..\..\..\decoder\core\src\utils.cpp"
> >
</File> </File>
</Filter> </Filter>

View File

@@ -27,7 +27,6 @@
UseOfMFC="0" UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2" CharacterSet="2"
WholeProgramOptimization="1"
> >
<Tool <Tool
Name="VCPreBuildEventTool" Name="VCPreBuildEventTool"
@@ -45,6 +44,7 @@
Name="VCMIDLTool" Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG" PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true" MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1" TargetEnvironment="1"
TypeLibraryName=".\..\..\..\..\..\bin\win32\Release/WelsDecPlus.tlb" TypeLibraryName=".\..\..\..\..\..\bin\win32\Release/WelsDecPlus.tlb"
HeaderFileName="" HeaderFileName=""
@@ -53,8 +53,8 @@
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="2" Optimization="2"
InlineFunctionExpansion="1" InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc" AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\hwDecoder\plus\inc;..\..\..\hwDecoder\core\inc"
PreprocessorDefinitions="NDEBUG;_USRDLL;X86_ASM" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;WELSDECPLUS_EXPORTS;HAVE_CACHE_LINE_ALIGN;X86_ASM"
StringPooling="true" StringPooling="true"
RuntimeLibrary="0" RuntimeLibrary="0"
EnableFunctionLevelLinking="true" EnableFunctionLevelLinking="true"
@@ -63,6 +63,7 @@
ObjectFile=".\..\..\..\obj\decoder\plus\Release/" ObjectFile=".\..\..\..\obj\decoder\plus\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\Release/" ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\Release/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3" DebugInformationFormat="3"
/> />
<Tool <Tool
@@ -81,12 +82,13 @@
AdditionalDependencies=".\..\..\..\..\bin\win32\Release\welsdcore.lib" AdditionalDependencies=".\..\..\..\..\bin\win32\Release\welsdcore.lib"
OutputFile="$(OutDir)\welsdec.dll" OutputFile="$(OutDir)\welsdec.dll"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories=".\..\..\..\libs\Release\" AdditionalLibraryDirectories=".\..\..\..\libs\Release\"
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def" ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\welsdec.pdb" ProgramDatabaseFile=".\..\..\..\maps\Release\welsdec.pdb"
GenerateMapFile="true" GenerateMapFile="true"
MapFileName="$(OutDir)\welsdec.map" MapFileName=".\..\..\..\maps\Release\welsdec.map"
RandomizedBaseAddress="1" RandomizedBaseAddress="1"
DataExecutionPrevention="2" DataExecutionPrevention="2"
ImportLibrary="$(OutDir)\welsdec.lib" ImportLibrary="$(OutDir)\welsdec.lib"
@@ -103,6 +105,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecPlus.bsc" OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecPlus.bsc"
/> />
<Tool <Tool
@@ -124,7 +127,6 @@
UseOfMFC="0" UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2" CharacterSet="2"
WholeProgramOptimization="1"
> >
<Tool <Tool
Name="VCPreBuildEventTool" Name="VCPreBuildEventTool"
@@ -142,6 +144,7 @@
Name="VCMIDLTool" Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG" PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true" MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="3" TargetEnvironment="3"
TypeLibraryName=".\..\..\..\..\..\bin\win32\Release/WelsDecPlus.tlb" TypeLibraryName=".\..\..\..\..\..\bin\win32\Release/WelsDecPlus.tlb"
HeaderFileName="" HeaderFileName=""
@@ -150,8 +153,8 @@
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="2" Optimization="2"
InlineFunctionExpansion="1" InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc" AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\hwDecoder\plus\inc;..\..\..\hwDecoder\core\inc"
PreprocessorDefinitions="NDEBUG;_USRDLL;X86_ASM" PreprocessorDefinitions="WIN64;NDEBUG;_WINDOWS;_USRDLL;WELSDECPLUS_EXPORTS;HAVE_CACHE_LINE_ALIGN;X86_ASM"
StringPooling="true" StringPooling="true"
RuntimeLibrary="0" RuntimeLibrary="0"
EnableFunctionLevelLinking="true" EnableFunctionLevelLinking="true"
@@ -160,6 +163,7 @@
ObjectFile=".\..\..\..\obj\decoder\plus\Release/" ObjectFile=".\..\..\..\obj\decoder\plus\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\Release/" ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\Release/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3" DebugInformationFormat="3"
/> />
<Tool <Tool
@@ -178,12 +182,13 @@
AdditionalDependencies=".\..\..\..\..\bin\win64\Release\welsdcore.lib" AdditionalDependencies=".\..\..\..\..\bin\win64\Release\welsdcore.lib"
OutputFile="$(OutDir)\welsdec.dll" OutputFile="$(OutDir)\welsdec.dll"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories=".\..\..\..\libs\Release\" AdditionalLibraryDirectories=".\..\..\..\libs\Release\"
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def" ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\welsdec.pdb" ProgramDatabaseFile=".\..\..\..\maps\Release\welsdec.pdb"
GenerateMapFile="true" GenerateMapFile="true"
MapFileName="$(OutDir)\welsdec.map" MapFileName=".\..\..\..\maps\Release\welsdec.map"
RandomizedBaseAddress="1" RandomizedBaseAddress="1"
DataExecutionPrevention="2" DataExecutionPrevention="2"
ImportLibrary="$(OutDir)\welsdec.lib" ImportLibrary="$(OutDir)\welsdec.lib"
@@ -200,6 +205,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecPlus.bsc" OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecPlus.bsc"
/> />
<Tool <Tool
@@ -238,6 +244,7 @@
Name="VCMIDLTool" Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG" PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true" MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1" TargetEnvironment="1"
TypeLibraryName=".\..\..\..\..\..\bin\win32\Debug/WelsDecPlus.tlb" TypeLibraryName=".\..\..\..\..\..\bin\win32\Debug/WelsDecPlus.tlb"
HeaderFileName="" HeaderFileName=""
@@ -245,8 +252,8 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc" AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\hwDecoder\plus\inc;..\..\..\hwDecoder\core\inc"
PreprocessorDefinitions="_DEBUG;_USRDLL;X86_ASM" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;WELSDECPLUS_EXPORTS;HAVE_CACHE_LINE_ALIGN;X86_ASM"
MinimalRebuild="true" MinimalRebuild="true"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="1" RuntimeLibrary="1"
@@ -255,6 +262,7 @@
ObjectFile=".\..\..\..\obj\decoder\plus\debug/" ObjectFile=".\..\..\..\obj\decoder\plus\debug/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\debug/" ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\debug/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4" DebugInformationFormat="4"
/> />
<Tool <Tool
@@ -273,10 +281,11 @@
AdditionalDependencies=".\..\..\..\..\bin\win32\Debug\welsdcore.lib" AdditionalDependencies=".\..\..\..\..\bin\win32\Debug\welsdcore.lib"
OutputFile="$(OutDir)\welsdec.dll" OutputFile="$(OutDir)\welsdec.dll"
LinkIncremental="2" LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\libs\debug" AdditionalLibraryDirectories="..\..\..\libs\debug"
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def" ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\welsdec.pdb" ProgramDatabaseFile=".\..\..\..\..\bin\win32\Debug/welsdec.pdb"
RandomizedBaseAddress="1" RandomizedBaseAddress="1"
DataExecutionPrevention="2" DataExecutionPrevention="2"
ImportLibrary="$(OutDir)\welsdec.lib" ImportLibrary="$(OutDir)\welsdec.lib"
@@ -293,6 +302,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecPlus.bsc" OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecPlus.bsc"
/> />
<Tool <Tool
@@ -331,6 +341,7 @@
Name="VCMIDLTool" Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG" PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true" MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="3" TargetEnvironment="3"
TypeLibraryName=".\..\..\..\..\..\bin\win32\Debug/WelsDecPlus.tlb" TypeLibraryName=".\..\..\..\..\..\bin\win32\Debug/WelsDecPlus.tlb"
HeaderFileName="" HeaderFileName=""
@@ -338,8 +349,8 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc" AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\hwDecoder\plus\inc;..\..\..\hwDecoder\core\inc"
PreprocessorDefinitions="_DEBUG;_USRDLL;X86_ASM" PreprocessorDefinitions="WIN64;_DEBUG;_WINDOWS;_USRDLL;WELSDECPLUS_EXPORTS;HAVE_CACHE_LINE_ALIGN;X86_ASM"
MinimalRebuild="true" MinimalRebuild="true"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="1" RuntimeLibrary="1"
@@ -348,6 +359,7 @@
ObjectFile=".\..\..\..\obj\decoder\plus\debug/" ObjectFile=".\..\..\..\obj\decoder\plus\debug/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\debug/" ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\debug/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3" DebugInformationFormat="3"
/> />
<Tool <Tool
@@ -366,10 +378,11 @@
AdditionalDependencies=".\..\..\..\..\bin\win64\Debug\welsdcore.lib" AdditionalDependencies=".\..\..\..\..\bin\win64\Debug\welsdcore.lib"
OutputFile="$(OutDir)\welsdec.dll" OutputFile="$(OutDir)\welsdec.dll"
LinkIncremental="2" LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\libs\debug" AdditionalLibraryDirectories="..\..\..\libs\debug"
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def" ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\welsdec.pdb" ProgramDatabaseFile=".\..\..\..\..\bin\win32\Debug/welsdec.pdb"
RandomizedBaseAddress="1" RandomizedBaseAddress="1"
DataExecutionPrevention="2" DataExecutionPrevention="2"
ImportLibrary="$(OutDir)\welsdec.lib" ImportLibrary="$(OutDir)\welsdec.lib"
@@ -386,6 +399,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecPlus.bsc" OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecPlus.bsc"
/> />
<Tool <Tool
@@ -412,6 +426,42 @@
<File <File
RelativePath="..\..\..\decoder\plus\res\welsdec.rc" RelativePath="..\..\..\decoder\plus\res\welsdec.rc"
> >
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
AdditionalIncludeDirectories="\SVN_project_https\trunk\codec\Wels\project\decoder\plus\res"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
AdditionalIncludeDirectories="\SVN_project_https\trunk\codec\Wels\project\decoder\plus\res"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
AdditionalIncludeDirectories="\SVN_project_https\trunk\codec\Wels\project\decoder\plus\res"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
AdditionalIncludeDirectories="\SVN_project_https\trunk\codec\Wels\project\decoder\plus\res"
/>
</FileConfiguration>
</File> </File>
</Filter> </Filter>
<Filter <Filter
@@ -423,12 +473,84 @@
> >
</File> </File>
<File <File
RelativePath="..\..\..\common\src\welsCodecTrace.cpp" RelativePath="..\..\..\decoder\plus\src\welsCodecTrace.cpp"
> >
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File> </File>
<File <File
RelativePath="..\..\..\decoder\plus\src\welsDecoderExt.cpp" RelativePath="..\..\..\decoder\plus\src\welsDecoderExt.cpp"
> >
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File> </File>
</Filter> </Filter>
<Filter <Filter
@@ -440,7 +562,7 @@
> >
</File> </File>
<File <File
RelativePath="..\..\..\common\inc\welsCodecTrace.h" RelativePath="..\..\..\decoder\plus\inc\welsCodecTrace.h"
> >
</File> </File>
<File <File

View File

@@ -49,8 +49,8 @@
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="2" Optimization="2"
InlineFunctionExpansion="1" InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\common\inc" AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\api\svc,..\..\..\common\inc,..\..\..\encoder\core\inc"
PreprocessorDefinitions="NDEBUG;_CONSOLE" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
StringPooling="true" StringPooling="true"
RuntimeLibrary="0" RuntimeLibrary="0"
EnableFunctionLevelLinking="true" EnableFunctionLevelLinking="true"
@@ -59,6 +59,7 @@
ObjectFile=".\..\..\..\obj\decConsole\Release/" ObjectFile=".\..\..\..\obj\decConsole\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Release/" ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Release/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
/> />
<Tool <Tool
Name="VCManagedResourceCompilerTool" Name="VCManagedResourceCompilerTool"
@@ -76,6 +77,7 @@
AdditionalDependencies="$(OutDir)\welsdec.lib" AdditionalDependencies="$(OutDir)\welsdec.lib"
OutputFile="$(OutDir)\decConsole.exe" OutputFile="$(OutDir)\decConsole.exe"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\bin\win32" AdditionalLibraryDirectories="..\..\..\..\bin\win32"
ProgramDatabaseFile="$(OutDir)\decConsole.pdb" ProgramDatabaseFile="$(OutDir)\decConsole.pdb"
GenerateMapFile="false" GenerateMapFile="false"
@@ -95,6 +97,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)\decConsole.bsc" OutputFile="$(OutDir)\decConsole.bsc"
/> />
<Tool <Tool
@@ -139,8 +142,8 @@
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="2" Optimization="2"
InlineFunctionExpansion="1" InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\common\inc" AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\api\svc,..\..\..\common\inc,..\..\..\encoder\core\inc"
PreprocessorDefinitions="NDEBUG;_CONSOLE" PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE"
StringPooling="true" StringPooling="true"
RuntimeLibrary="0" RuntimeLibrary="0"
EnableFunctionLevelLinking="true" EnableFunctionLevelLinking="true"
@@ -149,6 +152,7 @@
ObjectFile=".\..\..\..\obj\decConsole\Release/" ObjectFile=".\..\..\..\obj\decConsole\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Release/" ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Release/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
/> />
<Tool <Tool
Name="VCManagedResourceCompilerTool" Name="VCManagedResourceCompilerTool"
@@ -166,6 +170,7 @@
AdditionalDependencies="$(OutDir)\welsdec.lib" AdditionalDependencies="$(OutDir)\welsdec.lib"
OutputFile="$(OutDir)\decConsole.exe" OutputFile="$(OutDir)\decConsole.exe"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\bin\win64" AdditionalLibraryDirectories="..\..\..\..\bin\win64"
ProgramDatabaseFile="$(OutDir)\decConsole.pdb" ProgramDatabaseFile="$(OutDir)\decConsole.pdb"
GenerateMapFile="false" GenerateMapFile="false"
@@ -185,6 +190,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)\decConsole.bsc" OutputFile="$(OutDir)\decConsole.bsc"
/> />
<Tool <Tool
@@ -227,8 +233,8 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\common\inc" AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\api\svc,..\..\..\common\inc,..\..\..\decoder\core\inc,..\..\..\encoder\core\inc"
PreprocessorDefinitions="_DEBUG;_CONSOLE" PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true" MinimalRebuild="true"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="1" RuntimeLibrary="1"
@@ -238,6 +244,7 @@
ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Debug/" ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Debug/"
BrowseInformation="1" BrowseInformation="1"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4" DebugInformationFormat="4"
/> />
<Tool <Tool
@@ -256,6 +263,7 @@
AdditionalDependencies="$(OutDir)\welsdec.lib" AdditionalDependencies="$(OutDir)\welsdec.lib"
OutputFile="$(OutDir)\decConsoled.exe" OutputFile="$(OutDir)\decConsoled.exe"
LinkIncremental="2" LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\bin\win32" AdditionalLibraryDirectories="..\..\..\..\bin\win32"
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\decConsoled.pdb" ProgramDatabaseFile="$(OutDir)\decConsoled.pdb"
@@ -275,6 +283,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)\decConsole.bsc" OutputFile="$(OutDir)\decConsole.bsc"
/> />
<Tool <Tool
@@ -318,8 +327,8 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\common\inc" AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\api\svc,..\..\..\common\inc,..\..\..\decoder\core\inc,..\..\..\encoder\core\inc"
PreprocessorDefinitions="_DEBUG;_CONSOLE" PreprocessorDefinitions="WIN64;_DEBUG;_CONSOLE"
MinimalRebuild="true" MinimalRebuild="true"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="1" RuntimeLibrary="1"
@@ -329,6 +338,7 @@
ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Debug/" ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Debug/"
BrowseInformation="1" BrowseInformation="1"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3" DebugInformationFormat="3"
/> />
<Tool <Tool
@@ -347,6 +357,7 @@
AdditionalDependencies="$(OutDir)\welsdec.lib" AdditionalDependencies="$(OutDir)\welsdec.lib"
OutputFile="$(OutDir)\decConsoled.exe" OutputFile="$(OutDir)\decConsoled.exe"
LinkIncremental="2" LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\bin\win64" AdditionalLibraryDirectories="..\..\..\..\bin\win64"
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\decConsoled.pdb" ProgramDatabaseFile="$(OutDir)\decConsoled.pdb"
@@ -366,6 +377,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)\decConsole.bsc" OutputFile="$(OutDir)\decConsole.bsc"
/> />
<Tool <Tool
@@ -393,11 +405,87 @@
<File <File
RelativePath="..\..\..\console\dec\src\h264dec.cpp" RelativePath="..\..\..\console\dec\src\h264dec.cpp"
> >
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File> </File>
<File <File
RelativePath="..\..\..\console\common\src\read_config.cpp" RelativePath="..\..\..\common\src\logging.cpp"
> >
</File> </File>
<File
RelativePath="..\..\..\console\dec\src\read_config.cpp"
>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
</Filter> </Filter>
<Filter <Filter
Name="Header Files" Name="Header Files"
@@ -408,7 +496,7 @@
> >
</File> </File>
<File <File
RelativePath="..\..\..\console\common\inc\read_config.h" RelativePath="..\..\..\console\dec\inc\read_config.h"
> >
</File> </File>
</Filter> </Filter>

File diff suppressed because it is too large Load Diff

View File

@@ -44,6 +44,7 @@
Name="VCMIDLTool" Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG" PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true" MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1" TargetEnvironment="1"
TypeLibraryName=".\..\..\..\..\..\bin\Debug/WelsEncPlus.tlb" TypeLibraryName=".\..\..\..\..\..\bin\Debug/WelsEncPlus.tlb"
HeaderFileName="" HeaderFileName=""
@@ -52,7 +53,7 @@
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface" AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface"
PreprocessorDefinitions="_DEBUG;_USRDLL;X86_ASM" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;WELSENCPLUS_EXPORTS;X86_ASM"
MinimalRebuild="true" MinimalRebuild="true"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="1" RuntimeLibrary="1"
@@ -61,6 +62,7 @@
ObjectFile=".\..\..\..\obj\encoder\plus\Debug/" ObjectFile=".\..\..\..\obj\encoder\plus\Debug/"
ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Debug/" ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Debug/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4" DebugInformationFormat="4"
/> />
<Tool <Tool
@@ -76,9 +78,10 @@
/> />
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib" AdditionalDependencies="$(OutDir)\welsecore.lib"
OutputFile="$(OutDir)\welsenc.dll" OutputFile="$(OutDir)\welsenc.dll"
LinkIncremental="2" LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\libs" AdditionalLibraryDirectories="..\..\..\..\libs"
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def" ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
GenerateDebugInformation="true" GenerateDebugInformation="true"
@@ -101,6 +104,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)/WelsEncPlus.bsc" OutputFile="$(OutDir)/WelsEncPlus.bsc"
/> />
<Tool <Tool
@@ -139,6 +143,7 @@
Name="VCMIDLTool" Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG" PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true" MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="3" TargetEnvironment="3"
TypeLibraryName=".\..\..\..\..\..\bin\Debug/WelsEncPlus.tlb" TypeLibraryName=".\..\..\..\..\..\bin\Debug/WelsEncPlus.tlb"
HeaderFileName="" HeaderFileName=""
@@ -147,7 +152,7 @@
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface" AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface"
PreprocessorDefinitions="_DEBUG;_USRDLL;X86_ASM" PreprocessorDefinitions="WIN64;_DEBUG;_WINDOWS;_USRDLL;WELSENCPLUS_EXPORTS;X86_ASM"
MinimalRebuild="true" MinimalRebuild="true"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="1" RuntimeLibrary="1"
@@ -156,6 +161,7 @@
ObjectFile=".\..\..\..\obj\encoder\plus\Debug/" ObjectFile=".\..\..\..\obj\encoder\plus\Debug/"
ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Debug/" ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Debug/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3" DebugInformationFormat="3"
/> />
<Tool <Tool
@@ -171,9 +177,10 @@
/> />
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib" AdditionalDependencies="$(OutDir)\welsecore.lib"
OutputFile="$(OutDir)\welsenc.dll" OutputFile="$(OutDir)\welsenc.dll"
LinkIncremental="2" LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\libs" AdditionalLibraryDirectories="..\..\..\..\libs"
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def" ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
GenerateDebugInformation="true" GenerateDebugInformation="true"
@@ -196,6 +203,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)/WelsEncPlus.bsc" OutputFile="$(OutDir)/WelsEncPlus.bsc"
/> />
<Tool <Tool
@@ -217,7 +225,6 @@
UseOfMFC="0" UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2" CharacterSet="2"
WholeProgramOptimization="1"
> >
<Tool <Tool
Name="VCPreBuildEventTool" Name="VCPreBuildEventTool"
@@ -235,6 +242,7 @@
Name="VCMIDLTool" Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG" PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true" MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1" TargetEnvironment="1"
TypeLibraryName=".\..\..\..\..\..\bin\Release/WelsEncPlus.tlb" TypeLibraryName=".\..\..\..\..\..\bin\Release/WelsEncPlus.tlb"
HeaderFileName="" HeaderFileName=""
@@ -245,8 +253,9 @@
InlineFunctionExpansion="2" InlineFunctionExpansion="2"
FavorSizeOrSpeed="1" FavorSizeOrSpeed="1"
EnableFiberSafeOptimizations="true" EnableFiberSafeOptimizations="true"
WholeProgramOptimization="true"
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface" AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface"
PreprocessorDefinitions="NDEBUG;_USRDLL;X86_ASM" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;WELSENCPLUS_EXPORTS;X86_ASM"
StringPooling="true" StringPooling="true"
RuntimeLibrary="0" RuntimeLibrary="0"
EnableFunctionLevelLinking="true" EnableFunctionLevelLinking="true"
@@ -255,6 +264,7 @@
ObjectFile=".\..\..\..\obj\encoder\plus\Release/" ObjectFile=".\..\..\..\obj\encoder\plus\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Release/" ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Release/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3" DebugInformationFormat="3"
/> />
<Tool <Tool
@@ -270,9 +280,11 @@
/> />
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib" AdditionalOptions="/MAPINFO:exports /LTCG"
AdditionalDependencies="$(OutDir)\welsecore.lib"
OutputFile="$(OutDir)\welsenc.dll" OutputFile="$(OutDir)\welsenc.dll"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\libs" AdditionalLibraryDirectories="..\..\..\..\libs"
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def" ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
GenerateDebugInformation="true" GenerateDebugInformation="true"
@@ -296,6 +308,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)/WelsEncPlus.bsc" OutputFile="$(OutDir)/WelsEncPlus.bsc"
/> />
<Tool <Tool
@@ -317,7 +330,6 @@
UseOfMFC="0" UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2" CharacterSet="2"
WholeProgramOptimization="1"
> >
<Tool <Tool
Name="VCPreBuildEventTool" Name="VCPreBuildEventTool"
@@ -335,6 +347,7 @@
Name="VCMIDLTool" Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG" PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true" MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="3" TargetEnvironment="3"
TypeLibraryName=".\..\..\..\..\..\bin\Release/WelsEncPlus.tlb" TypeLibraryName=".\..\..\..\..\..\bin\Release/WelsEncPlus.tlb"
HeaderFileName="" HeaderFileName=""
@@ -345,8 +358,9 @@
InlineFunctionExpansion="2" InlineFunctionExpansion="2"
FavorSizeOrSpeed="1" FavorSizeOrSpeed="1"
EnableFiberSafeOptimizations="true" EnableFiberSafeOptimizations="true"
WholeProgramOptimization="true"
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface" AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface"
PreprocessorDefinitions="NDEBUG;_USRDLL;X86_ASM" PreprocessorDefinitions="WIN64;NDEBUG;_WINDOWS;_USRDLL;WELSENCPLUS_EXPORTS;X86_ASM"
StringPooling="true" StringPooling="true"
RuntimeLibrary="0" RuntimeLibrary="0"
EnableFunctionLevelLinking="true" EnableFunctionLevelLinking="true"
@@ -355,6 +369,7 @@
ObjectFile=".\..\..\..\obj\encoder\plus\Release/" ObjectFile=".\..\..\..\obj\encoder\plus\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Release/" ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Release/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3" DebugInformationFormat="3"
/> />
<Tool <Tool
@@ -370,9 +385,11 @@
/> />
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib" AdditionalOptions="/MAPINFO:exports /LTCG"
AdditionalDependencies="$(OutDir)\welsecore.lib"
OutputFile="$(OutDir)\welsenc.dll" OutputFile="$(OutDir)\welsenc.dll"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\libs" AdditionalLibraryDirectories="..\..\..\..\libs"
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def" ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
GenerateDebugInformation="true" GenerateDebugInformation="true"
@@ -396,6 +413,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)/WelsEncPlus.bsc" OutputFile="$(OutDir)/WelsEncPlus.bsc"
/> />
<Tool <Tool
@@ -419,18 +437,126 @@
<File <File
RelativePath="..\..\..\encoder\plus\src\DllEntry.cpp" RelativePath="..\..\..\encoder\plus\src\DllEntry.cpp"
> >
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File> </File>
<File <File
RelativePath="..\..\..\encoder\plus\src\wels_enc_export.def" RelativePath="..\..\..\encoder\plus\src\wels_enc_export.def"
> >
</File> </File>
<File <File
RelativePath="..\..\..\common\src\welsCodecTrace.cpp" RelativePath="..\..\..\encoder\plus\src\welsCodecTrace.cpp"
> >
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File> </File>
<File <File
RelativePath="..\..\..\encoder\plus\src\welsEncoderExt.cpp" RelativePath="..\..\..\encoder\plus\src\welsEncoderExt.cpp"
> >
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File> </File>
</Filter> </Filter>
<Filter <Filter
@@ -438,7 +564,7 @@
Filter="h;hpp;hxx;hm;inl" Filter="h;hpp;hxx;hm;inl"
> >
<File <File
RelativePath="..\..\..\common\inc\welsCodecTrace.h" RelativePath="..\..\..\encoder\plus\inc\welsCodecTrace.h"
> >
</File> </File>
<File <File
@@ -453,6 +579,42 @@
<File <File
RelativePath="..\..\..\encoder\plus\res\welsenc.rc" RelativePath="..\..\..\encoder\plus\res\welsenc.rc"
> >
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
AdditionalIncludeDirectories="\Project\svc_perf_opt_b\codec\Wels\project\encoder\plus\res"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
AdditionalIncludeDirectories="\Project\svc_perf_opt_b\codec\Wels\project\encoder\plus\res"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
AdditionalIncludeDirectories="\Project\svc_perf_opt_b\codec\Wels\project\encoder\plus\res"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
AdditionalIncludeDirectories="\Project\svc_perf_opt_b\codec\Wels\project\encoder\plus\res"
/>
</FileConfiguration>
</File> </File>
</Filter> </Filter>
</Files> </Files>

View File

@@ -17,7 +17,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "encConsole", "encConsole.vc
{E8DFAFA1-8DAC-4127-8D27-FBD5819EE562} = {E8DFAFA1-8DAC-4127-8D27-FBD5819EE562} {E8DFAFA1-8DAC-4127-8D27-FBD5819EE562} = {E8DFAFA1-8DAC-4127-8D27-FBD5819EE562}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WelsVP", "..\..\..\processing\build\win32\WelsVP.vcproj", "{E8DFAFA1-8DAC-4127-8D27-FBD5819EE562}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WelsVP", "..\..\..\processing\build\win32\WelsVP_2008.vcproj", "{E8DFAFA1-8DAC-4127-8D27-FBD5819EE562}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution

View File

@@ -48,8 +48,8 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface" AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\api\svc,..\..\..\WelsThreadLib\api,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
PreprocessorDefinitions="_DEBUG;_CONSOLE;" PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
MinimalRebuild="true" MinimalRebuild="true"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="1" RuntimeLibrary="1"
@@ -58,6 +58,7 @@
ObjectFile=".\..\..\..\obj\encConsole\Debug/" ObjectFile=".\..\..\..\obj\encConsole\Debug/"
ProgramDataBaseFileName=".\..\..\..\obj\encConsole\Debug/" ProgramDataBaseFileName=".\..\..\..\obj\encConsole\Debug/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4" DebugInformationFormat="4"
/> />
<Tool <Tool
@@ -76,6 +77,7 @@
AdditionalDependencies="$(OutDir)\welsenc.lib" AdditionalDependencies="$(OutDir)\welsenc.lib"
OutputFile="$(OutDir)\encConsole.exe" OutputFile="$(OutDir)\encConsole.exe"
LinkIncremental="2" LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\bin" AdditionalLibraryDirectories="..\..\..\bin"
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\encConsole.pdb" ProgramDatabaseFile="$(OutDir)\encConsole.pdb"
@@ -97,98 +99,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
OutputFile="$(OutDir)\encConsole.bsc" SuppressStartupBanner="true"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory=".\..\..\..\..\bin\win64\Debug"
IntermediateDirectory=".\..\..\..\obj\encConsole\Debug"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
TypeLibraryName=".\..\..\..\..\..\bin\Debug/encConsole.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
PreprocessorDefinitions="_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
PrecompiledHeaderFile=".\..\..\..\obj\encConsole\Debug/encConsole.pch"
AssemblerListingLocation=".\..\..\..\obj\encConsole\Debug/"
ObjectFile=".\..\..\..\obj\encConsole\Debug/"
ProgramDataBaseFileName=".\..\..\..\obj\encConsole\Debug/"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsenc.lib"
OutputFile="$(OutDir)\encConsole.exe"
LinkIncremental="2"
AdditionalLibraryDirectories="..\..\..\bin"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\encConsole.pdb"
GenerateMapFile="true"
MapFileName="$(OutDir)\encConsole.map"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
OutputFile="$(OutDir)\encConsole.bsc" OutputFile="$(OutDir)\encConsole.bsc"
/> />
<Tool <Tool
@@ -232,8 +143,8 @@
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="2" Optimization="2"
InlineFunctionExpansion="1" InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface" AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\api\svc,..\..\..\WelsThreadLib\api,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
PreprocessorDefinitions="NDEBUG;_CONSOLE;X86_ASM;" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;X86_ASM;"
StringPooling="true" StringPooling="true"
RuntimeLibrary="0" RuntimeLibrary="0"
EnableFunctionLevelLinking="true" EnableFunctionLevelLinking="true"
@@ -242,6 +153,7 @@
ObjectFile=".\..\..\..\obj\encConsole\Release/" ObjectFile=".\..\..\..\obj\encConsole\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\encConsole\Release/" ProgramDataBaseFileName=".\..\..\..\obj\encConsole\Release/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3" DebugInformationFormat="3"
/> />
<Tool <Tool
@@ -260,6 +172,7 @@
AdditionalDependencies="$(OutDir)\welsenc.lib" AdditionalDependencies="$(OutDir)\welsenc.lib"
OutputFile="$(OutDir)\encConsole.exe" OutputFile="$(OutDir)\encConsole.exe"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\bin" AdditionalLibraryDirectories="..\..\..\bin"
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\encConsole.pdb" ProgramDatabaseFile="$(OutDir)\encConsole.pdb"
@@ -281,6 +194,102 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)\encConsole.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory=".\..\..\..\..\bin\win64\Debug"
IntermediateDirectory=".\..\..\..\obj\encConsole\Debug"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
TypeLibraryName=".\..\..\..\..\..\bin\Debug/encConsole.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\api\svc,..\..\..\WelsThreadLib\api,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
PreprocessorDefinitions="WIN64;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
PrecompiledHeaderFile=".\..\..\..\obj\encConsole\Debug/encConsole.pch"
AssemblerListingLocation=".\..\..\..\obj\encConsole\Debug/"
ObjectFile=".\..\..\..\obj\encConsole\Debug/"
ProgramDataBaseFileName=".\..\..\..\obj\encConsole\Debug/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsenc.lib"
OutputFile="$(OutDir)\encConsole.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\bin"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\encConsole.pdb"
GenerateMapFile="true"
MapFileName="$(OutDir)\encConsole.map"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)\encConsole.bsc" OutputFile="$(OutDir)\encConsole.bsc"
/> />
<Tool <Tool
@@ -325,8 +334,8 @@
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="2" Optimization="2"
InlineFunctionExpansion="1" InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface" AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\api\svc,..\..\..\WelsThreadLib\api,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
PreprocessorDefinitions="NDEBUG;_CONSOLE" PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE"
StringPooling="true" StringPooling="true"
RuntimeLibrary="0" RuntimeLibrary="0"
EnableFunctionLevelLinking="true" EnableFunctionLevelLinking="true"
@@ -335,6 +344,7 @@
ObjectFile=".\..\..\..\obj\encConsole\Release/" ObjectFile=".\..\..\..\obj\encConsole\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\encConsole\Release/" ProgramDataBaseFileName=".\..\..\..\obj\encConsole\Release/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3" DebugInformationFormat="3"
/> />
<Tool <Tool
@@ -353,6 +363,7 @@
AdditionalDependencies="$(OutDir)\welsenc.lib" AdditionalDependencies="$(OutDir)\welsenc.lib"
OutputFile="$(OutDir)\encConsole.exe" OutputFile="$(OutDir)\encConsole.exe"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\bin" AdditionalLibraryDirectories="..\..\..\bin"
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\encConsole.pdb" ProgramDatabaseFile="$(OutDir)\encConsole.pdb"
@@ -374,6 +385,7 @@
/> />
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)\encConsole.bsc" OutputFile="$(OutDir)\encConsole.bsc"
/> />
<Tool <Tool
@@ -395,12 +407,88 @@
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
> >
<File <File
RelativePath="..\..\..\console\common\src\read_config.cpp" RelativePath="..\..\..\common\src\logging.cpp"
> >
</File> </File>
<File
RelativePath="..\..\..\console\enc\src\read_config.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File <File
RelativePath="..\..\..\console\enc\src\welsenc.cpp" RelativePath="..\..\..\console\enc\src\welsenc.cpp"
> >
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File> </File>
</Filter> </Filter>
<Filter <Filter
@@ -408,7 +496,7 @@
Filter="h;hpp;hxx;hm;inl" Filter="h;hpp;hxx;hm;inl"
> >
<File <File
RelativePath="..\..\..\console\common\inc\read_config.h" RelativePath="..\..\..\console\enc\inc\read_config.h"
> >
</File> </File>
</Filter> </Filter>

View File

@@ -1,34 +1,34 @@
/*! /*!
* \copy * \copy
* Copyright (c) 2013, Cisco Systems * Copyright (c) 2013, Cisco Systems
* All rights reserved. * All rights reserved.
*
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions * modification, are permitted provided that the following conditions
* are met: * are met:
*
* * Redistributions of source code must retain the above copyright * * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer. * notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright * * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in * notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the * the documentation and/or other materials provided with the
* distribution. * distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*
*/ */
#ifdef HAVE_NEON #ifdef HAVE_NEON
.text .text

View File

@@ -32,13 +32,13 @@
#ifdef __APPLE__ #ifdef __APPLE__
.macro WELS_ASM_AARCH64_FUNC_BEGIN .macro WELS_ASM_ARCH64_FUNC_BEGIN
.align 2 .align 2
.globl _$0 .globl _$0
_$0: _$0:
.endm .endm
.macro WELS_ASM_AARCH64_FUNC_END .macro WELS_ASM_ARCH64_FUNC_END
ret ret
.endm .endm
#else #else
@@ -46,7 +46,7 @@ ret
.section .note.GNU-stack,"",%progbits // Mark stack as non-executable .section .note.GNU-stack,"",%progbits // Mark stack as non-executable
.text .text
.macro WELS_ASM_AARCH64_FUNC_BEGIN funcName .macro WELS_ASM_ARCH64_FUNC_BEGIN funcName
.align 2 .align 2
.global \funcName .global \funcName
.type \funcName, %function .type \funcName, %function
@@ -54,7 +54,7 @@ ret
\funcName: \funcName:
.endm .endm
.macro WELS_ASM_AARCH64_FUNC_END .macro WELS_ASM_ARCH64_FUNC_END
ret ret
.endfunc .endfunc
.endm .endm

View File

@@ -1,274 +0,0 @@
/*!
* \copy
* Copyright (c) 2013, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifdef HAVE_NEON_AARCH64
.text
#include "arm_arch64_common_macro.S"
#ifdef __APPLE__
.macro LOAD_ALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, src*, src_stride
ld1 {$0.d}[0], [$4], $5
ld1 {$1.d}[0], [$4], $5
ld1 {$2.d}[0], [$4], $5
ld1 {$3.d}[0], [$4], $5
// }
.endm
.macro STORE_ALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, dst*, dst_stride
st1 {$0.d}[0], [$4], $5
st1 {$1.d}[0], [$4], $5
st1 {$2.d}[0], [$4], $5
st1 {$3.d}[0], [$4], $5
// }
.endm
.macro LOAD_UNALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, src*, src_stride
ld1 {$0.8b}, [$4], $5
ld1 {$1.8b}, [$4], $5
ld1 {$2.8b}, [$4], $5
ld1 {$3.8b}, [$4], $5
// }
.endm
.macro STORE_UNALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, dst*, dst_stride
st1 {$0.8b}, [$4], $5
st1 {$1.8b}, [$4], $5
st1 {$2.8b}, [$4], $5
st1 {$3.8b}, [$4], $5
// }
.endm
.macro LOAD16_ALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, src*, src_stride
ld1 {$0.2d}, [$4], $5
ld1 {$1.2d}, [$4], $5
ld1 {$2.2d}, [$4], $5
ld1 {$3.2d}, [$4], $5
// }
.endm
.macro STORE16_ALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, dst*, dst_stride
st1 {$0.2d}, [$4], $5
st1 {$1.2d}, [$4], $5
st1 {$2.2d}, [$4], $5
st1 {$3.2d}, [$4], $5
// }
.endm
.macro LOAD16_UNALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, src*, src_stride
ld1 {$0.16b}, [$4], $5
ld1 {$1.16b}, [$4], $5
ld1 {$2.16b}, [$4], $5
ld1 {$3.16b}, [$4], $5
// }
.endm
.macro STORE16_UNALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, dst*, dst_stride
st1 {$0.16b}, [$4], $5
st1 {$1.16b}, [$4], $5
st1 {$2.16b}, [$4], $5
st1 {$3.16b}, [$4], $5
// }
.endm
#else
.macro LOAD_ALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: $0~$3, src*, src_stride
ld1 {\arg0\().d}[0], [\arg4], \arg5
ld1 {\arg1\().d}[0], [\arg4], \arg5
ld1 {\arg2\().d}[0], [\arg4], \arg5
ld1 {\arg3\().d}[0], [\arg4], \arg5
// }
.endm
.macro STORE_ALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: $0~$3, dst*, dst_stride
st1 {\arg0\().d}[0], [\arg4], \arg5
st1 {\arg1\().d}[0], [\arg4], \arg5
st1 {\arg2\().d}[0], [\arg4], \arg5
st1 {\arg3\().d}[0], [\arg4], \arg5
// }
.endm
.macro LOAD_UNALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: $0~$3, src*, src_stride
ld1 {\arg0\().8b}, [\arg4], \arg5
ld1 {\arg1\().8b}, [\arg4], \arg5
ld1 {\arg2\().8b}, [\arg4], \arg5
ld1 {\arg3\().8b}, [\arg4], \arg5
// }
.endm
.macro STORE_UNALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: $0~$3, dst*, dst_stride
st1 {\arg0\().8b}, [\arg4], \arg5
st1 {\arg1\().8b}, [\arg4], \arg5
st1 {\arg2\().8b}, [\arg4], \arg5
st1 {\arg3\().8b}, [\arg4], \arg5
// }
.endm
.macro LOAD16_ALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: $0~$3, src*, src_stride
ld1 {\arg0\().2d}, [\arg4], \arg5
ld1 {\arg1\().2d}, [\arg4], \arg5
ld1 {\arg2\().2d}, [\arg4], \arg5
ld1 {\arg3\().2d}, [\arg4], \arg5
// }
.endm
.macro STORE16_ALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: $0~$3, dst*, dst_stride
st1 {\arg0\().2d}, [\arg4], \arg5
st1 {\arg1\().2d}, [\arg4], \arg5
st1 {\arg2\().2d}, [\arg4], \arg5
st1 {\arg3\().2d}, [\arg4], \arg5
// }
.endm
.macro LOAD16_UNALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: $0~$3, src*, src_stride
ld1 {\arg0\().16b}, [\arg4], \arg5
ld1 {\arg1\().16b}, [\arg4], \arg5
ld1 {\arg2\().16b}, [\arg4], \arg5
ld1 {\arg3\().16b}, [\arg4], \arg5
// }
.endm
.macro STORE16_UNALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: $0~$3, dst*, dst_stride
st1 {\arg0\().16b}, [\arg4], \arg5
st1 {\arg1\().16b}, [\arg4], \arg5
st1 {\arg2\().16b}, [\arg4], \arg5
st1 {\arg3\().16b}, [\arg4], \arg5
// }
.endm
#endif
WELS_ASM_AARCH64_FUNC_BEGIN WelsCopy8x8_AArch64_neon
LOAD_UNALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x2, x3
STORE_UNALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x0, x1
LOAD_UNALIGNED_DATA_WITH_STRIDE v4, v5, v6, v7, x2, x3
STORE_UNALIGNED_DATA_WITH_STRIDE v4, v5, v6, v7, x0, x1
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsCopy16x16_AArch64_neon
LOAD16_ALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x2, x3
STORE16_ALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x0, x1
LOAD16_ALIGNED_DATA_WITH_STRIDE v16, v17, v18, v19, x2, x3
STORE16_ALIGNED_DATA_WITH_STRIDE v16, v17, v18, v19, x0, x1
LOAD16_ALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x2, x3
STORE16_ALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x0, x1
LOAD16_ALIGNED_DATA_WITH_STRIDE v16, v17, v18, v19, x2, x3
STORE16_ALIGNED_DATA_WITH_STRIDE v16, v17, v18, v19, x0, x1
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsCopy16x16NotAligned_AArch64_neon
LOAD16_UNALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x2, x3
STORE16_UNALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x0, x1
LOAD16_UNALIGNED_DATA_WITH_STRIDE v16, v17, v18, v19, x2, x3
STORE16_UNALIGNED_DATA_WITH_STRIDE v16, v17, v18, v19, x0, x1
LOAD16_UNALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x2, x3
STORE16_UNALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x0, x1
LOAD16_UNALIGNED_DATA_WITH_STRIDE v16, v17, v18, v19, x2, x3
STORE16_UNALIGNED_DATA_WITH_STRIDE v16, v17, v18, v19, x0, x1
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsCopy16x8NotAligned_AArch64_neon
LOAD16_UNALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x2, x3
STORE16_UNALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x0, x1
LOAD16_UNALIGNED_DATA_WITH_STRIDE v16, v17, v18, v19, x2, x3
STORE16_UNALIGNED_DATA_WITH_STRIDE v16, v17, v18, v19, x0, x1
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsCopy8x16_AArch64_neon
LOAD_UNALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x2, x3
STORE_UNALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x0, x1
LOAD_UNALIGNED_DATA_WITH_STRIDE v4, v5, v6, v7, x2, x3
STORE_UNALIGNED_DATA_WITH_STRIDE v4, v5, v6, v7, x0, x1
LOAD_UNALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x2, x3
STORE_UNALIGNED_DATA_WITH_STRIDE v0, v1, v2, v3, x0, x1
LOAD_UNALIGNED_DATA_WITH_STRIDE v4, v5, v6, v7, x2, x3
STORE_UNALIGNED_DATA_WITH_STRIDE v4, v5, v6, v7, x0, x1
WELS_ASM_AARCH64_FUNC_END
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -34,7 +34,7 @@
.text .text
#include "arm_arch64_common_macro.S" #include "arm_arch64_common_macro.S"
WELS_ASM_AARCH64_FUNC_BEGIN ExpandPictureLuma_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN ExpandPictureLuma_AArch64_neon
mov x7, x0 mov x7, x0
mov x8, x3 mov x8, x3
add x4, x7, x2 add x4, x7, x2
@@ -72,9 +72,9 @@ _expand_picture_luma_loop1:
sub x2, x2, #16 sub x2, x2, #16
cbnz x2, _expand_picture_luma_loop0 cbnz x2, _expand_picture_luma_loop0
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN ExpandPictureChroma_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN ExpandPictureChroma_AArch64_neon
//Save the dst //Save the dst
mov x7, x0 mov x7, x0
mov x8, x3 mov x8, x3
@@ -138,6 +138,6 @@ _expand_picture_chroma_loop3:
cbnz x8, _expand_picture_chroma_loop3 cbnz x8, _expand_picture_chroma_loop3
_expand_picture_chroma_end: _expand_picture_chroma_end:
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
#endif #endif

View File

@@ -386,7 +386,7 @@ filter_para: .short 0, 1, -5, 20, 0, 0, 0, 0
#endif #endif
//(const uint8_t* pSrc {x0}, int32_t iSrcStride{x1}, uint8_t* pDst{x2}, int32_t iDstStride{x3}, int32_t iHeight{x4}) //(const uint8_t* pSrc {x0}, int32_t iSrcStride{x1}, uint8_t* pDst{x2}, int32_t iDstStride{x3}, int32_t iHeight{x4})
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer20WidthEq16_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer20WidthEq16_AArch64_neon
sub x0, x0, #2 sub x0, x0, #2
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -406,9 +406,9 @@ w16_h_mc_luma_loop:
sub x4, x4, #1 sub x4, x4, #1
st1 {v20.16b}, [x2], x3 //write 16Byte st1 {v20.16b}, [x2], x3 //write 16Byte
cbnz x4, w16_h_mc_luma_loop cbnz x4, w16_h_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer20WidthEq8_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer20WidthEq8_AArch64_neon
sub x0, x0, #2 sub x0, x0, #2
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -427,9 +427,9 @@ w8_h_mc_luma_loop:
sub x4, x4, #1 sub x4, x4, #1
st1 {v20.8b}, [x2], x3 //write 8Byte st1 {v20.8b}, [x2], x3 //write 8Byte
cbnz x4, w8_h_mc_luma_loop cbnz x4, w8_h_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer20WidthEq4_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer20WidthEq4_AArch64_neon
sub x0, x0, #2 sub x0, x0, #2
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -462,9 +462,9 @@ w4_h_mc_luma_loop:
st1 {v20.s}[1], [x2], x3 //write 4Byte st1 {v20.s}[1], [x2], x3 //write 4Byte
sub x4, x4, #1 sub x4, x4, #1
cbnz x4, w4_h_mc_luma_loop cbnz x4, w4_h_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer10WidthEq16_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer10WidthEq16_AArch64_neon
sub x0, x0, #2 sub x0, x0, #2
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -484,10 +484,10 @@ w16_xy_10_mc_luma_loop:
sub x4, x4, #1 sub x4, x4, #1
st1 {v20.16b}, [x2], x3 //write 16Byte st1 {v20.16b}, [x2], x3 //write 16Byte
cbnz x4, w16_xy_10_mc_luma_loop cbnz x4, w16_xy_10_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer10WidthEq8_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer10WidthEq8_AArch64_neon
sub x0, x0, #2 sub x0, x0, #2
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -506,9 +506,9 @@ w8_xy_10_mc_luma_loop:
sub x4, x4, #1 sub x4, x4, #1
st1 {v20.8b}, [x2], x3 //write 8Byte st1 {v20.8b}, [x2], x3 //write 8Byte
cbnz x4, w8_xy_10_mc_luma_loop cbnz x4, w8_xy_10_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer10WidthEq4_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer10WidthEq4_AArch64_neon
sub x0, x0, #2 sub x0, x0, #2
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -541,10 +541,10 @@ w4_xy_10_mc_luma_loop:
st1 {v20.s}[1], [x2], x3 //write 4Byte st1 {v20.s}[1], [x2], x3 //write 4Byte
sub x4, x4, #1 sub x4, x4, #1
cbnz x4, w4_xy_10_mc_luma_loop cbnz x4, w4_xy_10_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer30WidthEq16_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer30WidthEq16_AArch64_neon
sub x0, x0, #2 sub x0, x0, #2
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -564,10 +564,10 @@ w16_xy_30_mc_luma_loop:
sub x4, x4, #1 sub x4, x4, #1
st1 {v20.16b}, [x2], x3 //write 16Byte st1 {v20.16b}, [x2], x3 //write 16Byte
cbnz x4, w16_xy_30_mc_luma_loop cbnz x4, w16_xy_30_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer30WidthEq8_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer30WidthEq8_AArch64_neon
sub x0, x0, #2 sub x0, x0, #2
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -586,9 +586,9 @@ w8_xy_30_mc_luma_loop:
sub x4, x4, #1 sub x4, x4, #1
st1 {v20.8b}, [x2], x3 //write 8Byte st1 {v20.8b}, [x2], x3 //write 8Byte
cbnz x4, w8_xy_30_mc_luma_loop cbnz x4, w8_xy_30_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer30WidthEq4_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer30WidthEq4_AArch64_neon
sub x0, x0, #2 sub x0, x0, #2
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -621,10 +621,10 @@ w4_xy_30_mc_luma_loop:
st1 {v20.s}[1], [x2], x3 //write 4Byte st1 {v20.s}[1], [x2], x3 //write 4Byte
sub x4, x4, #1 sub x4, x4, #1
cbnz x4, w4_xy_30_mc_luma_loop cbnz x4, w4_xy_30_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer01WidthEq16_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer01WidthEq16_AArch64_neon
sub x0, x0, x1, lsl #1 sub x0, x0, x1, lsl #1
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -704,10 +704,10 @@ w16_xy_01_mc_luma_loop:
mov.16b v6, v7 mov.16b v6, v7
sub x4, x4, #8 sub x4, x4, #8
cbnz x4, w16_xy_01_mc_luma_loop cbnz x4, w16_xy_01_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer01WidthEq8_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer01WidthEq8_AArch64_neon
sub x0, x0, x1, lsl #1 sub x0, x0, x1, lsl #1
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -754,10 +754,10 @@ w8_xy_01_mc_luma_loop:
mov.16b v4, v7 mov.16b v4, v7
sub x4, x4, #4 sub x4, x4, #4
cbnz x4, w8_xy_01_mc_luma_loop cbnz x4, w8_xy_01_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer01WidthEq4_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer01WidthEq4_AArch64_neon
sub x0, x0, x1, lsl #1 sub x0, x0, x1, lsl #1
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -810,10 +810,10 @@ w4_xy_01_mc_luma_loop:
sub x4, x4, #4 sub x4, x4, #4
cbnz x4, w4_xy_01_mc_luma_loop cbnz x4, w4_xy_01_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer03WidthEq16_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer03WidthEq16_AArch64_neon
sub x0, x0, x1, lsl #1 sub x0, x0, x1, lsl #1
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -893,10 +893,10 @@ w16_xy_03_mc_luma_loop:
mov.16b v6, v7 mov.16b v6, v7
sub x4, x4, #8 sub x4, x4, #8
cbnz x4, w16_xy_03_mc_luma_loop cbnz x4, w16_xy_03_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer03WidthEq8_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer03WidthEq8_AArch64_neon
sub x0, x0, x1, lsl #1 sub x0, x0, x1, lsl #1
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -943,10 +943,10 @@ w8_xy_03_mc_luma_loop:
mov.16b v4, v7 mov.16b v4, v7
sub x4, x4, #4 sub x4, x4, #4
cbnz x4, w8_xy_03_mc_luma_loop cbnz x4, w8_xy_03_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer03WidthEq4_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer03WidthEq4_AArch64_neon
sub x0, x0, x1, lsl #1 sub x0, x0, x1, lsl #1
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -999,10 +999,10 @@ w4_xy_03_mc_luma_loop:
sub x4, x4, #4 sub x4, x4, #4
cbnz x4, w4_xy_03_mc_luma_loop cbnz x4, w4_xy_03_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer02WidthEq16_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer02WidthEq16_AArch64_neon
sub x0, x0, x1, lsl #1 sub x0, x0, x1, lsl #1
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -1082,10 +1082,10 @@ w16_xy_02_mc_luma_loop:
mov.16b v6, v7 mov.16b v6, v7
sub x4, x4, #8 sub x4, x4, #8
cbnz x4, w16_xy_02_mc_luma_loop cbnz x4, w16_xy_02_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer02WidthEq8_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer02WidthEq8_AArch64_neon
sub x0, x0, x1, lsl #1 sub x0, x0, x1, lsl #1
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -1132,10 +1132,10 @@ w8_xy_02_mc_luma_loop:
mov.16b v4, v7 mov.16b v4, v7
sub x4, x4, #4 sub x4, x4, #4
cbnz x4, w8_xy_02_mc_luma_loop cbnz x4, w8_xy_02_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer02WidthEq4_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer02WidthEq4_AArch64_neon
sub x0, x0, x1, lsl #1 sub x0, x0, x1, lsl #1
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -1188,10 +1188,10 @@ w4_xy_02_mc_luma_loop:
sub x4, x4, #4 sub x4, x4, #4
cbnz x4, w4_xy_02_mc_luma_loop cbnz x4, w4_xy_02_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer22WidthEq16_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer22WidthEq16_AArch64_neon
stp d8, d9, [sp,#-16]! stp d8, d9, [sp,#-16]!
stp d10, d11, [sp,#-16]! stp d10, d11, [sp,#-16]!
stp d12, d13, [sp,#-16]! stp d12, d13, [sp,#-16]!
@@ -1354,9 +1354,9 @@ w16_hv_mc_luma_loop:
ldp d12, d13, [sp], #16 ldp d12, d13, [sp], #16
ldp d10, d11, [sp], #16 ldp d10, d11, [sp], #16
ldp d8, d9, [sp], #16 ldp d8, d9, [sp], #16
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer22WidthEq8_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer22WidthEq8_AArch64_neon
sub x0, x0, #2 sub x0, x0, #2
sub x0, x0, x1, lsl #1 sub x0, x0, x1, lsl #1
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
@@ -1425,10 +1425,10 @@ w8_hv_mc_luma_loop:
sub x4, x4, #4 sub x4, x4, #4
cbnz x4, w8_hv_mc_luma_loop cbnz x4, w8_hv_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer22WidthEq4_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer22WidthEq4_AArch64_neon
sub x0, x0, #2 sub x0, x0, #2
sub x0, x0, x1, lsl #1 sub x0, x0, x1, lsl #1
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
@@ -1496,9 +1496,9 @@ w4_hv_mc_luma_loop:
sub x4, x4, #4 sub x4, x4, #4
cbnz x4, w4_hv_mc_luma_loop cbnz x4, w4_hv_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McCopyWidthEq16_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McCopyWidthEq16_AArch64_neon
//prfm pldl1strm, [x0] //prfm pldl1strm, [x0]
w16_copy_loop: w16_copy_loop:
//prfm pldl1strm, [x0, x1] //prfm pldl1strm, [x0, x1]
@@ -1510,9 +1510,9 @@ w16_copy_loop:
sub x4, x4, #2 sub x4, x4, #2
cbnz x4, w16_copy_loop cbnz x4, w16_copy_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McCopyWidthEq8_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McCopyWidthEq8_AArch64_neon
//prfm pldl1strm, [x0] //prfm pldl1strm, [x0]
w8_copy_loop: w8_copy_loop:
//prfm pldl1strm, [x0, x1] //prfm pldl1strm, [x0, x1]
@@ -1524,9 +1524,9 @@ w8_copy_loop:
sub x4, x4, #2 sub x4, x4, #2
cbnz x4, w8_copy_loop cbnz x4, w8_copy_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McCopyWidthEq4_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McCopyWidthEq4_AArch64_neon
//prfm pldl1strm, [x0] //prfm pldl1strm, [x0]
w4_copy_loop: w4_copy_loop:
//prfm pldl1strm, [x0, x1] //prfm pldl1strm, [x0, x1]
@@ -1538,9 +1538,9 @@ w4_copy_loop:
sub x4, x4, #2 sub x4, x4, #2
cbnz x4, w4_copy_loop cbnz x4, w4_copy_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN PixStrideAvgWidthEq16_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN PixStrideAvgWidthEq16_AArch64_neon
enc_w16_pix_avg_loop: enc_w16_pix_avg_loop:
ld1 {v0.16b}, [x2], x3 //read 16Byte : src0: 0 line ld1 {v0.16b}, [x2], x3 //read 16Byte : src0: 0 line
@@ -1571,9 +1571,9 @@ enc_w16_pix_avg_loop:
sub x6, x6, #4 sub x6, x6, #4
cbnz x6, enc_w16_pix_avg_loop cbnz x6, enc_w16_pix_avg_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN PixStrideAvgWidthEq8_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN PixStrideAvgWidthEq8_AArch64_neon
//prfm pldl1strm, [x2] //prfm pldl1strm, [x2]
//prfm pldl1strm, [x4] //prfm pldl1strm, [x4]
enc_w8_pix_avg_loop: enc_w8_pix_avg_loop:
@@ -1608,9 +1608,9 @@ enc_w8_pix_avg_loop:
sub x6, x6, #4 sub x6, x6, #4
cbnz x6, enc_w8_pix_avg_loop cbnz x6, enc_w8_pix_avg_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN PixelAvgWidthEq16_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN PixelAvgWidthEq16_AArch64_neon
//prfm pldl1strm, [x2] //prfm pldl1strm, [x2]
//prfm pldl1strm, [x4] //prfm pldl1strm, [x4]
w16_pix_avg_loop: w16_pix_avg_loop:
@@ -1650,9 +1650,9 @@ w16_pix_avg_loop:
sub x6, x6, #4 sub x6, x6, #4
cbnz x6, w16_pix_avg_loop cbnz x6, w16_pix_avg_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN PixelAvgWidthEq8_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN PixelAvgWidthEq8_AArch64_neon
//prfm pldl1strm, [x2] //prfm pldl1strm, [x2]
//prfm pldl1strm, [x4] //prfm pldl1strm, [x4]
w8_pix_avg_loop: w8_pix_avg_loop:
@@ -1687,10 +1687,10 @@ w8_pix_avg_loop:
sub x6, x6, #4 sub x6, x6, #4
cbnz x6, w8_pix_avg_loop cbnz x6, w8_pix_avg_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN PixelAvgWidthEq4_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN PixelAvgWidthEq4_AArch64_neon
//prfm pldl1strm, [x2] //prfm pldl1strm, [x2]
//prfm pldl1strm, [x4] //prfm pldl1strm, [x4]
w4_pix_avg_loop: w4_pix_avg_loop:
@@ -1708,9 +1708,9 @@ w4_pix_avg_loop:
sub x6, x6, #2 sub x6, x6, #2
cbnz x6, w4_pix_avg_loop cbnz x6, w4_pix_avg_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McChromaWidthEq8_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McChromaWidthEq8_AArch64_neon
ld4r {v4.8b, v5.8b, v6.8b, v7.8b}, [x4] //load A/B/C/D ld4r {v4.8b, v5.8b, v6.8b, v7.8b}, [x4] //load A/B/C/D
ld1 {v0.16b}, [x0], x1 // src[x] ld1 {v0.16b}, [x0], x1 // src[x]
ext.16b v1, v0, v0, #1 // src[x+1] ext.16b v1, v0, v0, #1 // src[x+1]
@@ -1739,9 +1739,9 @@ w8_mc_chroma_loop:
mov.16b v1, v19 mov.16b v1, v19
sub x5, x5, #2 sub x5, x5, #2
cbnz x5, w8_mc_chroma_loop cbnz x5, w8_mc_chroma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McChromaWidthEq4_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McChromaWidthEq4_AArch64_neon
ld4r {v4.8b, v5.8b, v6.8b, v7.8b}, [x4] //load A/B/C/D ld4r {v4.8b, v5.8b, v6.8b, v7.8b}, [x4] //load A/B/C/D
ld1 {v0.8b}, [x0], x1 // src[x] ld1 {v0.8b}, [x0], x1 // src[x]
ext.8b v1, v0, v0, #1 // src[x+1] ext.8b v1, v0, v0, #1 // src[x+1]
@@ -1768,10 +1768,10 @@ w4_mc_chroma_loop:
mov.8b v1, v19 mov.8b v1, v19
sub x5, x5, #2 sub x5, x5, #2
cbnz x5, w4_mc_chroma_loop cbnz x5, w4_mc_chroma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer20Width17_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer20Width17_AArch64_neon
sub x0, x0, #2 sub x0, x0, #2
sub x3, x3, #16 sub x3, x3, #16
mov x5, #16 mov x5, #16
@@ -1798,9 +1798,9 @@ w17_h_mc_luma_loop:
sub x4, x4, #1 sub x4, x4, #1
cbnz x4, w17_h_mc_luma_loop cbnz x4, w17_h_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer20Width9_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer20Width9_AArch64_neon
sub x0, x0, #2 sub x0, x0, #2
sub x3, x3, #8 sub x3, x3, #8
mov x5, #8 mov x5, #8
@@ -1826,10 +1826,10 @@ w9_h_mc_luma_loop:
sub x4, x4, #1 sub x4, x4, #1
cbnz x4, w9_h_mc_luma_loop cbnz x4, w9_h_mc_luma_loop
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer22Width17_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer22Width17_AArch64_neon
stp d8, d9, [sp,#-16]! stp d8, d9, [sp,#-16]!
stp d10, d11, [sp,#-16]! stp d10, d11, [sp,#-16]!
stp d12, d13, [sp,#-16]! stp d12, d13, [sp,#-16]!
@@ -2029,10 +2029,10 @@ w17_hv_mc_luma_loop:
ldp d12, d13, [sp], #16 ldp d12, d13, [sp], #16
ldp d10, d11, [sp], #16 ldp d10, d11, [sp], #16
ldp d8, d9, [sp], #16 ldp d8, d9, [sp], #16
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer22Width9_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer22Width9_AArch64_neon
sub x0, x0, #2 sub x0, x0, #2
sub x0, x0, x1, lsl #1 sub x0, x0, x1, lsl #1
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
@@ -2125,9 +2125,9 @@ w9_hv_mc_luma_loop:
st1 {v26.8b}, [x2], x5 //write 0:7Byte : 0 line st1 {v26.8b}, [x2], x5 //write 0:7Byte : 0 line
UNPACK_FILTER_SINGLE_TAG_16BITS v26, v21, v29, v27, v28, d26 UNPACK_FILTER_SINGLE_TAG_16BITS v26, v21, v29, v27, v28, d26
st1 {v26.b}[0], [x2], x3 //write 8th Byte : 0 line st1 {v26.b}[0], [x2], x3 //write 8th Byte : 0 line
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer02Height17_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer02Height17_AArch64_neon
sub x0, x0, x1, lsl #1 sub x0, x0, x1, lsl #1
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -2214,9 +2214,9 @@ w17_v_mc_luma_loop:
FILTER_6TAG_8BITS1 v2, v3, v4, v5, v6, v7, v20, v0, v1 FILTER_6TAG_8BITS1 v2, v3, v4, v5, v6, v7, v20, v0, v1
FILTER_6TAG_8BITS2 v2, v3, v4, v5, v6, v7, v20, v0, v1 FILTER_6TAG_8BITS2 v2, v3, v4, v5, v6, v7, v20, v0, v1
st1 {v20.16b}, [x2], x3 //write 16Byte : last line st1 {v20.16b}, [x2], x3 //write 16Byte : last line
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN McHorVer02Height9_AArch64_neon WELS_ASM_ARCH64_FUNC_BEGIN McHorVer02Height9_AArch64_neon
sub x0, x0, x1, lsl #1 sub x0, x0, x1, lsl #1
movi v0.8h, #20, lsl #0 movi v0.8h, #20, lsl #0
movi v1.8h, #5, lsl #0 movi v1.8h, #5, lsl #0
@@ -2268,7 +2268,7 @@ w9_v_mc_luma_loop:
ld1 {v7.8b}, [x0], x1 // v7=src[3*stride] ld1 {v7.8b}, [x0], x1 // v7=src[3*stride]
FILTER_6TAG_8BITS1 v2, v3, v4, v5, v6, v7, v20, v0, v1 FILTER_6TAG_8BITS1 v2, v3, v4, v5, v6, v7, v20, v0, v1
st1 {v20.8b}, [x2], x3 //write 8Byte : 0 line st1 {v20.8b}, [x2], x3 //write 8Byte : 0 line
WELS_ASM_AARCH64_FUNC_END WELS_ASM_ARCH64_FUNC_END
#endif #endif

View File

@@ -65,14 +65,6 @@ void WelsCopy16x8NotAligned_neon (uint8_t* pDst, int32_t iStrideD, uint8_t* pSrc
void WelsCopy8x16_neon (uint8_t* pDst, int32_t iStrideD, uint8_t* pSrc, int32_t iStrideS); void WelsCopy8x16_neon (uint8_t* pDst, int32_t iStrideD, uint8_t* pSrc, int32_t iStrideS);
#endif #endif
#if defined (HAVE_NEON_AARCH64)
void WelsCopy8x8_AArch64_neon (uint8_t* pDst, int32_t iStrideD, uint8_t* pSrc, int32_t iStrideS);
void WelsCopy16x16_AArch64_neon (uint8_t* pDst, int32_t iStrideD, uint8_t* pSrc, int32_t iStrideS);
void WelsCopy16x16NotAligned_AArch64_neon (uint8_t* pDst, int32_t iStrideD, uint8_t* pSrc, int32_t iStrideS);
void WelsCopy16x8NotAligned_AArch64_neon (uint8_t* pDst, int32_t iStrideD, uint8_t* pSrc, int32_t iStrideS);
void WelsCopy8x16_AArch64_neon (uint8_t* pDst, int32_t iStrideD, uint8_t* pSrc, int32_t iStrideS);
#endif
#if defined(__cplusplus) #if defined(__cplusplus)
} }
#endif//__cplusplus #endif//__cplusplus

View File

@@ -50,18 +50,6 @@ void DeblockChromaLt4H_neon (uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStride,
void DeblockChromaEq4H_neon (uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStride, int32_t iAlpha, int32_t iBeta); void DeblockChromaEq4H_neon (uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStride, int32_t iAlpha, int32_t iBeta);
#endif #endif
#if defined(HAVE_NEON_AARCH64)
void DeblockLumaLt4V_AArch64_neon (uint8_t* pPixY, int32_t iStride, int32_t iAlpha, int32_t iBeta, int8_t* pTc);
void DeblockLumaEq4V_AArch64_neon (uint8_t* pPixY, int32_t iStride, int32_t iAlpha, int32_t iBeta);
void DeblockLumaLt4H_AArch64_neon (uint8_t* pPixY, int32_t iStride, int32_t iAlpha, int32_t iBeta, int8_t* pTc);
void DeblockLumaEq4H_AArch64_neon (uint8_t* pPixY, int32_t iStride, int32_t iAlpha, int32_t iBeta);
void DeblockChromaLt4V_AArch64_neon (uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStride, int32_t iAlpha, int32_t iBeta,
int8_t* pTC);
void DeblockChromaEq4V_AArch64_neon (uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStride, int32_t iAlpha, int32_t iBeta);
void DeblockChromaLt4H_AArch64_neon (uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStride, int32_t iAlpha, int32_t iBeta,
int8_t* pTC);
void DeblockChromaEq4H_AArch64_neon (uint8_t* pPixCb, uint8_t* pPixCr, int32_t iStride, int32_t iAlpha, int32_t iBeta);
#endif
#if defined(__cplusplus) #if defined(__cplusplus)
} }
#endif//__cplusplus #endif//__cplusplus

View File

@@ -37,8 +37,8 @@
************************************************************************************* *************************************************************************************
*/ */
#ifndef EXPAND_PICTURE_H #ifndef EXPAND_PICTURE_COMMON_H
#define EXPAND_PICTURE_H #define EXPAND_PICTURE_COMMON_H
#include "typedefs.h" #include "typedefs.h"
@@ -46,8 +46,6 @@
extern "C" { extern "C" {
#endif//__cplusplus #endif//__cplusplus
#define PADDING_LENGTH 32 // reference extension
#if defined(X86_ASM) #if defined(X86_ASM)
void ExpandPictureLuma_sse2 (uint8_t* pDst, void ExpandPictureLuma_sse2 (uint8_t* pDst,
const int32_t kiStride, const int32_t kiStride,
@@ -72,20 +70,6 @@ void ExpandPictureLuma_AArch64_neon (uint8_t* pDst, const int32_t kiStride, cons
void ExpandPictureChroma_AArch64_neon (uint8_t* pDst, const int32_t kiStride, const int32_t kiPicW, void ExpandPictureChroma_AArch64_neon (uint8_t* pDst, const int32_t kiStride, const int32_t kiPicW,
const int32_t kiPicH); const int32_t kiPicH);
#endif #endif
typedef void (*PExpandPictureFunc) (uint8_t* pDst, const int32_t kiStride, const int32_t kiPicW, const int32_t kiPicH);
typedef struct TagExpandPicFunc {
PExpandPictureFunc pfExpandLumaPicture;
PExpandPictureFunc pfExpandChromaPicture[2];
} SExpandPicFunc;
void ExpandReferencingPicture (uint8_t* pData[3], int32_t iWidth, int32_t iHeight, int32_t iStride[3],
PExpandPictureFunc pExpLuma, PExpandPictureFunc pExpChrom[2]);
void InitExpandPictureFunc (SExpandPicFunc* pExpandPicFunc, const uint32_t kuiCPUFlags);
#if defined(__cplusplus) #if defined(__cplusplus)
} }
#endif//__cplusplus #endif//__cplusplus

View File

@@ -1,6 +1,7 @@
/*! /*!
* \copy * \copy
* Copyright (c) 2013, Cisco Systems * Copyright (c) 2013, Cisco Systems
* Copyright (c) 2013, Mozilla
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -30,34 +31,24 @@
* *
*/ */
#ifdef HAVE_NEON_AARCH64
.text #ifndef WELS_LOGGING_H__
#include "arm_arch64_common_macro.S" #define WELS_LOGGING_H__
// API surface.
void WelsStderrSetTraceLevel (int32_t level);
WELS_ASM_AARCH64_FUNC_BEGIN WelsSetMemZero_AArch64_neon // Internal details.
eor v0.16b, v0.16b, v0.16b int32_t welsStderrLevelTrace (int32_t level, const char* format, va_list ap);
cmp x1, #32
b.eq mem_zero_32_neon_start
b.lt mem_zero_24_neon_start
mem_zero_loop:
subs x1, x1, #64
st1 {v0.16b}, [x0], #16
st1 {v0.16b}, [x0], #16
st1 {v0.16b}, [x0], #16
st1 {v0.16b}, [x0], #16
b.ne mem_zero_loop
b mem_zero_end
mem_zero_32_neon_start: template<int level> int32_t welsStderrTrace (
st1 {v0.16b}, [x0], #16 const char* format, ...) {
st1 {v0.16b}, [x0], #16 va_list ap;
b mem_zero_end va_start (ap, format);
mem_zero_24_neon_start: welsStderrLevelTrace (level, format, ap);
st1 {v0.16b}, [x0], #16 va_end (ap);
st1 {v0.8b}, [x0], #8 return 0;
mem_zero_end: }
WELS_ASM_AARCH64_FUNC_END
#endif #endif

View File

@@ -44,7 +44,6 @@
#include <assert.h> #include <assert.h>
#include "typedefs.h" #include "typedefs.h"
/* /*
* ENFORCE_STACK_ALIGN_1D: force 1 dimension local data aligned in stack * ENFORCE_STACK_ALIGN_1D: force 1 dimension local data aligned in stack
* _tp: type * _tp: type
@@ -73,10 +72,20 @@
#endif #endif
#define ALIGNED_DECLARE( type, var, n ) __declspec(align(n)) type var #define ALIGNED_DECLARE( type, var, n ) __declspec(align(n)) type var
#define __align16(t,v) __declspec(align(16)) t v
#define ALIGNED_DECLARE_MATRIX_1D(name,size,type,alignment) \
__declspec(align(alignment)) type name[(size)]
#define ALIGNED_DECLARE_MATRIX_2D(name,sizex,sizey,type,alignment) \
__declspec(align(alignment)) type name[(sizex)*(sizey)]
#elif defined(__GNUC__) #elif defined(__GNUC__)
#define ALIGNED_DECLARE( type, var, n ) type var __attribute__((aligned(n))) #define ALIGNED_DECLARE( type, var, n ) type var __attribute__((aligned(n)))
#define __align16(t,v) t v __attribute__ ((aligned (16)))
#define ALIGNED_DECLARE_MATRIX_1D(name,size,type,alignment) \
type name[size] __attribute__((aligned(alignment)))
#define ALIGNED_DECLARE_MATRIX_2D(name,sizex,sizey,type,alignment) \
type name[(sizex)*(sizey)] __attribute__((aligned(alignment)))
#endif//_MSC_VER #endif//_MSC_VER
@@ -116,14 +125,6 @@
#define WELS_ROUND(x) ((int32_t)(0.5+(x))) #define WELS_ROUND(x) ((int32_t)(0.5+(x)))
#endif//WELS_ROUND #endif//WELS_ROUND
#ifndef WELS_DIV_ROUND
#define WELS_DIV_ROUND(x,y) ((int32_t)((y)==0?((x)/((y)+1)):(((y)/2+(x))/(y))))
#endif//WELS_DIV_ROUND
#ifndef WELS_DIV_ROUND64
#define WELS_DIV_ROUND64(x,y) ((int64_t)((y)==0?((x)/((y)+1)):(((y)/2+(x))/(y))))
#endif//WELS_DIV_ROUND64
#define WELS_NON_ZERO_COUNT_AVERAGE(nC,nA,nB) { \ #define WELS_NON_ZERO_COUNT_AVERAGE(nC,nA,nB) { \
nC = nA + nB + 1; \ nC = nA + nB + 1; \
nC >>= (uint8_t)( nA != -1 && nB != -1); \ nC >>= (uint8_t)( nA != -1 && nB != -1); \

View File

@@ -79,7 +79,7 @@ static inline int64_t WelsTime (void) {
QueryPerformanceCounter ((LARGE_INTEGER*)&iMtimeCur); QueryPerformanceCounter ((LARGE_INTEGER*)&iMtimeCur);
iResult = (int64_t) ((double)iMtimeCur * 1e6 / (double)iMtimeFreq + 0.5); iResult = (int64_t) ((double)iMtimeCur * 1e6 / (double)iMtimeFreq + 0.5);
return iResult; return iResult;
#endif//_WIN32 #endif//WIN32
} }
#ifdef __cplusplus #ifdef __cplusplus

View File

@@ -89,19 +89,6 @@ void WelsSampleSadFour4x4_neon (uint8_t*, int32_t, uint8_t*, int32_t, int32_t*);
#endif #endif
#if defined (HAVE_NEON_AARCH64)
int32_t WelsSampleSad4x4_AArch64_neon (uint8_t*, int32_t, uint8_t*, int32_t);
int32_t WelsSampleSad16x16_AArch64_neon (uint8_t*, int32_t, uint8_t*, int32_t);
int32_t WelsSampleSad16x8_AArch64_neon (uint8_t*, int32_t, uint8_t*, int32_t);
int32_t WelsSampleSad8x16_AArch64_neon (uint8_t*, int32_t, uint8_t*, int32_t);
int32_t WelsSampleSad8x8_AArch64_neon (uint8_t*, int32_t, uint8_t*, int32_t);
void WelsSampleSadFour16x16_AArch64_neon (uint8_t*, int32_t, uint8_t*, int32_t, int32_t*);
void WelsSampleSadFour16x8_AArch64_neon (uint8_t*, int32_t, uint8_t*, int32_t, int32_t*);
void WelsSampleSadFour8x16_AArch64_neon (uint8_t*, int32_t, uint8_t*, int32_t, int32_t*);
void WelsSampleSadFour8x8_AArch64_neon (uint8_t*, int32_t, uint8_t*, int32_t, int32_t*);
void WelsSampleSadFour4x4_AArch64_neon (uint8_t*, int32_t, uint8_t*, int32_t, int32_t*);
#endif
#if defined(__cplusplus) #if defined(__cplusplus)
} }
#endif//__cplusplus #endif//__cplusplus

View File

@@ -48,12 +48,6 @@
#include <stdint.h> #include <stdint.h>
#include <inttypes.h> #include <inttypes.h>
#ifdef __LP64__
typedef int64_t intX_t;
#else
typedef int32_t intX_t;
#endif
#else #else
// FIXME: all singed type should be declared explicit, for example, int8_t should be declared as signed char. // FIXME: all singed type should be declared explicit, for example, int8_t should be declared as signed char.
@@ -67,12 +61,6 @@ typedef __int64 int64_t ;
typedef unsigned __int64 uint64_t; typedef unsigned __int64 uint64_t;
#define PRId64 "I64d" #define PRId64 "I64d"
#ifdef _WIN64
typedef int64_t intX_t;
#else
typedef int32_t intX_t;
#endif
#endif // _MSC_VER defined #endif // _MSC_VER defined
// The 'float' type is portable and usable without any need for any extra typedefs. // The 'float' type is portable and usable without any need for any extra typedefs.

View File

@@ -1,232 +0,0 @@
/*!
* \copy
* Copyright (c) 2013, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
//wels_common_defs.h
#ifndef WELS_COMMON_DEFS_H__
#define WELS_COMMON_DEFS_H__
#include "typedefs.h"
#include "macros.h"
namespace WelsCommon {
/*common use table*/
extern const uint8_t g_kuiMbCountScan4Idx[24];
extern const uint8_t g_kuiCache30ScanIdx[16];
extern const uint8_t g_kuiCache48CountScan4Idx[24];
extern const ALIGNED_DECLARE (uint16_t, g_kuiDequantCoeff[52][8], 16);
extern const uint8_t g_kuiChromaQpTable[52];
/*
* NAL Unit Type (5 Bits)
*/
enum EWelsNalUnitType {
NAL_UNIT_UNSPEC_0 = 0,
NAL_UNIT_CODED_SLICE = 1,
NAL_UNIT_CODED_SLICE_DPA = 2,
NAL_UNIT_CODED_SLICE_DPB = 3,
NAL_UNIT_CODED_SLICE_DPC = 4,
NAL_UNIT_CODED_SLICE_IDR = 5,
NAL_UNIT_SEI = 6,
NAL_UNIT_SPS = 7,
NAL_UNIT_PPS = 8,
NAL_UNIT_AU_DELIMITER = 9,
NAL_UNIT_END_OF_SEQ = 10,
NAL_UNIT_END_OF_STR = 11,
NAL_UNIT_FILLER_DATA = 12,
NAL_UNIT_SPS_EXT = 13,
NAL_UNIT_PREFIX = 14,
NAL_UNIT_SUBSET_SPS = 15,
NAL_UNIT_RESV_16 = 16,
NAL_UNIT_RESV_17 = 17,
NAL_UNIT_RESV_18 = 18,
NAL_UNIT_AUX_CODED_SLICE = 19,
NAL_UNIT_CODED_SLICE_EXT = 20,
NAL_UNIT_RESV_21 = 21,
NAL_UNIT_RESV_22 = 22,
NAL_UNIT_RESV_23 = 23,
NAL_UNIT_UNSPEC_24 = 24,
NAL_UNIT_UNSPEC_25 = 25,
NAL_UNIT_UNSPEC_26 = 26,
NAL_UNIT_UNSPEC_27 = 27,
NAL_UNIT_UNSPEC_28 = 28,
NAL_UNIT_UNSPEC_29 = 29,
NAL_UNIT_UNSPEC_30 = 30,
NAL_UNIT_UNSPEC_31 = 31
};
/*
* NAL Reference IDC (2 Bits)
*/
enum EWelsNalRefIdc {
NRI_PRI_LOWEST = 0,
NRI_PRI_LOW = 1,
NRI_PRI_HIGH = 2,
NRI_PRI_HIGHEST = 3
};
/*
* VCL TYPE
*/
enum EVclType {
NON_VCL = 0,
VCL = 1,
NOT_APP = 2
};
/*
* vcl type map for given NAL unit type and corresponding H264 type (0: AVC; 1: SVC).
*/
extern const EVclType g_keTypeMap[32][2];
#define IS_VCL_NAL(t, ext_idx) (g_keTypeMap[t][ext_idx] == VCL)
#define IS_PARAM_SETS_NALS(t) ( (t) == NAL_UNIT_SPS || (t) == NAL_UNIT_PPS || (t) == NAL_UNIT_SUBSET_SPS )
#define IS_SPS_NAL(t) ( (t) == NAL_UNIT_SPS )
#define IS_SUBSET_SPS_NAL(t) ( (t) == NAL_UNIT_SUBSET_SPS )
#define IS_PPS_NAL(t) ( (t) == NAL_UNIT_PPS )
#define IS_SEI_NAL(t) ( (t) == NAL_UNIT_SEI )
#define IS_PREFIX_NAL(t) ( (t) == NAL_UNIT_PREFIX )
#define IS_SUBSET_SPS_USED(t) ( (t) == NAL_UNIT_SUBSET_SPS || (t) == NAL_UNIT_CODED_SLICE_EXT )
#define IS_VCL_NAL_AVC_BASE(t) ( (t) == NAL_UNIT_CODED_SLICE || (t) == NAL_UNIT_CODED_SLICE_IDR )
#define IS_NEW_INTRODUCED_SVC_NAL(t) ( (t) == NAL_UNIT_PREFIX || (t) == NAL_UNIT_CODED_SLICE_EXT )
/* Base SSlice Types
* Invalid in case of eSliceType exceeds 9,
* Need trim when eSliceType > 4 as fixed SliceType(eSliceType-4),
* meaning mapped version after eSliceType minus 4.
*/
enum EWelsSliceType {
P_SLICE = 0,
B_SLICE = 1,
I_SLICE = 2,
SP_SLICE = 3,
SI_SLICE = 4,
UNKNOWN_SLICE = 5
};
/* SSlice Types in scalable extension */ ;
enum ESliceTypeExt {
EP_SLICE = 0, // EP_SLICE: 0, 5
EB_SLICE = 1, // EB_SLICE: 1, 6
EI_SLICE = 2 // EI_SLICE: 2, 7
};
/* List Index */
enum EListIndex {
LIST_0 = 0,
LIST_1 = 1,
LIST_A = 2
};
/* Motion Vector components */
enum EMvComp {
MV_X = 0,
MV_Y = 1,
MV_A = 2
};
/* Chroma Components */
enum EChromaComp {
CHROMA_CB = 0,
CHROMA_CR = 1,
CHROMA_A = 2
};
/*
* Memory Management Control Operation (MMCO) code
*/
enum EMmcoCode {
MMCO_END = 0,
MMCO_SHORT2UNUSED = 1,
MMCO_LONG2UNUSED = 2,
MMCO_SHORT2LONG = 3,
MMCO_SET_MAX_LONG = 4,
MMCO_RESET = 5,
MMCO_LONG = 6
};
/////////intra16x16 Luma
#define I16_PRED_INVALID -1
#define I16_PRED_V 0
#define I16_PRED_H 1
#define I16_PRED_DC 2
#define I16_PRED_P 3
#define I16_PRED_DC_L 4
#define I16_PRED_DC_T 5
#define I16_PRED_DC_128 6
#define I16_PRED_DC_A 7
//////////intra4x4 Luma
#define I4_PRED_INVALID 0
#define I4_PRED_V 0
#define I4_PRED_H 1
#define I4_PRED_DC 2
#define I4_PRED_DDL 3 //diagonal_down_left
#define I4_PRED_DDR 4 //diagonal_down_right
#define I4_PRED_VR 5 //vertical_right
#define I4_PRED_HD 6 //horizon_down
#define I4_PRED_VL 7 //vertical_left
#define I4_PRED_HU 8 //horizon_up
#define I4_PRED_DC_L 9
#define I4_PRED_DC_T 10
#define I4_PRED_DC_128 11
#define I4_PRED_DDL_TOP 12 //right-top replacing by padding rightmost pixel of top
#define I4_PRED_VL_TOP 13 //right-top replacing by padding rightmost pixel of top
#define I4_PRED_A 14
//////////intra Chroma
#define C_PRED_INVALID -1
#define C_PRED_DC 0
#define C_PRED_H 1
#define C_PRED_V 2
#define C_PRED_P 3
#define C_PRED_DC_L 4
#define C_PRED_DC_T 5
#define C_PRED_DC_128 6
#define C_PRED_A 7
}
#endif//WELS_COMMON_DEFS_H__

View File

@@ -39,7 +39,7 @@
*/ */
#ifdef __linux__ #ifdef LINUX
#ifndef _GNU_SOURCE #ifndef _GNU_SOURCE
#define _GNU_SOURCE #define _GNU_SOURCE
#endif #endif
@@ -450,7 +450,7 @@ WELS_THREAD_ERROR_CODE WelsQueryLogicalProcessInfo (WelsLogicalProcessInfo* p
#ifdef ANDROID_NDK #ifdef ANDROID_NDK
pInfo->ProcessorCount = android_getCpuCount(); pInfo->ProcessorCount = android_getCpuCount();
return WELS_THREAD_ERROR_OK; return WELS_THREAD_ERROR_OK;
#elif defined(__linux__) #elif defined(LINUX)
cpu_set_t cpuset; cpu_set_t cpuset;
@@ -472,7 +472,7 @@ WELS_THREAD_ERROR_CODE WelsQueryLogicalProcessInfo (WelsLogicalProcessInfo* p
return WELS_THREAD_ERROR_OK; return WELS_THREAD_ERROR_OK;
#endif//__linux__ #endif//LINUX
} }
#endif #endif

View File

@@ -1,153 +0,0 @@
/*!
* \copy
* Copyright (c) 2013, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#include "wels_common_defs.h"
namespace WelsCommon {
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////pNonZeroCount[16+8] mapping scan index
const uint8_t g_kuiMbCountScan4Idx[24] = {
// 0 1 | 4 5 luma 8*8 block pNonZeroCount[16+8]
0, 1, 4, 5, // 2 3 | 6 7 0 | 1 0 1 2 3
2, 3, 6, 7, //--------------- --------- 4 5 6 7
8, 9, 12, 13, // 8 9 | 12 13 2 | 3 8 9 10 11
10, 11, 14, 15, // 10 11 | 14 15-----------------------------> 12 13 14 15
16, 17, 20, 21, //---------------- chroma 8*8 block 16 17 18 19
18, 19, 22, 23 // 16 17 | 20 21 0 1 20 21 22 23
};
const uint8_t g_kuiCache48CountScan4Idx[24] = {
/* Luma */
9, 10, 17, 18, // 1+1*8, 2+1*8, 1+2*8, 2+2*8,
11, 12, 19, 20, // 3+1*8, 4+1*8, 3+2*8, 4+2*8,
25, 26, 33, 34, // 1+3*8, 2+3*8, 1+4*8, 2+4*8,
27, 28, 35, 36, // 3+3*8, 4+3*8, 3+4*8, 4+4*8,
/* Cb */
14, 15, // 6+1*8, 7+1*8,
22, 23, // 6+2*8, 7+2*8,
/* Cr */
38, 39, // 6+4*8, 7+4*8,
46, 47, // 6+5*8, 7+5*8,
};
//cache element equal to 30
const uint8_t g_kuiCache30ScanIdx[16] = { //mv or uiRefIndex cache scan index, 4*4 block as basic unit
7, 8, 13, 14,
9, 10, 15, 16,
19, 20, 25, 26,
21, 22, 27, 28
};
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// extern at wels_common_defs.h
const uint8_t g_kuiChromaQpTable[52] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 29, 30, 31, 32, 32, 33, 34, 34, 35, 35, 36, 36, 37, 37,
37, 38, 38, 38, 39, 39, 39, 39
};
/*
* vcl type map for given NAL unit type and corresponding H264 type (0: AVC; 1: SVC).
*/
const EVclType g_keTypeMap[32][2] = {
{ NON_VCL, NON_VCL }, // 0: NAL_UNIT_UNSPEC_0
{ VCL, VCL, }, // 1: NAL_UNIT_CODED_SLICE
{ VCL, NOT_APP }, // 2: NAL_UNIT_CODED_SLICE_DPA
{ VCL, NOT_APP }, // 3: NAL_UNIT_CODED_SLICE_DPB
{ VCL, NOT_APP }, // 4: NAL_UNIT_CODED_SLICE_DPC
{ VCL, VCL }, // 5: NAL_UNIT_CODED_SLICE_IDR
{ NON_VCL, NON_VCL }, // 6: NAL_UNIT_SEI
{ NON_VCL, NON_VCL }, // 7: NAL_UNIT_SPS
{ NON_VCL, NON_VCL }, // 8: NAL_UNIT_PPS
{ NON_VCL, NON_VCL }, // 9: NAL_UNIT_AU_DELIMITER
{ NON_VCL, NON_VCL }, // 10: NAL_UNIT_END_OF_SEQ
{ NON_VCL, NON_VCL }, // 11: NAL_UNIT_END_OF_STR
{ NON_VCL, NON_VCL }, // 12: NAL_UNIT_FILLER_DATA
{ NON_VCL, NON_VCL }, // 13: NAL_UNIT_SPS_EXT
{ NON_VCL, NON_VCL }, // 14: NAL_UNIT_PREFIX, NEED associate succeeded NAL to make a VCL
{ NON_VCL, NON_VCL }, // 15: NAL_UNIT_SUBSET_SPS
{ NON_VCL, NON_VCL }, // 16: NAL_UNIT_RESV_16
{ NON_VCL, NON_VCL }, // 17: NAL_UNIT_RESV_17
{ NON_VCL, NON_VCL }, // 18: NAL_UNIT_RESV_18
{ NON_VCL, NON_VCL }, // 19: NAL_UNIT_AUX_CODED_SLICE
{ NON_VCL, VCL }, // 20: NAL_UNIT_CODED_SLICE_EXT
{ NON_VCL, NON_VCL }, // 21: NAL_UNIT_RESV_21
{ NON_VCL, NON_VCL }, // 22: NAL_UNIT_RESV_22
{ NON_VCL, NON_VCL }, // 23: NAL_UNIT_RESV_23
{ NON_VCL, NON_VCL }, // 24: NAL_UNIT_UNSPEC_24
{ NON_VCL, NON_VCL }, // 25: NAL_UNIT_UNSPEC_25
{ NON_VCL, NON_VCL }, // 26: NAL_UNIT_UNSPEC_26
{ NON_VCL, NON_VCL }, // 27: NAL_UNIT_UNSPEC_27
{ NON_VCL, NON_VCL }, // 28: NAL_UNIT_UNSPEC_28
{ NON_VCL, NON_VCL }, // 29: NAL_UNIT_UNSPEC_29
{ NON_VCL, NON_VCL }, // 30: NAL_UNIT_UNSPEC_30
{ NON_VCL, NON_VCL } // 31: NAL_UNIT_UNSPEC_31
};
ALIGNED_DECLARE (const uint16_t, g_kuiDequantCoeff[52][8], 16) = {
/* 0*/{ 10, 13, 10, 13, 13, 16, 13, 16 }, /* 1*/{ 11, 14, 11, 14, 14, 18, 14, 18 },
/* 2*/{ 13, 16, 13, 16, 16, 20, 16, 20 }, /* 3*/{ 14, 18, 14, 18, 18, 23, 18, 23 },
/* 4*/{ 16, 20, 16, 20, 20, 25, 20, 25 }, /* 5*/{ 18, 23, 18, 23, 23, 29, 23, 29 },
/* 6*/{ 20, 26, 20, 26, 26, 32, 26, 32 }, /* 7*/{ 22, 28, 22, 28, 28, 36, 28, 36 },
/* 8*/{ 26, 32, 26, 32, 32, 40, 32, 40 }, /* 9*/{ 28, 36, 28, 36, 36, 46, 36, 46 },
/*10*/{ 32, 40, 32, 40, 40, 50, 40, 50 }, /*11*/{ 36, 46, 36, 46, 46, 58, 46, 58 },
/*12*/{ 40, 52, 40, 52, 52, 64, 52, 64 }, /*13*/{ 44, 56, 44, 56, 56, 72, 56, 72 },
/*14*/{ 52, 64, 52, 64, 64, 80, 64, 80 }, /*15*/{ 56, 72, 56, 72, 72, 92, 72, 92 },
/*16*/{ 64, 80, 64, 80, 80, 100, 80, 100 }, /*17*/{ 72, 92, 72, 92, 92, 116, 92, 116 },
/*18*/{ 80, 104, 80, 104, 104, 128, 104, 128 }, /*19*/{ 88, 112, 88, 112, 112, 144, 112, 144 },
/*20*/{ 104, 128, 104, 128, 128, 160, 128, 160 }, /*21*/{ 112, 144, 112, 144, 144, 184, 144, 184 },
/*22*/{ 128, 160, 128, 160, 160, 200, 160, 200 }, /*23*/{ 144, 184, 144, 184, 184, 232, 184, 232 },
/*24*/{ 160, 208, 160, 208, 208, 256, 208, 256 }, /*25*/{ 176, 224, 176, 224, 224, 288, 224, 288 },
/*26*/{ 208, 256, 208, 256, 256, 320, 256, 320 }, /*27*/{ 224, 288, 224, 288, 288, 368, 288, 368 },
/*28*/{ 256, 320, 256, 320, 320, 400, 320, 400 }, /*29*/{ 288, 368, 288, 368, 368, 464, 368, 464 },
/*30*/{ 320, 416, 320, 416, 416, 512, 416, 512 }, /*31*/{ 352, 448, 352, 448, 448, 576, 448, 576 },
/*32*/{ 416, 512, 416, 512, 512, 640, 512, 640 }, /*33*/{ 448, 576, 448, 576, 576, 736, 576, 736 },
/*34*/{ 512, 640, 512, 640, 640, 800, 640, 800 }, /*35*/{ 576, 736, 576, 736, 736, 928, 736, 928 },
/*36*/{ 640, 832, 640, 832, 832, 1024, 832, 1024 }, /*37*/{ 704, 896, 704, 896, 896, 1152, 896, 1152 },
/*38*/{ 832, 1024, 832, 1024, 1024, 1280, 1024, 1280 }, /*39*/{ 896, 1152, 896, 1152, 1152, 1472, 1152, 1472 },
/*40*/{ 1024, 1280, 1024, 1280, 1280, 1600, 1280, 1600 }, /*41*/{ 1152, 1472, 1152, 1472, 1472, 1856, 1472, 1856 },
/*42*/{ 1280, 1664, 1280, 1664, 1664, 2048, 1664, 2048 }, /*43*/{ 1408, 1792, 1408, 1792, 1792, 2304, 1792, 2304 },
/*44*/{ 1664, 2048, 1664, 2048, 2048, 2560, 2048, 2560 }, /*45*/{ 1792, 2304, 1792, 2304, 2304, 2944, 2304, 2944 },
/*46*/{ 2048, 2560, 2048, 2560, 2560, 3200, 2560, 3200 }, /*47*/{ 2304, 2944, 2304, 2944, 2944, 3712, 2944, 3712 },
/*48*/{ 2560, 3328, 2560, 3328, 3328, 4096, 3328, 4096 }, /*49*/{ 2816, 3584, 2816, 3584, 3584, 4608, 3584, 4608 },
/*50*/{ 3328, 4096, 3328, 4096, 4096, 5120, 4096, 5120 }, /*51*/{ 3584, 4608, 3584, 4608, 4608, 5888, 4608, 5888 },
};
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}

View File

@@ -258,10 +258,9 @@ uint32_t WelsCPUFeatureDetect (int32_t* pNumberOfLogicProcessors) {
int flags = 0; int flags = 0;
while (fgets (buf, sizeof (buf), f)) { while (fgets (buf, sizeof (buf), f)) {
if (!strncmp (buf, "Features", strlen ("Features"))) { if (!strncmp (buf, "Features", strlen ("Features"))) {
// The asimd and fp features are listed on 64 bit ARMv8 kernels if (strstr (buf, " neon "))
if (strstr (buf, " neon ") || strstr (buf, " asimd "))
flags |= WELS_CPU_NEON; flags |= WELS_CPU_NEON;
if (strstr (buf, " vfpv3 ") || strstr (buf, " fp ")) if (strstr (buf, " vfpv3 "))
flags |= WELS_CPU_VFPv3; flags |= WELS_CPU_VFPv3;
break; break;
} }
@@ -281,19 +280,7 @@ uint32_t WelsCPUFeatureDetect (int32_t* pNumberOfLogicProcessors) {
WELS_CPU_NEON; WELS_CPU_NEON;
} }
#endif #endif
#elif defined(HAVE_NEON_AARCH64) #else /* Neither X86_ASM nor HAVE_NEON */
/* For AArch64, no runtime detection actually is necessary for now, since
* NEON and VFPv3 is mandatory on all such CPUs. (/proc/cpuinfo doesn't
* contain neon, and the android cpufeatures library doesn't return it
* either.) */
uint32_t WelsCPUFeatureDetect (int32_t* pNumberOfLogicProcessors) {
return WELS_CPU_VFPv3 |
WELS_CPU_NEON;
}
#else /* Neither X86_ASM, HAVE_NEON nor HAVE_NEON_AARCH64 */
uint32_t WelsCPUFeatureDetect (int32_t* pNumberOfLogicProcessors) { uint32_t WelsCPUFeatureDetect (int32_t* pNumberOfLogicProcessors) {
return 0; return 0;

View File

@@ -112,7 +112,7 @@ int32_t WelsStrftime (char* pBuffer, int32_t iSize, const char* kpFormat, const
localtime_s (&sTimeNow, &kpTp->time); localtime_s (&sTimeNow, &kpTp->time);
iRc = (int32_t)strftime (pBuffer, iSize, kpFormat, &sTimeNow); iRc = strftime (pBuffer, iSize, kpFormat, &sTimeNow);
if (iRc == 0) if (iRc == 0)
pBuffer[0] = '\0'; pBuffer[0] = '\0';
return iRc; return iRc;
@@ -234,7 +234,7 @@ int32_t WelsStrftime (char* pBuffer, int32_t iSize, const char* kpFormat, const
pTnow = localtime (&kpTp->time); pTnow = localtime (&kpTp->time);
iRc = (int32_t) strftime (pBuffer, iSize, kpFormat, pTnow); iRc = strftime (pBuffer, iSize, kpFormat, pTnow);
if (iRc == 0) if (iRc == 0)
pBuffer[0] = '\0'; pBuffer[0] = '\0';
return iRc; return iRc;
@@ -244,12 +244,12 @@ int32_t WelsStrftime (char* pBuffer, int32_t iSize, const char* kpFormat, const
char* WelsStrcat (char* pDest, int32_t iSizeInBytes, const char* kpSrc) { char* WelsStrcat (char* pDest, int32_t iSizeInBytes, const char* kpSrc) {
int32_t iCurLen = (int32_t)strlen (pDest); int32_t iCurLen = strlen (pDest);
return WelsStrncpy (pDest + iCurLen, iSizeInBytes - iCurLen, kpSrc); return WelsStrncpy (pDest + iCurLen, iSizeInBytes - iCurLen, kpSrc);
} }
int32_t WelsFwrite (const void* kpBuffer, int32_t iSize, int32_t iCount, WelsFileHandle* pFp) { int32_t WelsFwrite (const void* kpBuffer, int32_t iSize, int32_t iCount, WelsFileHandle* pFp) {
return (int32_t)fwrite (kpBuffer, iSize, iCount, pFp); return fwrite (kpBuffer, iSize, iCount, pFp);
} }
uint16_t WelsGetMillisecond (const SWelsTime* kpTp) { uint16_t WelsGetMillisecond (const SWelsTime* kpTp) {

View File

@@ -1,6 +1,7 @@
/*! /*!
* \copy * \copy
* Copyright (c) 2013, Cisco Systems * Copyright (c) 2013, Cisco Systems
* Copyright (c) 2013, Mozilla
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -30,68 +31,19 @@
* *
*/ */
#ifdef _WIN32
#include <windows.h>
#include <tchar.h>
#endif
#include <stdio.h>
#include <stdarg.h> #include <stdarg.h>
#include <string.h> #include <stdio.h>
#include "typedefs.h"
#include "crt_util_safe_x.h" // Safe CRT routines like utils for cross platforms static int32_t g_TraceLevel = 0;
#include "welsCodecTrace.h" void WelsStderrSetTraceLevel (int32_t level) {
#include "utils.h" g_TraceLevel = level;
static void welsStderrTrace (void* ctx, int level, const char* string) {
fprintf (stderr, "%s", string);
} }
welsCodecTrace::welsCodecTrace() { int32_t welsStderrLevelTrace (int32_t level, const char* format, va_list ap) {
if (level < g_TraceLevel) {
m_iTraceLevel = WELS_LOG_DEFAULT; vfprintf (stderr, format, ap);
m_fpTrace = welsStderrTrace;
m_pTraceCtx = NULL;
m_sLogCtx.pLogCtx = this;
m_sLogCtx.pfLog = StaticCodecTrace;
}
welsCodecTrace::~welsCodecTrace() {
m_fpTrace = NULL;
}
#define MAX_LOG_SIZE 1024
void welsCodecTrace::StaticCodecTrace (void* pCtx, const int32_t iLevel, const char* Str_Format, va_list vl) {
welsCodecTrace* self = (welsCodecTrace*) pCtx;
self->CodecTrace (iLevel, Str_Format, vl);
}
void welsCodecTrace::CodecTrace (const int32_t iLevel, const char* Str_Format, va_list vl) {
if (m_iTraceLevel < iLevel) {
return;
} }
return 0;
char pBuf[MAX_LOG_SIZE] = {0};
WelsVsnprintf (pBuf, MAX_LOG_SIZE, Str_Format, vl); // confirmed_safe_unsafe_usage
m_fpTrace (m_pTraceCtx, iLevel, pBuf);
} }
void welsCodecTrace::SetTraceLevel (const int32_t iLevel) {
if (iLevel >= 0)
m_iTraceLevel = iLevel;
}
void welsCodecTrace::SetTraceCallback (WelsTraceCallback func) {
m_fpTrace = func;
}
void welsCodecTrace::SetTraceCallbackContext (void* ctx) {
m_pTraceCtx = ctx;
}

View File

@@ -1,107 +0,0 @@
/*!
* \copy
* Copyright (c) 2009-2013, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*
* \file utils.c
*
* \brief common tool/function utilization
*
* \date 03/10/2009 Created
*
*************************************************************************************
*/
#include "utils.h"
#include "crt_util_safe_x.h" // Safe CRT routines like utils for cross platforms
float WelsCalcPsnr (const void* kpTarPic,
const int32_t kiTarStride,
const void* kpRefPic,
const int32_t kiRefStride,
const int32_t kiWidth,
const int32_t kiHeight);
void WelsLog (SLogContext* logCtx, int32_t iLevel, const char* kpFmt, ...) {
va_list vl;
va_start (vl, kpFmt);
logCtx->pfLog (logCtx->pLogCtx, iLevel, kpFmt, vl);
va_end (vl);
}
#ifndef CALC_PSNR
#define CONST_FACTOR_PSNR (10.0 / log(10.0)) // for good computation
#define CALC_PSNR(w, h, s) ((float)(CONST_FACTOR_PSNR * log( 65025.0 * w * h / iSqe )))
#endif//CALC_PSNR
/*
* PSNR calculation routines
*/
/*!
*************************************************************************************
* \brief PSNR calculation utilization in Wels
*
* \param pTarPic target picture to be calculated in Picture pData format
* \param iTarStride stride of target picture pData pBuffer
* \param pRefPic base referencing picture samples
* \param iRefStride stride of reference picture pData pBuffer
* \param iWidth picture iWidth in pixel
* \param iHeight picture iHeight in pixel
*
* \return actual PSNR result;
*
* \note N/A
*************************************************************************************
*/
float WelsCalcPsnr (const void* kpTarPic,
const int32_t kiTarStride,
const void* kpRefPic,
const int32_t kiRefStride,
const int32_t kiWidth,
const int32_t kiHeight) {
int64_t iSqe = 0;
int32_t x, y;
uint8_t* pTar = (uint8_t*)kpTarPic;
uint8_t* pRef = (uint8_t*)kpRefPic;
if (NULL == pTar || NULL == pRef)
return (-1.0f);
for (y = 0; y < kiHeight; ++ y) { // OPTable !!
for (x = 0; x < kiWidth; ++ x) {
const int32_t kiT = pTar[y * kiTarStride + x] - pRef[y * kiRefStride + x];
iSqe += kiT * kiT;
}
}
if (0 == iSqe) {
return (99.99f);
}
return CALC_PSNR (kiWidth, kiHeight, iSqe);
}

View File

@@ -1,14 +1,11 @@
COMMON_SRCDIR=codec/common COMMON_SRCDIR=codec/common
COMMON_CPP_SRCS=\ COMMON_CPP_SRCS=\
$(COMMON_SRCDIR)/src/common_tables.cpp\
$(COMMON_SRCDIR)/src/copy_mb.cpp\ $(COMMON_SRCDIR)/src/copy_mb.cpp\
$(COMMON_SRCDIR)/src/cpu.cpp\ $(COMMON_SRCDIR)/src/cpu.cpp\
$(COMMON_SRCDIR)/src/crt_util_safe_x.cpp\ $(COMMON_SRCDIR)/src/crt_util_safe_x.cpp\
$(COMMON_SRCDIR)/src/deblocking_common.cpp\ $(COMMON_SRCDIR)/src/deblocking_common.cpp\
$(COMMON_SRCDIR)/src/expand_pic.cpp\ $(COMMON_SRCDIR)/src/logging.cpp\
$(COMMON_SRCDIR)/src/sad_common.cpp\ $(COMMON_SRCDIR)/src/sad_common.cpp\
$(COMMON_SRCDIR)/src/utils.cpp\
$(COMMON_SRCDIR)/src/welsCodecTrace.cpp\
$(COMMON_SRCDIR)/src/WelsThreadLib.cpp\ $(COMMON_SRCDIR)/src/WelsThreadLib.cpp\
COMMON_OBJS += $(COMMON_CPP_SRCS:.cpp=.$(OBJ)) COMMON_OBJS += $(COMMON_CPP_SRCS:.cpp=.$(OBJ))
@@ -39,8 +36,6 @@ endif
ifeq ($(ASM_ARCH), arm64) ifeq ($(ASM_ARCH), arm64)
COMMON_ASM_ARM64_SRCS=\ COMMON_ASM_ARM64_SRCS=\
$(COMMON_SRCDIR)/arm64/copy_mb_aarch64_neon.S\
$(COMMON_SRCDIR)/arm64/deblocking_aarch64_neon.S\
$(COMMON_SRCDIR)/arm64/expand_picture_aarch64_neon.S\ $(COMMON_SRCDIR)/arm64/expand_picture_aarch64_neon.S\
$(COMMON_SRCDIR)/arm64/mc_aarch64_neon.S\ $(COMMON_SRCDIR)/arm64/mc_aarch64_neon.S\
@@ -55,7 +50,7 @@ $(COMMON_SRCDIR)/%.$(OBJ): $(COMMON_SRCDIR)/%.asm
$(QUIET_ASM)$(ASM) $(ASMFLAGS) $(ASM_INCLUDES) $(COMMON_ASMFLAGS) $(COMMON_ASM_INCLUDES) -o $@ $< $(QUIET_ASM)$(ASM) $(ASMFLAGS) $(ASM_INCLUDES) $(COMMON_ASMFLAGS) $(COMMON_ASM_INCLUDES) -o $@ $<
$(COMMON_SRCDIR)/%.$(OBJ): $(COMMON_SRCDIR)/%.S $(COMMON_SRCDIR)/%.$(OBJ): $(COMMON_SRCDIR)/%.S
$(QUIET_CCAS)$(CCAS) $(CCASFLAGS) $(ASMFLAGS) $(INCLUDES) $(COMMON_CFLAGS) $(COMMON_INCLUDES) -c -o $@ $< $(QUIET_CCAS)$(CCAS) $(CFLAGS) $(ASMFLAGS) $(INCLUDES) $(COMMON_CFLAGS) $(COMMON_INCLUDES) -c -o $@ $<
$(LIBPREFIX)common.$(LIBSUFFIX): $(COMMON_OBJS) $(LIBPREFIX)common.$(LIBSUFFIX): $(COMMON_OBJS)
$(QUIET)rm -f $@ $(QUIET)rm -f $@

View File

@@ -81,7 +81,7 @@ WELS_EXTERN WelsCPUId
push rdx push rdx
mov eax, ecx mov eax, ecx
mov ecx, [r9] mov rcx, [r9]
cpuid cpuid
mov [r9], ecx mov [r9], ecx
mov [r8], ebx mov [r8], ebx
@@ -100,7 +100,7 @@ WELS_EXTERN WelsCPUId
push rdx push rdx
mov eax, edi mov eax, edi
mov ecx, [rcx] mov rcx, [rcx]
cpuid cpuid
mov [r8], edx mov [r8], edx
pop rdx pop rdx

View File

@@ -1,16 +0,0 @@
CONSOLE_COMMON_SRCDIR=codec/console/common
CONSOLE_COMMON_CPP_SRCS=\
$(CONSOLE_COMMON_SRCDIR)/src/read_config.cpp\
CONSOLE_COMMON_OBJS += $(CONSOLE_COMMON_CPP_SRCS:.cpp=.$(OBJ))
OBJS += $(CONSOLE_COMMON_OBJS)
$(CONSOLE_COMMON_SRCDIR)/%.$(OBJ): $(CONSOLE_COMMON_SRCDIR)/%.cpp
$(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(CONSOLE_COMMON_CFLAGS) $(CONSOLE_COMMON_INCLUDES) -c $(CXX_O) $<
$(LIBPREFIX)console_common.$(LIBSUFFIX): $(CONSOLE_COMMON_OBJS)
$(QUIET)rm -f $@
$(QUIET_AR)$(AR) $(AR_OPTS) $+
libraries: $(LIBPREFIX)console_common.$(LIBSUFFIX)
LIBRARIES += $(LIBPREFIX)console_common.$(LIBSUFFIX)

View File

@@ -82,8 +82,6 @@ class CD3D9Utils {
HWND m_hWnd; HWND m_hWnd;
unsigned char* m_pDumpYUV; unsigned char* m_pDumpYUV;
BOOL m_bInitDone; BOOL m_bInitDone;
int m_nWidth;
int m_nHeight;
LPDIRECT3D9 m_lpD3D9; LPDIRECT3D9 m_lpD3D9;
LPDIRECT3DDEVICE9 m_lpD3D9Device; LPDIRECT3DDEVICE9 m_lpD3D9Device;
@@ -112,8 +110,6 @@ class CD3D9ExUtils {
HWND m_hWnd; HWND m_hWnd;
unsigned char* m_pDumpYUV; unsigned char* m_pDumpYUV;
BOOL m_bInitDone; BOOL m_bInitDone;
int m_nWidth;
int m_nHeight;
LPDIRECT3D9EX m_lpD3D9; LPDIRECT3D9EX m_lpD3D9;
LPDIRECT3DDEVICE9EX m_lpD3D9Device; LPDIRECT3DDEVICE9EX m_lpD3D9Device;

View File

@@ -44,16 +44,12 @@
#include <string> #include <string>
using namespace std; using namespace std;
class CReadConfig { class CReadConfig {
public: public:
CReadConfig(); CReadConfig (const char* kpConfigFileName);
CReadConfig (const char* pConfigFileName);
CReadConfig (const string& pConfigFileName);
virtual ~CReadConfig(); virtual ~CReadConfig();
void Openf (const char* strFile); long ReadLine (string* val, const int kiValSize = 4);
long ReadLine (string* strVal, const int iValSize = 4);
const bool EndOfFile(); const bool EndOfFile();
const int GetLines(); const int GetLines();
const bool ExistFile(); const bool ExistFile();
@@ -62,7 +58,7 @@ class CReadConfig {
private: private:
FILE* m_pCfgFile; FILE* m_pCfgFile;
string m_strCfgFileName; string m_strCfgFileName;
unsigned int m_iLines; unsigned long m_ulLines;
}; };
#endif // READ_CONFIG_H__ #endif // READ_CONFIG_H__

View File

@@ -75,8 +75,7 @@ CD3D9Utils::CD3D9Utils() {
m_lpD3D9 = NULL; m_lpD3D9 = NULL;
m_lpD3D9Device = NULL; m_lpD3D9Device = NULL;
m_lpD3D9RawSurfaceShare = NULL; m_lpD3D9RawSurfaceShare = NULL;
m_nWidth = 0;
m_nHeight = 0;
// coverity scan uninitial // coverity scan uninitial
ZeroMemory (&m_d3dpp, sizeof (m_d3dpp)); ZeroMemory (&m_d3dpp, sizeof (m_d3dpp));
} }
@@ -148,16 +147,6 @@ HRESULT CD3D9Utils::Process (void* pDst[3], SBufferInfo* pInfo, FILE* pFp) {
HRESULT CD3D9Utils::Render (void* pDst[3], SBufferInfo* pInfo) { HRESULT CD3D9Utils::Render (void* pDst[3], SBufferInfo* pInfo) {
HRESULT hResult = E_FAIL; HRESULT hResult = E_FAIL;
if (!pInfo)
return E_FAIL;
if (m_nWidth != pInfo->UsrData.sSystemBuffer.iWidth
|| m_nHeight != pInfo->UsrData.sSystemBuffer.iHeight) {
m_nWidth = pInfo->UsrData.sSystemBuffer.iWidth;
m_nHeight = pInfo->UsrData.sSystemBuffer.iHeight;
SAFE_RELEASE (m_lpD3D9RawSurfaceShare);
SAFE_RELEASE (m_lpD3D9Device);
}
hResult = InitResource (NULL, pInfo); hResult = InitResource (NULL, pInfo);
if (SUCCEEDED (hResult)) if (SUCCEEDED (hResult))
hResult = Dump2Surface (pDst, m_lpD3D9RawSurfaceShare, pInfo->UsrData.sSystemBuffer.iWidth, hResult = Dump2Surface (pDst, m_lpD3D9RawSurfaceShare, pInfo->UsrData.sSystemBuffer.iWidth,
@@ -256,8 +245,6 @@ CD3D9ExUtils::CD3D9ExUtils() {
m_lpD3D9Device = NULL; m_lpD3D9Device = NULL;
m_lpD3D9RawSurfaceShare = NULL; m_lpD3D9RawSurfaceShare = NULL;
m_nWidth = 0;
m_nHeight = 0;
// coverity scan uninitial // coverity scan uninitial
ZeroMemory (&m_d3dpp, sizeof (m_d3dpp)); ZeroMemory (&m_d3dpp, sizeof (m_d3dpp));
} }
@@ -329,16 +316,6 @@ HRESULT CD3D9ExUtils::Process (void* pDst[3], SBufferInfo* pInfo, FILE* pFp) {
HRESULT CD3D9ExUtils::Render (void* pDst[3], SBufferInfo* pInfo) { HRESULT CD3D9ExUtils::Render (void* pDst[3], SBufferInfo* pInfo) {
HRESULT hResult = E_FAIL; HRESULT hResult = E_FAIL;
if (!pInfo)
return E_FAIL;
if (m_nWidth != pInfo->UsrData.sSystemBuffer.iWidth
|| m_nHeight != pInfo->UsrData.sSystemBuffer.iHeight) {
m_nWidth = pInfo->UsrData.sSystemBuffer.iWidth;
m_nHeight = pInfo->UsrData.sSystemBuffer.iHeight;
SAFE_RELEASE (m_lpD3D9RawSurfaceShare);
SAFE_RELEASE (m_lpD3D9Device);
}
hResult = InitResource (NULL, pInfo); hResult = InitResource (NULL, pInfo);
if (SUCCEEDED (hResult)) if (SUCCEEDED (hResult))
hResult = Dump2Surface (pDst, m_lpD3D9RawSurfaceShare, pInfo->UsrData.sSystemBuffer.iWidth, hResult = Dump2Surface (pDst, m_lpD3D9RawSurfaceShare, pInfo->UsrData.sSystemBuffer.iWidth,
@@ -409,9 +386,6 @@ HRESULT CD3D9ExUtils::InitResource (void* pSharedHandle, SBufferInfo* pInfo) {
m_d3dpp.hDeviceWindow = m_hWnd; m_d3dpp.hDeviceWindow = m_hWnd;
m_d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE; m_d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
hResult = m_lpD3D9->CreateDeviceEx (uiAdapter, D3DDevType, NULL, dwBehaviorFlags, &m_d3dpp, NULL, &m_lpD3D9Device); hResult = m_lpD3D9->CreateDeviceEx (uiAdapter, D3DDevType, NULL, dwBehaviorFlags, &m_d3dpp, NULL, &m_lpD3D9Device);
if (FAILED (hResult)) {
return hResult;
}
iWidth = pInfo->UsrData.sSystemBuffer.iWidth; iWidth = pInfo->UsrData.sSystemBuffer.iWidth;
iHeight = pInfo->UsrData.sSystemBuffer.iHeight; iHeight = pInfo->UsrData.sSystemBuffer.iHeight;
D3Dformat = (D3DFORMAT)NV12_FORMAT; D3Dformat = (D3DFORMAT)NV12_FORMAT;

View File

@@ -51,6 +51,7 @@
#include "typedefs.h" #include "typedefs.h"
#include "measure_time.h" #include "measure_time.h"
#include "d3d9_utils.h" #include "d3d9_utils.h"
#include "logging.h"
using namespace std; using namespace std;
@@ -128,7 +129,7 @@ void H264DecodeInstance (ISVCDecoder* pDecoder, const char* kpH264FileName, cons
printf ("------------------------------------------------------\n"); printf ("------------------------------------------------------\n");
fseek (pH264File, 0L, SEEK_END); fseek (pH264File, 0L, SEEK_END);
iFileSize = (int32_t) ftell (pH264File); iFileSize = ftell (pH264File);
if (iFileSize <= 0) { if (iFileSize <= 0) {
fprintf (stderr, "Current Bit Stream File is too small, read error!!!!\n"); fprintf (stderr, "Current Bit Stream File is too small, read error!!!!\n");
goto label_exit; goto label_exit;
@@ -310,7 +311,6 @@ int32_t main (int32_t iArgC, char* pArgV[]) {
SDecodingParam sDecParam = {0}; SDecodingParam sDecParam = {0};
string strInputFile (""), strOutputFile (""), strOptionFile (""); string strInputFile (""), strOutputFile (""), strOptionFile ("");
int iLevelSetting = -1;
sDecParam.sVideoProperty.size = sizeof (sDecParam.sVideoProperty); sDecParam.sVideoProperty.size = sizeof (sDecParam.sVideoProperty);
@@ -339,7 +339,7 @@ int32_t main (int32_t iArgC, char* pArgV[]) {
strOutputFile = strTag[1]; strOutputFile = strTag[1];
} else if (strTag[0].compare ("RestructionFile") == 0) { } else if (strTag[0].compare ("RestructionFile") == 0) {
strReconFile = strTag[1]; strReconFile = strTag[1];
int32_t iLen = (int32_t)strReconFile.length(); int32_t iLen = strReconFile.length();
sDecParam.pFileNameRestructed = new char[iLen + 1]; sDecParam.pFileNameRestructed = new char[iLen + 1];
if (sDecParam.pFileNameRestructed != NULL) { if (sDecParam.pFileNameRestructed != NULL) {
sDecParam.pFileNameRestructed[iLen] = 0; sDecParam.pFileNameRestructed[iLen] = 0;
@@ -349,7 +349,7 @@ int32_t main (int32_t iArgC, char* pArgV[]) {
} else if (strTag[0].compare ("TargetDQID") == 0) { } else if (strTag[0].compare ("TargetDQID") == 0) {
sDecParam.uiTargetDqLayer = (uint8_t)atol (strTag[1].c_str()); sDecParam.uiTargetDqLayer = (uint8_t)atol (strTag[1].c_str());
} else if (strTag[0].compare ("OutColorFormat") == 0) { } else if (strTag[0].compare ("OutColorFormat") == 0) {
sDecParam.iOutputColorFormat = atoi (strTag[1].c_str()); sDecParam.iOutputColorFormat = atol (strTag[1].c_str());
} else if (strTag[0].compare ("ErrorConcealmentFlag") == 0) { } else if (strTag[0].compare ("ErrorConcealmentFlag") == 0) {
sDecParam.uiEcActiveFlag = (uint8_t)atol (strTag[1].c_str()); sDecParam.uiEcActiveFlag = (uint8_t)atol (strTag[1].c_str());
} else if (strTag[0].compare ("CPULoad") == 0) { } else if (strTag[0].compare ("CPULoad") == 0) {
@@ -384,14 +384,14 @@ int32_t main (int32_t iArgC, char* pArgV[]) {
if (!strcmp (cmd, "-options")) { if (!strcmp (cmd, "-options")) {
if (i + 1 < iArgC) if (i + 1 < iArgC)
strOptionFile = pArgV[++i]; strOptionFile = pArgV[i++];
else { else {
printf ("options file not specified.\n"); printf ("options file not specified.\n");
return 1; return 1;
} }
} else if (!strcmp (cmd, "-trace")) { } else if (!strcmp (cmd, "-trace")) {
if (i + 1 < iArgC) if (i + 1 < iArgC)
iLevelSetting = atoi (pArgV[++i]); WelsStderrSetTraceLevel (atoi (pArgV[i++]));
else { else {
printf ("trace level not specified.\n"); printf ("trace level not specified.\n");
return 1; return 1;
@@ -418,9 +418,6 @@ int32_t main (int32_t iArgC, char* pArgV[]) {
printf ("Create Decoder failed.\n"); printf ("Create Decoder failed.\n");
return 1; return 1;
} }
if (iLevelSetting >= 0) {
pDecoder->SetOption (DECODER_OPTION_TRACE_LEVEL, &iLevelSetting);
}
if (pDecoder->Initialize (&sDecParam)) { if (pDecoder->Initialize (&sDecParam)) {
printf ("Decoder initialization failed.\n"); printf ("Decoder initialization failed.\n");

View File

@@ -0,0 +1,120 @@
/*!
* \copy
* Copyright (c) 2008-2013, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* read_config.h
*
* Abstract
* Class for reading parameter settings in a configure file.
*
* History
* 08/18/2008 Created
*
*****************************************************************************/
#define _CRT_SECURE_NO_WARNINGS
#include <string.h>
#include <stdio.h>
#include "read_config.h"
CReadConfig::CReadConfig (const char* kpConfigFileName)
: m_pCfgFile (0)
, m_strCfgFileName (kpConfigFileName)
, m_ulLines (0) {
if (strlen (kpConfigFileName) > 0) { // FIXME: To check validation in configure file name
m_pCfgFile = fopen (kpConfigFileName, "r");
}
}
CReadConfig::~CReadConfig() {
if (m_pCfgFile) {
fclose (m_pCfgFile);
m_pCfgFile = NULL;
}
}
long CReadConfig::ReadLine (string* pStr, const int kiValSize/* = 4*/) {
if (m_pCfgFile == NULL || pStr == NULL || kiValSize <= 1)
return 0;
string* strTags = &pStr[0];
int iTagNum = 0, iNum = 0;
bool bCommentFlag = false;
while (iNum < kiValSize) {
pStr[iNum] = "";
++ iNum;
}
do {
const char kChar = (char)fgetc (m_pCfgFile);
if (kChar == '\n' || feof (m_pCfgFile)) {
++ m_ulLines;
break;
}
if (kChar == '#')
bCommentFlag = true;
if (!bCommentFlag) {
if (kChar == '\t' || kChar == ' ') {
if (iTagNum >= kiValSize)
break;
if (! (*strTags).empty()) {
++ iTagNum;
strTags = &pStr[iTagNum];
}
} else
*strTags += kChar;
}
} while (true);
return 1 + iTagNum;
}
const bool CReadConfig::EndOfFile() {
if (m_pCfgFile == NULL)
return true;
return feof (m_pCfgFile) ? true : false;
}
const int CReadConfig::GetLines() {
return m_ulLines;
}
const bool CReadConfig::ExistFile() {
return (m_pCfgFile != NULL);
}
const string& CReadConfig::GetFileName() {
return m_strCfgFileName;
}

View File

@@ -2,6 +2,7 @@ H264DEC_SRCDIR=codec/console/dec
H264DEC_CPP_SRCS=\ H264DEC_CPP_SRCS=\
$(H264DEC_SRCDIR)/src/d3d9_utils.cpp\ $(H264DEC_SRCDIR)/src/d3d9_utils.cpp\
$(H264DEC_SRCDIR)/src/h264dec.cpp\ $(H264DEC_SRCDIR)/src/h264dec.cpp\
$(H264DEC_SRCDIR)/src/read_config.cpp\
H264DEC_OBJS += $(H264DEC_CPP_SRCS:.cpp=.$(OBJ)) H264DEC_OBJS += $(H264DEC_CPP_SRCS:.cpp=.$(OBJ))

View File

@@ -0,0 +1,77 @@
/*!
* \copy
* Copyright (c) 2008-2013, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* read_config.h
*
* Abstract
* Class for reading parameter settings in a configure file.
*
* History
* 08/18/2008 Created
*
*****************************************************************************/
#ifndef READ_CONFIG_H__
#define READ_CONFIG_H__
#include <stdlib.h>
#include <string>
#include "wels_const.h"
using namespace std;
typedef struct tagFilesSet {
string strBsFile;
string strSeqFile; // for cmd lines
string strLayerCfgFile[MAX_DEPENDENCY_LAYER];
char sRecFileName[MAX_DEPENDENCY_LAYER][MAX_FNAME_LEN];
} SFilesSet;
class CReadConfig {
public:
CReadConfig();
CReadConfig (const char* pConfigFileName);
CReadConfig (const string& pConfigFileName);
virtual ~CReadConfig();
void Openf (const char* strFile);
long ReadLine (string* strVal, const int iValSize = 4);
const bool EndOfFile();
const int GetLines();
const bool ExistFile();
const string& GetFileName();
private:
FILE* m_pCfgFile;
string m_strCfgFileName;
unsigned long m_iLines;
};
#endif // READ_CONFIG_H__

View File

@@ -67,11 +67,12 @@
#include "extern.h" #include "extern.h"
#include "macros.h" #include "macros.h"
#include "wels_const.h" #include "wels_const.h"
#include "logging.h"
#include "mt_defs.h" #include "mt_defs.h"
#include "WelsThreadLib.h" #include "WelsThreadLib.h"
#ifdef _WIN32 #ifdef WIN32
#ifdef WINAPI_FAMILY #ifdef WINAPI_FAMILY
#include <winapifamily.h> #include <winapifamily.h>
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
@@ -80,7 +81,7 @@
#else /* defined(WINAPI_FAMILY) */ #else /* defined(WINAPI_FAMILY) */
#define HAVE_PROCESS_AFFINITY #define HAVE_PROCESS_AFFINITY
#endif #endif
#endif /* _WIN32 */ #endif /* WIN32 */
#include <iostream> #include <iostream>
using namespace std; using namespace std;
@@ -94,13 +95,6 @@ typedef struct LayerpEncCtx_s {
SSliceConfig sSliceCfg; SSliceConfig sSliceCfg;
} SLayerPEncCtx; } SLayerPEncCtx;
typedef struct tagFilesSet {
string strBsFile;
string strSeqFile; // for cmd lines
string strLayerCfgFile[MAX_DEPENDENCY_LAYER];
char sRecFileName[MAX_DEPENDENCY_LAYER][MAX_FNAME_LEN];
} SFilesSet;
/* Ctrl-C handler */ /* Ctrl-C handler */
@@ -108,7 +102,7 @@ static int g_iCtrlC = 0;
static void SigIntHandler (int a) { static void SigIntHandler (int a) {
g_iCtrlC = 1; g_iCtrlC = 1;
} }
static int g_LevelSetting = -1; static int g_LevelSetting = 0;
int ParseLayerConfig (CReadConfig& cRdLayerCfg, const int iLayer, SEncParamExt& pSvcParam, SFilesSet& sFileSet) { int ParseLayerConfig (CReadConfig& cRdLayerCfg, const int iLayer, SEncParamExt& pSvcParam, SFilesSet& sFileSet) {
if (!cRdLayerCfg.ExistFile()) { if (!cRdLayerCfg.ExistFile()) {
@@ -123,7 +117,7 @@ int ParseLayerConfig (CReadConfig& cRdLayerCfg, const int iLayer, SEncParamExt&
string strTag[4]; string strTag[4];
string str_ ("SlicesAssign"); string str_ ("SlicesAssign");
const int kiSize = (int)str_.size(); const int kiSize = str_.size();
while (!cRdLayerCfg.EndOfFile()) { while (!cRdLayerCfg.EndOfFile()) {
long iLayerRd = cRdLayerCfg.ReadLine (&strTag[0]); long iLayerRd = cRdLayerCfg.ReadLine (&strTag[0]);
@@ -137,7 +131,7 @@ int ParseLayerConfig (CReadConfig& cRdLayerCfg, const int iLayer, SEncParamExt&
} else if (strTag[0].compare ("FrameRateOut") == 0) { } else if (strTag[0].compare ("FrameRateOut") == 0) {
pDLayer->fFrameRate = (float)atof (strTag[1].c_str()); pDLayer->fFrameRate = (float)atof (strTag[1].c_str());
} else if (strTag[0].compare ("ReconFile") == 0) { } else if (strTag[0].compare ("ReconFile") == 0) {
const unsigned int kiLen = (unsigned int)strTag[1].length(); const unsigned int kiLen = strTag[1].length();
if (kiLen >= sizeof (sFileSet.sRecFileName[iLayer])) if (kiLen >= sizeof (sFileSet.sRecFileName[iLayer]))
return -1; return -1;
sFileSet.sRecFileName[iLayer][kiLen] = '\0'; sFileSet.sRecFileName[iLayer][kiLen] = '\0';
@@ -160,19 +154,6 @@ int ParseLayerConfig (CReadConfig& cRdLayerCfg, const int iLayer, SEncParamExt&
} }
iLeftTargetBitrate -= pDLayer->iSpatialBitrate; iLeftTargetBitrate -= pDLayer->iSpatialBitrate;
} }
} else if (strTag[0].compare ("MaxSpatialBitrate") == 0) {
pDLayer->iMaxSpatialBitrate = 1000 * atoi (strTag[1].c_str());
if (pSvcParam.iRCMode != RC_OFF_MODE) {
if (pDLayer->iMaxSpatialBitrate < 0) {
fprintf (stderr, "Invalid max spatial bitrate(%d) in dependency layer #%d.\n", pDLayer->iMaxSpatialBitrate, iLayer);
return -1;
}
if (pDLayer->iMaxSpatialBitrate > 0 && pDLayer->iMaxSpatialBitrate < pDLayer->iSpatialBitrate) {
fprintf (stderr, "Invalid max spatial(#%d) bitrate(%d) setting::: < layerBitrate(%d)!\n", iLayer,
pDLayer->iMaxSpatialBitrate, pDLayer->iSpatialBitrate);
return -1;
}
}
} else if (strTag[0].compare ("InitialQP") == 0) { } else if (strTag[0].compare ("InitialQP") == 0) {
sLayerCtx.iDLayerQp = atoi (strTag[1].c_str()); sLayerCtx.iDLayerQp = atoi (strTag[1].c_str());
} else if (strTag[0].compare ("SliceMode") == 0) { } else if (strTag[0].compare ("SliceMode") == 0) {
@@ -204,6 +185,8 @@ int ParseConfig (CReadConfig& cRdCfg, SSourcePicture* pSrcPic, SEncParamExt& pSv
int32_t iRet = 0; int32_t iRet = 0;
int8_t iLayerCount = 0; int8_t iLayerCount = 0;
// memset(&pSvcParam, 0, sizeof(WelsSVCParamConfig));
while (!cRdCfg.EndOfFile()) { while (!cRdCfg.EndOfFile()) {
long iRd = cRdCfg.ReadLine (&strTag[0]); long iRd = cRdCfg.ReadLine (&strTag[0]);
if (iRd > 0) { if (iRd > 0) {
@@ -271,12 +254,6 @@ int ParseConfig (CReadConfig& cRdCfg, SSourcePicture* pSrcPic, SEncParamExt& pSv
fprintf (stderr, "Invalid target bitrate setting due to RC enabled. Check TargetBitrate field please!\n"); fprintf (stderr, "Invalid target bitrate setting due to RC enabled. Check TargetBitrate field please!\n");
return 1; return 1;
} }
} else if (strTag[0].compare ("MaxOverallBitrate") == 0) {
pSvcParam.iMaxBitrate = 1000 * atoi (strTag[1].c_str());
if ((pSvcParam.iRCMode != RC_OFF_MODE) && pSvcParam.iMaxBitrate < 0) {
fprintf (stderr, "Invalid max overall bitrate setting due to RC enabled. Check MaxOverallBitrate field please!\n");
return 1;
}
} else if (strTag[0].compare ("EnableDenoise") == 0) { } else if (strTag[0].compare ("EnableDenoise") == 0) {
pSvcParam.bEnableDenoise = atoi (strTag[1].c_str()) ? true : false; pSvcParam.bEnableDenoise = atoi (strTag[1].c_str()) ? true : false;
} else if (strTag[0].compare ("EnableSceneChangeDetection") == 0) { } else if (strTag[0].compare ("EnableSceneChangeDetection") == 0) {
@@ -363,7 +340,6 @@ void PrintHelp() {
printf (" -betaOffset BetaOffset (-6..+6): valid range\n"); printf (" -betaOffset BetaOffset (-6..+6): valid range\n");
printf (" -rc rate control mode: 0-quality mode; 1-bitrate mode; 2-bitrate limited mode; -1-rc off \n"); printf (" -rc rate control mode: 0-quality mode; 1-bitrate mode; 2-bitrate limited mode; -1-rc off \n");
printf (" -tarb Overall target bitrate\n"); printf (" -tarb Overall target bitrate\n");
printf (" -maxbrTotal Overall max bitrate\n");
printf (" -numl Number Of Layers: Must exist with layer_cfg file and the number of input layer_cfg file must equal to the value set by this command\n"); printf (" -numl Number Of Layers: Must exist with layer_cfg file and the number of input layer_cfg file must equal to the value set by this command\n");
printf (" The options below are layer-based: (need to be set with layer id)\n"); printf (" The options below are layer-based: (need to be set with layer id)\n");
printf (" -lconfig (Layer) (spatial layer configure file)\n"); printf (" -lconfig (Layer) (spatial layer configure file)\n");
@@ -373,7 +349,6 @@ void PrintHelp() {
printf (" -frout (Layer) (output frame rate)\n"); printf (" -frout (Layer) (output frame rate)\n");
printf (" -lqp (Layer) (base quality layer qp : must work with -ldeltaqp or -lqparr)\n"); printf (" -lqp (Layer) (base quality layer qp : must work with -ldeltaqp or -lqparr)\n");
printf (" -ltarb (Layer) (spatial layer target bitrate)\n"); printf (" -ltarb (Layer) (spatial layer target bitrate)\n");
printf (" -lmaxb (Layer) (spatial layer max bitrate)\n");
printf (" -slcmd (Layer) (spatial layer slice mode): pls refer to layerX.cfg for details ( -slcnum: set target slice num; -slcsize: set target slice size constraint ) \n"); printf (" -slcmd (Layer) (spatial layer slice mode): pls refer to layerX.cfg for details ( -slcnum: set target slice num; -slcsize: set target slice size constraint ) \n");
printf (" -trace (Level)\n"); printf (" -trace (Level)\n");
printf ("\n"); printf ("\n");
@@ -442,7 +417,7 @@ int ParseCommandLine (int argc, char** argv, SSourcePicture* pSrcPic, SEncParamE
pSvcParam.iLtrMarkPeriod = atoi (argv[n++]); pSvcParam.iLtrMarkPeriod = atoi (argv[n++]);
else if (!strcmp (pCommand, "-threadIdc") && (n < argc)) else if (!strcmp (pCommand, "-threadIdc") && (n < argc))
pSvcParam.iMultipleThreadIdc = atoi (argv[n++]); pSvcParam.iMultipleThreadIdc= atoi (argv[n++]);
else if (!strcmp (pCommand, "-deblockIdc") && (n < argc)) else if (!strcmp (pCommand, "-deblockIdc") && (n < argc))
pSvcParam.iLoopFilterDisableIdc = atoi (argv[n++]); pSvcParam.iLoopFilterDisableIdc = atoi (argv[n++]);
@@ -460,14 +435,12 @@ int ParseCommandLine (int argc, char** argv, SSourcePicture* pSrcPic, SEncParamE
g_LevelSetting = atoi (argv[n++]); g_LevelSetting = atoi (argv[n++]);
else if (!strcmp (pCommand, "-tarb") && (n < argc)) else if (!strcmp (pCommand, "-tarb") && (n < argc))
pSvcParam.iTargetBitrate = 1000 * atoi (argv[n++]); pSvcParam.iTargetBitrate = 1000*atoi (argv[n++]);
else if (!strcmp (pCommand, "-maxbrTotal") && (n < argc))
pSvcParam.iMaxBitrate = 1000 * atoi (argv[n++]);
else if (!strcmp (pCommand, "-numl") && (n < argc)) { else if (!strcmp (pCommand, "-numl") && (n < argc)) {
pSvcParam.iSpatialLayerNum = atoi (argv[n++]); pSvcParam.iSpatialLayerNum = atoi (argv[n++]);
} else if (!strcmp (pCommand, "-lconfig") && (n < argc)) { }
else if (!strcmp (pCommand, "-lconfig") && (n < argc)) {
unsigned int iLayer = atoi (argv[n++]); unsigned int iLayer = atoi (argv[n++]);
sFileSet.strLayerCfgFile[iLayer].assign (argv[n++]); sFileSet.strLayerCfgFile[iLayer].assign (argv[n++]);
CReadConfig cRdLayerCfg (sFileSet.strLayerCfgFile[iLayer]); CReadConfig cRdLayerCfg (sFileSet.strLayerCfgFile[iLayer]);
@@ -476,7 +449,7 @@ int ParseCommandLine (int argc, char** argv, SSourcePicture* pSrcPic, SEncParamE
} }
} else if (!strcmp (pCommand, "-drec") && (n + 1 < argc)) { } else if (!strcmp (pCommand, "-drec") && (n + 1 < argc)) {
unsigned int iLayer = atoi (argv[n++]); unsigned int iLayer = atoi (argv[n++]);
const unsigned int iLen = (int) strlen (argv[n]); const unsigned int iLen = strlen (argv[n]);
if (iLen >= sizeof (sFileSet.sRecFileName[iLayer])) if (iLen >= sizeof (sFileSet.sRecFileName[iLayer]))
return 1; return 1;
sFileSet.sRecFileName[iLayer][iLen] = '\0'; sFileSet.sRecFileName[iLayer][iLen] = '\0';
@@ -512,12 +485,6 @@ int ParseCommandLine (int argc, char** argv, SSourcePicture* pSrcPic, SEncParamE
pDLayer->iSpatialBitrate = 1000 * atoi (argv[n++]); pDLayer->iSpatialBitrate = 1000 * atoi (argv[n++]);
} }
else if (!strcmp (pCommand, "-lmaxb") && (n + 1 < argc)) {
unsigned int iLayer = atoi (argv[n++]);
SSpatialLayerConfig* pDLayer = &pSvcParam.sSpatialLayers[iLayer];
pDLayer->iMaxSpatialBitrate = 1000 * atoi (argv[n++]);
}
else if (!strcmp (pCommand, "-slcmd") && (n + 1 < argc)) { else if (!strcmp (pCommand, "-slcmd") && (n + 1 < argc)) {
unsigned int iLayer = atoi (argv[n++]); unsigned int iLayer = atoi (argv[n++]);
SSpatialLayerConfig* pDLayer = &pSvcParam.sSpatialLayers[iLayer]; SSpatialLayerConfig* pDLayer = &pSvcParam.sSpatialLayers[iLayer];
@@ -571,7 +538,6 @@ int FillSpecificParameters (SEncParamExt& sParam) {
sParam.iPicWidth = 1280; // width of picture in samples sParam.iPicWidth = 1280; // width of picture in samples
sParam.iPicHeight = 720; // height of picture in samples sParam.iPicHeight = 720; // height of picture in samples
sParam.iTargetBitrate = 2500000; // target bitrate desired sParam.iTargetBitrate = 2500000; // target bitrate desired
sParam.iMaxBitrate = MAX_BIT_RATE;
sParam.iRCMode = RC_QUALITY_MODE; // rc mode control sParam.iRCMode = RC_QUALITY_MODE; // rc mode control
sParam.iTemporalLayerNum = 3; // layer number at temporal level sParam.iTemporalLayerNum = 3; // layer number at temporal level
sParam.iSpatialLayerNum = 4; // layer number at spatial level sParam.iSpatialLayerNum = 4; // layer number at spatial level
@@ -581,6 +547,7 @@ int FillSpecificParameters (SEncParamExt& sParam) {
sParam.bEnableFrameSkip = 1; // frame skipping sParam.bEnableFrameSkip = 1; // frame skipping
sParam.bEnableLongTermReference = 0; // long term reference control sParam.bEnableLongTermReference = 0; // long term reference control
sParam.iLtrMarkPeriod = 30; sParam.iLtrMarkPeriod = 30;
sParam.iInputCsp = videoFormatI420; // color space of input sequence sParam.iInputCsp = videoFormatI420; // color space of input sequence
sParam.uiIntraPeriod = 320; // period of Intra frame sParam.uiIntraPeriod = 320; // period of Intra frame
sParam.bEnableSpsPpsIdAddition = 1; sParam.bEnableSpsPpsIdAddition = 1;
@@ -592,7 +559,6 @@ int FillSpecificParameters (SEncParamExt& sParam) {
sParam.sSpatialLayers[iIndexLayer].iVideoHeight = 90; sParam.sSpatialLayers[iIndexLayer].iVideoHeight = 90;
sParam.sSpatialLayers[iIndexLayer].fFrameRate = 7.5f; sParam.sSpatialLayers[iIndexLayer].fFrameRate = 7.5f;
sParam.sSpatialLayers[iIndexLayer].iSpatialBitrate = 64000; sParam.sSpatialLayers[iIndexLayer].iSpatialBitrate = 64000;
sParam.sSpatialLayers[iIndexLayer].iMaxSpatialBitrate = MAX_BIT_RATE;
sParam.sSpatialLayers[iIndexLayer].sSliceCfg.uiSliceMode = SM_SINGLE_SLICE; sParam.sSpatialLayers[iIndexLayer].sSliceCfg.uiSliceMode = SM_SINGLE_SLICE;
++ iIndexLayer; ++ iIndexLayer;
@@ -601,7 +567,6 @@ int FillSpecificParameters (SEncParamExt& sParam) {
sParam.sSpatialLayers[iIndexLayer].iVideoHeight = 180; sParam.sSpatialLayers[iIndexLayer].iVideoHeight = 180;
sParam.sSpatialLayers[iIndexLayer].fFrameRate = 15.0f; sParam.sSpatialLayers[iIndexLayer].fFrameRate = 15.0f;
sParam.sSpatialLayers[iIndexLayer].iSpatialBitrate = 160000; sParam.sSpatialLayers[iIndexLayer].iSpatialBitrate = 160000;
sParam.sSpatialLayers[iIndexLayer].iMaxSpatialBitrate = MAX_BIT_RATE;
sParam.sSpatialLayers[iIndexLayer].sSliceCfg.uiSliceMode = SM_SINGLE_SLICE; sParam.sSpatialLayers[iIndexLayer].sSliceCfg.uiSliceMode = SM_SINGLE_SLICE;
++ iIndexLayer; ++ iIndexLayer;
@@ -610,7 +575,6 @@ int FillSpecificParameters (SEncParamExt& sParam) {
sParam.sSpatialLayers[iIndexLayer].iVideoHeight = 360; sParam.sSpatialLayers[iIndexLayer].iVideoHeight = 360;
sParam.sSpatialLayers[iIndexLayer].fFrameRate = 30.0f; sParam.sSpatialLayers[iIndexLayer].fFrameRate = 30.0f;
sParam.sSpatialLayers[iIndexLayer].iSpatialBitrate = 512000; sParam.sSpatialLayers[iIndexLayer].iSpatialBitrate = 512000;
sParam.sSpatialLayers[iIndexLayer].iMaxSpatialBitrate = MAX_BIT_RATE;
sParam.sSpatialLayers[iIndexLayer].sSliceCfg.uiSliceMode = SM_SINGLE_SLICE; sParam.sSpatialLayers[iIndexLayer].sSliceCfg.uiSliceMode = SM_SINGLE_SLICE;
sParam.sSpatialLayers[iIndexLayer].sSliceCfg.sSliceArgument.uiSliceNum = 1; sParam.sSpatialLayers[iIndexLayer].sSliceCfg.sSliceArgument.uiSliceNum = 1;
@@ -620,7 +584,6 @@ int FillSpecificParameters (SEncParamExt& sParam) {
sParam.sSpatialLayers[iIndexLayer].iVideoHeight = 720; sParam.sSpatialLayers[iIndexLayer].iVideoHeight = 720;
sParam.sSpatialLayers[iIndexLayer].fFrameRate = 30.0f; sParam.sSpatialLayers[iIndexLayer].fFrameRate = 30.0f;
sParam.sSpatialLayers[iIndexLayer].iSpatialBitrate = 1500000; sParam.sSpatialLayers[iIndexLayer].iSpatialBitrate = 1500000;
sParam.sSpatialLayers[iIndexLayer].iMaxSpatialBitrate = MAX_BIT_RATE;
sParam.sSpatialLayers[iIndexLayer].sSliceCfg.uiSliceMode = SM_SINGLE_SLICE; sParam.sSpatialLayers[iIndexLayer].sSliceCfg.uiSliceMode = SM_SINGLE_SLICE;
sParam.sSpatialLayers[iIndexLayer].sSliceCfg.sSliceArgument.uiSliceNum = 1; sParam.sSpatialLayers[iIndexLayer].sSliceCfg.sSliceArgument.uiSliceNum = 1;
@@ -634,7 +597,7 @@ int FillSpecificParameters (SEncParamExt& sParam) {
return 0; return 0;
} }
int ProcessEncoding (ISVCEncoder* pPtrEnc, int argc, char** argv, bool bConfigFile) { int ProcessEncoding(ISVCEncoder* pPtrEnc, int argc, char** argv,bool bConfigFile) {
int iRet = 0; int iRet = 0;
if (pPtrEnc == NULL) if (pPtrEnc == NULL)
@@ -667,7 +630,7 @@ int ProcessEncoding (ISVCEncoder* pPtrEnc, int argc, char** argv, bool bConfigFi
int iParsedNum = 1; int iParsedNum = 1;
memset (&sFbi, 0, sizeof (SFrameBSInfo)); memset (&sFbi, 0, sizeof (SFrameBSInfo));
pPtrEnc->GetDefaultParams (&sSvcParam); memset (&sSvcParam, 0, sizeof (SEncParamExt));
memset (&fs.sRecFileName[0][0], 0, sizeof (fs.sRecFileName)); memset (&fs.sRecFileName[0][0], 0, sizeof (fs.sRecFileName));
FillSpecificParameters (sSvcParam); FillSpecificParameters (sSvcParam);
@@ -681,7 +644,7 @@ int ProcessEncoding (ISVCEncoder* pPtrEnc, int argc, char** argv, bool bConfigFi
pSrcPic->uiTimeStamp = 0; pSrcPic->uiTimeStamp = 0;
// if configure file exit, reading configure file firstly // if configure file exit, reading configure file firstly
if (bConfigFile) { if(bConfigFile){
iParsedNum = 2; iParsedNum = 2;
cRdCfg.Openf (argv[1]); cRdCfg.Openf (argv[1]);
if (!cRdCfg.ExistFile()) { if (!cRdCfg.ExistFile()) {
@@ -702,9 +665,6 @@ int ProcessEncoding (ISVCEncoder* pPtrEnc, int argc, char** argv, bool bConfigFi
iRet = 1; iRet = 1;
goto INSIDE_MEM_FREE; goto INSIDE_MEM_FREE;
} }
if (g_LevelSetting >= 0) {
pPtrEnc->SetOption (ENCODER_OPTION_TRACE_LEVEL, &g_LevelSetting);
}
//finish reading the configurations //finish reading the configurations
iSourceWidth = pSrcPic->iPicWidth; iSourceWidth = pSrcPic->iPicWidth;
iSourceHeight = pSrcPic->iPicHeight; iSourceHeight = pSrcPic->iPicHeight;
@@ -809,7 +769,7 @@ int ProcessEncoding (ISVCEncoder* pPtrEnc, int argc, char** argv, bool bConfigFi
iTotal += WelsTime() - iStart; iTotal += WelsTime() - iStart;
// fixed issue in case dismatch source picture introduced by frame skipped, 1/12/2010 // fixed issue in case dismatch source picture introduced by frame skipped, 1/12/2010
if (videoFrameTypeSkip == sFbi.eFrameType) { if (videoFrameTypeSkip == sFbi.eOutputFrameType) {
continue; continue;
} }
@@ -822,7 +782,7 @@ int ProcessEncoding (ISVCEncoder* pPtrEnc, int argc, char** argv, bool bConfigFi
int iLayerSize = 0; int iLayerSize = 0;
int iNalIdx = pLayerBsInfo->iNalCount - 1; int iNalIdx = pLayerBsInfo->iNalCount - 1;
do { do {
iLayerSize += pLayerBsInfo->pNalLengthInByte[iNalIdx]; iLayerSize += pLayerBsInfo->iNalLengthInByte[iNalIdx];
-- iNalIdx; -- iNalIdx;
} while (iNalIdx >= 0); } while (iNalIdx >= 0);
#if defined(COMPARE_DATA) #if defined(COMPARE_DATA)
@@ -926,8 +886,8 @@ void LockToSingleCore() {
return ; return ;
} }
int32_t CreateSVCEncHandle (ISVCEncoder** ppEncoder) { long CreateSVCEncHandle (ISVCEncoder** ppEncoder) {
int32_t ret = 0; long ret = 0;
ret = WelsCreateSVCEncoder (ppEncoder); ret = WelsCreateSVCEncoder (ppEncoder);
return ret; return ret;
} }
@@ -973,7 +933,7 @@ int main (int argc, char** argv)
} else { } else {
if (!strstr (argv[1], ".cfg")) { // check configuration type (like .cfg?) if (!strstr (argv[1], ".cfg")) { // check configuration type (like .cfg?)
if (argc > 2) { if (argc > 2) {
iRet = ProcessEncoding (pSVCEncoder, argc, argv, false); iRet = ProcessEncoding(pSVCEncoder, argc, argv,false);
if (iRet != 0) if (iRet != 0)
goto exit; goto exit;
} else if (argc == 2 && ! strcmp (argv[1], "-h")) } else if (argc == 2 && ! strcmp (argv[1], "-h"))
@@ -983,7 +943,7 @@ int main (int argc, char** argv)
goto exit; goto exit;
} }
} else { } else {
iRet = ProcessEncoding (pSVCEncoder, argc, argv, true); iRet = ProcessEncoding(pSVCEncoder, argc, argv,true);
if (iRet > 0) if (iRet > 0)
goto exit; goto exit;
} }

View File

@@ -1,5 +1,6 @@
H264ENC_SRCDIR=codec/console/enc H264ENC_SRCDIR=codec/console/enc
H264ENC_CPP_SRCS=\ H264ENC_CPP_SRCS=\
$(H264ENC_SRCDIR)/src/read_config.cpp\
$(H264ENC_SRCDIR)/src/welsenc.cpp\ $(H264ENC_SRCDIR)/src/welsenc.cpp\
H264ENC_OBJS += $(H264ENC_CPP_SRCS:.cpp=.$(OBJ)) H264ENC_OBJS += $(H264ENC_CPP_SRCS:.cpp=.$(OBJ))

View File

@@ -99,16 +99,20 @@
// } // }
.endm .endm
#endif #endif
// r0 int8_t* non_zero_count, // r0 int16_t* block,
// r1 int8_t* non_zero_count,
WELS_ASM_FUNC_BEGIN SetNonZeroCount_neon WELS_ASM_FUNC_BEGIN SetNonZeroCount_neon
vld1.64 {d0-d2}, [r0]
vld1.64 {d0-d2}, [r1]
vceq.s8 q0, q0, #0 vceq.s8 q0, q0, #0
vceq.s8 d2, d2, #0 vceq.s8 d2, d2, #0
vmvn q0, q0 vmvn q0, q0
vmvn d2, d2 vmvn d2, d2
vabs.s8 q0, q0 vabs.s8 q0, q0
vabs.s8 d2, d2 vabs.s8 d2, d2
vst1.64 {d0-d2}, [r0]
vst1.64 {d0-d2}, [r1]
WELS_ASM_FUNC_END WELS_ASM_FUNC_END

View File

@@ -1,525 +0,0 @@
/*!
* \copy
* Copyright (c) 2013, Cisco Systems
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifdef HAVE_NEON_AARCH64
.text
#include "arm_arch64_common_macro.S"
// for Luma 4x4
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI4x4LumaPredH_AArch64_neon
sxtw x1, w1
sub x2, x0, #1
.rept 4
ld1r {v0.8b}, [x2], x1
st1 {v0.S}[0], [x0], x1
.endr
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI4x4LumaPredDc_AArch64_neon
sxtw x1, w1
sub x2, x0, x1
sub x3, x0, #1
ldr s0, [x2]
ld1 {v0.b}[4], [x3], x1
ld1 {v0.b}[5], [x3], x1
ld1 {v0.b}[6], [x3], x1
ld1 {v0.b}[7], [x3]
uaddlv h0, v0.8b
uqrshrn b0, h0, #3
dup v0.8b, v0.b[0]
.rept 4
st1 {v0.S}[0], [x0], x1
.endr
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI4x4LumaPredDcTop_AArch64_neon
sxtw x1, w1
sub x2, x0, x1
sub v0.8b, v0.8b, v0.8b
ldr s0, [x2]
uaddlv h0, v0.8b
uqrshrn v0.8b, v0.8h, #2
dup v0.8b, v0.b[0]
.rept 4
st1 {v0.S}[0], [x0], x1
.endr
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI4x4LumaPredDDL_AArch64_neon
sxtw x1, w1
sub x2, x0, x1
ld1 {v0.8b}, [x2]
dup v1.8b, v0.b[7]
ext v2.8b, v0.8b, v1.8b, #1
ext v3.8b, v0.8b, v1.8b, #2
ushll v2.8h, v2.8b, #1
uaddl v1.8h, v3.8b, v0.8b
add v1.8h, v1.8h, v2.8h
uqrshrn v1.8b, v1.8h, #2
st1 {v1.S}[0], [x0], x1
ext v0.8b, v1.8b, v2.8b, #1
st1 {v0.S}[0], [x0], x1
ext v0.8b, v1.8b, v2.8b, #2
st1 {v0.S}[0], [x0], x1
ext v0.8b, v1.8b, v2.8b, #3
st1 {v0.S}[0], [x0]
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI4x4LumaPredDDLTop_AArch64_neon
sxtw x1, w1
sub x2, x0, x1
ld1 {v0.8b}, [x2]
dup v1.8b, v0.b[3]
mov v0.S[1], v1.S[0]
ext v2.8b, v0.8b, v1.8b, #1
ext v3.8b, v0.8b, v1.8b, #2
ushll v2.8h, v2.8b, #1
uaddl v1.8h, v3.8b, v0.8b
add v1.8h, v1.8h, v2.8h
uqrshrn v1.8b, v1.8h, #2
st1 {v1.S}[0], [x0], x1
ext v0.8b, v1.8b, v2.8b, #1
st1 {v0.S}[0], [x0], x1
ext v0.8b, v1.8b, v2.8b, #2
st1 {v0.S}[0], [x0], x1
ext v0.8b, v1.8b, v2.8b, #3
st1 {v0.S}[0], [x0]
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI4x4LumaPredVL_AArch64_neon
sxtw x1, w1
sub x2, x0, x1
ld1 {v0.8b}, [x2]
ext v1.8b, v0.8b, v0.8b, #1
uaddl v1.8h, v1.8b, v0.8b
uqrshrn v0.8b, v1.8h, #1 // v0.8b is VL0, VL1, VL2, VL3, VL4, ...
ext v2.16b, v1.16b, v1.16b, #2
add v1.8h, v2.8h, v1.8h
uqrshrn v1.8b, v1.8h, #2 // v1.8b is VL5, VL6, VL7, VL8, VL9
st1 {v0.s}[0], [x0], x1 // write the first row
st1 {v1.s}[0], [x0], x1 // write the second row
ext v3.8b, v0.8b, v0.8b, #1
ext v2.8b, v1.8b, v1.8b, #1
st1 {v3.s}[0], [x0], x1 // write the third row
st1 {v2.s}[0], [x0] // write the fourth row
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI4x4LumaPredVLTop_AArch64_neon
sxtw x1, w1
sub x2, x0, x1
ld1 {v0.8b}, [x2]
dup v1.8b, v0.b[3]
mov v0.s[1], v1.s[0]
ext v1.8b, v0.8b, v0.8b, #1
uaddl v1.8h, v1.8b, v0.8b
uqrshrn v0.8b, v1.8h, #1 // v0.8b is VL0, VL1, VL2, VL3, VL4, ...
ext v2.16b, v1.16b, v1.16b, #2
add v1.8h, v2.8h, v1.8h
uqrshrn v1.8b, v1.8h, #2 // v1.8b is VL5, VL6, VL7, VL8, VL9
st1 {v0.s}[0], [x0], x1 // write the first row
st1 {v1.s}[0], [x0], x1 // write the second row
ext v3.8b, v0.8b, v0.8b, #1
ext v2.8b, v1.8b, v1.8b, #1
st1 {v3.s}[0], [x0], x1 // write the third row
st1 {v2.s}[0], [x0] // write the fourth row
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI4x4LumaPredVR_AArch64_neon
sxtw x1, w1
sub x2, x0, x1
ld1 {v0.s}[1], [x2]
sub x2, x2, #1
ld1 {v0.b}[3], [x2], x1
ld1 {v0.b}[2], [x2], x1
ld1 {v0.b}[1], [x2], x1
ld1 {v0.b}[0], [x2] // v0.8b l2, l1, l0, lt, t0, t1, t2, t3
ext v1.8b, v0.8b, v0.8b, #7
uaddl v2.8h, v1.8b, v0.8b //v2:{X,L2+L1,L1+L0,L0+LT,LT+T0,T0+T1,T1+T2,T2+T3}
ext v1.16b, v2.16b, v2.16b, #14
add v3.8h, v2.8h, v1.8h //v3:{X,L2+L1+L1+L0,L1+L0+L0+LT,...T1+T2+T2+T3}
uqrshrn v3.8b, v3.8h, #2
uqrshrn v2.8b, v2.8h, #1
st1 {v2.s}[1], [x0], x1
st1 {v3.s}[1], [x0], x1
ext v2.8b, v2.8b, v2.8b, #7
ins v2.b[4], v3.b[3]
st1 {v2.s}[1], [x0], x1
ext v3.8b, v3.8b, v3.8b, #7
ins v3.b[4], v3.b[3]
st1 {v3.s}[1], [x0], x1
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI4x4LumaPredHU_AArch64_neon
sxtw x1, w1
sub x2, x0, #1
mov x3, #3
mul x3, x3, x1
add x3, x3, x2
ld1r {v0.8b}, [x3]
ld1 {v0.b}[4], [x2], x1
ld1 {v0.b}[5], [x2], x1
ld1 {v0.b}[6], [x2], x1 //d0:{L3,L3,L3,L3,L0,L1,L2,L3}
ext v1.8b, v0.8b, v0.8b, #1
uaddl v2.8h, v0.8b, v1.8b //v2:{L3+L3,L3+L3,L3+L3,L3+L0,L0+L1,L1+L2,L2+L3,L3+L3}
ext v3.16b, v2.16b, v2.16b, #2
add v3.8h, v3.8h, v2.8h //v2:{x, HU1, HU3, HU5, x}
uqrshrn v2.8b, v2.8h, #1 // HU0, HU2, HU4
uqrshrn v3.8b, v3.8h, #2 // HU1, HU3, HU5
zip2 v3.8b, v2.8b, v3.8b // HU0, HU1, HU2, HU3, HU4, HU5
mov v3.h[3], v0.h[0] // v0.8b is hu0, hu1, hu2, hu3, hu4, hu5, l3, l3
ext v2.8b, v3.8b, v0.8b, #2
st1 {v3.s}[0], [x0], x1
st1 {v2.s}[0], [x0], x1
st1 {v3.s}[1], [x0], x1
st1 {v0.s}[0], [x0]
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI4x4LumaPredHD_AArch64_neon
sxtw x1, w1
sub x2, x0, #1
sub x2, x2, x1 // x2 points to top left
ld1 {v0.s}[1], [x2], x1
ld1 {v0.b}[3], [x2], x1
ld1 {v0.b}[2], [x2], x1
ld1 {v0.b}[1], [x2], x1
ld1 {v0.b}[0], [x2] // v0.8b: l3, l2, l1, l0, lt, t0, t1, t2
ext v1.8b, v0.8b, v0.8b, #1 // v1.8b: l2, l1, l0, lt, t0, t1, t2, l3
uaddl v2.8h, v0.8b, v1.8b
ext v3.16b, v2.16b, v2.16b, #2
add v3.8h, v3.8h, v2.8h
uqrshrn v2.8b, v2.8h, #1 // hd8, hd6, hd4, hd0, xxx
uqrshrn v3.8b, v3.8h, #2 // hd9, hd7, hd5, hd1, hd2, hd3
zip1 v2.8b, v2.8b, v3.8b // hd8, hd9, hd6, hd7, hd4, hd5, hd0, hd1
mov v1.h[0], v3.h[2]
ext v3.8b, v2.8b, v1.8b, #6
st1 {v3.s}[0], [x0], x1
st1 {v2.s}[1], [x0], x1
ext v3.8b, v2.8b, v1.8b, #2
st1 {v3.s}[0], [x0], x1
st1 {v2.s}[0], [x0]
WELS_ASM_AARCH64_FUNC_END
// for Chroma 8x8
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderIChromaPredV_AArch64_neon
sxtw x1, w1
sub x2, x0, x1
ld1 {v0.8b}, [x2]
.rept 8
st1 {v0.8b}, [x0], x1
.endr
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderIChromaPredH_AArch64_neon
sxtw x1, w1
sub x2, x0, #1
.rept 8
ld1r {v0.8b}, [x2], x1
st1 {v0.8b}, [x0], x1
.endr
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderIChromaPredDc_AArch64_neon
sxtw x1, w1
sub x2, x0, x1
sub x3, x0, #1
ld1 {v0.8b}, [x2]
ld1 {v0.b}[8], [x3], x1
ld1 {v0.b}[9], [x3], x1
ld1 {v0.b}[10], [x3], x1
ld1 {v0.b}[11], [x3], x1
ld1 {v0.b}[12], [x3], x1
ld1 {v0.b}[13], [x3], x1
ld1 {v0.b}[14], [x3], x1
ld1 {v0.b}[15], [x3]
uaddlp v1.8h, v0.16b
uaddlp v2.4s, v1.8h
ins v3.d[0], v2.d[1]
add v3.2s, v2.2s, v3.2s
urshr v2.4s, v2.4s, #2
urshr v3.2s, v3.2s, #3
dup v0.8b, v3.b[0]
dup v1.8b, v2.b[4]
dup v2.8b, v2.b[12]
dup v3.8b, v3.b[4]
ins v0.s[1], v1.s[0]
ins v2.s[1], v3.s[0]
.rept 4
st1 {v0.8b}, [x0], x1
.endr
.rept 4
st1 {v2.8b}, [x0], x1
.endr
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderIChromaPredDcTop_AArch64_neon
sxtw x1, w1
sub x2, x0, x1
ld1 {v0.8b}, [x2]
uaddlp v0.4h, v0.8b
addp v0.8h, v0.8h, v0.8h
dup v1.8h, v0.h[0]
dup v2.8h, v0.h[1]
mov v1.D[1], v2.D[0]
uqrshrn v1.8b, v1.8h, #2
.rept 8
st1 {v1.8b}, [x0], x1
.endr
WELS_ASM_AARCH64_FUNC_END
.align 16
intra_1_to_4: .short 17*1, 17*2, 17*3, 17*4, 17*1, 17*2, 17*3, 17*4
intra_m3_to_p4: .short -3, -2, -1, 0, 1, 2, 3, 4
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderIChromaPredPlane_AArch64_neon
sxtw x1, w1
sub x2, x0, x1
sub x2, x2, #1
mov x3, x2
// load pTop[2-i] and pLeft[(2-i)*kiStride]
ld1 {v1.b}[3], [x2], #1
ld1 {v1.b}[2], [x2], #1
ld1 {v1.b}[1], [x2], #1
ld1 {v1.b}[0], [x2], #1
ld1 {v1.b}[7], [x3], x1
ld1 {v1.b}[6], [x3], x1
ld1 {v1.b}[5], [x3], x1
ld1 {v1.b}[4], [x3], x1
add x2, x2, #1
add x3, x3, x1
// load pTop[4+i] and pLeft[(4+i)*kiStride]
ld1 {v0.b}[0], [x2], #1
ld1 {v0.b}[1], [x2], #1
ld1 {v0.b}[2], [x2], #1
ld1 {v0.b}[3], [x2], #1
ld1 {v0.b}[4], [x3], x1
ld1 {v0.b}[5], [x3], x1
ld1 {v0.b}[6], [x3], x1
ld1 {v0.b}[7], [x3], x1
uxtl v1.8h, v1.8b
uxtl v0.8h, v0.8b
ldr q2, intra_1_to_4
ldr q3, intra_m3_to_p4
dup v4.8h, v0.h[3]
dup v5.8h, v0.h[7]
add v4.8h, v4.8h, v5.8h
sub v0.8h, v0.8h, v1.8h
shl v4.8h, v4.8h, #4 // v4.8h is a
mul v0.8h, v0.8h, v2.8h // v0.h[0-3] is H, v0.h[4-7] is V
saddlp v0.4s, v0.8h
addp v0.4s, v0.4s, v0.4s // v0.s[0] is H, v0.s[1] is V
sqrshrn v0.4h, v0.4s, #5
dup v1.8h, v0.h[0] // v1.8h is b
dup v0.8h, v0.h[1] // v0.8h is c
mla v4.8h, v1.8h, v3.8h
mla v4.8h, v0.8h, v3.h[0]
sqrshrun v1.8b, v4.8h, #5
st1 {v1.8b}, [x0], x1
.rept 7
add v4.8h, v4.8h, v0.8h
sqrshrun v1.8b, v4.8h, #5
st1 {v1.8b}, [x0], x1
.endr
WELS_ASM_AARCH64_FUNC_END
//for Luma 16x16
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI16x16LumaPredV_AArch64_neon
sxtw x1, w1
sub x2, x0, x1
ld1 {v0.16b}, [x2]
.rept 16
st1 {v0.16b}, [x0], x1
.endr
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI16x16LumaPredH_AArch64_neon
sxtw x1, w1
sub x2, x0, #1
.rept 16
ld1r {v0.16b}, [x2], x1
st1 {v0.16b}, [x0], x1
.endr
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI16x16LumaPredDc_AArch64_neon
sxtw x1, w1
sub x2, x0, x1
sub x3, x0, #1
ld1 {v0.16b}, [x2]
ld1 {v1.b}[0], [x3], x1
ld1 {v1.b}[1], [x3], x1
ld1 {v1.b}[2], [x3], x1
ld1 {v1.b}[3], [x3], x1
ld1 {v1.b}[4], [x3], x1
ld1 {v1.b}[5], [x3], x1
ld1 {v1.b}[6], [x3], x1
ld1 {v1.b}[7], [x3], x1
ld1 {v1.b}[8], [x3], x1
ld1 {v1.b}[9], [x3], x1
ld1 {v1.b}[10], [x3], x1
ld1 {v1.b}[11], [x3], x1
ld1 {v1.b}[12], [x3], x1
ld1 {v1.b}[13], [x3], x1
ld1 {v1.b}[14], [x3], x1
ld1 {v1.b}[15], [x3]
// reduce instruction
uaddlv h0, v0.16b
uaddlv h1, v1.16b
add v0.8h, v0.8h, v1.8h
uqrshrn b0, h0, #5
dup v0.16b, v0.b[0]
.rept 16
st1 {v0.16b}, [x0], x1
.endr
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI16x16LumaPredDcTop_AArch64_neon
sxtw x1, w1
sub x2, x0, x1
ld1 {v0.16b}, [x2]
// reduce instruction
uaddlv h0, v0.16b
uqrshrn v0.8b, v0.8h, 4
dup v0.16b, v0.b[0]
.rept 16
st1 {v0.16b}, [x0], x1
.endr
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI16x16LumaPredDcLeft_AArch64_neon
sxtw x1, w1
sub x3, x0, #1
ld1 {v1.b}[0], [x3], x1
ld1 {v1.b}[1], [x3], x1
ld1 {v1.b}[2], [x3], x1
ld1 {v1.b}[3], [x3], x1
ld1 {v1.b}[4], [x3], x1
ld1 {v1.b}[5], [x3], x1
ld1 {v1.b}[6], [x3], x1
ld1 {v1.b}[7], [x3], x1
ld1 {v1.b}[8], [x3], x1
ld1 {v1.b}[9], [x3], x1
ld1 {v1.b}[10], [x3], x1
ld1 {v1.b}[11], [x3], x1
ld1 {v1.b}[12], [x3], x1
ld1 {v1.b}[13], [x3], x1
ld1 {v1.b}[14], [x3], x1
ld1 {v1.b}[15], [x3]
// reduce instruction
uaddlv h1, v1.16b
uqrshrn v0.8b, v1.8h, #4
dup v0.16b, v0.b[0]
.rept 16
st1 {v0.16b}, [x0], x1
.endr
WELS_ASM_AARCH64_FUNC_END
.align 16
intra_1_to_8: .short 5, 10, 15, 20, 25, 30, 35, 40
intra_m7_to_p8: .short -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8
WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI16x16LumaPredPlane_AArch64_neon
sxtw x1, w1
sub x2, x0, x1
sub x2, x2, #1
mov x3, x2
ld1 {v0.8b}, [x3] // v0 low 8 bit in top(reverse order)
add x3, x3, #9
rev64 v0.8b, v0.8b // reverse v0
ld1 {v1.8b}, [x3] // v1 high 8 bit in top
uxtl v0.8h, v0.8b // extend to 16 bit integer
uxtl v1.8h, v1.8b // extend to 16 bit integer
ld1 {v2.b}[7], [x2], x1
ld1 {v2.b}[6], [x2], x1
ld1 {v2.b}[5], [x2], x1
ld1 {v2.b}[4], [x2], x1
ld1 {v2.b}[3], [x2], x1
ld1 {v2.b}[2], [x2], x1
ld1 {v2.b}[1], [x2], x1
ld1 {v2.b}[0], [x2], x1 // v2.8b low 8 bit in left
add x2, x2, x1
ld1 {v3.b}[0], [x2], x1
ld1 {v3.b}[1], [x2], x1
ld1 {v3.b}[2], [x2], x1
ld1 {v3.b}[3], [x2], x1
ld1 {v3.b}[4], [x2], x1
ld1 {v3.b}[5], [x2], x1
ld1 {v3.b}[6], [x2], x1
ld1 {v3.b}[7], [x2] // v3.8b high 8bit in left
uxtl v2.8h, v2.8b
uxtl v3.8h, v3.8b
sub v0.8h, v1.8h, v0.8h
sub v2.8h, v3.8h, v2.8h
ldr q4, intra_1_to_8
mul v0.8h, v0.8h, v4.8h
mul v2.8h, v2.8h, v4.8h
saddlv s0, v0.8h
saddlv s2, v2.8h
add v1.8h, v1.8h, v3.8h
sqrshrn v0.4h, v0.4S, #6 // b is in v0.h[0]
sqrshrn v2.4h, v2.4S, #6 // c is in v2.h[0]
shl v1.8h, v1.8h, #4 // a is in v1.h[7]
ldr q4, intra_m7_to_p8
ldr q5, intra_m7_to_p8 + 16
dup v1.8h, v1.h[7]
dup v3.8h, v1.h[7]
mla v1.8h, v4.8h, v0.h[0]
mla v3.8h, v5.8h, v0.h[0]
dup v2.8h, v2.h[0] // v2.8h is [cccccccc]
mla v1.8h, v2.8h, v4.h[0]
mla v3.8h, v2.8h, v4.h[0]
sqrshrun v4.8b, v1.8h, #5
sqrshrun2 v4.16b, v3.8h, #5
st1 {v4.16b}, [x0], x1
.rept 15
add v1.8h, v1.8h, v2.8h
add v3.8h, v3.8h, v2.8h
sqrshrun v4.8b, v1.8h, #5
sqrshrun2 v4.16b, v3.8h, #5
st1 {v4.16b}, [x0], x1
.endr
WELS_ASM_AARCH64_FUNC_END
#endif

View File

@@ -38,5 +38,6 @@
*/ */
#ifndef WELS_AS264_COMMON_H__ #ifndef WELS_AS264_COMMON_H__
#define WELS_AS264_COMMON_H__ #define WELS_AS264_COMMON_H__
#define NO_WAITING_AU //slice level decoding
#define LONG_TERM_REF //for app #define LONG_TERM_REF //for app
#endif // WELS_AS264_COMMON_H__ #endif // WELS_AS264_COMMON_H__

View File

@@ -46,7 +46,7 @@ typedef struct TagBitStringAux {
uint8_t* pEndBuf; // buffer + length uint8_t* pEndBuf; // buffer + length
int32_t iBits; // count bits of overall bitstreaming input int32_t iBits; // count bits of overall bitstreaming input
intX_t iIndex; //only for cavlc usage int32_t iIndex; //only for cavlc usage
uint8_t* pCurBuf; // current reading position uint8_t* pCurBuf; // current reading position
uint32_t uiCurBits; uint32_t uiCurBits;
int32_t iLeftBits; // count number of available bits left ([1, 8]), int32_t iLeftBits; // count number of available bits left ([1, 8]),

View File

@@ -75,11 +75,11 @@ namespace WelsDec {
} }
static inline int32_t BsGetBits (PBitStringAux pBs, int32_t iNumBits, uint32_t* pCode) { static inline int32_t BsGetBits (PBitStringAux pBs, int32_t iNumBits, uint32_t* pCode) {
intX_t iRc = UBITS (pBs->uiCurBits, iNumBits); int32_t iRc = UBITS (pBs->uiCurBits, iNumBits);
intX_t iAllowedBytes = pBs->pEndBuf - pBs->pStartBuf; //actual stream bytes int32_t iAllowedBytes = pBs->pEndBuf - pBs->pStartBuf; //actual stream bytes
intX_t iReadBytes = pBs->pCurBuf - pBs->pStartBuf; int32_t iReadBytes = pBs->pCurBuf - pBs->pStartBuf;
DUMP_BITS (pBs->uiCurBits, pBs->pCurBuf, pBs->iLeftBits, iNumBits, iAllowedBytes, iReadBytes); DUMP_BITS (pBs->uiCurBits, pBs->pCurBuf, pBs->iLeftBits, iNumBits, iAllowedBytes, iReadBytes);
*pCode = (uint32_t)iRc; *pCode = iRc;
return ERR_NONE; return ERR_NONE;
} }
@@ -155,7 +155,7 @@ static inline int32_t GetLeadingZeroBits (uint32_t iCurBits) { //<=32 bits
static inline uint32_t BsGetUe (PBitStringAux pBs, uint32_t* pCode) { static inline uint32_t BsGetUe (PBitStringAux pBs, uint32_t* pCode) {
uint32_t iValue = 0; uint32_t iValue = 0;
int32_t iLeadingZeroBits = GetLeadingZeroBits (pBs->uiCurBits); int32_t iLeadingZeroBits = GetLeadingZeroBits (pBs->uiCurBits);
intX_t iAllowedBytes, iReadBytes; int32_t iAllowedBytes, iReadBytes;
iAllowedBytes = pBs->pEndBuf - pBs->pStartBuf; //actual stream bytes iAllowedBytes = pBs->pEndBuf - pBs->pStartBuf; //actual stream bytes
if (iLeadingZeroBits == -1) { //bistream error if (iLeadingZeroBits == -1) { //bistream error
@@ -233,21 +233,21 @@ static inline int32_t BsGetTrailingBits (uint8_t* pBuf) {
//define macros to check syntax elements //define macros to check syntax elements
#define WELS_CHECK_SE_BOTH_ERROR(val, lower_bound, upper_bound, syntax_name, ret_code) do {\ #define WELS_CHECK_SE_BOTH_ERROR(val, lower_bound, upper_bound, syntax_name, ret_code) do {\
if ((val < lower_bound) || (val > upper_bound)) {\ if ((val < lower_bound) || (val > upper_bound)) {\
WelsLog(&(pCtx->sLogCtx), WELS_LOG_ERROR, "invalid syntax " syntax_name " %d\n", val);\ WelsLog(pCtx, WELS_LOG_ERROR, "invalid syntax " syntax_name " %d\n", val);\
return ret_code;\ return ret_code;\
}\ }\
}while(0) }while(0)
#define WELS_CHECK_SE_LOWER_ERROR(val, lower_bound, syntax_name, ret_code) do {\ #define WELS_CHECK_SE_LOWER_ERROR(val, lower_bound, syntax_name, ret_code) do {\
if (val < lower_bound) {\ if (val < lower_bound) {\
WelsLog(&(pCtx->sLogCtx), WELS_LOG_ERROR, "invalid syntax " syntax_name " %d\n", val);\ WelsLog(pCtx, WELS_LOG_ERROR, "invalid syntax " syntax_name " %d\n", val);\
return ret_code;\ return ret_code;\
}\ }\
}while(0) }while(0)
#define WELS_CHECK_SE_UPPER_ERROR(val, upper_bound, syntax_name, ret_code) do {\ #define WELS_CHECK_SE_UPPER_ERROR(val, upper_bound, syntax_name, ret_code) do {\
if (val > upper_bound) {\ if (val > upper_bound) {\
WelsLog(&(pCtx->sLogCtx), WELS_LOG_ERROR, "invalid syntax " syntax_name " %d\n", val);\ WelsLog(pCtx, WELS_LOG_ERROR, "invalid syntax " syntax_name " %d\n", val);\
return ret_code;\ return ret_code;\
}\ }\
}while(0) }while(0)
@@ -273,19 +273,19 @@ if (val > upper_bound) {\
#define WELS_CHECK_SE_BOTH_WARNING(val, lower_bound, upper_bound, syntax_name) do {\ #define WELS_CHECK_SE_BOTH_WARNING(val, lower_bound, upper_bound, syntax_name) do {\
if ((val < lower_bound) || (val > upper_bound)) {\ if ((val < lower_bound) || (val > upper_bound)) {\
WelsLog(&(pCtx->sLogCtx), WELS_LOG_WARNING, "invalid syntax " syntax_name " %d\n", val);\ WelsLog(pCtx, WELS_LOG_WARNING, "invalid syntax " syntax_name " %d\n", val);\
}\ }\
}while(0) }while(0)
#define WELS_CHECK_SE_LOWER_WARNING(val, lower_bound, syntax_name) do {\ #define WELS_CHECK_SE_LOWER_WARNING(val, lower_bound, syntax_name) do {\
if (val < lower_bound) {\ if (val < lower_bound) {\
WelsLog(&(pCtx->sLogCtx), WELS_LOG_WARNING, "invalid syntax " syntax_name " %d\n", val);\ WelsLog(pCtx, WELS_LOG_WARNING, "invalid syntax " syntax_name " %d\n", val);\
}\ }\
}while(0) }while(0)
#define WELS_CHECK_SE_UPPER_WARNING(val, upper_bound, syntax_name) do {\ #define WELS_CHECK_SE_UPPER_WARNING(val, upper_bound, syntax_name) do {\
if (val > upper_bound) {\ if (val > upper_bound) {\
WelsLog(&(pCtx->sLogCtx), WELS_LOG_WARNING, "invalid syntax " syntax_name " %d\n", val);\ WelsLog(pCtx, WELS_LOG_WARNING, "invalid syntax " syntax_name " %d\n", val);\
}\ }\
}while(0) }while(0)
// below define syntax element offset // below define syntax element offset

View File

@@ -38,6 +38,8 @@
namespace WelsDec { namespace WelsDec {
void InitDctClipTable (void);
void IdctResAddPred_c (uint8_t* pPred, const int32_t kiStride, int16_t* pRs); void IdctResAddPred_c (uint8_t* pPred, const int32_t kiStride, int16_t* pRs);
#if defined(__cplusplus) #if defined(__cplusplus)

View File

@@ -64,14 +64,14 @@ extern "C" {
#endif//__cplusplus #endif//__cplusplus
#if defined(HAVE_NEON) #if defined(HAVE_NEON)
void SetNonZeroCount_neon (int8_t* pNonZeroCount); void SetNonZeroCount_neon (int16_t* pBlock, int8_t* pNonZeroCount);
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif//__cplusplus #endif//__cplusplus
void SetNonZeroCount_c (int8_t* pNonZeroCount); void SetNonZeroCount_c (int16_t* pBlock, int8_t* pNonZeroCount);
void WelsBlockFuncInit (SBlockFunc* pFunc, int32_t iCpu); void WelsBlockFuncInit (SBlockFunc* pFunc, int32_t iCpu);

View File

@@ -68,7 +68,7 @@ int32_t DecoderConfigParam (PWelsDecoderContext pCtx, const SDecodingParam* kpPa
* \note N/A * \note N/A
************************************************************************************* *************************************************************************************
*/ */
int32_t WelsInitDecoder (PWelsDecoderContext pCtx, SLogContext* pLogCtx); int32_t WelsInitDecoder (PWelsDecoderContext pCtx, void* pTraceHandle, PWelsLogCallbackFunc pLog);
/*! /*!
************************************************************************************* *************************************************************************************

View File

@@ -53,16 +53,15 @@
#include "as264_common.h" // for LONG_TERM_REF macro,can be delete if not need this macro #include "as264_common.h" // for LONG_TERM_REF macro,can be delete if not need this macro
#include "crt_util_safe_x.h" #include "crt_util_safe_x.h"
#include "mb_cache.h" #include "mb_cache.h"
#include "expand_pic.h"
namespace WelsDec { namespace WelsDec {
typedef struct TagDataBuffer { typedef struct TagDataBuffer {
uint8_t* pHead; uint8_t* pHead;
uint8_t* pEnd; uint8_t* pEnd;
uint8_t* pStartPos; uint8_t* pStartPos;
uint8_t* pCurPos; uint8_t* pCurPos;
} SDataBuffer; } SDataBuffer;
//#ifdef __cplusplus //#ifdef __cplusplus
@@ -83,40 +82,40 @@ typedef void (*PExpandPictureFunc) (uint8_t* pDst, const int32_t kiStride, const
/**/ /**/
typedef struct TagRefPic { typedef struct TagRefPic {
PPicture pRefList[LIST_A][MAX_REF_PIC_COUNT]; // reference picture marking plus FIFO scheme PPicture pRefList[LIST_A][MAX_REF_PIC_COUNT]; // reference picture marking plus FIFO scheme
PPicture pShortRefList[LIST_A][MAX_SHORT_REF_COUNT]; PPicture pShortRefList[LIST_A][MAX_SHORT_REF_COUNT];
PPicture pLongRefList[LIST_A][MAX_LONG_REF_COUNT]; PPicture pLongRefList[LIST_A][MAX_LONG_REF_COUNT];
uint8_t uiRefCount[LIST_A]; uint8_t uiRefCount[LIST_A];
uint8_t uiShortRefCount[LIST_A]; uint8_t uiShortRefCount[LIST_A];
uint8_t uiLongRefCount[LIST_A]; // dependend on ref pic module uint8_t uiLongRefCount[LIST_A]; // dependend on ref pic module
int32_t iMaxLongTermFrameIdx; int32_t iMaxLongTermFrameIdx;
} SRefPic, *PRefPic; } SRefPic, *PRefPic;
typedef void (*PWelsMcFunc) (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride, typedef void (*PWelsMcFunc) (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride,
int16_t iMvX, int16_t iMvY, int32_t iWidth, int32_t iHeight); int16_t iMvX, int16_t iMvY, int32_t iWidth, int32_t iHeight);
typedef struct TagMcFunc { typedef struct TagMcFunc {
PWelsMcFunc pMcLumaFunc; PWelsMcFunc pMcLumaFunc;
PWelsMcFunc pMcChromaFunc; PWelsMcFunc pMcChromaFunc;
} SMcFunc; } SMcFunc;
typedef void (*PCopyFunc) (uint8_t* pDst, int32_t iStrideD, uint8_t* pSrc, int32_t iStrideS); typedef void (*PCopyFunc) (uint8_t* pDst, int32_t iStrideD, uint8_t* pSrc, int32_t iStrideS);
typedef struct TagCopyFunc { typedef struct TagCopyFunc {
PCopyFunc pCopyLumaFunc; PCopyFunc pCopyLumaFunc;
PCopyFunc pCopyChromaFunc; PCopyFunc pCopyChromaFunc;
} SCopyFunc; } SCopyFunc;
//deblock module defination //deblock module defination
struct TagDeblockingFunc; struct TagDeblockingFunc;
typedef struct tagDeblockingFilter { typedef struct tagDeblockingFilter {
uint8_t* pCsData[3]; // pointer to reconstructed picture data uint8_t* pCsData[3]; // pointer to reconstructed picture data
int32_t iCsStride[2]; // Cs stride int32_t iCsStride[2]; // Cs stride
EWelsSliceType eSliceType; ESliceType eSliceType;
int8_t iSliceAlphaC0Offset; int8_t iSliceAlphaC0Offset;
int8_t iSliceBetaOffset; int8_t iSliceBetaOffset;
int8_t iChromaQP; int8_t iChromaQP;
int8_t iLumaQP; int8_t iLumaQP;
struct TagDeblockingFunc* pLoopf; struct TagDeblockingFunc* pLoopf;
} SDeblockingFilter, *PDeblockingFilter; } SDeblockingFilter, *PDeblockingFilter;
typedef void (*PDeblockingFilterMbFunc) (PDqLayer pCurDqLayer, PDeblockingFilter filter, int32_t boundry_flag); typedef void (*PDeblockingFilterMbFunc) (PDqLayer pCurDqLayer, PDeblockingFilter filter, int32_t boundry_flag);
@@ -129,21 +128,21 @@ typedef void (*PChromaDeblockingEQ4Func) (uint8_t* iSampleCb, uint8_t* iSampleCr
int32_t iBeta); int32_t iBeta);
typedef struct TagDeblockingFunc { typedef struct TagDeblockingFunc {
PLumaDeblockingLT4Func pfLumaDeblockingLT4Ver; PLumaDeblockingLT4Func pfLumaDeblockingLT4Ver;
PLumaDeblockingEQ4Func pfLumaDeblockingEQ4Ver; PLumaDeblockingEQ4Func pfLumaDeblockingEQ4Ver;
PLumaDeblockingLT4Func pfLumaDeblockingLT4Hor; PLumaDeblockingLT4Func pfLumaDeblockingLT4Hor;
PLumaDeblockingEQ4Func pfLumaDeblockingEQ4Hor; PLumaDeblockingEQ4Func pfLumaDeblockingEQ4Hor;
PChromaDeblockingLT4Func pfChromaDeblockingLT4Ver; PChromaDeblockingLT4Func pfChromaDeblockingLT4Ver;
PChromaDeblockingEQ4Func pfChromaDeblockingEQ4Ver; PChromaDeblockingEQ4Func pfChromaDeblockingEQ4Ver;
PChromaDeblockingLT4Func pfChromaDeblockingLT4Hor; PChromaDeblockingLT4Func pfChromaDeblockingLT4Hor;
PChromaDeblockingEQ4Func pfChromaDeblockingEQ4Hor; PChromaDeblockingEQ4Func pfChromaDeblockingEQ4Hor;
} SDeblockingFunc, *PDeblockingFunc; } SDeblockingFunc, *PDeblockingFunc;
typedef void (*PWelsNonZeroCountFunc) (int8_t* pNonZeroCount); typedef void (*PWelsNonZeroCountFunc) (int16_t* pBlock, int8_t* pNonZeroCount);
typedef struct TagBlockFunc { typedef struct TagBlockFunc {
PWelsNonZeroCountFunc pWelsSetNonZeroCountFunc; PWelsNonZeroCountFunc pWelsSetNonZeroCountFunc;
} SBlockFunc; } SBlockFunc;
typedef void (*PWelsFillNeighborMbInfoIntra4x4Func) (PNeighAvail pNeighAvail, uint8_t* pNonZeroCount, typedef void (*PWelsFillNeighborMbInfoIntra4x4Func) (PNeighAvail pNeighAvail, uint8_t* pNonZeroCount,
@@ -152,11 +151,16 @@ typedef int32_t (*PWelsParseIntra4x4ModeFunc) (PNeighAvail pNeighAvail, int8_t*
PDqLayer pCurDqLayer); PDqLayer pCurDqLayer);
typedef int32_t (*PWelsParseIntra16x16ModeFunc) (PNeighAvail pNeighAvail, PBitStringAux pBs, PDqLayer pCurDqLayer); typedef int32_t (*PWelsParseIntra16x16ModeFunc) (PNeighAvail pNeighAvail, PBitStringAux pBs, PDqLayer pCurDqLayer);
typedef struct TagExpandPicFunc {
PExpandPictureFunc pExpandLumaPicture;
PExpandPictureFunc pExpandChromaPicture[2];
} SExpandPicFunc;
enum { enum {
OVERWRITE_NONE = 0, OVERWRITE_NONE = 0,
OVERWRITE_PPS = 1, OVERWRITE_PPS = 1,
OVERWRITE_SPS = 1 << 1, OVERWRITE_SPS = 1 << 1,
OVERWRITE_SUBSETSPS = 1 << 2 OVERWRITE_SUBSETSPS = 1 << 2
}; };
/* /*
@@ -164,40 +168,39 @@ OVERWRITE_SUBSETSPS = 1 << 2
*/ */
typedef struct TagWelsDecoderContext { typedef struct TagWelsDecoderContext {
SLogContext sLogCtx; // Input
// Input void* pArgDec; // structured arguments for decoder, reserved here for extension in the future
void* pArgDec; // structured arguments for decoder, reserved here for extension in the future
SDataBuffer sRawData; SDataBuffer sRawData;
// Configuration // Configuration
SDecodingParam* pParam; SDecodingParam* pParam;
uint32_t uiCpuFlag; // CPU compatibility detected uint32_t uiCpuFlag; // CPU compatibility detected
int32_t iOutputColorFormat; // color space format to be outputed int32_t iOutputColorFormat; // color space format to be outputed
VIDEO_BITSTREAM_TYPE eVideoType; //indicate the type of video to decide whether or not to do qp_delta error detection. VIDEO_BITSTREAM_TYPE eVideoType; //indicate the type of video to decide whether or not to do qp_delta error detection.
bool bErrorResilienceFlag; // error resilience flag bool bErrorResilienceFlag; // error resilience flag
bool bHaveGotMemory; // global memory for decoder context related ever requested? bool bHaveGotMemory; // global memory for decoder context related ever requested?
int32_t iImgWidthInPixel; // width of image in pixel reconstruction picture to be output int32_t iImgWidthInPixel; // width of image in pixel reconstruction picture to be output
int32_t iImgHeightInPixel;// height of image in pixel reconstruction picture to be output int32_t iImgHeightInPixel;// height of image in pixel reconstruction picture to be output
// Derived common elements // Derived common elements
SNalUnitHeader sCurNalHead; SNalUnitHeader sCurNalHead;
EWelsSliceType eSliceType; // Slice type ESliceType eSliceType; // Slice type
int32_t iFrameNum; int32_t iFrameNum;
int32_t iPrevFrameNum; // frame number of previous frame well decoded for non-truncated mode yet int32_t iPrevFrameNum; // frame number of previous frame well decoded for non-truncated mode yet
bool bLastHasMmco5; // bool bLastHasMmco5; //
int32_t iErrorCode; // error code return while decoding in case packets lost int32_t iErrorCode; // error code return while decoding in case packets lost
SFmo sFmoList[MAX_PPS_COUNT]; // list for FMO storage SFmo sFmoList[MAX_PPS_COUNT]; // list for FMO storage
PFmo pFmo; // current fmo context after parsed slice_header PFmo pFmo; // current fmo context after parsed slice_header
int32_t iActiveFmoNum; // active count number of fmo context in list int32_t iActiveFmoNum; // active count number of fmo context in list
/*needed info by decode slice level and mb level*/ /*needed info by decode slice level and mb level*/
int32_t int32_t
iDecBlockOffsetArray[24]; // address talbe for sub 4x4 block in intra4x4_mb, so no need to caculta the address every time. iDecBlockOffsetArray[24]; // address talbe for sub 4x4 block in intra4x4_mb, so no need to caculta the address every time.
struct { struct {
int8_t* pMbType[LAYER_NUM_EXCHANGEABLE]; /* mb type */ int8_t* pMbType[LAYER_NUM_EXCHANGEABLE]; /* mb type */
int16_t (*pMv[LAYER_NUM_EXCHANGEABLE][LIST_A])[MB_BLOCK4x4_NUM][MV_A]; //[LAYER_NUM_EXCHANGEABLE MB_BLOCK4x4_NUM*] int16_t (*pMv[LAYER_NUM_EXCHANGEABLE][LIST_A])[MB_BLOCK4x4_NUM][MV_A]; //[LAYER_NUM_EXCHANGEABLE MB_BLOCK4x4_NUM*]
int8_t (*pRefIndex[LAYER_NUM_EXCHANGEABLE][LIST_A])[MB_BLOCK4x4_NUM]; int8_t (*pRefIndex[LAYER_NUM_EXCHANGEABLE][LIST_A])[MB_BLOCK4x4_NUM];
@@ -218,122 +221,119 @@ struct {
bool* pMbCorrectlyDecodedFlag[LAYER_NUM_EXCHANGEABLE]; bool* pMbCorrectlyDecodedFlag[LAYER_NUM_EXCHANGEABLE];
uint32_t iMbWidth; uint32_t iMbWidth;
uint32_t iMbHeight; uint32_t iMbHeight;
} sMb; } sMb;
// reconstruction picture // reconstruction picture
PPicture pDec; //pointer to current picture being reconstructed PPicture pDec; //pointer to current picture being reconstructed
// reference pictures // reference pictures
SRefPic sRefPic; SRefPic sRefPic;
SVlcTable sVlcTable; // vlc table SVlcTable sVlcTable; // vlc table
SBitStringAux sBs; SBitStringAux sBs;
int32_t iMaxBsBufferSizeInByte; //actual memory size for BS buffer
/* Global memory external */ /* Global memory external */
SPosOffset sFrameCrop; SPosOffset sFrameCrop;
SSps sSpsBuffer[MAX_SPS_COUNT + 1]; SSps sSpsBuffer[MAX_SPS_COUNT + 1];
SPps sPpsBuffer[MAX_PPS_COUNT + 1]; SPps sPpsBuffer[MAX_PPS_COUNT + 1];
PSliceHeader pSliceHeader; PSliceHeader pSliceHeader;
PPicBuff pPicBuff[LIST_A]; // Initially allocated memory for pictures which are used in decoding. PPicBuff pPicBuff[LIST_A]; // Initially allocated memory for pictures which are used in decoding.
int32_t iPicQueueNumber; int32_t iPicQueueNumber;
SSubsetSps sSubsetSpsBuffer[MAX_SPS_COUNT + 1]; SSubsetSps sSubsetSpsBuffer[MAX_SPS_COUNT + 1];
SNalUnit sPrefixNal; SNalUnit sPrefixNal;
PAccessUnit pAccessUnitList; // current access unit list to be performed PAccessUnit pAccessUnitList; // current access unit list to be performed
PSps pActiveLayerSps[MAX_LAYER_NUM]; PSps pActiveLayerSps[MAX_LAYER_NUM];
PSps pSps; // used by current AU PSps pSps; // used by current AU
PPps pPps; // used by current AU PPps pPps; // used by current AU
// Memory for pAccessUnitList is dynamically held till decoder destruction. // Memory for pAccessUnitList is dynamically held till decoder destruction.
PDqLayer pCurDqLayer; // current DQ layer representation, also carry reference base layer if applicable PDqLayer pCurDqLayer; // current DQ layer representation, also carry reference base layer if applicable
PDqLayer pDqLayersList[LAYER_NUM_EXCHANGEABLE]; // DQ layers list with memory allocated PDqLayer pDqLayersList[LAYER_NUM_EXCHANGEABLE]; // DQ layers list with memory allocated
int32_t iPicWidthReq; // picture width have requested the memory int32_t iPicWidthReq; // picture width have requested the memory
int32_t iPicHeightReq; // picture height have requested the memory int32_t iPicHeightReq; // picture height have requested the memory
uint8_t uiTargetDqId; // maximal DQ ID in current access unit, meaning target layer ID uint8_t uiTargetDqId; // maximal DQ ID in current access unit, meaning target layer ID
bool bAvcBasedFlag; // For decoding bitstream: bool bAvcBasedFlag; // For decoding bitstream:
bool bEndOfStreamFlag; // Flag on end of stream requested by external application layer bool bEndOfStreamFlag; // Flag on end of stream requested by external application layer
bool bInstantDecFlag; // Flag for no-delay decoding bool bInitialDqLayersMem; // dq layers related memory is available?
bool bInitialDqLayersMem; // dq layers related memory is available?
bool bOnlyOneLayerInCurAuFlag; //only one layer in current AU: 1 bool bOnlyOneLayerInCurAuFlag; //only one layer in current AU: 1
// for EC parameter sets // for EC parameter sets
bool bSpsExistAheadFlag; // whether does SPS NAL exist ahead of sequence? bool bSpsExistAheadFlag; // whether does SPS NAL exist ahead of sequence?
bool bSubspsExistAheadFlag;// whether does Subset SPS NAL exist ahead of sequence? bool bSubspsExistAheadFlag;// whether does Subset SPS NAL exist ahead of sequence?
bool bPpsExistAheadFlag; // whether does PPS NAL exist ahead of sequence? bool bPpsExistAheadFlag; // whether does PPS NAL exist ahead of sequence?
bool bSpsAvailFlags[MAX_SPS_COUNT]; bool bSpsAvailFlags[MAX_SPS_COUNT];
bool bSubspsAvailFlags[MAX_SPS_COUNT]; bool bSubspsAvailFlags[MAX_SPS_COUNT];
bool bPpsAvailFlags[MAX_PPS_COUNT]; bool bPpsAvailFlags[MAX_PPS_COUNT];
bool bReferenceLostAtT0Flag; bool bReferenceLostAtT0Flag;
int32_t iTotalNumMbRec; //record current number of decoded MB int32_t iTotalNumMbRec; //record current number of decoded MB
#ifdef LONG_TERM_REF #ifdef LONG_TERM_REF
bool bParamSetsLostFlag; //sps or pps do not exist or not correct bool bParamSetsLostFlag; //sps or pps do not exist or not correct
bool bool
bCurAuContainLtrMarkSeFlag; //current AU has the LTR marking syntax element, mark the previous frame or self bCurAuContainLtrMarkSeFlag; //current AU has the LTR marking syntax element, mark the previous frame or self
int32_t iFrameNumOfAuMarkedLtr; //if bCurAuContainLtrMarkSeFlag==true, SHOULD set this variable int32_t iFrameNumOfAuMarkedLtr; //if bCurAuContainLtrMarkSeFlag==true, SHOULD set this variable
uint16_t uiCurIdrPicId; uint16_t uiCurIdrPicId;
#endif #endif
bool bNewSeqBegin; bool bNewSeqBegin;
bool bNextNewSeqBegin; bool bNextNewSeqBegin;
int iOverwriteFlags; int iOverwriteFlags;
int32_t iErrorConMethod; // int32_t iErrorConMethod; //
PPicture pPreviousDecodedPictureInDpb; //pointer to previously decoded picture in DPB for error concealment PPicture pPreviousDecodedPictureInDpb; //pointer to previously decoded picture in DPB for error concealment
PGetIntraPredFunc pGetI16x16LumaPredFunc[7]; //h264_predict_copy_16x16; PGetIntraPredFunc pGetI16x16LumaPredFunc[7]; //h264_predict_copy_16x16;
PGetIntraPredFunc pGetI4x4LumaPredFunc[14]; // h264_predict_4x4_t PGetIntraPredFunc pGetI4x4LumaPredFunc[14]; // h264_predict_4x4_t
PGetIntraPredFunc pGetIChromaPredFunc[7]; // h264_predict_8x8_t PGetIntraPredFunc pGetIChromaPredFunc[7]; // h264_predict_8x8_t
PIdctResAddPredFunc pIdctResAddPredFunc; PIdctResAddPredFunc pIdctResAddPredFunc;
SMcFunc sMcFunc; SMcFunc sMcFunc;
//For error concealment //For error concealment
SCopyFunc sCopyFunc; SCopyFunc sCopyFunc;
/* For Deblocking */ /* For Deblocking */
SDeblockingFunc sDeblockingFunc; SDeblockingFunc sDeblockingFunc;
SExpandPicFunc sExpandPicFunc; SExpandPicFunc sExpandPicFunc;
/* For Block */ /* For Block */
SBlockFunc sBlockFunc; SBlockFunc sBlockFunc;
int32_t iCurSeqIntervalTargetDependId; int32_t iCurSeqIntervalTargetDependId;
int32_t iCurSeqIntervalMaxPicWidth; int32_t iCurSeqIntervalMaxPicWidth;
int32_t iCurSeqIntervalMaxPicHeight; int32_t iCurSeqIntervalMaxPicHeight;
PWelsFillNeighborMbInfoIntra4x4Func pFillInfoCacheIntra4x4Func; PWelsFillNeighborMbInfoIntra4x4Func pFillInfoCacheIntra4x4Func;
PWelsParseIntra4x4ModeFunc pParseIntra4x4ModeFunc; PWelsParseIntra4x4ModeFunc pParseIntra4x4ModeFunc;
PWelsParseIntra16x16ModeFunc pParseIntra16x16ModeFunc; PWelsParseIntra16x16ModeFunc pParseIntra16x16ModeFunc;
//feedback whether or not have VCL in current AU, and the temporal ID //feedback whether or not have VCL in current AU, and the temporal ID
int32_t iFeedbackVclNalInAu; int32_t iFeedbackVclNalInAu;
int32_t iFeedbackTidInAu; int32_t iFeedbackTidInAu;
bool bAuReadyFlag; // true: one au is ready for decoding; false: default value bool bAuReadyFlag; // true: one au is ready for decoding; false: default value
bool bDecErrorConedFlag; //true: current decoder is error coned
bool bPrintFrameErrorTraceFlag; //true: can print info for upper layer //trace handle
int32_t iIgnoredErrorInfoPacketCount; //store the packet number with error decoding info void* pTraceHandle;
//trace handle
void* pTraceHandle;
//Save the last nal header info #ifdef NO_WAITING_AU
SNalUnitHeaderExt sLastNalHdrExt; //Save the last nal header info
SSliceHeader sLastSliceHeader; SNalUnitHeaderExt sLastNalHdrExt;
SSliceHeader sLastSliceHeader;
#endif
} SWelsDecoderContext, *PWelsDecoderContext; } SWelsDecoderContext, *PWelsDecoderContext;
static inline void ResetActiveSPSForEachLayer (PWelsDecoderContext pCtx) { static inline void ResetActiveSPSForEachLayer (PWelsDecoderContext pCtx) {
for (int i = 0; i < MAX_LAYER_NUM; i++) { for (int i = 0; i < MAX_LAYER_NUM; i++) {
pCtx->pActiveLayerSps[i] = NULL; pCtx->pActiveLayerSps[i] = NULL;
} }
} }
//#ifdef __cplusplus //#ifdef __cplusplus
//} //}

View File

@@ -48,28 +48,6 @@
#include "codec_def.h" #include "codec_def.h"
namespace WelsDec { namespace WelsDec {
/*
* InitBsBuffer
* Memory allocation for Bitstream Buffer
* return:
* 0 - success; otherwise returned error_no defined in error_no.h.
*/
int32_t InitBsBuffer (PWelsDecoderContext pCtx);
/*
* ExpandBsBuffer
* Expand current BS buffer and copy its content
* new buffer size will consider input size as a reference
* return:
* 0 - success; otherwise returned error_no defined in error_no.h.
*/
int32_t ExpandBsBuffer (PWelsDecoderContext pCtx, const int32_t kiSrcLen);
/*
* CheckBsBuffer
* Check if current buffer size is enough
*/
int32_t CheckBsBuffer (PWelsDecoderContext pCtx, const int32_t kiSrcLen);
/* /*
* WelsInitMemory * WelsInitMemory
@@ -78,7 +56,7 @@ int32_t CheckBsBuffer (PWelsDecoderContext pCtx, const int32_t kiSrcLen);
* rbsp_au_buffer, cur_dq_layer_ptr and ref_dq_layer_ptr in MB info cache. * rbsp_au_buffer, cur_dq_layer_ptr and ref_dq_layer_ptr in MB info cache.
* return: * return:
* 0 - success; otherwise returned error_no defined in error_no.h. * 0 - success; otherwise returned error_no defined in error_no.h.
*/ */
int32_t WelsInitMemory (PWelsDecoderContext pCtx); int32_t WelsInitMemory (PWelsDecoderContext pCtx);
/* /*
@@ -139,12 +117,8 @@ int32_t ConstructAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, SBufferI
* DecodeCurrentAccessUnit * DecodeCurrentAccessUnit
* Decode current access unit when current AU is completed. * Decode current access unit when current AU is completed.
*/ */
int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, SBufferInfo* pDstInfo); int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, int32_t* iDstLen, int32_t* pWidth,
int32_t* pHeight, SBufferInfo* pDstInfo);
/*
* Check if frame is completed and EC is required
*/
bool CheckAndDoEC (PWelsDecoderContext pCtx, uint8_t** pDst, SBufferInfo* pDstInfo);
/* /*
* Prepare current dq layer context initialization. * Prepare current dq layer context initialization.

Some files were not shown because too many files have changed in this diff Show More