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
479 changed files with 34775 additions and 76125 deletions

15
.gitignore vendored
View File

@@ -26,16 +26,8 @@ h264dec
h264enc
codec_unittest
# Other files generated by the MSVC compiler
*.exp
*.pdb
# Executables built by the MSVC project files
bin
# External source
gtest
gmp-api
# Output files from example commands
testbin/test_vd_1d.264
@@ -44,10 +36,3 @@ testbin/test_vd_rc.264
testbin/test_vd_rc.yuv
testbin/test.264
testbin/test.yuv
# pkg-config file
*.pc
# editor files
*~

View File

@@ -1,38 +1,9 @@
language: cpp
compiler:
- g++
- clang
before_install:
- sudo apt-get update -qq
- sudo apt-get install -qq nasm g++-4.6-multilib gcc-multilib libc6-dev-i386
install:
- make gmp-bootstrap
- make gtest-bootstrap
before_script:
- WorkingDir=`pwd`
- cd test/encoder_binary_comparison
- ./run_PrepareAllTestData.sh 64
- cd ${WorkingDir}
env:
- TASK=UnitTest; TestParameter=""
- TASK=BinaryCompare; TestParameter=BA_MW_D.264
- TASK=BinaryCompare; TestParameter=LS_SVA_D.264
- TASK=BinaryCompare; TestParameter=CVPCMNL1_SVA_C.264
matrix:
exclude:
- compiler: clang
env: TASK=BinaryCompare; TestParameter=BA_MW_D.264
- compiler: clang
env: TASK=BinaryCompare; TestParameter=LS_SVA_D.264
- compiler: clang
env: TASK=BinaryCompare; TestParameter=CVPCMNL1_SVA_C.264
script:
- echo "currrent test is for ${TASK}"
- echo "test parameter is ${TestParameter}"
- ./run_Test.sh ${TASK} ${TestParameter}
install: make gtest-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

View File

@@ -44,9 +44,8 @@ Rory Zhang
Volvet Zhang
Ling Zhu
James Zhu
Dong Zhang
Haibo Zhu
Huade Shi

212
Makefile
View File

@@ -1,10 +1,3 @@
SRC_PATH=$(word 1, $(dir $(MAKEFILE_LIST)))
vpath %.c $(SRC_PATH)
vpath %.cc $(SRC_PATH)
vpath %.cpp $(SRC_PATH)
vpath %.asm $(SRC_PATH)
vpath %.S $(SRC_PATH)
OS=$(shell uname | tr A-Z a-z | tr -d \\-[:digit:].)
ARCH=$(shell uname -m)
LIBPREFIX=lib
@@ -13,7 +6,6 @@ CCAS=$(CC)
CXX_O=-o $@
CXX_LINK_O=-o $@
AR_OPTS=cr $@
LINK_LOCAL_DIR=-L.
LINK_LIB=-l$(1)
CFLAGS_OPT=-O3
CFLAGS_DEBUG=-g
@@ -23,18 +15,8 @@ PREFIX=/usr/local
SHARED=-shared
OBJ=o
PROJECT_NAME=openh264
MODULE_NAME=gmpopenh264
GMP_API_BRANCH=master
CCASFLAGS=$(CFLAGS)
VERSION=1.2
ifeq (,$(wildcard $(SRC_PATH)gmp-api))
HAVE_GMP_API=No
else
HAVE_GMP_API=Yes
endif
ifeq (,$(wildcard $(SRC_PATH)gtest))
ifeq (,$(wildcard ./gtest))
HAVE_GTEST=No
else
HAVE_GTEST=Yes
@@ -54,7 +36,7 @@ CFLAGS += -fsanitize=address
LDFLAGS += -fsanitize=address
endif
include $(SRC_PATH)build/platform-$(OS).mk
include build/platform-$(OS).mk
CFLAGS +=
@@ -76,114 +58,76 @@ ifneq ($(V),Yes)
endif
INCLUDES += -I$(SRC_PATH)codec/api/svc -I$(SRC_PATH)codec/common/inc
INCLUDES = -Icodec/api/svc -Icodec/common/inc
DECODER_INCLUDES += \
-I$(SRC_PATH)codec/decoder/core/inc \
-I$(SRC_PATH)codec/decoder/plus/inc
DECODER_INCLUDES = \
-Icodec/decoder/core/inc \
-Icodec/decoder/plus/inc
ENCODER_INCLUDES += \
-I$(SRC_PATH)codec/encoder/core/inc \
-I$(SRC_PATH)codec/encoder/plus/inc \
-I$(SRC_PATH)codec/processing/interface
ENCODER_INCLUDES = \
-Icodec/encoder/core/inc \
-Icodec/encoder/plus/inc \
-Icodec/processing/interface
PROCESSING_INCLUDES += \
-I$(SRC_PATH)codec/processing/interface \
-I$(SRC_PATH)codec/processing/src/common \
-I$(SRC_PATH)codec/processing/src/adaptivequantization \
-I$(SRC_PATH)codec/processing/src/downsample \
-I$(SRC_PATH)codec/processing/src/scrolldetection \
-I$(SRC_PATH)codec/processing/src/vaacalc
PROCESSING_INCLUDES = \
-Icodec/processing/interface \
-Icodec/processing/src/common \
-Icodec/processing/src/scrolldetection
GTEST_INCLUDES += \
-I$(SRC_PATH)gtest \
-I$(SRC_PATH)gtest/include
-Igtest \
-Igtest/include
CODEC_UNITTEST_INCLUDES += \
-I$(SRC_PATH)gtest/include \
-I$(SRC_PATH)codec/common/inc \
-Igtest/include \
-Icodec/common/inc \
CONSOLE_COMMON_INCLUDES += \
-I$(SRC_PATH)codec/console/common/inc
H264DEC_INCLUDES = $(DECODER_INCLUDES) -Icodec/console/dec/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) -I$(SRC_PATH)codec/console/dec/inc
H264DEC_LDFLAGS = $(LINK_LOCAL_DIR) $(call LINK_LIB,decoder) $(call LINK_LIB,common) $(call LINK_LIB,console_common)
H264DEC_DEPS = $(LIBPREFIX)decoder.$(LIBSUFFIX) $(LIBPREFIX)common.$(LIBSUFFIX) $(LIBPREFIX)console_common.$(LIBSUFFIX)
H264ENC_INCLUDES = $(ENCODER_INCLUDES) -Icodec/console/enc/inc
H264ENC_LDFLAGS = -L. $(call LINK_LIB,encoder) $(call LINK_LIB,processing) $(call LINK_LIB,common)
H264ENC_DEPS = $(LIBPREFIX)encoder.$(LIBSUFFIX) $(LIBPREFIX)processing.$(LIBSUFFIX) $(LIBPREFIX)common.$(LIBSUFFIX)
H264ENC_INCLUDES += $(ENCODER_INCLUDES) $(CONSOLE_COMMON_INCLUDES) -I$(SRC_PATH)codec/console/enc/inc
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_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)
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) -I$(SRC_PATH)test -I$(SRC_PATH)test/decoder
ENCODER_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(ENCODER_INCLUDES) -I$(SRC_PATH)test -I$(SRC_PATH)test/encoder
PROCESSING_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(PROCESSING_INCLUDES) -I$(SRC_PATH)test -I$(SRC_PATH)test/processing
API_TEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) -I$(SRC_PATH)test -I$(SRC_PATH)test/api
COMMON_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(DECODER_INCLUDES) -I$(SRC_PATH)test -I$(SRC_PATH)test/common
MODULE_INCLUDES += -I$(SRC_PATH)gmp-api
DECODER_UNITTEST_INCLUDES = $(CODEC_UNITTEST_INCLUDES) $(DECODER_INCLUDES) -Itest -Itest/decoder
ENCODER_UNITTEST_INCLUDES = $(CODEC_UNITTEST_INCLUDES) $(ENCODER_INCLUDES) -Itest -Itest/encoder
PROCESSING_UNITTEST_INCLUDES = $(CODEC_UNITTEST_INCLUDES) $(PROCESSING_INCLUDES) -Itest -Itest/processing
API_TEST_INCLUDES = $(CODEC_UNITTEST_INCLUDES) -Itest -Itest/api
.PHONY: test gtest-bootstrap clean
.PHONY: test gtest-bootstrap clean $(PROJECT_NAME).pc
all: libraries binaries
generate-version:
$(QUIET)cd $(SRC_PATH) && sh ./codec/common/generate_version.sh
codec/decoder/plus/src/welsDecoderExt.$(OBJ): | generate-version
codec/encoder/plus/src/welsEncoderExt.$(OBJ): | generate-version
all: libraries binaries
clean:
ifeq (android,$(OS))
clean: clean_Android
endif
$(QUIET)rm -f $(OBJS) $(OBJS:.$(OBJ)=.d) $(OBJS:.$(OBJ)=.obj) $(LIBRARIES) $(BINARIES) *.lib *.a *.dylib *.dll *.so
gmp-bootstrap:
if [ ! -d gmp-api ] ; then git clone https://github.com/mozilla/gmp-api gmp-api ; fi
cd gmp-api && git fetch origin && git checkout $(GMP_API_BRANCH)
$(QUIET)rm -f $(OBJS) $(OBJS:.$(OBJ)=.d) $(LIBRARIES) $(BINARIES)
gtest-bootstrap:
svn co https://googletest.googlecode.com/svn/trunk/ gtest
ifeq ($(HAVE_GTEST),Yes)
test: codec_unittest$(EXEEXT)
ifneq (android,$(OS))
ifneq (ios,$(OS))
./codec_unittest
endif
endif
else
test:
@echo "./gtest : No such file or directory."
@echo "You do not have gtest. Run make gtest-bootstrap to get gtest"
endif
include $(SRC_PATH)codec/common/targets.mk
include $(SRC_PATH)codec/decoder/targets.mk
include $(SRC_PATH)codec/encoder/targets.mk
include $(SRC_PATH)codec/processing/targets.mk
ifeq ($(HAVE_GMP_API),Yes)
include $(SRC_PATH)module/targets.mk
endif
include codec/common/targets.mk
include codec/decoder/targets.mk
include codec/encoder/targets.mk
include codec/processing/targets.mk
ifneq (android, $(OS))
ifneq (ios, $(OS))
include $(SRC_PATH)codec/console/dec/targets.mk
include $(SRC_PATH)codec/console/enc/targets.mk
include $(SRC_PATH)codec/console/common/targets.mk
include codec/console/dec/targets.mk
include codec/console/enc/targets.mk
endif
endif
ifneq (ios, $(OS))
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)
$(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX): $(ENCODER_OBJS) $(DECODER_OBJS) $(PROCESSING_OBJS) $(COMMON_OBJS)
@@ -192,23 +136,7 @@ $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX): $(ENCODER_OBJS) $(DECODER_OBJS) $(PROC
$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX): $(ENCODER_OBJS) $(DECODER_OBJS) $(PROCESSING_OBJS) $(COMMON_OBJS)
$(QUIET)rm -f $@
$(QUIET_CXX)$(CXX) $(SHARED) $(CXX_LINK_O) $+ $(LDFLAGS) $(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) $(CXX_LINK_O) $+ $(LDFLAGS) $(SHLDFLAGS) $(MODULE_LDFLAGS)
$(PROJECT_NAME).pc: $(PROJECT_NAME).pc.in
@sed -e 's;@prefix@;$(PREFIX);' -e 's;@VERSION@;$(VERSION);' < $(PROJECT_NAME).pc.in > $(PROJECT_NAME).pc
$(QUIET_CXX)$(CXX) $(SHARED) $(LDFLAGS) $(CXX_LINK_O) $+ $(SHLDFLAGS)
install-headers:
mkdir -p $(PREFIX)/include/wels
@@ -218,11 +146,9 @@ install-static: $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX) install-headers
mkdir -p $(PREFIX)/lib
install -m 644 $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX) $(PREFIX)/lib
install-shared: $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX) install-headers $(PROJECT_NAME).pc
install-shared: $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX) install-headers
mkdir -p $(PREFIX)/lib
install -m 755 $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX) $(PREFIX)/lib
mkdir -p $(PREFIX)/lib/pkgconfig
install -m 444 $(PROJECT_NAME).pc $(PREFIX)/lib/pkgconfig
ifneq ($(EXTRA_LIBRARY),)
install -m 644 $(EXTRA_LIBRARY) $(PREFIX)/lib
endif
@@ -231,65 +157,19 @@ install: install-static install-shared
@:
ifeq ($(HAVE_GTEST),Yes)
include $(SRC_PATH)build/gtest-targets.mk
include $(SRC_PATH)test/api/targets.mk
include $(SRC_PATH)test/decoder/targets.mk
include $(SRC_PATH)test/encoder/targets.mk
include $(SRC_PATH)test/processing/targets.mk
include $(SRC_PATH)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) $(CXX_LINK_O) $+ $(LDFLAGS) $(CODEC_UNITTEST_LDFLAGS)
include build/gtest-targets.mk
include test/api/targets.mk
include test/decoder/targets.mk
include test/encoder/targets.mk
include test/processing/targets.mk
binaries: codec_unittest$(EXEEXT)
BINARIES += codec_unittest$(EXEEXT)
ifeq (ios,$(OS))
codec_unittest$(EXEEXT): $(LIBPREFIX)ut.$(LIBSUFFIX) $(LIBPREFIX)gtest.$(LIBSUFFIX) $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX)
else
ifeq (android,$(OS))
ifeq (./,$(SRC_PATH))
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):
@:
endif
else
codec_unittest$(EXEEXT): $(DECODER_UNITTEST_OBJS) $(ENCODER_UNITTEST_OBJS) $(PROCESSING_UNITTEST_OBJS) $(API_TEST_OBJS) $(COMMON_UNITTEST_OBJS) $(CODEC_UNITTEST_DEPS) | res
codec_unittest$(EXEEXT): $(DECODER_UNITTEST_OBJS) $(ENCODER_UNITTEST_OBJS) $(PROCESSING_UNITTEST_OBJS) $(API_TEST_OBJS) $(CODEC_UNITTEST_DEPS)
$(QUIET)rm -f $@
$(QUIET_CXX)$(CXX) $(CXX_LINK_O) $+ $(CODEC_UNITTEST_LDFLAGS) $(LDFLAGS)
res:
$(QUIET)if [ ! -e res ]; then ln -s $(SRC_PATH)res .; fi
endif
endif
else
binaries:
@:
endif
-include $(OBJS:.$(OBJ)=.d)
OBJDIRS = $(sort $(dir $(OBJS)))
$(OBJDIRS):
$(QUIET)mkdir -p $@
$(OBJS): | $(OBJDIRS)

BIN
OpenH264_API_v1.0.docx Normal file

Binary file not shown.

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
----------------
- 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
- 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
@@ -32,6 +32,8 @@ Decoder Features
- Multiple reference frames when specified in Sequence Parameter Set (SPS)
- Annex B byte stream input
- YUV 4:2:0 planar output
- Decoder output timing conformance
- Error concealment support with slice copy as default method
OS Support
----------
@@ -39,7 +41,7 @@ OS Support
- Mac OS X 64-bit and 32-bit
- Linux 64-bit and 32-bit
- Android 32-bit
- iOS 64-bit and 32-bit
- iOS 64-bit and 32-bit (not fully tested)
Processor Support
-----------------
@@ -64,13 +66,14 @@ The codec and demo can be built by
'make OS=android NDKROOT=**ANDROID_NDK** TARGET= **ANDROID_TARGET**'
Valid **ANDROID_TARGET** can be found in **ANDROID_SDK**/platforms, such as android-12.
You can also set ARCH, NDKLEVEL according to your device and NDK version.
You can also set ARCH, NDKLEVEL, GCCVERSION according to your device and NDK version.
ARCH specifies the architecture of android device. Currently only arm and x86 are supported, the default is arm.
NDKLEVEL specifies android api level, the api level can be 12-19, the default is 12.
GCCVERSION specifies which gcc in NDK is used, the default is 4.8.
By default these commands build for the armeabi-v7a ABI. To build for the other android
ABIs, add "ARCH=arm64", "ARCH=x86", "ARCH=x86_64", "ARCH=mips" or "ARCH=mips64".
To build for the older armeabi ABI (which has armv5te as baseline), add "APP_ABI=armeabi" (ARCH=arm is implicit).
ABIs, add "ARCH=mips" or "ARCH=x86". To build for the older armeabi ABI (which has
armv5te as baseline), add "APP_ABI=armeabi" (ARCH=arm is implicit).
For iOS Builds
--------------
@@ -135,6 +138,9 @@ Known Issues
See the issue tracker on https://github.com/cisco/openh264/issues
- Encoder errors when resolution exceeds 3840x2160
- 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
- Encoder RC requires frame skipping to be enabled to hit the target bitrate,
if frame skipping is disabled the target bitrate may be exceeded

View File

@@ -1,61 +0,0 @@
Releases
-----------
v1.2.0
------
- Add and modify encoder APIs related to rate control and screen content encoding
- Remove PauseFrame in encoder APIs
- Improve rate control and compression ratio for screen content encoding
- Improve error concealment algorithm
- Improve validation of input parameters
- Add ARM64 assembly
- bug fixes
-----------
v1.1.0
------
- Modify some APIs (see API doc for detail)
- Improve the compression ratio of screen content encoding
- ARM64 assembly support for most of core functions in encoder & decoder
- Modify error concealment logic to always return decoding error info until IDR picture comes
- fix some bugs
Binaries
-----------
These binary releases are distributed under this license:
http://www.openh264.org/BINARY_LICENSE.txt
v1.2.0
------
http://ciscobinary.openh264.org/libopenh264-1.2.0-android19.so.bz2
http://ciscobinary.openh264.org/libopenh264-1.2.0-linux32.so.bz2
http://ciscobinary.openh264.org/libopenh264-1.2.0-linux64.so.bz2
http://ciscobinary.openh264.org/libopenh264-1.2.0-osx32.dylib.bz2
http://ciscobinary.openh264.org/libopenh264-1.2.0-osx64.dylib.bz2
http://ciscobinary.openh264.org/openh264-1.2.0-win32msvc.dll.bz2
http://ciscobinary.openh264.org/openh264-1.2.0-win64msvc.dll.bz2
v1.1.0
------
http://ciscobinary.openh264.org/libopenh264-1.1.0-android19.so.bz2
http://ciscobinary.openh264.org/libopenh264-1.1.0-linux32.so.bz2
http://ciscobinary.openh264.org/libopenh264-1.1.0-linux64.so.bz2
http://ciscobinary.openh264.org/libopenh264-1.1.0-osx32.dylib.bz2
http://ciscobinary.openh264.org/libopenh264-1.1.0-osx64.dylib.bz2
http://ciscobinary.openh264.org/openh264-1.1.0-win32msvc.dll.bz2
http://ciscobinary.openh264.org/openh264-1.1.0-win64msvc.dll.bz2
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

@@ -1,13 +0,0 @@
#performance test resource folder
./EncoderPerfTestRes
./DecoderPerfTestRes
./DecoderPerfTestRes/*.*
./EncoderPerfTestRes/*.*
#performance test result folder
./TestResultCSV
#
.DS_Store
#.
./android/report
./ios/report

View File

@@ -1,180 +0,0 @@
#!/bin/bash
AUTO_TEST_ANDROID_PATH=`pwd`
AUTO_TEST_SRC_PATH="../../../"
AUTO_TEST_RES_PATH="${AUTO_TEST_ANDROID_PATH}/report"
mkdir -p ${AUTO_TEST_RES_PATH}
#Prepare android build enviroment
echo please set the enviroment variable as:
echo export ANDROID_HOME="path of android sdk"
echo export ANDROID_NDK_HOME="path of android ndk"
ANDROID_SDK_PATH=${ANDROID_HOME}
ANDROID_NDK_PATH=${ANDROID_NDK_HOME}
ANDROID_MAKE_PARAMS="OS=android NDKROOT=${ANDROID_NDK_PATH} TARGET=android-19"
if [ "#${ANDROID_SDK_PATH}" = "#" ]
then
echo Please set ANDROID_HOME with the path of Android SDK
exit 1
fi
if [ "#${ANDROID_NDK_PATH}" = "#" ]
then
echo Please set ANDROID_NDK_HOME with the path of Android NDK
exit 1
fi
#make build
cd ${AUTO_TEST_SRC_PATH}
find ./ -name *.o -exec rm -f {} \;
find ./ -name *.d -exec rm -f {} \;
make $ANDROID_MAKE_PARAMS
if [ $? -ne 0 ]
then
echo Build error,check with the trace of make
exit 1
fi
ENCDEC=$1
#find apk
if [ ${ENCDEC} = "enc" ]
then
echo Start to find enc apk
apk_name=`find ./ -name WelsEncTest-debug.apk`
if [ "#${apk_name}" = "#" ]
then
echo Fail to find encoder APK.
exit 1
fi
else
echo Start to find dec apk
apk_name=`find ./ -name WelsDecTest-debug.apk`
if [ "#${apk_name}" = "#" ]
then
echo Fail to find decoder APK.
exit 1
fi
fi
#prepare devices
ADB=${ANDROID_SDK_PATH}/platform-tools/adb
#get devices
devices=`$ADB devices | awk -F" " '/\tdevice/{print $1}'`
if [ "#$devices" = "#" ];then
echo "Have not any android devices."
exit 1
fi
#run apk
run_apk() {
local apk=$1;
local rand=` date +%s`
if [[ "${apk}" =~ "WelsDecTest-debug.apk" ]]
then
apk_id="com.wels.dec"
apk_main="com.wels.dec/.WelsDecTest"
test_path="/sdcard/welsdec"
log_grep_params="welsdec"
test_res=${AUTO_TEST_ANDROID_PATH}/../DecoderPerfTestRes
report_file=${AUTO_TEST_RES_PATH}/decPerf
fi
if [[ "${apk}" =~ "WelsEncTest-debug.apk" ]]
then
apk_id="com.wels.enc"
apk_main="com.wels.enc/.WelsEncTest"
test_path="/sdcard/welsenc"
log_grep_params="welsenc"
test_res=${AUTO_TEST_ANDROID_PATH}/../EncoderPerfTestRes
report_file=${AUTO_TEST_RES_PATH}/encPerf
fi
space="limit"
for dev in $devices; do
dev_info_file=${AUTO_TEST_RES_PATH}/${dev}.log
$ADB -s $dev uninstall ${apk_id}
$ADB -s $dev install -r ${apk}
#TODO: output more info about android device such as name,cpu,memory,and also power comsumption.
#echo `$ADB -s $dev shell cat /system/build.prop |grep ro.product.model | awk -F"=" '{print $2}'`>${dev_info_file}
#push resources
#For limited devices space
if [ ${space} = "limit" ]
then
test_res_bak=${test_res}_bak
mv ${test_res} ${test_res_bak}
mkdir -p ${test_res}
test_case=`ls ${test_res_bak}`
for case in ${test_case}
do
echo ${case}
cp -r ${test_res_bak}/${case} ${test_res}/.
$ADB -s $dev push ${test_res} ${test_path}
#before start logcat,kill logcat
pid=`$ADB -s $dev shell ps | grep logcat | awk '{print $2;}'`
[ "#$pid" != "#" ] && $ADB -s $dev shell kill $pid >/dev/null
$ADB -s $dev logcat -c
$ADB -s $dev logcat |grep ${log_grep_params} >>${report_file}_${dev}_${rand}.log &
$ADB -s $dev shell am start -n ${apk_main}
# check whetehr the app is finished every 2 sec
for (( ; ; )); do
$ADB -s $dev shell ps | grep ${apk_id}
if [ $? -ne 0 ]; then
sleep 2
$ADB -s $dev shell ps | grep ${apk_id}
[ $? -ne 0 ] && break
fi
sleep 2
done
# kill logcat
pid=`$ADB -s $dev shell ps | grep logcat | awk '{print $2;}'`
[ "#$pid" != "#" ] && $ADB -s $dev shell kill $pid >/dev/null
#delete the res
$ADB -s $dev shell rm -rf ${test_path}
rm -rf ${test_res}/${case}
done
rm -rf ${test_res}
mv ${test_res_bak} ${test_res}
else
$ADB -s $dev push ${test_res} ${test_path}
#before start logcat,kill logcat
pid=`$ADB -s $dev shell ps | grep logcat | awk '{print $2;}'`
[ "#$pid" != "#" ] && $ADB -s $dev shell kill $pid >/dev/null
$ADB -s $dev logcat -c
$ADB -s $dev logcat |grep ${log_grep_params} >${report_file}_${dev}_${rand}.log &
$ADB -s $dev shell am start -n ${apk_main}
# check whetehr the app is finished every 2 sec
for (( ; ; )); do
$ADB -s $dev shell ps | grep ${apk_id}
if [ $? -ne 0 ]; then
sleep 2
$ADB -s $dev shell ps | grep ${apk_idi}
[ $? -ne 0 ] && break
fi
sleep 2
done
# kill logcat
pid=`$ADB -s $dev shell ps | grep logcat | awk '{print $2;}'`
[ "#$pid" != "#" ] && $ADB -s $dev shell kill $pid >/dev/null
#delete the res
$ADB -s $dev shell rm -rf ${test_path}
fi
done
}
for apk in ${apk_name};do
run_apk $apk;
if [ $? -ne 0 ]
then
echo There is something wrong happened when run ${apk_name}
exit 1
else
echo Finished $ENCDEC performance test on android
echo The test result is at ./android/report/xxx.log
echo xxxxxxxxxxxxxxxAndroid $ENCDEC Endxxxxxxxxxxxxxxxx
fi
done

View File

@@ -1,193 +0,0 @@
#!/bin/bash
##############################################################
#Build ios test ref app
#set the default configuration
CODEC_TEST_IOS_ARCH="armv7 armv7s arm64"
CODEC_TEST_IOS_PLATFORM="iphoneos"
CODEC_TEST_IOS_DEBUG_RELEASE="Release"
CODEC_TEST_IOS_REPORT_SUBFOLDER="release"
buildXcodeProject()
{
xcodebuild ARCHS="${CODEC_TEST_IOS_ARCH}" VALID_ARCHS="${CODEC_TEST_IOS_ARCH}" ONLY_ACTIVE_ARCH=YES -project $1 -target $2 -configuration $3 -sdk ${CODEC_TEST_IOS_PLATFORM} clean build
if [ $? -eq 0 ]; then
echo "build $1 $3 successfully"
else
echo "build $1 $3 fail"
exit 1
fi
}
iosPerformanceTest()
{
if [ $# -gt 2 ]; then
echo "Please use command $0 [enc/dec] [release/debug]"
exit 1
fi
for PARAM in $*; do
if [ "enc" = "${PARAM}" ]; then
CODEC_TEST_XCODE_PROJECT_NAME="${AUTO_TEST_SRC_PATH}/codec/build/iOS/enc/encDemo/encDemo.xcodeproj"
CODEC_TEST_IOS_PROJECT_NAME="encDemo"
CODEC_TEST_IOS_PROJECT_PATH="${AUTO_TEST_SRC_PATH}/codec/build/iOS/enc/encDemo/build"
CODEC_TEST_IOS_APP=${CODEC_TEST_IOS_PROJECT_PATH}/${CODEC_TEST_IOS_DEBUG_RELEASE}-iphoneos/${CODEC_TEST_IOS_PROJECT_NAME}.app
CODEC_TEST_IOS_APP_ID="cisco.encDemo"
CODEC_TEST_RES=${AUTO_TEST_IOS_PATH}/../EncoderPerfTestRes
CODEC_TEST_LOG="encPerf"
elif [ "dec" = "${PARAM}" ]; then
CODEC_TEST_XCODE_PROJECT_NAME="${AUTO_TEST_SRC_PATH}/codec/build/iOS/dec/demo/demo.xcodeproj/"
CODEC_TEST_IOS_PROJECT_NAME="demo"
CODEC_TEST_IOS_PROJECT_PATH="${AUTO_TEST_SRC_PATH}/codec/build/iOS/dec/demo/build"
CODEC_TEST_IOS_APP=${CODEC_TEST_IOS_PROJECT_PATH}/${CODEC_TEST_IOS_DEBUG_RELEASE}-iphoneos/${CODEC_TEST_IOS_PROJECT_NAME}.app
CODEC_TEST_IOS_APP_ID="hf.cisco.demo"
CODEC_TEST_RES=${AUTO_TEST_IOS_PATH}/../DecoderPerfTestRes
CODEC_TEST_LOG="decPerf"
elif [ "release" = "${PARAM}" ]; then
CODEC_TEST_IOS_DEBUG_RELEASE="Release"
CODEC_TEST_IOS_REPORT_SUBFOLDER="release"
elif [ "debug" = "${PARAM}" ]; then
CODEC_TEST_IOS_DEBUG_RELEASE="Debug"
CODEC_TEST_IOS_REPORT_SUBFOLDER="debug"
else
echo parameters are illegal!!!, please have a check.
exit 1
fi
done
echo "Codec test will run on ${CODEC_TEST_IOS_PLATFORM} with ${CODEC_TEST_IOS_DEBUG_RELEASE}"
buildXcodeProject ${CODEC_TEST_XCODE_PROJECT_NAME} ${CODEC_TEST_IOS_PROJECT_NAME} ${CODEC_TEST_IOS_DEBUG_RELEASE} ${CODEC_TEST_IOS_PLATFORM}
##############run on ios devices#########################
# for real device
if [ ! -d ${CODEC_TEST_IOS_APP} ] ; then
echo "${CODEC_TEST_IOS_APP} is not found"
exit 1
else
echo "Find app ${CODEC_TEST_IOS_APP}"
fi
#ensure instruments not runing
echo "Try to kill the runing instruments"
pids_str=`ps x -o pid,command | grep -v grep | grep "instruments" | awk '{printf "%s,", $1}'`
instruments_pids="${pids_str//,/ }"
for pid in ${instruments_pids}; do
echo "Found instruments ${pid}. Killing..."
kill -9 ${pid} && wait ${pid} &> /dev/null
done
DEVICES=`system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p' -e '/iPhone/,/Serial/p' | grep "Serial Number:" | awk -F ": " '{print $2}'`
if [ "${DEVICES}#" == "#" ]
then
echo "Can not find any connected device! please check device is connected to MAC!"
exit 1
else
rand=`date +%s`
for DEVICE_ID in ${DEVICES}
do
echo "Try to run on device:${DEVICE_ID}"
#Encoder YUV file too large
if [ ${ENCDEC} = "enc" ]
then
#For limited devices space
BAKRES=${CODEC_TEST_RES}_bak
mv ${CODEC_TEST_RES} ${BAKRES}
mkdir -p ${CODEC_TEST_RES}
CODEC_CASE=`ls ${BAKRES}`
echo ${CODEC_CASE}
for CASE in ${CODEC_CASE}
do
echo ${CASE}
cp -r ${BAKRES}/${CASE} ${CODEC_TEST_RES}/.
#uninstall the application from device to remove the last result
./fruitstrap uninstall --bundle ${CODEC_TEST_IOS_APP_ID} --id ${DEVICE_ID}
if [ $? -ne 0 ]; then
echo uninstall application: ${CODEC_TEST_IOS_APP} from device: ${DEVICE_ID} is failed!
fi
#install the application
./fruitstrap install --bundle ${CODEC_TEST_IOS_APP} --id ${DEVICE_ID}
if [ $? -ne 0 ]; then
echo install application: ${CODEC_TEST_IOS_APP} to device: ${DEVICE_ID} is failed!
exit 1
fi
./iFileTransfer -o copy -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from ${CODEC_TEST_RES}
instruments -w ${DEVICE_ID} -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate ${CODEC_TEST_IOS_APP} -e UIASCRIPT ./uiascript.js -e UIARRESULTPATH /tmp/
#copy to report folder
./iFileTransfer -o download -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from /Documents/${CODEC_TEST_LOG}.log -to ${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}_${CASE}.log
if [ $? -ne 0 ]; then
echo "download file: ${CODEC_TEST_LOG}.log from ${CODEC_TEST_IOS_APP_ID} is failed!"
exit 1
fi
cat ${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}_${CASE}.log>>${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}.log
rm -f ${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}_${CASE}.log
rm -rf ${CODEC_TEST_RES}/${CASE}
done
rm -rf ${CODEC_TEST_RES}
mv ${BAKRES} ${CODEC_TEST_RES}
#Enough spaces
else
#uninstall the application from device to remove the last result
./fruitstrap uninstall --bundle ${CODEC_TEST_IOS_APP_ID} --id ${DEVICE_ID}
if [ $? -ne 0 ]; then
echo uninstall application: ${CODEC_TEST_IOS_APP} from device: ${DEVICE_ID} is failed!
fi
#install the application
./fruitstrap install --bundle ${CODEC_TEST_IOS_APP} --id ${DEVICE_ID}
if [ $? -ne 0 ]; then
echo install application: ${CODEC_TEST_IOS_APP} to device: ${DEVICE_ID} is failed!
exit 1
fi
./iFileTransfer -o copy -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from ${CODEC_TEST_RES}
instruments -w ${DEVICE_ID} -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate ${CODEC_TEST_IOS_APP} -e UIASCRIPT ./uiascript.js -e UIARRESULTPATH /tmp/
#copy to report folder
./iFileTransfer -o download -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from /Documents/${CODEC_TEST_LOG}.log -to ${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}_${CASE}.log
if [ $? -ne 0 ]; then
echo "download file: ${CODEC_TEST_LOG}.log from ${CODEC_TEST_IOS_APP_ID} is failed!"
exit 1
fi
fi
done
fi
}
AUTO_TEST_IOS_PATH=`pwd`
AUTO_TEST_SRC_PATH="../../.."
CODEC_TEST_IOS_REPORT_PATH="${AUTO_TEST_IOS_PATH}/report"
if [ ! -d ${CODEC_TEST_IOS_REPORT_PATH} ]
then
mkdir -p ${CODEC_TEST_IOS_REPORT_PATH}
fi
ENCDEC=$1
#start to get encoder/decoder performance data,default run the xcode with release
iosPerformanceTest $ENCDEC release
if [ $? -ne 0 ]; then
echo "Running $ENCDEC demo to get encoder performance is failed!"
exit 1
else
echo Finished $ENCDEC performance test on ios devices
echo the test result is generated at ./ios/report/xx.loGbash parsePerfData.sh
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxIOS $ENCDEC Endxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
fi
#TODO:according to the trace of instruments to do some analysis
#find ./ -name *.trace -exec rm -rf {} \;

View File

@@ -1,19 +0,0 @@
UIATarget.onAlert = function onAlert(alert){
UIALogger.logMessage("In Alert!");
title = alert.name();
if (title && title.indexOf("Microphone") !== -1) {
UIALogger.logMessage("Alert with title '" + title + "' encountered!");
var buttons = alert.buttons();
var buttonCount = buttons.length;
if (buttonCount > 0) {
var acceptButton = buttons[buttonCount - 1];
acceptButton.tap(); // last button is accept
}
return true; //forbid the default cancel processing
}
return false; //using the default cancel processing
}
var target = UIATarget.localTarget();
target.delay(6000);

View File

@@ -1,107 +0,0 @@
#!/bin/bash
#usage runGetPerformanceInfo ${PerformanceLogFile}
runGetPerformanceInfo_openh264()
{
if [ ! $# -eq 2 ]
then
echo "not enough parameters!"
echo "usage: ${0} [android/ios] ${PerformanceLogFile}"
return 1
fi
local PerformanceLogFile=$2
local FileName=""
local Width=""
local Height=""
local Frames=""
local FPS=""
local EncodeTime=""
if [ $1 = "android" ]
then seperatorNum=3
else
seperatorNum=2
fi
while read line
do
if [[ $line =~ "enc yuv file" ]]
then
FileName=`echo $line | awk 'BEGIN {FS="enc yuv file"} {print $2}'`
FileName=`echo $FileName | awk 'BEGIN {FS=":"} {print $2}'`
fi
if [[ $line =~ "Width" ]]
then
Width=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
fi
if [[ $line =~ "Height" ]]
then
Height=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
fi
if [[ $line =~ "Frames" ]]
then
Frames=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
fi
if [[ $line =~ "FPS" ]]
then
FPS=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
FPS=`echo $FPS | awk 'BEGIN {FS="fps"} {print $1}'`
echo "${FileName},"${Width}x${Height}",${Frames},${FPS}"
fi
if [[ $line =~ "encode time" ]]
then
EncodeTime=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
fi
if [[ $line =~ "height" ]]
then
Height=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
fi
if [[ $line =~ "H264 source file name" ]]
then
FileName=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
if [ $1 = "ios" ]
then
FileName=`echo $FileName | awk -F"DecoderPerfTestRes" '{print $2}'`
FileName=`echo $FileName | awk -F"/" '{print $2}'`
else
FileName=`echo $FileName | awk -F"/" '{print $4}'`
fi
fi
done <${PerformanceLogFile}
}
AUTO_TEST_RESULT_PATH="./TestResultCSV/"
parseLogToCSV()
{
if [ $# -ne 1 ]
then echo "Please input $0 [android/ios]"
fi
if [ $* = "android" ]
then
Result_log_path="./android/report/"
suffix=android
dos2unix ${Result_log_path}*.*
else
Result_log_path="./ios/report/"
suffix=ios
fi
Result_log=`ls ${Result_log_path}`
for log in ${Result_log}
do
PerformFile=`echo $log |awk -F"." '{print $1}'`
PerformFile=${PerformFile}_${suffix}.csv
#inital perfermance file
echo "$log,,,">>${AUTO_TEST_RESULT_PATH}${PerformFile}
echo "YUV,Resolution,Encodedframes,FPS">>${AUTO_TEST_RESULT_PATH}${PerformFile}
runGetPerformanceInfo_openh264 ${suffix} ${Result_log_path}${log}>>${AUTO_TEST_RESULT_PATH}${PerformFile}
done
}
parseLogToCSV android
parseLogToCSV ios

View File

@@ -1,122 +0,0 @@
#!bin/bash
IOS=1
ANDROID=1
ENC=1
DEC=1
AUTO_TEST_PATH=`pwd`
#Judge to run the test on which kind of mobile
if [ $# -eq 0 ];then
echo Default testing will run on android and ios devices meanwhile
else
for params in $*; do
if [ $params = "ios" ];then
echo Running the test just on ios devices
ANDROID=0
elif [ $params = "android" ];then
echo Running the test just on android devices
IOS=0
elif [ $params = "enc" ];then
echo Running the encoder performance test
DEC=0
elif [ $params = "dec" ];then
echo Running the decoder performance test
ENC=0
else
echo parameters are illegal!!!, ${0} [ios/android] [enc/dec]
exit 1
fi
done
fi
#Prepare encoder resources
if [ ${ENC} = "1" ]
then
if [ ! -d ./EncoderPerTestRes ]
then
mkdir -p ./EncoderPerfTestRes
fi
if [ "#`ls ./EncoderPerfTestRes`" = "#" ]
then
echo put yuv and cfg file into ./EncoderPerfTest folder as
echo case_720p
echo case_720p/welsenc.cfg
echo case_720p/layer2.cfg
echo case_720p/yuv
echo case_720p/yuv/xxx1.yuv
echo case_720p/yuv/xxx2.yuv
echo case_360p
echo case_360p/welsenc.cfg
echo ......
else
#Run the encoder performance test
if [ ${IOS} = "1" ]
then
echo xxxxxxxxxxxxxxxxIOS ENC Startxxxxxxxxxxxxxxxxxx
echo Run the Encoder performance test on ios devices
cd ./ios
bash run_AutoTest_ios.sh enc
cd ${AUTO_TEST_PATH}
fi
if [ ${ANDROID} = "1" ]
then
echo xxxxxxxxxxxxxxAndroid ENC Startxxxxxxxxxxxxxxxxxxxx
echo Run the Encoder performance test on android devices
cd ./android
bash run_AutoTest_android.sh enc
cd ${AUTO_TEST_PATH}
fi
fi
fi
#Prepare decoder resources
if [ ${DEC} = "1" ]
then
if [ ! -d ./DecoderPerfTestRes ]
then
mkdir -p ./DecoderPerfTestRes
fi
if [ "#`ls ./DecoderPerfTestRes`" = "#" ]
then
echo put decoded bitstreams into such folder as
echo xxx1.264
echo xxx2.264
echo ........
else
#Run the decoder performance test
if [ ${IOS} = "1" ]
then
echo xxxxxxxxxxxxxxxxIOS DEC Startxxxxxxxxxxxxxxxxxx
echo Run the Decoder performance test on ios devices
cd ./ios
bash run_AutoTest_ios.sh dec
cd ${AUTO_TEST_PATH}
fi
if [ ${ANDROID} = "1" ]
then
echo xxxxxxxxxxxxxxAndroid DEC Startxxxxxxxxxxxxxxxxxxxx
echo Run the Decoder performance test on android devices
cd ./android
bash run_AutoTest_android.sh dec
cd ${AUTO_TEST_PATH}
fi
fi
fi
#TODO:NOW just generate csv file to display performance data
cd ${AUTO_TEST_PATH}
if [[ "#`ls ./ios/report`" == "#" && "#`ls ./android/report`" == "#" ]]
then
echo There is nothing result log generated at ios or android devices
else
echo Start to generate test result csv file
#Test result
mkdir -p ./TestResultCSV
bash parsePerfData.sh
echo The csv file locate ./TestResultCSV/xxx.csv
fi

View File

@@ -1,4 +0,0 @@
.DS_Store
./ios/report/
./android/report/

View File

@@ -1,112 +0,0 @@
#!/bin/bash
AUTO_TEST_ANDROID_PATH=`pwd`
AUTO_TEST_SRC_PATH="../../../"
AUTO_TEST_RES_PATH="${AUTO_TEST_ANDROID_PATH}/report"
if [ ! -d ${AUTO_TEST_RES_PATH} ]
then
mkdir -p ${AUTO_TEST_RES_PATH}
else
echo "Will delete those outdate xml in the report"
rm -f ${AUTO_TEST_RES_PATH}/*.xml
fi
#Prepare android build enviroment
echo please set the enviroment variable as:
echo export ANDROID_HOME="path of android sdk"
echo export ANDROID_NDK_HOME="path of android ndk"
ANDROID_SDK_PATH=${ANDROID_HOME}
ANDROID_NDK_PATH=${ANDROID_NDK_HOME}
ANDROID_MAKE_PARAMS="OS=android NDKROOT=${ANDROID_NDK_PATH} TARGET=android-19"
if [ "#${ANDROID_SDK_PATH}" = "#" ]
then
echo Please set ANDROID_HOME with the path of Android SDK
exit 1
fi
if [ "#${ANDROID_NDK_PATH}" = "#" ]
then
echo Please set ANDROID_NDK_HOME with the path of Android NDK
exit 1
fi
#make build
cd ${AUTO_TEST_SRC_PATH}
find ./ -name *.o -exec rm -f {} \;
find ./ -name *.d -exec rm -f {} \;
make clean
make $ANDROID_MAKE_PARAMS test
if [ $? -ne 0 ]
then
echo Build error,check with the trace of make
exit 1
fi
#find apk
echo Start to find unittest apk
apk_name=`find ./ -name MainActivity-debug.apk`
if [ "#${apk_name}" = "#" ]
then
echo Fail to find encoder APK.
exit 1
fi
#prepare devices
ADB=${ANDROID_SDK_PATH}/platform-tools/adb
#get devices
devices=`$ADB devices | awk -F" " '/\tdevice/{print $1}'`
if [ "#$devices" = "#" ];then
echo "Have not any android devices."
exit 1
fi
#run apk
run_apk() {
local apk=$1;
local rand=` date +%s`
apk_id="com.cisco.codec.unittest"
apk_main="com.cisco.codec.unittest/.MainActivity"
test_path="/sdcard/welsenc"
log_grep_params="welsenc"
test_res=./res
xml_file="sdcard/codec_unittest.xml"
for dev in $devices; do
#dev_info_file=${AUTO_TEST_RES_PATH}/${dev}.log
report_file=${AUTO_TEST_RES_PATH}/codec_unittest_${dev}_${rand}.xml
$ADB -s $dev uninstall ${apk_id}
$ADB -s $dev install -r ${apk}
#TODO: output more info about android device such as name,cpu,memory,and also power comsumption.
echo `$ADB -s $dev shell cat /system/build.prop |grep ro.product.model | awk -F"=" '{print $2}'`>${dev_info_file}
$ADB -s $dev push ${test_res} /sdcard/res
$ADB -s $dev shell am start --es path "$xml_file" -n ${apk_main}
# check whetehr the app is finished every 2 sec
for (( ; ; )); do
$ADB -s $dev shell ps | grep ${apk_id}
if [ $? -ne 0 ]; then
sleep 2
$ADB -s $dev shell ps | grep ${apk_id}
[ $? -ne 0 ] && break
fi
sleep 2
done
# kill logcat
$ADB -s $dev pull ${xml_file} ${report_file}
#delete the res
$ADB -s $dev shell rm -rf ${xml_file}
$ADB -s $dev shell rm -rf /sdcard/res
done
}
for apk in ${apk_name};do
run_apk $apk;
if [ $? -ne 0 ]
then
echo There is something wrong happened when run ${apk_name}
exit 1
else
echo Finished unit test on android
echo The test result is at ./android/report/xxx.xml
echo xxxxxxxxxxxxxxxAndroid unittest Endxxxxxxxxxxxxxxxx
fi
done

View File

@@ -1,167 +0,0 @@
#!/bin/bash
##############################################################
#Build ios test ref app
#set the default configuration
CODEC_TEST_IOS_ARCH="armv7"
CODEC_TEST_IOS_PLATFORM="iphoneos"
CODEC_TEST_IOS_DEBUG_RELEASE="Release"
CODEC_TEST_IOS_REPORT_SUBFOLDER="release"
buildXcodeProject()
{
xcodebuild ARCHS="${CODEC_TEST_IOS_ARCH}" VALID_ARCHS="${CODEC_TEST_IOS_ARCH}" ONLY_ACTIVE_ARCH=NO -project $1 -target $2 -configuration $3 -sdk ${CODEC_TEST_IOS_PLATFORM} clean build
if [ $? -eq 0 ]; then
echo "build $1 $3 successfully"
else
echo "build $1 $3 fail"
exit 1
fi
}
iosUnitTest()
{
if [ $# -gt 2 ]; then
echo "Please use command $0 [armv7/armv7s/arm64] [release/debug]"
exit 1
fi
CODEC_TEST_XCODE_PROJECT_NAME="${AUTO_TEST_SRC_PATH}/test/build/ios/codec_unittest/codec_unittest.xcodeproj/"
CODEC_TEST_IOS_PROJECT_NAME="codec_unittest"
CODEC_TEST_IOS_PROJECT_PATH="${AUTO_TEST_SRC_PATH}/test/build/ios/codec_unittest/build"
CODEC_TEST_IOS_APP=${CODEC_TEST_IOS_PROJECT_PATH}/${CODEC_TEST_IOS_DEBUG_RELEASE}-iphoneos/${CODEC_TEST_IOS_PROJECT_NAME}.app
CODEC_TEST_IOS_APP_ID="com.cisco.codec-unittest"
CODEC_TEST_RES=${AUTO_TEST_SRC_PATH}/res
CODEC_TEST_LOG="codec_unittest"
for PARAM in $*; do
if [ "release" = "${PARAM}" ]; then
CODEC_TEST_IOS_DEBUG_RELEASE="Release"
CODEC_TEST_IOS_REPORT_SUBFOLDER="release"
elif [ "debug" = "${PARAM}" ]; then
CODEC_TEST_IOS_DEBUG_RELEASE="Debug"
CODEC_TEST_IOS_REPORT_SUBFOLDER="debug"
elif [ "armv7" = "${PARAM}" ];then
CODEC_TEST_IOS_ARCH="armv7"
elif [ "armv7s" = "${PARAM}" ];then
CODEC_TEST_IOS_ARCH="armv7s"
elif [ "arm64" = "${PARAM}" ];then
CODEC_TEST_IOS_ARCH="arm64"
else
echo parameters are illegal!!!, please have a check.
exit 1
fi
done
cd ${AUTO_TEST_SRC_PATH}
IOS_MAKE_PARAMS="OS=ios ARCH=${CODEC_TEST_IOS_ARCH}"
############make build
find ./ -name *.o -exec rm -rf {} \;
find ./ -name *.d -exec rm -rf {} \;
rm -f *.so
make clean
make ${IOS_MAKE_PARAMS} test
echo "Codec test will run on ${CODEC_TEST_IOS_PLATFORM} with ${CODEC_TEST_IOS_DEBUG_RELEASE}"
cd ${AUTO_TEST_IOS_PATH}
buildXcodeProject ${CODEC_TEST_XCODE_PROJECT_NAME} ${CODEC_TEST_IOS_PROJECT_NAME} ${CODEC_TEST_IOS_DEBUG_RELEASE} ${CODEC_TEST_IOS_PLATFORM}
##############run on ios devices#########################
# for real device
if [ ! -d ${CODEC_TEST_IOS_APP} ] ; then
echo "${CODEC_TEST_IOS_APP} is not found"
exit 1
else
echo "Find app ${CODEC_TEST_IOS_APP}"
fi
#ensure instruments not runing
echo "Try to kill the runing instruments"
pids_str=`ps x -o pid,command | grep -v grep | grep "instruments" | awk '{printf "%s,", $1}'`
instruments_pids="${pids_str//,/ }"
for pid in ${instruments_pids}; do
echo "Found instruments ${pid}. Killing..."
kill -9 ${pid} && wait ${pid} &> /dev/null
done
DEVICES=`system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p' -e '/iPhone/,/Serial/p' | grep "Serial Number:" | awk -F ": " '{print $2}'`
if [ "${DEVICES}#" == "#" ]
then
echo "Can not find any connected device! please check device is connected to MAC!"
exit 1
else
rand=`date +%s`
for DEVICE_ID in ${DEVICES}
do
echo "Try to run on device:${DEVICE_ID}"
#uninstall the application from device to remove the last result
${AUTO_TEST_IOS_SCRIPT_PATH}/fruitstrap uninstall --bundle ${CODEC_TEST_IOS_APP_ID} --id ${DEVICE_ID}
if [ $? -ne 0 ]; then
echo uninstall application: ${CODEC_TEST_IOS_APP} from device: ${DEVICE_ID} is failed!
fi
#install the application
${AUTO_TEST_IOS_SCRIPT_PATH}/fruitstrap install --bundle ${CODEC_TEST_IOS_APP} --id ${DEVICE_ID}
if [ $? -ne 0 ]; then
echo install application: ${CODEC_TEST_IOS_APP} to device: ${DEVICE_ID} is failed!
exit 1
fi
${AUTO_TEST_IOS_SCRIPT_PATH}/iFileTransfer -o copy -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from ${CODEC_TEST_RES}
instruments -w ${DEVICE_ID} -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate ${CODEC_TEST_IOS_APP} -e UIASCRIPT ${AUTO_TEST_IOS_SCRIPT_PATH}/uiascript.js -e UIARRESULTPATH /tmp/
#copy to report folder
${AUTO_TEST_IOS_SCRIPT_PATH}/iFileTransfer -o download -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from /Documents/${CODEC_TEST_LOG}.xml -to ${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}_${CODEC_TEST_IOS_ARCH}.xml
if [ $? -ne 0 ]; then
echo "download file: ${CODEC_TEST_LOG}.xml from ${CODEC_TEST_IOS_APP_ID} is failed!"
exit 1
fi
done
fi
}
AUTO_TEST_IOS_PATH=`pwd`
AUTO_TEST_SRC_PATH="../../.."
AUTO_TEST_IOS_SCRIPT_PATH="../../performanceTest/ios"
CODEC_TEST_IOS_REPORT_PATH="${AUTO_TEST_IOS_PATH}/report"
if [ ! -d ${CODEC_TEST_IOS_REPORT_PATH} ]
then
mkdir -p ${CODEC_TEST_IOS_REPORT_PATH}
else
echo "Will delete those outdate xml in the report"
rm -f ${CODEC_TEST_IOS_REPORT_PATH}/*.xml
fi
#start to run unittest,default run the xcode at arch armv7 with release
iosUnitTest armv7 release
if [ $? -ne 0 ]; then
echo "Running Unittest demo with armv7 is failed!"
exit 1
else
echo Finished unittest with armv7 on ios devices
echo the test result is generated at ./ios/report/xx.xml
fi
#start to run unittest,run the xcode at arch arm64 with release
iosUnitTest arm64 release
if [ $? -ne 0 ]; then
echo "Running Unittest demo with arm64 is failed!"
exit 1
else
echo Finished unittest with arm64 on ios devices
echo the test result is generated at ./ios/report/xx.xml
fi
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxIOS unittest Endxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#TODO:according to the trace of instruments to do some analysis
#find ${AUTO_TEST_IOS_SCRIPT_PATH} -name *.trace -exec rm -rf {} \;
rm -rf *.trace

View File

@@ -1,70 +0,0 @@
if [ $# -ne 1 ];then
echo Please input $0 [report dir]
exit 1
fi
REPORT=$1
if [ ! -e ${REPORT} ];then
echo "The directory of ${REPORT} dose't not exit,please check the test log"
exit 1
fi
UT_Failed_Num=0
parse_unittest() {
res=$1
echo ${res}
echo Start to parse unittest results of $res
if [ -e $res ];then
tests=`cat $res | grep "<testsuites" | awk -F " " '{print $2;}' | awk -F "\"" '{print $2;}'`
fails=`cat $res | grep "<testsuites" | awk -F " " '{print $3;}' | awk -F "\"" '{print $2;}'`
times=`cat $res | grep "<testsuites" | awk -F " " '{print $6;}' | awk -F "\"" '{print $2;}'`
waste=`cat $res | grep "<testsuites" | awk -F " " '{print $7;}' | awk -F "\"" '{print $2;}'`
msg="Total testcases: $tests, failed: $fails,time:$waste seconds, at$times,xml:$res"
echo ${msg}
UT_Failed_Num=$((${UT_Failed_Num}+${fails}))
cat >> mail.log << EOF
<style>
.fail {
background-color: yellow;
}
</style>
<br>
<table style="width:600px" cellspacing="0" border="1" width="100%">
<thead>
<tr>
<td>Total unit test cases</td>
<td>Failed</td>
<td>Time</td>
<td>Date</td>
</tr>
</thead>
<tbody>
<tr style="text-align:center; font-weight: bold;">
<td>${tests}</td>
<td><font class="fail">${fails}</font></td>
<td>${waste}</td>
<td>${times}</td>
</tr>
</tbody>
</table>
<br>
EOF
fi
}
xmlcount=`ls $REPORT | wc -l`
xmlfiles=`ls $REPORT`
if [ ${xmlcount} -eq 0 ];
then echo There is nothing xml files generated at $REPORT
exit 1
fi
for file in $xmlfiles;do
parse_unittest $REPORT/$file
done
if [ ${UT_Failed_Num} = "0" ];then
echo Total $xmlcount files at $REPORT,all sucessful
exit 0
else
echo Total $xmlcount files at $REPORT,${UT_Failed_Num} error cases
exit 2
fi

View File

@@ -1,98 +0,0 @@
#!/bin/bash
AUTO_TEST_PATH=`pwd`
IOS=0
ANDROID=0
#Prepare GTEST
AUTO_TEST_SRC_PATH="../../"
cd ${AUTO_TEST_SRC_PATH}
if [ ! -d "./gtest" ]
then
make gtest-bootstrap
fi
cd ${AUTO_TEST_PATH}
#To find whether have android devices
echo please set the enviroment variable as:
echo export ANDROID_HOME="path of android sdk"
echo export ANDROID_NDK_HOME="path of android ndk"
ANDROID_SDK_PATH=${ANDROID_HOME}
ANDROID_NDK_PATH=${ANDROID_NDK_HOME}
if [ "#${ANDROID_SDK_PATH}" = "#" ]
then
echo Please set ANDROID_HOME with the path of Android SDK
exit 1
fi
if [ "#${ANDROID_NDK_PATH}" = "#" ]
then
echo Please set ANDROID_NDK_HOME with the path of Android NDK
exit 1
fi
#prepare devices
ADB=${ANDROID_SDK_PATH}/platform-tools/adb
#get devices
devices=`$ADB devices | awk -F" " '/\tdevice/{print $1}'`
if [ "#$devices" = "#" ];then
echo "Can not find any android devices!"
else
echo Start to run the unittest on android devices
ANDROID=1
cd ./android
bash run_AutoTest_android.sh >/dev/null 2>&1
if [ $? -ne 0 ];then
echo There is something wrong happened when runing unittest on android devices,please to check
else
echo Finish run the unittest on android devices sucessfully
fi
cd ${AUTO_TEST_PATH}
fi
#To find whether have ios devices
DEVICES=`system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p' -e '/iPhone/,/Serial/p' | grep "Serial Number:" | awk -F ": " '{print $2}'`
if [ "${DEVICES}#" == "#" ]
then
echo "Can not find any ios devices!"
else
echo Start to run the unittest on ios devices
IOS=1
cd ./ios
bash run_AutoTest_ios.sh >/dev/null 2>&1
if [ $? -ne 0 ];then
echo There is something wrong happened when runing unittest on ios devices,please to check
else
echo Finish run the unittest on android devices sucessfully
fi
cd ${AUTO_TEST_PATH}
fi
#To parse the unit test result file to find whether have failures
if [ ${ANDROID} = "1" ];then
echo "
<style>
.env {
background-color: #95B9C7;
font: 30px bold;
}</style>">>mail.log
echo "<br><font class="env">Run unit test on android devices</font>">>mail.log
bash run_ParseUTxml.sh ./android/report
ret=$?
if [ ${ret} -eq 0 ];then
echo Unit test run on the android devices have not any failure case
elif [ ${ret} -eq 2 ];then
echo Unit test have cases failed,please check
elif [ ${ret} -eq 1 ];then
echo Unit test run failed
fi
fi
if [ ${IOS} = "1" ];then
echo "<br><font class="env">Run unit test on ios devices with armv7 & arm64</font>">>mail.log
bash run_ParseUTxml.sh ./ios/report
ret=$?
if [ $ret -eq 0 ];then
echo Unit test run on the ios devices have not any failure case
elif [ $ret -eq 2 ];then
echo Unit test have cases failed,please check
elif [ $ret -eq 1 ];then
echo Unit test run failed
fi
fi

View File

@@ -1,51 +0,0 @@
# This is a docker image with all the tools to build openh264 for linux
# build the docker image with: sudo docker build -t openh264tools - < Dockerfile
# get the result with: sudo docker run -t -i -v /tmp/openH264:/build openh264tools /bin/cp libopenh264.so log /build
# the results will be left in /tmp/openH264
# have a look at log file and if the hash match the "Fluffy got" hashes
FROM ubuntu:14.04
MAINTAINER Cullen Jennings <fluffy@cisco.com>
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y bison flex g++ gcc git libgmp3-dev libmpc-dev libmpfr-dev libz-dev make wget
WORKDIR /tmp
RUN wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.gz
RUN tar xvfz gcc-4.9.2.tar.gz
WORKDIR /tmp/gcc-4.9.2/
RUN mkdir build
WORKDIR /tmp/gcc-4.9.2/build
RUN ../configure --disable-checking --enable-languages=c,c++ --enable-multiarch --enable-shared --enable-threads=posix --with-gmp=/usr/local/lib --with-mpc=/usr/lib --with-mpfr=/usr/lib --without-included-gettext --with-system-zlib --with-tune=generic --disable-multilib --disable-nls
RUN make -j 8
RUN make install
WORKDIR /tmp
RUN wget http://www.nasm.us/pub/nasm/releasebuilds/2.11.06/nasm-2.11.06.tar.gz
RUN tar xvfz nasm-2.11.06.tar.gz
WORKDIR /tmp/nasm-2.11.06/
RUN ./configure
RUN make
RUN make install
WORKDIR /tmp
RUN git clone https://github.com/cisco/openh264.git
WORKDIR /tmp/openh264
RUN git checkout v1.1
RUN make ENABLE64BIT=Yes
RUN date > log
RUN uname -a >> log
RUN nasm -v >> log
RUN gcc -v 2>> log
RUN git status -v >> log
RUN openssl dgst -sha1 libopenh264.so >> log
RUN echo "Fluffy Got hash of - 3b6280fce36111ab9c911453f4ee1fd99ce6f841" >> log

View File

@@ -5,7 +5,6 @@ GTEST_CPP_SRCS=\
GTEST_OBJS += $(GTEST_CPP_SRCS:.cc=.$(OBJ))
OBJS += $(GTEST_OBJS)
$(GTEST_SRCDIR)/%.$(OBJ): $(GTEST_SRCDIR)/%.cc
$(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(GTEST_CFLAGS) $(GTEST_INCLUDES) -c $(CXX_O) $<

View File

@@ -20,6 +20,9 @@ INCLUDE=[]
OUTFILE="targets.mk"
CPP_SUFFIX=".cpp"
def make_o(x):
return os.path.splitext(x)[0] + ".$(OBJ)"
def write_cpp_rule_pattern(f):
src = "$(%s_SRCDIR)/%%%s"%(PREFIX, CPP_SUFFIX)
dst = "$(%s_SRCDIR)/%%.$(OBJ)"%(PREFIX)
@@ -49,7 +52,7 @@ def write_asm_s_rule_pattern(f):
dst = "$(%s_SRCDIR)/%%.$(OBJ)"%(PREFIX)
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")
@@ -134,42 +137,37 @@ if len(cfiles) > 0:
for cfile in cfiles:
f.write("\t$(%s_SRCDIR)/%s\\\n"%(PREFIX, cfile))
f.write("\n")
f.write("%s_OBJS += $(%s_C_SRCS:.c=.$(OBJ))\n"%(PREFIX, PREFIX))
f.write("%s_OBJS += $(%s_C_SRCS:.c=.$(OBJ))\n\n"%(PREFIX, PREFIX))
if len(asm) > 0:
f.write("ifeq ($(ASM_ARCH), x86)\n")
f.write("%s_ASM_SRCS=\\\n"%(PREFIX))
for c in asm:
f.write("\t$(%s_SRCDIR)/%s\\\n"%(PREFIX, c))
f.write("\n")
f.write("%s_OBJSASM += $(%s_ASM_SRCS:.asm=.$(OBJ))\n"%(PREFIX, PREFIX))
f.write("ifeq ($(ASM_ARCH), x86)\n")
f.write("%s_OBJS += $(%s_OBJSASM)\n"%(PREFIX,PREFIX))
f.write("endif\n")
f.write("OBJS += $(%s_OBJSASM)\n\n"%(PREFIX))
f.write("%s_OBJS += $(%s_ASM_SRCS:.asm=.$(OBJ))\n"%(PREFIX, PREFIX))
f.write("endif\n\n")
if len(armfiles) > 0:
f.write("ifeq ($(ASM_ARCH), arm)\n")
f.write("%s_ASM_ARM_SRCS=\\\n"%(PREFIX))
for c in armfiles:
f.write("\t$(%s_SRCDIR)/%s\\\n"%(PREFIX, c))
f.write("\n")
f.write("%s_OBJSARM += $(%s_ASM_ARM_SRCS:.S=.$(OBJ))\n"%(PREFIX, PREFIX))
f.write("ifeq ($(ASM_ARCH), arm)\n")
f.write("%s_OBJS += $(%s_OBJSARM)\n"%(PREFIX,PREFIX))
f.write("endif\n")
f.write("OBJS += $(%s_OBJSARM)\n\n"%(PREFIX))
f.write("%s_OBJS += $(%s_ASM_ARM_SRCS:.S=.$(OBJ))\n"%(PREFIX, PREFIX))
f.write("endif\n\n")
if len(arm64files) > 0:
f.write("ifeq ($(ASM_ARCH), arm64)\n")
f.write("%s_ASM_ARM64_SRCS=\\\n"%(PREFIX))
for c in arm64files:
f.write("\t$(%s_SRCDIR)/%s\\\n"%(PREFIX, c))
f.write("\n")
f.write("%s_OBJSARM64 += $(%s_ASM_ARM64_SRCS:.S=.$(OBJ))\n"%(PREFIX, PREFIX))
f.write("ifeq ($(ASM_ARCH), arm64)\n")
f.write("%s_OBJS += $(%s_OBJSARM64)\n"%(PREFIX,PREFIX))
f.write("endif\n")
f.write("OBJS += $(%s_OBJSARM64)\n\n"%(PREFIX))
f.write("%s_OBJS += $(%s_ASM_ARM64_SRCS:.S=.$(OBJ))\n"%(PREFIX, PREFIX))
f.write("endif\n\n")
f.write("OBJS += $(%s_OBJS)\n"%PREFIX)
f.write("OBJS += $(%s_OBJS)\n\n"%(PREFIX))
write_cpp_rule_pattern(f)
if len(cfiles) > 0:

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/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/decoder --prefix decoder_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/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

View File

@@ -1,5 +1,5 @@
ARCH = arm
include $(SRC_PATH)build/arch.mk
include build/platform-arch.mk
SHAREDLIBSUFFIX = so
NDKLEVEL = 12
ifeq ($(ARCH), arm)
@@ -9,23 +9,19 @@ ifeq ($(ARCH), arm)
LDFLAGS += -march=armv7-a -Wl,--fix-cortex-a8
APP_ABI = armeabi-v7a
endif
TOOLCHAINPREFIX = $(shell NDK_PROJECT_PATH=./codec/build/android/dec make --no-print-dir -f $(NDKROOT)/build/core/build-local.mk DUMP_TOOLCHAIN_PREFIX APP_ABI=armeabi)
ifeq (Yes, $(USE_ASM))
ASMFLAGS += -march=armv7-a -mfpu=neon
endif
else ifeq ($(ARCH), arm64)
APP_ABI = arm64-v8a
else ifeq ($(ARCH), x86)
APP_ABI = x86
APP_ABI = x86
TOOLCHAINPREFIX = $(shell NDK_PROJECT_PATH=./codec/build/android/dec make --no-print-dir -f $(NDKROOT)/build/core/build-local.mk DUMP_TOOLCHAIN_PREFIX APP_ABI=x86)
ifeq (Yes, $(USE_ASM))
ASMFLAGS += -f elf
endif
else ifeq ($(ARCH), x86_64)
APP_ABI = x86_64
ifeq (Yes, $(USE_ASM))
ASMFLAGS += -f elf64
ASMFLAGS += -f elf32
endif
else
APP_ABI = $(ARCH)
APP_ABI = $(ARCH)
TOOLCHAINPREFIX = $(shell NDK_PROJECT_PATH=./codec/build/android/dec make --no-print-dir -f $(NDKROOT)/build/core/build-local.mk DUMP_TOOLCHAIN_PREFIX APP_ABI=$(APP_ABI))
endif
ifndef NDKROOT
@@ -35,35 +31,23 @@ ifndef TARGET
$(error TARGET is not set)
endif
TOOLCHAINPREFIX = $(shell NDK_PROJECT_PATH=$(SRC_PATH)/codec/build/android/dec make --no-print-dir -f $(NDKROOT)/build/core/build-local.mk DUMP_TOOLCHAIN_PREFIX APP_ABI=$(APP_ABI))
SYSROOT = $(NDKROOT)/platforms/android-$(NDKLEVEL)/arch-$(ARCH)
CXX = $(TOOLCHAINPREFIX)g++
CC = $(TOOLCHAINPREFIX)gcc
AR = $(TOOLCHAINPREFIX)ar
CFLAGS += -DANDROID_NDK -fpic --sysroot=$(SYSROOT) -MMD -MP
CFLAGS += -DLINUX -DANDROID_NDK -fpic --sysroot=$(SYSROOT)
CXXFLAGS += -fno-rtti -fno-exceptions
LDFLAGS += --sysroot=$(SYSROOT)
SHLDFLAGS = -Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-soname,lib$(PROJECT_NAME).so
ifneq ($(CXX),$(wildcard $(CXX)))
ifneq ($(CXX).exe,$(wildcard $(CXX).exe))
$(error Compiler not found, bad NDKROOT or ARCH?)
endif
endif
SHLDFLAGS = -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-soname,lib$(PROJECT_NAME).so
STL_INCLUDES = \
-I$(NDKROOT)/sources/cxx-stl/stlport/stlport
STL_LIB = \
$(NDKROOT)/sources/cxx-stl/stlport/libs/$(APP_ABI)/libstlport_static.a
GTEST_INCLUDES = $(STL_INCLUDES)
CODEC_UNITTEST_INCLUDES = $(STL_INCLUDES)
CODEC_UNITTEST_LDFLAGS_SUFFIX = $(STL_LIB)
MODULE_INCLUDES = $(STL_INCLUDES)
MODULE_LDFLAGS = $(STL_LIB)
CODEC_UNITTEST_LDFLAGS_SUFFIX = \
$(NDKROOT)/sources/cxx-stl/stlport/libs/$(APP_ABI)/libstlport_static.a
ifeq (./,$(SRC_PATH))
binaries : decdemo encdemo
decdemo: libraries
@@ -72,26 +56,13 @@ decdemo: libraries
encdemo: libraries
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
else
all:
@:
clean_Android:
@:
endif
COMMON_INCLUDES += -I$(NDKROOT)/sources/android/cpufeatures
COMMON_OBJS += $(COMMON_SRCDIR)/src/cpu-features.$(OBJ)
COMMON_OBJS += $(COMMON_SRCDIR)/cpu-features.$(OBJ)
COMMON_CFLAGS += \
-Dandroid_getCpuIdArm=wels_getCpuIdArm -Dandroid_setCpuArm=wels_setCpuArm \
-Dandroid_getCpuCount=wels_getCpuCount -Dandroid_getCpuFamily=wels_getCpuFamily \
-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) $<

View File

@@ -1,17 +1,17 @@
ifneq ($(filter %86 x86_64, $(ARCH)),)
include $(SRC_PATH)build/x86-common.mk
include build/platform-x86-common.mk
endif
ifneq ($(filter-out arm64, $(filter arm%, $(ARCH))),)
ifeq ($(USE_ASM), Yes)
ASM_ARCH = arm
ASMFLAGS += -I$(SRC_PATH)codec/common/arm/
ASMFLAGS += -Icodec/common/arm/
CFLAGS += -DHAVE_NEON
endif
endif
ifneq ($(filter arm64 aarch64, $(ARCH)),)
ifeq ($(USE_ASM), Yes)
ASM_ARCH = arm64
ASMFLAGS += -I$(SRC_PATH)codec/common/arm64/
ASMFLAGS += -Icodec/common/arm64/
CFLAGS += -DHAVE_NEON_AARCH64
endif
endif

View File

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

View File

@@ -1,4 +1,4 @@
include $(SRC_PATH)build/arch.mk
include build/platform-arch.mk
SHAREDLIBSUFFIX = so
CFLAGS += -fPIC
LDFLAGS += -lpthread

View File

@@ -1,5 +1,5 @@
ARCH = armv7
include $(SRC_PATH)build/platform-darwin.mk
include build/platform-darwin.mk
CXX = clang++
CC = clang
ifneq ($(filter %86 x86_64, $(ARCH)),)
@@ -10,8 +10,7 @@ endif
SDK = $(shell xcrun --sdk $(shell echo $(SDKTYPE) | tr A-Z a-z) --show-sdk-version)
SDK_MIN = 5.1
XCODE=$(shell xcode-select -p)
SDKROOT = $(XCODE)/Platforms/$(SDKTYPE).platform/Developer/SDKs/$(SDKTYPE)$(SDK).sdk
SDKROOT = /Applications/Xcode.app/Contents/Developer/Platforms/$(SDKTYPE).platform/Developer/SDKs/$(SDKTYPE)$(SDK).sdk
CFLAGS += -arch $(ARCH) -isysroot $(SDKROOT) -miphoneos-version-min=$(SDK_MIN) -DAPPLE_IOS
LDFLAGS += -arch $(ARCH) -isysroot $(SDKROOT) -miphoneos-version-min=$(SDK_MIN)

View File

@@ -1,12 +1,12 @@
include $(SRC_PATH)build/arch.mk
include build/platform-arch.mk
SHAREDLIBSUFFIX = so
CFLAGS += -Wall -fno-strict-aliasing -fPIC -MMD -MP
CFLAGS += -Wall -fno-strict-aliasing -fPIC -DLINUX -MMD -MP
LDFLAGS += -lpthread
ifeq ($(ASM_ARCH), x86)
ifeq ($(ENABLE64BIT), Yes)
ASMFLAGS += -f elf64
else
ASMFLAGS += -f elf
ASMFLAGS += -f elf32
endif
endif
ifeq ($(ASM_ARCH), arm)

View File

@@ -1,15 +1,17 @@
include $(SRC_PATH)build/x86-common.mk
include build/platform-x86-common.mk
SHAREDLIBSUFFIX = dll
CFLAGS += -MMD -MP
LDFLAGS +=
ifeq ($(ENABLE64BIT), Yes)
ASMFLAGS += -f win64
ASMFLAGS_PLATFORM = -DWIN64
CFLAGS += -DWIN64
CC = x86_64-w64-mingw32-gcc
CXX = x86_64-w64-mingw32-g++
AR = x86_64-w64-mingw32-ar
else
ASMFLAGS += -f win32 -DPREFIX
CFLAGS += -DWIN32
endif
EXEEXT = .exe

View File

@@ -1,35 +1,34 @@
include $(SRC_PATH)build/arch.mk
include build/platform-arch.mk
ifeq ($(ASM_ARCH), x86)
ifeq ($(ENABLE64BIT), Yes)
ASMFLAGS += -f win64
ASMFLAGS_PLATFORM = -DWIN64
CFLAGS += -DWIN64
else
ASMFLAGS += -f win32 -DPREFIX
CFLAGS += -DWIN32
endif
else
CFLAGS += -DWIN32
endif
ifeq ($(ASM_ARCH), arm)
CCAS = gas-preprocessor.pl -as-type armasm -force-thumb -- armasm
CCASFLAGS = -nologo -DHAVE_NEON
endif
CC=cl
CXX=cl
AR=lib
CXX_O=-Fo$@
# -D_VARIADIC_MAX=10 is required to fix building gtest on MSVC 2012, but
# since we don't (easily) know which version of MSVC we use here, we add
# it unconditionally. The same issue can also be worked around by adding
# -DGTEST_HAS_TR1_TUPLE=0 instead, but we prefer this version since it
# matches what gtest itself does.
# -DGTEST_HAS_TR1_TUPLE=0 is temporarily broken in gtest,
# using _VARIADIC_MAX=10 to fix building on MSVC 2012 meanwhile.
# Once gtest works with the former again, it should be preferred.
CFLAGS += -nologo -W3 -EHsc -fp:precise -Zc:wchar_t -Zc:forScope -D_VARIADIC_MAX=10
CXX_LINK_O=-nologo -Fe$@
AR_OPTS=-nologo -out:$@
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_M64=
LINK_LOCAL_DIR=
LINK_LIB=$(1).lib
LIBSUFFIX=lib
LIBPREFIX=

View File

@@ -1,5 +1,5 @@
ARCH = arm
include $(SRC_PATH)build/msvc-common.mk
include build/platform-msvc-common.mk
CFLAGS_OPT += -MD
CFLAGS_DEBUG += -MDd
CFLAGS += -DWINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP

View File

@@ -1,4 +1,4 @@
include $(SRC_PATH)build/msvc-common.mk
include build/platform-msvc-common.mk
LDFLAGS += user32.lib
CFLAGS_OPT += -MT
CFLAGS_DEBUG += -MTd -Gm

View File

@@ -1,6 +1,6 @@
CFLAGS_M32=-m32
CFLAGS_M64=-m64
ASM_INCLUDES = -I$(SRC_PATH)codec/common/x86/
ASM_INCLUDES = -Icodec/common/x86/
ifeq (, $(ENABLE64BIT))
ifeq ($(ARCH), x86_64)
ENABLE64BIT=Yes

View File

@@ -1,6 +1,4 @@
/*!
*@page License
*
* \copy
* Copyright (c) 2013, Cisco Systems
* All rights reserved.
@@ -52,361 +50,71 @@ typedef unsigned char bool;
#define EXTAPI
#endif
/**
* @file codec_api.h
*/
/**
* @page Overview
* * This page is for openh264 codec API usage.
* * For how to use the encoder,please refer to page UsageExampleForEncoder
* * For how to use the decoder,please refer to page UsageExampleForDecoder
* * For more detail about ISVEncoder,please refer to page ISVCEnoder
* * For more detail about ISVDecoder,please refer to page ISVCDecoder
*/
/**
* @page DecoderUsageExample
*
* @brief
* * An example for using the decoder for Decoding only or Parsing only
*
* Step 1:decoder declaration
* @code
*
* //decoder declaration
* ISVCDecoder *pSvcDecoder;
* //input: encoded bitstream start position; should include start code prefix
* unsigned char *pBuf =...;
* //input: encoded bit stream length; should include the size of start code prefix
* int iSize =...;
* //output: [0~2] for Y,U,V buffer for Decoding only
* unsigned char *pData[3] =...;
* //in-out: for Decoding only: declare and initialize the output buffer info, this should never co-exist with Parsing only
* SBufferInfo sDstBufInfo;
* memset(&sDstBufInfo, 0, sizeof(SBufferInfo));
* //in-out: for Parsing only: declare and initialize the output bitstream buffer info for parse only, this should never co-exist with Decoding only
* SParserBsInfo sDstParseInfo;
* memset(&sDstParseInfo, 0, sizeof(SParserBsInfo));
* sDstParseInfo.pDstBuff = new unsigned char[PARSE_SIZE]; //In Parsing only, allocate enough buffer to save transcoded bitstream for a frame
*
* @endcode
*
* Step 2:decoder creation
* @code
* CreateDecoder(pSvcDecoder);
* @endcode
*
* Step 3:declare required parameter, used to differentiate Decoding only and Parsing only
* @code
* SDecodingParam sDecParam = {0};
* sDecParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_AVC;
* //for Parsing only, the assignment is mandatory
* sDecParam.bParseOnly = true;
* @endcode
*
* Step 4:initialize the parameter and decoder context, allocate memory
* @code
* Initialize(&sDecParam);
* @endcode
*
* Step 5:do actual decoding process in slice level;
* this can be done in a loop until data ends
* @code
* //for Decoding only
* iRet = DecodeFrame2(pBuf, iSize, pData, &sDstBufInfo);
* //for Parsing only
* iRet = DecodeParser(pBuf, iSize, &sDstParseInfo);
* //decode failed
* If (iRet != 0){
* RequestIDR or something like that.
* }
* //for Decoding only, pData can be used for render.
* if (sDstBufInfo.iBufferStatus==1){
* output pData[0], pData[1], pData[2];
* }
* //for Parsing only, sDstParseInfo can be used for, e.g., HW decoding
* if (sDstBufInfo.iBufferStatus==1){
* Hardware decoding sDstParseInfo;
* }
* //no-delay decoding can be realized by directly calling decoder again with NULL input, as in the following. In this case, decoder would immediately reconstruct the input data. This can also be used similarly for Parsing only. Consequent decoding error and output indication should also be considered as above.
* iRet = DecodeFrame2(NULL, 0, pData, &sDstBufInfo);
* judge iRet, sDstBufInfo.iBufferStatus ...
* @endcode
*
* Step 6:uninitialize the decoder and memory free
* @code
* Uninitialize();
* @endcode
*
* Step 7:destroy the decoder
* @code
* DestroyDecoder();
* @endcode
*
*/
/**
* @page EncoderUsageExample1
*
* @brief
* * An example for using encoder with basic parameter
*
* Step1:setup encoder
* @code
* int rv = WelsCreateSVCEncoder (&encoder_);
* ASSERT_EQ (0, rv);
* ASSERT_TRUE (encoder_ != NULL);
* @endcode
*
* Step2:initilize with basic parameter
* @code
* SEncParamBase param;
* memset (&param, 0, sizeof (SEncParamBase));
* param.iUsageType = usageType;
* param.fMaxFrameRate = frameRate;
* param.iPicWidth = width;
* param.iPicHeight = height;
* param.iTargetBitrate = 5000000;
* param.iInputCsp = videoFormatI420;
* encoder_->Initialize (&param);
* @endcode
*
* Step3:set option, set option during encoding process
* @code
* encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &g_LevelSetting);
* @endcode
*
* Step4: encode and store ouput bistream
* @code
* int frameSize = width * height * 3 / 2;
* BufferedData buf;
* buf.SetLength (frameSize);
* ASSERT_TRUE (buf.Length() == (size_t)frameSize);
* SFrameBSInfo info;
* memset (&info, 0, sizeof (SFrameBSInfo));
* SSourcePicture pic;
* memset (&pic, 0, sizeof (SsourcePicture));
* pic.iPicWidth = width;
* pic.iPicHeight = height;
* pic.iColorFormat = videoFormatI420;
* pic.iStride[0] = pic.iPicWidth;
* pic.iStride[1] = pic.iStride[2] = pic.iPicWidth >> 1;
* pic.pData[0] = buf.data();
* pic.pData[1] = pic.pData[0] + width * height;
* pic.pData[2] = pic.pData[1] + (width * height >> 2);
* for(int num = 0;num<total_num;num++) {
* //prepare input data
* rv = encoder_->EncodeFrame (&pic, &info);
* ASSERT_TRUE (rv == cmResultSuccess);
* if (info.eFrameType != videoFrameTypeSkip && cbk != NULL) {
* //output bitstream
* }
* }
* @endcode
*
* Step5:teardown encoder
* @code
* if (encoder_) {
* encoder_->Uninitialize();
* WelsDestroySVCEncoder (encoder_);
* }
* @endcode
*
*/
/**
* @page EncoderUsageExample2
*
* @brief
* * An example for using the encoder with extension parameter.
* * The same operation on Step 1,3,4,5 with Example-1
*
* Step 2:initialize with extension parameter
* @code
* SEncParamExt param;
* encoder->GetDefaultParams (&param);
* param.iUsageType = usageType;
* param.fMaxFrameRate = frameRate;
* param.iPicWidth = width;
* param.iPicHeight = height;
* param.iTargetBitrate = 5000000;
* param.iInputCsp = videoFormatI420;
* param.bEnableDenoise = denoise;
* param.iSpatialLayerNum = layers;
* //SM_DYN_SLICE don't support multi-thread now
* if (sliceMode != SM_SINGLE_SLICE && sliceMode != SM_DYN_SLICE)
* param.iMultipleThreadIdc = 2;
*
* for (int i = 0; i < param.iSpatialLayerNum; i++) {
* param.sSpatialLayers[i].iVideoWidth = width >> (param.iSpatialLayerNum - 1 - i);
* param.sSpatialLayers[i].iVideoHeight = height >> (param.iSpatialLayerNum - 1 - i);
* param.sSpatialLayers[i].fFrameRate = frameRate;
* param.sSpatialLayers[i].iSpatialBitrate = param.iTargetBitrate;
*
* param.sSpatialLayers[i].sSliceCfg.uiSliceMode = sliceMode;
* if (sliceMode == SM_DYN_SLICE) {
* param.sSpatialLayers[i].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = 600;
* param.uiMaxNalSize = 1500;
* }
* }
* param.iTargetBitrate *= param.iSpatialLayerNum;
* encoder_->InitializeExt (&param);
*
* @endcode
*/
#ifdef __cplusplus
/**
* @brief Endocder definition
*/
class ISVCEncoder {
public:
/**
* @brief Initialize the encoder
* @param pParam basic encoder parameter
* @return CM_RETURN: 0 - success; otherwise - failed;
*/
/*
* return: CM_RETURN: 0 - success; otherwise - failed;
*/
virtual int EXTAPI Initialize (const SEncParamBase* pParam) = 0;
/**
* @brief Initilaize encoder by using extension parameters.
* @param pParam extension parameter for encoder
* @return CM_RETURN: 0 - success; otherwise - failed;
*/
virtual int EXTAPI InitializeExt (const SEncParamExt* pParam) = 0;
/**
* @brief Get the default extension parameters.
* If you want to change some parameters of encoder, firstly you need to get the default encoding parameters,
* after that you can change part of parameters you want to.
* @param pParam extension parameter for encoder
* @return CM_RETURN: 0 - success; otherwise - failed;
* */
virtual int EXTAPI GetDefaultParams (SEncParamExt* pParam) = 0;
/// uninitialize the encoder
virtual int EXTAPI Uninitialize() = 0;
/**
* @brief Encode one frame
* @param kpSrcPic the pointer to the source luminance plane
* chrominance data:
* CbData = kpSrc + m_iMaxPicWidth * m_iMaxPicHeight;
* CrData = CbData + (m_iMaxPicWidth * m_iMaxPicHeight)/4;
* the application calling this interface needs to ensure the data validation between the location
* @param pBsInfo output bit stream
* @return 0 - success; otherwise -failed;
*/
/*
* return: 0 - success; otherwise -failed;
*/
virtual int EXTAPI EncodeFrame (const SSourcePicture* kpSrcPic, SFrameBSInfo* pBsInfo) = 0;
/**
* @brief Encode the parameters from output bit stream
* @param pBsInfo output bit stream
* @return 0 - success; otherwise - failed;
*/
/*
* return: 0 - success; otherwise - failed;
*/
virtual int EXTAPI EncodeParameterSets (SFrameBSInfo* pBsInfo) = 0;
/**
* @brief Force encoder to encoder frame as IDR if bIDR set as true
* @param bIDR true: force encoder to encode frame as IDR frame;false, return 1 and nothing to do
* @return 0 - success; otherwise - failed;
*/
/*
* return: 0 - success; otherwise - failed;
*/
virtual int EXTAPI PauseFrame (const SSourcePicture* kpSrcPic, SFrameBSInfo* pBsInfo) = 0;
/*
* return: 0 - success; otherwise - failed;
*/
virtual int EXTAPI ForceIntraFrame (bool bIDR) = 0;
/**
* @brief Set option for encoder, detail option type, please refer to enumurate ENCODER_OPTION.
* @param pOption option for encoder such as InDataFormat, IDRInterval, SVC Encode Param, Frame Rate, Bitrate,...
* @return CM_RETURN: 0 - success; otherwise - failed;
*/
/************************************************************************
* InDataFormat, IDRInterval, SVC Encode Param, Frame Rate, Bitrate,..
************************************************************************/
/*
* return: CM_RETURN: 0 - success; otherwise - failed;
*/
virtual int EXTAPI SetOption (ENCODER_OPTION eOptionId, void* pOption) = 0;
/**
* @brief Set option for encoder, detail option type, please refer to enumurate ENCODER_OPTION.
* @param pOption option for encoder such as InDataFormat, IDRInterval, SVC Encode Param, Frame Rate, Bitrate,...
* @return CM_RETURN: 0 - success; otherwise - failed;
*/
virtual int EXTAPI GetOption (ENCODER_OPTION eOptionId, void* pOption) = 0;
virtual ~ISVCEncoder() {}
};
/**
* @brief Decoder definition
*/
class ISVCDecoder {
public:
/**
* @brief Initilaize decoder
* @param pParam parameter for decoder
* @return 0 - success; otherwise - failed;
*/
virtual long EXTAPI Initialize (const SDecodingParam* pParam) = 0;
/// Uninitialize the decoder
virtual long EXTAPI Uninitialize() = 0;
/**
* @brief Decode one frame
* @param pSrc the h264 stream to be decoded
* @param iSrcLen the length of h264 stream
* @param ppDst buffer pointer of decoded data (YUV)
* @param pStride output stride
* @param iWidth output width
* @param iHeight output height
* @return 0 - success; otherwise -failed;
*/
virtual DECODING_STATE EXTAPI DecodeFrame (const unsigned char* pSrc,
const int iSrcLen,
unsigned char** ppDst,
int* pStride,
int& iWidth,
int& iHeight) = 0;
/**
* @brief For slice level DecodeFrame2() (4 parameters input),
* whatever the function return value is, the output data
* of I420 format will only be available when pDstInfo->iBufferStatus == 1,.
* (e.g., in multi-slice cases, only when the whole picture
* is completely reconstructed, this variable would be set equal to 1.)
* @param pSrc the h264 stream to be decoded
* @param iSrcLen the length of h264 stream
* @param ppDst buffer pointer of decoded data (YUV)
* @param pDstInfo information provided to API(width, height, etc.)
* @return 0 - success; otherwise -failed;
*/
/*
* return: 0 - success; otherwise -failed;
*/
virtual DECODING_STATE EXTAPI DecodeFrame2 (const unsigned char* pSrc,
const int iSrcLen,
unsigned char** ppDst,
SBufferInfo* pDstInfo) = 0;
/**
* @brief This function parse input bitstream only, and rewrite possible SVC syntax to AVC syntax
* @param pSrc the h264 stream to be decoded
* @param iSrcLen the length of h264 stream
* @param pDstInfo bit stream info
* @return 0 - success; otherwise -failed;
*/
virtual DECODING_STATE EXTAPI DecodeParser (const unsigned char* pSrc,
const int iSrcLen,
SParserBsInfo* pDstInfo) = 0;
/**
* @brief This API does not work for now!! This is for future use to support non-I420 color format output.
* @param pSrc the h264 stream to be decoded
* @param iSrcLen the length of h264 stream
* @param pDst buffer pointer of decoded data (YUV)
* @param iDstStride output stride
* @param iDstLen bit stream info
* @param iWidth output width
* @param iHeight output height
* @param iColorFormat output color format
* @return to do ...
*/
/*
* this API does not work for now!! This is for future use to support non-I420 color format output.
*/
virtual DECODING_STATE EXTAPI DecodeFrameEx (const unsigned char* pSrc,
const int iSrcLen,
unsigned char* pDst,
@@ -416,18 +124,10 @@ class ISVCDecoder {
int& iHeight,
int& iColorFormat) = 0;
/**
* @brief Set option for decoder, detail option type, please refer to enumurate DECODER_OPTION.
* @param pOption option for decoder such as OutDataFormat, Eos Flag, EC method, ...
* @return CM_RETURN: 0 - success; otherwise - failed;
*/
/*************************************************************************
* OutDataFormat, Eos Flag, EC method, ...
*************************************************************************/
virtual long EXTAPI SetOption (DECODER_OPTION eOptionId, void* pOption) = 0;
/**
* @brief Get option for decoder, detail option type, please refer to enumurate DECODER_OPTION.
* @param pOption option for decoder such as OutDataFormat, Eos Flag, EC method, ...
* @return CM_RETURN: 0 - success; otherwise - failed;
*/
virtual long EXTAPI GetOption (DECODER_OPTION eOptionId, void* pOption) = 0;
virtual ~ISVCDecoder() {}
};
@@ -451,6 +151,8 @@ int (*Uninitialize) (ISVCEncoder*);
int (*EncodeFrame) (ISVCEncoder*, const SSourcePicture* kpSrcPic, SFrameBSInfo* pBsInfo);
int (*EncodeParameterSets) (ISVCEncoder*, SFrameBSInfo* pBsInfo);
int (*PauseFrame) (ISVCEncoder*, const SSourcePicture* kpSrcPic, SFrameBSInfo* pBsInfo);
int (*ForceIntraFrame) (ISVCEncoder*, bool bIDR);
int (*SetOption) (ISVCEncoder*, ENCODER_OPTION eOptionId, void* pOption);
@@ -475,10 +177,6 @@ DECODING_STATE (*DecodeFrame2) (ISVCDecoder*, const unsigned char* pSrc,
unsigned char** ppDst,
SBufferInfo* pDstInfo);
DECODING_STATE (*DecodeParser) (ISVCDecoder*, const unsigned char* pSrc,
const int iSrcLen,
SParserBsInfo* pDstInfo);
DECODING_STATE (*DecodeFrameEx) (ISVCDecoder*, const unsigned char* pSrc,
const int iSrcLen,
unsigned char* pDst,
@@ -493,40 +191,11 @@ long (*GetOption) (ISVCDecoder*, DECODER_OPTION eOptionId, void* pOption);
};
#endif
typedef void (*WelsTraceCallback) (void* ctx, int level, const char* string);
/** @brief Create encoder
* @param ppEncoder encoder
* @return 0 - success; otherwise - failed;
*/
int WelsCreateSVCEncoder (ISVCEncoder** ppEncoder);
/** @brief Destroy encoder
* @param pEncoder encoder
* @return void
*/
void WelsDestroySVCEncoder (ISVCEncoder* pEncoder);
/** @brief Get the capability of decoder
* @param pDecCapability decoder capability
* @return 0 - success; otherwise - failed;
*/
int WelsGetDecoderCapability (SDecoderCapability* pDecCapability);
/** @brief Create decoder
* @param ppDecoder decoder
* @return 0 - success; otherwise - failed;
*/
long WelsCreateDecoder (ISVCDecoder** ppDecoder);
/** @brief Destroy decoder
* @param pDecoder decoder
* @return void
*/
void WelsDestroyDecoder (ISVCDecoder* pDecoder);
#ifdef __cplusplus

View File

@@ -30,269 +30,181 @@
*
*/
#ifndef WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__
#define WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__
/**
* @file codec_app_def.h
* @brief Data and /or structures introduced in Cisco OpenH264 application
*/
#include "codec_def.h"
////////////////Data and /or structures introduced in Cisco OpenH264 application////////////////
/* Constants */
#define MAX_TEMPORAL_LAYER_NUM 4
#define MAX_SPATIAL_LAYER_NUM 4
#define MAX_QUALITY_LAYER_NUM 4
#define MAX_LAYER_NUM_OF_FRAME 128
#define MAX_NAL_UNITS_IN_LAYER 128 ///< predetermined here, adjust it later if need
#define MAX_NAL_UNITS_IN_LAYER 128 // predetermined here, adjust it later if need
#define MAX_RTP_PAYLOAD_LEN 1000
#define AVERAGE_RTP_PAYLOAD_LEN 800
#define SAVED_NALUNIT_NUM_TMP ( (MAX_SPATIAL_LAYER_NUM*MAX_QUALITY_LAYER_NUM) + 1 + MAX_SPATIAL_LAYER_NUM ) ///< SPS/PPS + SEI/SSEI + PADDING_NAL
#define SAVED_NALUNIT_NUM_TMP ( (MAX_SPATIAL_LAYER_NUM*MAX_QUALITY_LAYER_NUM) + 1 + MAX_SPATIAL_LAYER_NUM ) //SPS/PPS + SEI/SSEI + PADDING_NAL
#define MAX_SLICES_NUM_TMP ( ( MAX_NAL_UNITS_IN_LAYER - SAVED_NALUNIT_NUM_TMP ) / 3 )
#define AUTO_REF_PIC_COUNT -1 ///< encoder selects the number of reference frame automatically
#define UNSPECIFIED_BIT_RATE 0 ///< to do: add detail comment
/**
* @brief Decoding status
*/
#define AUTO_REF_PIC_COUNT -1 // encoder selects the number of reference frame automatically
typedef enum {
/**
* Errors derived from bitstream parsing
*/
dsErrorFree = 0x00, ///< bit stream error-free
dsFramePending = 0x01, ///< need more throughput to generate a frame output,
dsRefLost = 0x02, ///< layer lost at reference frame with temporal id 0
dsBitstreamError = 0x04, ///< error bitstreams(maybe broken internal frame) the decoder cared
dsDepLayerLost = 0x08, ///< dependented layer is ever lost
dsNoParamSets = 0x10, ///< no parameter set NALs involved
dsDataErrorConcealed = 0x20, ///< current data error concealed specified
/* Errors derived from bitstream parsing */
dsErrorFree = 0x00, /* Bitstream error-free */
dsFramePending = 0x01, /* Need more throughput to generate a frame output, */
dsRefLost = 0x02, /* layer lost at reference frame with temporal id 0 */
dsBitstreamError = 0x04, /* Error bitstreams(maybe broken internal frame) the decoder cared */
dsDepLayerLost = 0x08, /* Dependented layer is ever lost */
dsNoParamSets = 0x10, /* No parameter set NALs involved */
/**
* Errors derived from logic level
*/
dsInvalidArgument = 0x1000, ///< invalid argument specified
dsInitialOptExpected = 0x2000, ///< initializing operation is expected
dsOutOfMemory = 0x4000, ///< out of memory due to new request
/**
* ANY OTHERS?
*/
dsDstBufNeedExpan = 0x8000 ///< actual picture size exceeds size of dst pBuffer feed in decoder, so need expand its size
/* Errors derived from logic level */
dsInvalidArgument = 0x1000, /* Invalid argument specified */
dsInitialOptExpected = 0x2000, /* Initializing operation is expected */
dsOutOfMemory = 0x4000, /* Out of memory due to new request */
/* ANY OTHERS? */
dsDstBufNeedExpand = 0x8000 /* Actual picture size exceeds size of dst pBuffer feed in decoder, so need expand its size */
} DECODING_STATE;
/**
* @brief Option types introduced in SVC encoder application
*/
/* Option types introduced in SVC encoder application */
typedef enum {
ENCODER_OPTION_DATAFORMAT = 0,
ENCODER_OPTION_IDR_INTERVAL, ///< IDR period,0/-1 means no Intra period (only the first frame); lager than 0 means the desired IDR period, must be multiple of (2^temporal_layer)
ENCODER_OPTION_SVC_ENCODE_PARAM_BASE, ///< structure of Base Param
ENCODER_OPTION_SVC_ENCODE_PARAM_EXT, ///< structure of Extension Param
ENCODER_OPTION_FRAME_RATE, ///< maximal input frame rate, current supported range: MAX_FRAME_RATE = 30,MIN_FRAME_RATE = 1
ENCODER_OPTION_IDR_INTERVAL,
ENCODER_OPTION_SVC_ENCODE_PARAM_BASE,
ENCODER_OPTION_SVC_ENCODE_PARAM_EXT,
ENCODER_OPTION_FRAME_RATE,
ENCODER_OPTION_BITRATE,
ENCODER_OPTION_MAX_BITRATE,
ENCODER_OPTION_INTER_SPATIAL_PRED,
ENCODER_OPTION_RC_MODE,
ENCODER_PADDING_PADDING, ///< 0:disable padding;1:padding
ENCODER_OPTION_PROFILE, ///< assgin the profile for each layer
ENCODER_OPTION_LEVEL, ///< assgin the level for each layer
ENCODER_OPTION_NUMBER_REF, ///< the number of refererence frame
ENCODER_OPTION_DELIVERY_STATUS, ///< the delivery info which is a feedback from app level
ENCODER_PADDING_PADDING,
ENCODER_LTR_RECOVERY_REQUEST,
ENCODER_LTR_MARKING_FEEDBACK,
ENCODER_LTR_MARKING_PERIOD,
ENCODER_OPTION_LTR, ///< 0:disable LTR;larger than 0 enable LTR; LTR number is fixed to be 2 in current encoder
ENCODER_OPTION_COMPLEXITY,
ENCOCER_LTR_MARKING_PERIOD,
ENCODER_OPTION_LTR,
ENCODER_OPTION_ENABLE_SSEI, ///< enable SSEI: true--enable ssei; false--disable ssei
ENCODER_OPTION_ENABLE_PREFIX_NAL_ADDING, ///< enable prefix: true--enable prefix; false--disable prefix
ENCODER_OPTION_ENABLE_SPS_PPS_ID_ADDITION, ///< enable pSps/pPps id addition: true--enable pSps/pPps id; false--disable pSps/pPps id addistion
ENCODER_OPTION_ENABLE_SSEI, //enable SSEI: true--enable ssei; false--disable ssei
ENCODER_OPTION_ENABLE_PREFIX_NAL_ADDING, //enable prefix: true--enable prefix; false--disable prefix
ENCODER_OPTION_ENABLE_SPS_PPS_ID_ADDITION, //enable pSps/pPps id addition: true--enable pSps/pPps id; false--disable pSps/pPps id addistion
ENCODER_OPTION_CURRENT_PATH,
ENCODER_OPTION_DUMP_FILE, ///< dump layer reconstruct frame to a specified file
ENCODER_OPTION_TRACE_LEVEL, ///< trace info based on the 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, ///< context info of trace callback
ENCODER_OPTION_GET_STATISTICS, ///< read only
ENCODER_OPTION_STATISTICS_LOG_INTERVAL, ///< log interval in millisecond
ENCODER_OPTION_IS_LOSSLESS_LINK ///< advanced algorithmetic settings
ENCODER_OPTION_DUMP_FILE,
ENCODER_OPTION_TRACE_LEVEL
} ENCODER_OPTION;
/**
* @brief Option types introduced in decoder application
*/
/* Option types introduced in decoder application */
typedef enum {
DECODER_OPTION_DATAFORMAT = 0, ///< color format, now supports 23 only (I420)
DECODER_OPTION_END_OF_STREAM, ///< end of stream flag
DECODER_OPTION_VCL_NAL, ///< feedback whether or not have VCL NAL in current AU for application layer
DECODER_OPTION_TEMPORAL_ID, ///< feedback temporal id for application layer
DECODER_OPTION_FRAME_NUM, ///< feedback current decoded frame number
DECODER_OPTION_IDR_PIC_ID, ///< feedback current frame belong to which IDR period
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_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,///< context info of trace callbac
DECODER_OPTION_GET_STATISTICS
DECODER_OPTION_DATAFORMAT = 0, /* Set color space of decoding output frame */
DECODER_OPTION_END_OF_STREAM, /* Indicate bitstream of the final frame to be decoded */
DECODER_OPTION_VCL_NAL, //feedback whether or not have VCL NAL in current AU for application layer
DECODER_OPTION_TEMPORAL_ID, //feedback temporal id for application layer
DECODER_OPTION_FRAME_NUM, //feedback current decoded frame number
DECODER_OPTION_IDR_PIC_ID, // feedback current frame belong to which IDR period
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_ERROR_CON_IDC, //not finished yet, indicate decoder error concealment status, in progress
} DECODER_OPTION;
/**
* @brief Enumerate the type of error concealment methods
*/
//enuerate the types of error concealment methods
typedef enum {
ERROR_CON_DISABLE = 0,
ERROR_CON_FRAME_COPY,
ERROR_CON_SLICE_COPY,
ERROR_CON_FRAME_COPY_CROSS_IDR,
ERROR_CON_SLICE_COPY_CROSS_IDR,
ERROR_CON_SLICE_COPY_CROSS_IDR_FREEZE_RES_CHANGE,
ERROR_CON_SLICE_MV_COPY_CROSS_IDR,
ERROR_CON_SLICE_MV_COPY_CROSS_IDR_FREEZE_RES_CHANGE
} ERROR_CON_IDC;
/**
* @brief Feedback that whether or not have VCL NAL in current AU
*/
typedef enum {
typedef enum { //feedback that whether or not have VCL NAL in current AU
FEEDBACK_NON_VCL_NAL = 0,
FEEDBACK_VCL_NAL,
FEEDBACK_UNKNOWN_NAL
} FEEDBACK_VCL_NAL_IN_AU;
/**
* @brief Type of layer being encoded
*/
/* Type of layer being encoded */
typedef enum {
NON_VIDEO_CODING_LAYER = 0,
VIDEO_CODING_LAYER = 1
} LAYER_TYPE;
/**
* @brief Spatial layer num
*/
typedef enum {
SPATIAL_LAYER_0 = 0,
SPATIAL_LAYER_1 = 1,
SPATIAL_LAYER_2 = 2,
SPATIAL_LAYER_3 = 3,
SPATIAL_LAYER_ALL = 4
SPATIAL_LAYER_ALL = 4,
} LAYER_NUM;
/**
* @brief Enumerate the type of video bitstream which is provided to decoder
*/
//enumerate the type of video bitstream which is provided to decoder
typedef enum {
VIDEO_BITSTREAM_AVC = 0,
VIDEO_BITSTREAM_SVC = 1,
VIDEO_BITSTREAM_DEFAULT = VIDEO_BITSTREAM_SVC
VIDEO_BITSTREAM_DEFAULT = VIDEO_BITSTREAM_SVC,
} VIDEO_BITSTREAM_TYPE;
/**
* @brief Enumerate the type of key frame request
*/
typedef enum {
NO_RECOVERY_REQUSET = 0,
LTR_RECOVERY_REQUEST = 1,
IDR_RECOVERY_REQUEST = 2,
NO_LTR_MARKING_FEEDBACK = 3,
LTR_MARKING_SUCCESS = 4,
LTR_MARKING_FAILED = 5
LTR_MARKING_FAILED = 5,
} KEY_FRAME_REQUEST_TYPE;
/**
* @brief Structure for LTR recover request
*/
typedef struct {
unsigned int uiFeedbackType; ///< IDR request or LTR recovery request
unsigned int uiIDRPicId; ///< distinguish request from different IDR
int iLastCorrectFrameNum;
int iCurrentFrameNum; ///< specify current decoder frame_num.
unsigned int uiFeedbackType; //IDR request or LTR recovery request
unsigned int uiIDRPicId; // distinguish request from different IDR
int iLastCorrectFrameNum;
int iCurrentFrameNum; //specify current decoder frame_num.
} SLTRRecoverRequest;
/**
* @brief Structure for LTR marking feedback
*/
typedef struct {
unsigned int uiFeedbackType; ///< mark failed or successful
unsigned int uiIDRPicId; ///< distinguish request from different IDR
int iLTRFrameNum; ///< specify current decoder frame_num
unsigned int uiFeedbackType; //mark failed or successful
unsigned int uiIDRPicId; // distinguish request from different IDR
int iLTRFrameNum; //specify current decoder frame_num
} SLTRMarkingFeedback;
/**
* @brief Structure for LTR configuration
*/
typedef struct {
bool bEnableLongTermReference; ///< 1: on, 0: off
int iLTRRefNum; ///< TODO: not supported to set it arbitrary yet
} SLTRConfig;
/**
* @brief Structure for slice argument
*/
typedef struct {
unsigned int
uiSliceMbNum[MAX_SLICES_NUM_TMP]; ///< only used when uiSliceMode=2;here we use a tmp fixed value since MAX_SLICES_NUM is not defined here and its definition may be changed;
unsigned int uiSliceNum; ///< only used when uiSliceMode=1
unsigned int uiSliceSizeConstraint; ///< only used when uiSliceMode=4
} SSliceArgument; ///< not all the elements in this argument will be used, how it will be used depends on uiSliceMode; please refer to SliceModeEnum
uiSliceMbNum[MAX_SLICES_NUM_TMP]; //here we use a tmp fixed value since MAX_SLICES_NUM is not defined here and its definition may be changed;
unsigned int uiSliceNum;
unsigned int uiSliceSizeConstraint;
} SSliceArgument;//not all the elements in this argument will be used, how it will be used depends on uiSliceMode; see below
/**
* @brief Enumerate the type of slice mode
*/
typedef enum {
SM_SINGLE_SLICE = 0, ///< | SliceNum==1
SM_FIXEDSLCNUM_SLICE = 1, ///< | according to SliceNum | enabled dynamic slicing for multi-thread
SM_RASTER_SLICE = 2, ///< | according to SlicesAssign | need input of MB numbers each slice. In addition, if other constraint in SSliceArgument is presented, need to follow the constraints. Typically if MB num and slice size are both constrained, re-encoding may be involved.
SM_ROWMB_SLICE = 3, ///< | according to PictureMBHeight | typical of single row of mbs each slice + slice size constraint which including re-encoding
SM_DYN_SLICE = 4, ///< | according to SliceSize | dynamic slicing (have no idea about slice_nums until encoding current frame)
SM_AUTO_SLICE = 5, ///< | according to thread number
SM_SINGLE_SLICE = 0, // | SliceNum==1
SM_FIXEDSLCNUM_SLICE = 1, // | according to SliceNum | Enabled dynamic slicing for multi-thread
SM_RASTER_SLICE = 2, // | according to SlicesAssign | Need input of MB numbers each slice. In addition, if other constraint in SSliceArgument is presented, need to follow the constraints. Typically if MB num and slice size are both constrained, re-encoding may be involved.
SM_ROWMB_SLICE = 3, // | according to PictureMBHeight | Typical of single row of mbs each slice?+ slice size constraint which including re-encoding
SM_DYN_SLICE = 4, // | according to SliceSize | Dynamic slicing (have no idea about slice_nums until encoding current frame)
SM_AUTO_SLICE = 5, // | according to thread number
SM_RESERVED = 6
} SliceModeEnum;
/**
* @brief Enumerate the type of rate control mode
*/
typedef enum {
RC_QUALITY_MODE = 0, ///< quality mode
RC_BITRATE_MODE = 1, ///< bitrate mode
RC_BUFFERBASED_MODE = 2, ///< no bitrate control,only using buffer status,adjust the video quality
RC_OFF_MODE = -1 ///< rate control off mode
RC_QUALITY_MODE = 0, //Quality mode
RC_BITRATE_MODE = 1, //Bitrate mode
RC_LOW_BW_MODE = 2, //bitrate limited mode
RC_OFF_MODE = -1, // rate control off mode
} RC_MODES;
/**
* @brief Enumerate the type of profile id
*/
typedef enum {
PRO_UNKNOWN = 0,
PRO_UNKNOWN = 0,
PRO_BASELINE = 66,
PRO_MAIN = 77,
PRO_EXTENDED = 88,
PRO_HIGH = 100,
PRO_HIGH10 = 110,
PRO_HIGH422 = 122,
PRO_HIGH444 = 144,
PRO_HIGH10 = 110,
PRO_HIGH422 = 122,
PRO_HIGH444 = 144,
PRO_CAVLC444 = 244,
PRO_SCALABLE_BASELINE = 83,
PRO_SCALABLE_HIGH = 86
PRO_SCALABLE_HIGH = 86,
} EProfileIdc;
/**
* @brief Enumerate the type of level id
*/
typedef enum {
LEVEL_UNKNOWN,
LEVEL_1_0,
@@ -314,312 +226,159 @@ typedef enum {
LEVEL_5_2
} ELevelIdc;
/**
* @brief Enumerate the type of wels log
*/
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
};
/**
* @brief Structure for slice configuration
*/
typedef struct {
SliceModeEnum uiSliceMode; ///< by default, uiSliceMode will be SM_SINGLE_SLICE
SliceModeEnum uiSliceMode; //by default, uiSliceMode will be SM_SINGLE_SLICE
SSliceArgument sSliceArgument;
} SSliceConfig;
/**
* @brief Structure for spatial layer configuration
*/
typedef struct {
int iVideoWidth; ///< width of picture in luminance samples of a layer
int iVideoHeight; ///< height of picture in luminance samples of a layer
float fFrameRate; ///< frame rate specified for a layer
int iSpatialBitrate; ///< target bitrate for a spatial layer
int iMaxSpatialBitrate; ///< maximum bitrate for a spatial layer
EProfileIdc uiProfileIdc; ///< value of profile IDC (PRO_UNKNOWN for auto-detection)
ELevelIdc uiLevelIdc; ///< value of profile IDC (0 for auto-detection)
int iDLayerQp; ///< value of level IDC (0 for auto-detection)
SSliceConfig sSliceCfg; ///< slice configuration for a layer
typedef struct {
int iVideoWidth; // video size in cx specified for a layer
int iVideoHeight; // video size in cy specified for a layer
float fFrameRate; // frame rate specified for a layer
int iSpatialBitrate; // target bitrate for a spatial layer
int iMaxSpatialBitrate;
EProfileIdc uiProfileIdc; // value of profile IDC (PRO_UNKNOWN for auto-detection)
ELevelIdc uiLevelIdc;
int iDLayerQp;
SSliceConfig sSliceCfg;
} SSpatialLayerConfig;
/**
* @brief Encoder usage type
*/
typedef enum {
CAMERA_VIDEO_REAL_TIME, ///< camera video signal
SCREEN_CONTENT_REAL_TIME ///< screen content signal
CAMERA_VIDEO_REAL_TIME, //camera video signal
SCREEN_CONTENT_REAL_TIME,//screen content signal
} EUsageType;
/**
* @brief Enumulate the complexity mode
*/
typedef enum {
LOW_COMPLEXITY, ///< the lowest compleixty,the fastest speed,
MEDIUM_COMPLEXITY, ///< medium complexity, medium speed,medium quality
HIGH_COMPLEXITY ///< high complexity, lowest speed, high quality
} ECOMPLEXITY_MODE;
// TODO: Refine the parameters definition.
/**
* @brief SVC Encoding Parameters
*/
// SVC Encoding Parameters
typedef struct TagEncParamBase {
EUsageType
iUsageType; ///< application type;1.CAMERA_VIDEO_REAL_TIME:camera video signal; 2.SCREEN_CONTENT_REAL_TIME:screen content signal;
iUsageType; //application type;// CAMERA_VIDEO_REAL_TIME: //camera video signal; SCREEN_CONTENT_REAL_TIME: screen content signal;
int iInputCsp; // color space of input sequence
int iPicWidth; ///< width of picture in luminance samples (the maximum of all layers if multiple spatial layers presents)
int iPicHeight; ///< height of picture in luminance samples((the maximum of all layers if multiple spatial layers presents)
int iTargetBitrate; ///< target bitrate desired
RC_MODES iRCMode; ///< rate control mode
float fMaxFrameRate; ///< maximal input frame rate
int iPicWidth; // width of picture in samples
int iPicHeight; // height of picture in samples
int iTargetBitrate; // target bitrate desired
RC_MODES iRCMode; // RC mode
float fMaxFrameRate; // input maximal frame rate
} SEncParamBase, *PEncParamBase;
/**
* @brief SVC Encoding Parameters extention
*/
typedef struct TagEncParamExt {
EUsageType
iUsageType; ///< application type;1.CAMERA_VIDEO_REAL_TIME:camera video signal;2.SCREEN_CONTENT_REAL_TIME:screen content signal;
iUsageType; //application type;// CAMERA_VIDEO_REAL_TIME: //camera video signal; SCREEN_CONTENT_REAL_TIME: screen content signal;
int iInputCsp; // color space of input sequence
int iPicWidth; ///< width of picture in luminance samples (the maximum of all layers if multiple spatial layers presents)
int iPicHeight; ///< height of picture in luminance samples((the maximum of all layers if multiple spatial layers presents)
int iTargetBitrate; ///< target bitrate desired
RC_MODES iRCMode; ///< rate control mode
float fMaxFrameRate; ///< maximal input frame rate
int iPicWidth; // width of picture in samples
int iPicHeight; // height of picture in samples
int iTargetBitrate; // target bitrate desired
RC_MODES iRCMode; // RC mode
float fMaxFrameRate; // input maximal frame rate
int iTemporalLayerNum; ///< temporal layer number, max temporal layer = 4
int iSpatialLayerNum; ///< spatial layer number,1<= iSpatialLayerNum <= MAX_SPATIAL_LAYER_NUM, MAX_SPATIAL_LAYER_NUM = 4
int iTemporalLayerNum; // layer number at temporal level
int iSpatialLayerNum; // layer number at spatial level
SSpatialLayerConfig sSpatialLayers[MAX_SPATIAL_LAYER_NUM];
ECOMPLEXITY_MODE iComplexityMode;
unsigned int uiIntraPeriod; ///< period of Intra frame
int iNumRefFrame; ///< number of reference frame used
bool bEnableSpsPpsIdAddition; ///< false:not adjust ID in SPS/PPS; true: adjust ID in SPS/PPS
bool bPrefixNalAddingCtrl; ///< false:not use Prefix NAL; true: use Prefix NAL
bool bEnableSSEI; ///< false:not use SSEI; true: use SSEI
int iPaddingFlag; ///< 0:disable padding;1:padding
int iEntropyCodingModeFlag; ///< 0:CAVLC 1:CABAC.
unsigned int uiIntraPeriod; // period of Intra frame
int iNumRefFrame; // number of reference frame used
unsigned int uiFrameToBeCoded; // frame to be encoded (at input frame rate)
bool bEnableSpsPpsIdAddition;
bool bPrefixNalAddingCtrl;
bool bEnableSSEI;
int iPaddingFlag; // 0:disable padding;1:padding
int iEntropyCodingModeFlag;
/* rc control */
bool bEnableFrameSkip; ///< False: don't skip frame even if VBV buffer overflow.True: allow skipping frames to keep the bitrate within limits
int iMaxBitrate; ///< the maximum bitrate
int iMaxQp; ///< the maximum QP encoder supports
int iMinQp; ///< the minmum QP encoder supports
unsigned int uiMaxNalSize; ///< the maximum NAL size. This value should be not 0 for dynamic slice mode
bool bEnableFrameSkip; // allow skipping frames to keep the bitrate within limits
int iMaxBitrate; // max bitrate desired
int iMaxQp;
int iMinQp;
unsigned int uiMaxNalSize;
/*LTR settings*/
bool bEnableLongTermReference; ///< 1: on, 0: off
int iLTRRefNum; ///< the number of LTR(long term reference),TODO: not supported to set it arbitrary yet
unsigned int iLtrMarkPeriod; ///< the LTR marked period that is used in feedback.
bool bEnableLongTermReference; // 0: on, 1: off
int iLTRRefNum;
unsigned int iLtrMarkPeriod;
/* multi-thread settings*/
unsigned short
iMultipleThreadIdc; ///< 1 # 0: auto(dynamic imp. internal encoder); 1: multiple threads imp. disabled; lager than 1: count number of threads;
iMultipleThreadIdc; // 1 # 0: auto(dynamic imp. internal encoder); 1: multiple threads imp. disabled; > 1: count number of threads;
/* Deblocking loop filter */
int iLoopFilterDisableIdc; ///< 0: on, 1: off, 2: on except for slice boundaries
int iLoopFilterAlphaC0Offset; ///< AlphaOffset: valid range [-6, 6], default 0
int iLoopFilterBetaOffset; ///< BetaOffset: valid range [-6, 6], default 0
int iLoopFilterDisableIdc; // 0: on, 1: off, 2: on except for slice boundaries
int iLoopFilterAlphaC0Offset;// AlphaOffset: valid range [-6, 6], default 0
int iLoopFilterBetaOffset; // BetaOffset: valid range [-6, 6], default 0
/*pre-processing feature*/
bool bEnableDenoise; ///< denoise control
bool bEnableBackgroundDetection; ///< background detection control //VAA_BACKGROUND_DETECTION //BGD cmd
bool bEnableAdaptiveQuant; ///< adaptive quantization control
bool bEnableFrameCroppingFlag; ///< enable frame cropping flag: TRUE always in application
bool bEnableDenoise; // denoise control
bool bEnableBackgroundDetection;// background detection control //VAA_BACKGROUND_DETECTION //BGD cmd
bool bEnableAdaptiveQuant; // adaptive quantization control
bool bEnableFrameCroppingFlag;// enable frame cropping flag: TRUE always in application
bool bEnableSceneChangeDetect;
bool bIsLosslessLink; ///< LTR advanced setting
} SEncParamExt;
/**
* @brief Define a new struct to show the property of video bitstream.
*/
//Define a new struct to show the property of video bitstream.
typedef struct {
unsigned int size; ///< size of the struct
VIDEO_BITSTREAM_TYPE eVideoBsType; ///< video stream type (AVC/SVC)
unsigned int size; //size of the struct
VIDEO_BITSTREAM_TYPE eVideoBsType;
} SVideoProperty;
/**
* @brief SVC Decoding Parameters, reserved here and potential applicable in the future
*/
/* SVC Decoding Parameters, reserved here and potential applicable in the future */
typedef struct TagSVCDecodingParam {
char* pFileNameRestructed; ///< file name of reconstructed frame used for PSNR calculation based debug
char* pFileNameRestructed; // File name of restructed frame used for PSNR calculation based debug
EVideoFormatType eOutputColorFormat; ///< color space format to be outputed, EVideoFormatType specified in codec_def.h
unsigned int uiCpuLoad; ///< CPU load
unsigned char uiTargetDqLayer; ///< setting target dq layer id
int iOutputColorFormat; // color space format to be outputed, EVideoFormatType specified in codec_def.h
unsigned int uiCpuLoad; // CPU load
unsigned char uiTargetDqLayer; // Setting target dq layer id
ERROR_CON_IDC eEcActiveIdc; ///< whether active error concealment feature in decoder
bool bParseOnly; ///< decoder for parse only, no reconstruction. When it is true, SPS/PPS size should not exceed SPS_PPS_BS_SIZE (128). Otherwise, it will return error info
unsigned char uiEcActiveFlag; // Whether active error concealment feature in decoder
SVideoProperty sVideoProperty; ///< video stream property
SVideoProperty sVideoProperty;
} SDecodingParam, *PDecodingParam;
/**
* @brief Bitstream inforamtion of a layer being encoded
*/
/* Bitstream inforamtion of a layer being encoded */
typedef struct {
unsigned char uiTemporalId;
unsigned char uiSpatialId;
unsigned char uiQualityId;
unsigned char uiPriorityId; //ignore it currently
unsigned char uiLayerType;
int iNalCount; ///< count number of NAL coded already
int* pNalLengthInByte; ///< length of NAL size in byte from 0 to iNalCount-1
unsigned char* pBsBuf; ///< buffer of bitstream contained
int iNalCount; // Count number of NAL coded already
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
} SLayerBSInfo, *PLayerBSInfo;
/**
* @brief Frame bit stream info
*/
typedef struct {
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
* predicted from any picture on any higher layer.
*/
int iSubSeqId; ///< refer to D.2.11 Sub-sequence information SEI message semantics
typedef struct {
int iTemporalId; // Temporal ID
unsigned char uiFrameType;
int iLayerNum;
SLayerBSInfo sLayerInfo[MAX_LAYER_NUM_OF_FRAME];
EVideoFrameType eFrameType;
int iFrameSizeInBytes;
int eOutputFrameType;
long long uiTimeStamp;
} SFrameBSInfo, *PFrameBSInfo;
/**
* @brief Structure for source picture
*/
typedef struct Source_Picture_s {
int iColorFormat; ///< color space type
int iStride[4]; ///< stride for each plane pData
unsigned char* pData[4]; ///< plane pData
int iPicWidth; ///< luma picture width in x coordinate
int iPicHeight; ///< luma picture height in y coordinate
int iColorFormat; // color space type
int iStride[4]; // stride for each plane pData
unsigned char* pData[4]; // plane pData
int iPicWidth; // luma picture width in x coordinate
int iPicHeight; // luma picture height in y coordinate
long long uiTimeStamp;
} SSourcePicture;
/**
* @brief Structure for bit rate info
*/
typedef struct TagBitrateInfo {
typedef struct Bitrate_Info_s {
LAYER_NUM iLayer;
int iBitrate; ///< the maximum bitrate
int iBitrate; //the maximum bitrate
} SBitrateInfo;
/**
* @brief Structure for dump layer info
*/
typedef struct TagDumpLayer {
typedef struct Dump_Layer_s {
int iLayer;
char* pFileName;
} SDumpLayer;
/**
* @brief Structure for profile info in layer
*
*/
typedef struct TagProfileInfo {
int iLayer;
EProfileIdc uiProfileIdc; ///< the profile info
} SProfileInfo;
/**
* @brief Structure for level info in layer
*
*/
typedef struct TagLevelInfo {
int iLayer;
ELevelIdc uiLevelIdc; ///< the level info
} SLevelInfo;
/**
* @brief Structure for dilivery status
*
*/
typedef struct TagDeliveryStatus {
bool bDeliveryFlag; ///< 0: the previous frame isn't delivered,1: the previous frame is delivered
int iDropFrameType; ///< the frame type that is dropped; reserved
int iDropFrameSize; ///< the frame size that is dropped; reserved
} SDeliveryStatus;
/**
* @brief The capability of decoder, for SDP negotiation
*/
typedef struct TagDecoderCapability {
int iProfileIdc; ///< profile_idc
int iProfileIop; ///< profile-iop
int iLevelIdc; ///< level_idc
int iMaxMbps; ///< max-mbps
int iMaxFs; ///< max-fs
int iMaxCpb; ///< max-cpb
int iMaxDpb; ///< max-dpb
int iMaxBr; ///< max-br
bool bRedPicCap; ///< redundant-pic-cap
} SDecoderCapability;
/**
* @brief to do
*/
typedef struct TagParserBsInfo {
int iNalNum; ///< total NAL number in current AU
int iNalLenInByte [MAX_NAL_UNITS_IN_LAYER]; ///< each nal length
unsigned char* pDstBuff; ///< outputted dst buffer for parsed bitstream
int iSpsWidthInPixel; ///< required SPS width info
int iSpsHeightInPixel; ///< required SPS height info
unsigned long long uiInBsTimeStamp; ///< input BS timestamp
unsigned long long uiOutBsTimeStamp; ///< output BS timestamp
} SParserBsInfo, *PParserBsInfo;
/**
* @brief Structure for encoder statistics
*/
typedef struct TagVideoEncoderStatistics {
unsigned int uiWidth; ///< the width of encoded frame
unsigned int uiHeight; ///< the height of encoded frame
//following standard, will be 16x aligned, if there are multiple spatial, this is of the highest
float fAverageFrameSpeedInMs; ///< average_Encoding_Time
// rate control related
float fAverageFrameRate; ///< the average frame rate in, calculate since encoding starts, supposed that the input timestamp is in unit of ms
float fLatestFrameRate; ///< the frame rate in, in the last second, supposed that the input timestamp is in unit of ms (? useful for checking BR, but is it easy to calculate?
unsigned int uiBitRate; ///< sendrate in Bits per second, calculated within the set time-window
unsigned int uiInputFrameCount; ///< number of frames
unsigned int uiSkippedFrameCount; ///< number of frames
unsigned int uiResolutionChangeTimes; ///< uiResolutionChangeTimes
unsigned int uiIDRReqNum; ///< number of IDR requests
unsigned int uiIDRSentNum; ///< number of actual IDRs sent
unsigned int uiLTRSentNum; ///< number of LTR sent/marked
} SEncoderStatistics; // in building, coming soon
/**
* @brief Structure for decoder statistics
*/
typedef struct TagVideoDecoderStatistics {
unsigned int uiWidth; ///< the width of encode/decode frame
unsigned int uiHeight; ///< the height of encode/decode frame
float fAverageFrameSpeedInMs; ///< average_Decoding_Time
unsigned int uiDecodedFrameCount; ///< number of frames
unsigned int uiResolutionChangeTimes; ///< uiResolutionChangeTimes
unsigned int uiIDRRecvNum; ///< number of actual IDR received
//EC on related
unsigned int
uiAvgEcRatio; ///< when EC is on, the average ratio of correct or EC areas, can be an indicator of reconstruction quality
unsigned int uiEcIDRNum; ///< number of actual unintegrity IDR or not received but eced
unsigned int uiEcFrameNum; ///<
unsigned int uiIDRLostNum; ///< decoder detect the number of lost IDR
} SDecoderStatistics; // in building, coming soon
#endif//WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__

View File

@@ -33,15 +33,9 @@
#ifndef WELS_VIDEO_CODEC_DEFINITION_H__
#define WELS_VIDEO_CODEC_DEFINITION_H__
/**
* @file codec_def.h
*/
/**
* @brief Enumerate the type of video format
*/
typedef enum {
videoFormatRGB = 1, ///< rgb color formats
/*rgb color formats*/
videoFormatRGB = 1,
videoFormatRGBA = 2,
videoFormatRGB555 = 3,
videoFormatRGB565 = 4,
@@ -50,66 +44,56 @@ typedef enum {
videoFormatABGR = 7,
videoFormatARGB = 8,
videoFormatYUY2 = 20, ///< yuv color formats
/*yuv color formats*/
videoFormatYUY2 = 20,
videoFormatYVYU = 21,
videoFormatUYVY = 22,
videoFormatI420 = 23, ///< the same as IYUV
videoFormatI420 = 23, //same as IYUV
videoFormatYV12 = 24,
videoFormatInternal = 25, ///< only used in SVC decoder testbed
videoFormatInternal = 25, // Only Used for SVC decoder testbed
videoFormatNV12 = 26, ///< new format for output by DXVA decoding
videoFormatNV12 = 26, // new format for output by DXVA decoding
videoFormatVFlip = 0x80000000
} EVideoFormatType;
/**
* @brief Enumerate video frame type
*/
typedef enum {
videoFrameTypeInvalid, ///< encoder not ready or parameters are invalidate
videoFrameTypeIDR, ///< IDR frame in H.264
videoFrameTypeI, ///< I frame type
videoFrameTypeP, ///< P frame type
videoFrameTypeSkip, ///< skip the frame based encoder kernel
videoFrameTypeIPMixed ///< a frame where I and P slices are mixing, not supported yet
videoFrameTypeInvalid, /* Encoder not ready or parameters are invalidate */
videoFrameTypeIDR, /* This type is only available for H264 if this frame is key frame, then return this type */
videoFrameTypeI, /* I frame type */
videoFrameTypeP, /* P frame type */
videoFrameTypeSkip, /* Skip the frame based encoder kernel */
videoFrameTypeIPMixed, /* Frame type introduced I and P slices are mixing */
} EVideoFrameType;
/**
* @brief Enumerate return type
*/
typedef enum {
cmResultSuccess, ///< successful
cmInitParaError, ///< parameters are invalid
cmResultSuccess,
cmInitParaError, /*Parameters are invalid */
cmUnkonwReason,
cmMallocMemeError, ///< malloc a memory error
cmInitExpected, ///< initial action is expected
cmUnsupportedData
cmMallocMemeError, /*Malloc a memory error*/
cmInitExpected, /*Initial action is expected*/
cmUnsupportedData,
} CM_RETURN;
/**
* @brief Enumulate the nal unit type
*/
/* nal unit type */
enum ENalUnitType {
NAL_UNKNOWN = 0,
NAL_SLICE = 1,
NAL_UNKNOWN = 0,
NAL_SLICE = 1,
NAL_SLICE_DPA = 2,
NAL_SLICE_DPB = 3,
NAL_SLICE_DPC = 4,
NAL_SLICE_IDR = 5, ///< ref_idc != 0
NAL_SEI = 6, ///< ref_idc == 0
NAL_SLICE_IDR = 5, /* ref_idc != 0 */
NAL_SEI = 6, /* ref_idc == 0 */
NAL_SPS = 7,
NAL_PPS = 8
///< ref_idc == 0 for 6,9,10,11,12
/* ref_idc == 0 for 6,9,10,11,12 */
};
/**
* @brief NRI: eNalRefIdc
*/
/* NRI: eNalRefIdc */
enum ENalPriority {
NAL_PRIORITY_DISPOSABLE = 0,
NAL_PRIORITY_LOW = 1,
NAL_PRIORITY_HIGH = 2,
NAL_PRIORITY_HIGHEST = 3
NAL_PRIORITY_HIGHEST = 3,
};
#define IS_PARAMETER_SET_NAL(eNalRefIdc, eNalType) \
@@ -123,80 +107,82 @@ enum ENalPriority {
/* Error Tools definition */
typedef unsigned short ERR_TOOL;
/**
@brief to do
*/
enum {
ET_NONE = 0x00, ///< NONE Error Tools
ET_IP_SCALE = 0x01, ///< IP Scalable
ET_FMO = 0x02, ///< Flexible Macroblock Ordering
ET_IR_R1 = 0x04, ///< Intra Refresh in predifined 2% MB
ET_IR_R2 = 0x08, ///< Intra Refresh in predifined 5% MB
ET_IR_R3 = 0x10, ///< Intra Refresh in predifined 10% MB
ET_FEC_HALF = 0x20, ///< Forward Error Correction in 50% redundency mode
ET_FEC_FULL = 0x40, ///< Forward Error Correction in 100% redundency mode
ET_RFS = 0x80 ///< Reference Frame Selection
ET_NONE = 0x00, // NONE Error Tools
ET_IP_SCALE = 0x01, // IP Scalable
ET_FMO = 0x02, // Flexible Macroblock Ordering
ET_IR_R1 = 0x04, // Intra Refresh in predifined 2% MB
ET_IR_R2 = 0x08, // Intra Refresh in predifined 5% MB
ET_IR_R3 = 0x10, // Intra Refresh in predifined 10% MB
ET_FEC_HALF = 0x20, // Forward Error Correction in 50% redundency mode
ET_FEC_FULL = 0x40, // Forward Error Correction in 100% redundency mode
ET_RFS = 0x80, // Reference Frame Selection
};
/**
* @brief Information of coded Slice(=NAL)(s)
*/
/* information of coded Slice(=NAL)(s) */
typedef struct SliceInformation {
unsigned char* pBufferOfSlices; ///< base buffer of coded slice(s)
int iCodedSliceCount; ///< number of coded slices
unsigned int* pLengthOfSlices; ///< array of slices length accordingly by number of slice
int iFecType; ///< FEC type[0, 50%FEC, 100%FEC]
unsigned char uiSliceIdx; ///< index of slice in frame [FMO: 0,..,uiSliceCount-1; No FMO: 0]
unsigned char uiSliceCount; ///< count number of slice in frame [FMO: 2-8; No FMO: 1]
char iFrameIndex; ///< index of frame[-1, .., idr_interval-1]
unsigned char uiNalRefIdc; ///< NRI, priority level of slice(NAL)
unsigned char uiNalType; ///< NAL type
unsigned char* pBufferOfSlices; // base buffer of coded slice(s)
int iCodedSliceCount; // number of coded slices
unsigned int* pLengthOfSlices; // array of slices length accordingly by number of slice
int iFecType; // FEC type[0, 50%FEC, 100%FEC]
unsigned char uiSliceIdx; // index of slice in frame [FMO: 0,..,uiSliceCount-1; No FMO: 0]
unsigned char uiSliceCount; // count number of slice in frame [FMO: 2-8; No FMO: 1]
char iFrameIndex; // index of frame[-1, .., idr_interval-1]
unsigned char uiNalRefIdc; // NRI, priority level of slice(NAL)
unsigned char uiNalType; // NAL type
unsigned char
uiContainingFinalNal; ///< whether final NAL is involved in buffer of coded slices, flag used in Pause feature in T27
uiContainingFinalNal; // whether final NAL is involved in buffer of coded slices, flag used in Pause feature in T27
} SliceInfo, *PSliceInfo;
/**
* @brief thresholds of the initial, maximal and minimal rate
*/
#define CIF_WIDTH 352
#define CIF_HEIGHT 288
#define QVGA_WIDTH 320
#define QVGA_HEIGHT 240
#define QCIF_WIDTH 176
#define QCIF_HEIGHT 144
#define SQCIF_WIDTH 128
#define SQCIF_HEIGHT 96
/* thresholds of the initial, maximal and minimal rate */
typedef struct {
int iWidth; ///< frame width
int iHeight; ///< frame height
int iThresholdOfInitRate; ///< threshold of initial rate
int iThresholdOfMaxRate; ///< threshold of maximal rate
int iThresholdOfMinRate; ///< threshold of minimal rate
int iMinThresholdFrameRate; ///< min frame rate min
int iSkipFrameRate; ///< skip to frame rate min
int iSkipFrameStep; ///< how many frames to skip
int iWidth; // frame width
int iHeight; // frame height
int iThresholdOfInitRate; // threshold of initial rate
int iThresholdOfMaxRate; // threshold of maximal rate
int iThresholdOfMinRate; // threshold of minimal rate
int iMinThresholdFrameRate; //min frame rate min
int iSkipFrameRate; //skip to frame rate min
int iSkipFrameStep; //how many frames to skip
} SRateThresholds, *PRateThresholds;
/**
* @brief Structure for decoder memery
*/
typedef struct TagSysMemBuffer {
int iWidth; ///< width of decoded pic for display
int iHeight; ///< height of decoded pic for display
int iFormat; ///< type is "EVideoFormatType"
int iStride[2]; ///< stride of 2 component
int iWidth; //width of decoded pic for display
int iHeight; //height of decoded pic for display
int iFormat; // type is "EVideoFormatType"
int iStride[2]; //stride of 2 component
} SSysMEMBuffer;
/**
* @brief Buffer info
*/
typedef struct TagBufferInfo {
int iBufferStatus; ///< 0: one frame data is not ready; 1: one frame data is ready
unsigned long long uiInBsTimeStamp; ///< input BS timestamp
unsigned long long uiOutYuvTimeStamp; ///< output YUV timestamp, when bufferstatus is 1
int iBufferStatus; // 0: one frame data is not ready; 1: one frame data is ready
union {
SSysMEMBuffer sSystemBuffer; ///< memory info for one picture
} UsrData; ///< output buffer info
SSysMEMBuffer sSystemBuffer;
} UsrData;
} SBufferInfo;
/* Constants related to transmission rate at various resolutions */
static const SRateThresholds ksRateThrMap[4] = {
// initial-maximal-minimal
{CIF_WIDTH, CIF_HEIGHT, 225000, 384000, 96000, 3, 1, 1}, // CIF
{QVGA_WIDTH, QVGA_HEIGHT, 192000, 320000, 80000, -1, -1, -1}, // QVGA
{QCIF_WIDTH, QCIF_HEIGHT, 150000, 256000, 64000, 8, 4, 2}, // QCIF
{SQCIF_WIDTH, SQCIF_HEIGHT, 120000, 192000, 48000, 5, 3, 1} // SQCIF
};
/**
* @brief In a GOP, multiple of the key frame number, derived from
* the number of layers(index or array below)
*/
// In a GOP, multiple of the key frame number, derived from
// the number of layers(index or array below)
static const char kiKeyNumMultiple[] = {
1, 1, 2, 4, 8, 16,
};

View File

@@ -5,7 +5,7 @@
android:versionName="1.0">
<uses-sdk android:minSdkVersion="12"/>
<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"
android:label="@string/app_name">
<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_PLATFORM := android-12

View File

@@ -4,9 +4,7 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := wels
LOCAL_SRC_FILES := ../../../../../libopenh264.so
ifneq (,$(wildcard $(LOCAL_PATH)/$(LOCAL_SRC_FILES)))
include $(PREBUILT_SHARED_LIBRARY)
endif
@@ -22,11 +20,11 @@ LOCAL_MODULE := welsdecdemo
#
CODEC_PATH := ../../../../
CONSOLE_DEC_PATH := ../../../../console/dec
CONSOLE_COMMON_PATH := ../../../../console/common
LOCAL_SRC_FILES := \
$(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 \
$(CODEC_PATH)/common/src/logging.cpp \
myjni.cpp
#
# Header Includes
@@ -34,12 +32,15 @@ LOCAL_SRC_FILES := \
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../../../../api/svc \
$(LOCAL_PATH)/../../../../console/dec/inc \
$(LOCAL_PATH)/../../../../console/common/inc \
$(LOCAL_PATH)/../../../../common/inc
#
# 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_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

@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/cfg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Load bitstreams" />
<Button
android:id="@+id/buttonSW"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Test" />
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">"
<Button
android:id="@+id/cfg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Load bitstreams" />
<Button
android:id="@+id/buttonSW"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Test" />
</LinearLayout>
</LinearLayout>
</LinearLayout>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">WelsDecoderTest</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">WelsDecoderTest</string>
</resources>

View File

@@ -3,7 +3,6 @@ package com.wels.dec;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.os.Process;
import android.util.Log;
import android.view.KeyEvent;
@@ -16,136 +15,103 @@ import java.io.*;
import java.util.Vector;
public class WelsDecTest extends Activity {
/** Called when the activity is first created. */
private OnClickListener OnClickEvent;
private Button mBtnLoad, mBtnStartSW;
/** Called when the activity is first created. */
private OnClickListener OnClickEvent;
private Button mBtnLoad, mBtnStartSW;
final String mStreamPath = "/sdcard/welsdec/";
Vector<String> mStreamFiles = new Vector<String>();
final String mStreamPath = "/sdcard/wels-seq/";
Vector<String> mStreamFiles = new Vector<String>();
@Override
public void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
final TextView tv = new TextView (this);
System.out.println ("Here we go ...");
Log.i (TAG, "sdcard path:" + Environment.getExternalStorageDirectory().getAbsolutePath());
setContentView (R.layout.main);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final TextView tv = new TextView(this);
System.out.println("Here we go ...");
Log.i(TAG, "sdcard path:" + Environment.getExternalStorageDirectory().getAbsolutePath());
setContentView(R.layout.main);
mBtnLoad = (Button)findViewById (R.id.cfg);
mBtnStartSW = (Button)findViewById (R.id.buttonSW);
mBtnLoad = (Button)findViewById(R.id.cfg);
mBtnStartSW = (Button)findViewById(R.id.buttonSW);
OnClickEvent = new OnClickListener() {
public void onClick (View v) {
switch (v.getId()) {
case R.id.cfg: {
String cfgFile = mStreamPath + "BitStreams.txt";
try {
BufferedReader bufferedReader = new BufferedReader (new FileReader (cfgFile));
String text;
while ((text = bufferedReader.readLine()) != null) {
mStreamFiles.add (mStreamPath + text);
Log.i (TAG, mStreamPath + text);
OnClickEvent = new OnClickListener()
{
public void onClick(View v)
{
switch(v.getId())
{
case R.id.cfg:
{
String cfgFile = mStreamPath + "BitStreams.txt";
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(cfgFile));
String text;
while((text = bufferedReader.readLine()) != null) {
mStreamFiles.add(mStreamPath + text);
Log.i(TAG, mStreamPath + text);
}
bufferedReader.close();
} catch(IOException e) {
Log.e("WELS_DEC", e.getMessage());
}
}
break;
case R.id.buttonSW:
{
System.out.println("decode sequence number = " + mStreamFiles.size());
Log.i("WSE_DEC","after click");
try {
for (int k=0; k < mStreamFiles.size(); k++) {
String inFile = mStreamFiles.get(k);
String outFile = mStreamFiles.get(k) + ".yuv";
Log.i(TAG, "input file:" + inFile+ " output file:" + outFile);
DoDecoderTest(inFile, outFile);
}
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
mStreamFiles.clear();
tv.setText( "Decoder is completed!" );
}
break;
}
}
bufferedReader.close();
} catch (IOException e) {
Log.e ("WELS_DEC", e.getMessage());
}
}
break;
case R.id.buttonSW: {
System.out.println ("decode sequence number = " + mStreamFiles.size());
Log.i ("WSE_DEC", "after click");
try {
for (int k = 0; k < mStreamFiles.size(); k++) {
String inFile = mStreamFiles.get (k);
String outFile = mStreamFiles.get (k) + ".yuv";
Log.i (TAG, "input file:" + inFile + " output file:" + outFile);
DoDecoderTest (inFile, outFile);
}
} catch (Exception e) {
Log.e (TAG, e.getMessage());
}
mStreamFiles.clear();
tv.setText ("Decoder is completed!");
}
break;
}
}
};
};
mBtnLoad.setOnClickListener (OnClickEvent);
mBtnStartSW.setOnClickListener (OnClickEvent);
mBtnLoad.setOnClickListener(OnClickEvent);
mBtnStartSW.setOnClickListener(OnClickEvent);
System.out.println ("Done!");
//if you want to run the demo manually, just comment following 2 lines
runAutoDec();
}
public void runAutoDec() {
Thread thread = new Thread() {
public void run() {
Log.i (TAG, "decoder performance test begin");
File bitstreams = new File (mStreamPath);
String[] list = bitstreams.list();
if (list == null || list.length == 0) {
Log.i (TAG, "have not find any coder resourse");
finish();
}
for (int i = 0; i < list.length; i++) {
String inFile = list[i];
inFile = mStreamPath + inFile;
String outFile = inFile + ".yuv";
DoDecoderTest (inFile, outFile);
}
Log.i (TAG, "decoder performance test finish");
finish();
}
};
thread.start();
}
@Override
public void onStart() {
Log.i ("WSE_DEC", "welsdecdemo onStart");
super.onStart();
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i (TAG, "OnDestroy");
Process.killProcess (Process.myPid());
}
@Override
public boolean onKeyDown (int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
return true;
default:
return super.onKeyDown (keyCode, event);
System.out.println("Done!");
}
}
public native void DoDecoderTest (String infilename, String outfilename);
private static final String TAG = "welsdec";
static {
try {
System.loadLibrary ("openh264");
System.loadLibrary ("stlport_shared");
System.loadLibrary ("welsdecdemo");
Log.v (TAG, "Load libwelsdec successful");
} catch (Exception e) {
Log.e (TAG, "Failed to load welsdec" + e.getMessage());
@Override
public void onStart()
{
Log.i("WSE_DEC","welsdecdemo onStart");
super.onStart();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
return true;
default:
return super.onKeyDown(keyCode, event);
}
}
public native void DoDecoderTest(String infilename, String outfilename);
private static final String TAG = "welsdec";
static {
try {
System.loadLibrary("openh264");
System.loadLibrary("stlport_shared");
System.loadLibrary("welsdecdemo");
Log.v(TAG, "Load libwelsdec successful");
}
catch(Exception e) {
Log.e(TAG, "Failed to load welsdec"+e.getMessage());
}
}
}
}

View File

@@ -5,7 +5,7 @@
android:versionName="1.0">
<uses-sdk android:minSdkVersion="12"/>
<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"
android:label="@string/app_name">
<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_PLATFORM := android-12

View File

@@ -8,27 +8,6 @@
extern "C" int EncMain (int argc, char* argv[]);
extern "C"
JNIEXPORT void JNICALL Java_com_wels_enc_WelsEncTest_DoEncoderAutoTest
(JNIEnv* env, jobject thiz, jstring jsIncfgName, jstring jsInlayerName, jstring jsInyuvName, jstring jsOutbitName) {
/**************** Add the native codes/API *****************/
const char* argv[]={
(char*)("encConsole.exe"),
(char*) ((*env).GetStringUTFChars (jsIncfgName, NULL)),
(char*)("-org"),
(char*) ((*env).GetStringUTFChars (jsInyuvName, NULL)),
(char*)("-bf"),
(char*) ((*env).GetStringUTFChars (jsOutbitName, NULL)),
(char*)("-numl"),
(char*)("1"),
(char*)("-lconfig"),
(char*)("0"),
(char*) ((*env).GetStringUTFChars (jsInlayerName, NULL))
};
LOGI ("Start to run JNI module!+++");
EncMain(sizeof(argv)/sizeof(argv[0]),(char**)&argv[0]);
LOGI ("End to run JNI module!+++");
}
JNIEXPORT void JNICALL Java_com_wels_enc_WelsEncTest_DoEncoderTest
(JNIEnv* env, jobject thiz, jstring jsFileNameIn) {
/**************** Add the native codes/API *****************/

View File

@@ -1,12 +1,10 @@
# Generate the libwelsencdemo.so file
# Generate the libwelsdecdemo.so file
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := wels
LOCAL_SRC_FILES := ../../../../../libopenh264.so
ifneq (,$(wildcard $(LOCAL_PATH)/$(LOCAL_SRC_FILES)))
include $(PREBUILT_SHARED_LIBRARY)
endif
@@ -22,10 +20,10 @@ LOCAL_MODULE := welsencdemo
#
CODEC_PATH := ../../../../
CONSOLE_ENC_PATH := ../../../../console/enc
CONSOLE_COMMON_PATH := ../../../../console/common
LOCAL_SRC_FILES := \
$(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
#
@@ -34,7 +32,6 @@ LOCAL_SRC_FILES := \
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../../../../api/svc \
$(LOCAL_PATH)/../../../../console/enc/inc \
$(LOCAL_PATH)/../../../../console/common/inc \
$(LOCAL_PATH)/../../../../encoder/core/inc \
$(LOCAL_PATH)/../../../../processing/interface \
$(LOCAL_PATH)/../../../../common/inc
@@ -43,7 +40,11 @@ LOCAL_C_INCLUDES := \
#
# 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_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

@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/cfg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Load bitstreams" />
<Button
android:id="@+id/buttonSW"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Test" />
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">"
<Button
android:id="@+id/cfg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Load bitstreams" />
<Button
android:id="@+id/buttonSW"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Test" />
</LinearLayout>
</LinearLayout>
</LinearLayout>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">WelsEncoderTest</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">WelsEncoderTest</string>
</resources>

View File

@@ -3,7 +3,6 @@ package com.wels.enc;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.os.Process;
import android.util.Log;
import android.view.KeyEvent;
@@ -16,158 +15,104 @@ import java.io.*;
import java.util.Vector;
public class WelsEncTest extends Activity {
/** Called when the activity is first created. */
private OnClickListener OnClickEvent;
private Button mBtnLoad, mBtnStartSW;
/** Called when the activity is first created. */
private OnClickListener OnClickEvent;
private Button mBtnLoad, mBtnStartSW;
final String mStreamPath = "/sdcard/welsenc/";
Vector<String> mCfgFiles = new Vector<String>();
final String mStreamPath = "/sdcard/wels-seq/";
Vector<String> mCfgFiles = new Vector<String>();
@Override
public void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
final TextView tv = new TextView (this);
System.out.println ("Here we go ...");
Log.i (TAG, "sdcard path:" + Environment.getExternalStorageDirectory().getAbsolutePath());
setContentView (R.layout.main);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final TextView tv = new TextView(this);
System.out.println("Here we go ...");
Log.i(TAG, "sdcard path:" + Environment.getExternalStorageDirectory().getAbsolutePath());
setContentView(R.layout.main);
mBtnLoad = (Button)findViewById (R.id.cfg);
mBtnStartSW = (Button)findViewById (R.id.buttonSW);
mBtnLoad = (Button)findViewById(R.id.cfg);
mBtnStartSW = (Button)findViewById(R.id.buttonSW);
OnClickEvent = new OnClickListener() {
public void onClick (View v) {
switch (v.getId()) {
case R.id.cfg: {
String cfgFile = mStreamPath + "cfgs.txt";
try {
BufferedReader bufferedReader = new BufferedReader (new FileReader (cfgFile));
String text;
while ((text = bufferedReader.readLine()) != null) {
mCfgFiles.add (mStreamPath + text);
Log.i (TAG, mStreamPath + text);
OnClickEvent = new OnClickListener()
{
public void onClick(View v)
{
switch(v.getId())
{
case R.id.cfg:
{
String cfgFile = mStreamPath + "cfgs.txt";
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(cfgFile));
String text;
while((text = bufferedReader.readLine()) != null) {
mCfgFiles.add(mStreamPath + text);
Log.i(TAG, mStreamPath + text);
}
bufferedReader.close();
} catch(IOException e) {
Log.e(TAG, e.getMessage());
}
}
break;
case R.id.buttonSW:
{
System.out.println("decode sequence number = " + mCfgFiles.size());
Log.i(TAG,"after click");
try {
for (int k=0; k < mCfgFiles.size(); k++) {
String cfgFile = mCfgFiles.get(k);
DoEncoderTest(cfgFile);
}
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
mCfgFiles.clear();
tv.setText( "Decoder is completed!" );
}
break;
}
}
bufferedReader.close();
} catch (IOException e) {
Log.e (TAG, e.getMessage());
}
}
break;
case R.id.buttonSW: {
System.out.println ("encode sequence number = " + mCfgFiles.size());
Log.i (TAG, "after click");
try {
for (int k = 0; k < mCfgFiles.size(); k++) {
String cfgFile = mCfgFiles.get (k);
DoEncoderTest (cfgFile);
}
} catch (Exception e) {
Log.e (TAG, e.getMessage());
}
mCfgFiles.clear();
tv.setText ("Encoder is completed!");
}
break;
}
}
};
};
mBtnLoad.setOnClickListener (OnClickEvent);
mBtnStartSW.setOnClickListener (OnClickEvent);
mBtnLoad.setOnClickListener(OnClickEvent);
mBtnStartSW.setOnClickListener(OnClickEvent);
System.out.println ("Done!");
//run the test automatically,if you not want to autotest, just comment this line
runAutoEnc();
}
public void runAutoEnc() {
Thread thread = new Thread() {
public void run() {
Log.i (TAG, "encoder performance test begin");
String inYuvfile = null, outBitfile = null, inOrgfile = null, inLayerfile = null;
File encCase = new File (mStreamPath);
String[] caseNum = encCase.list();
if (caseNum == null || caseNum.length == 0) {
Log.i (TAG, "have not find any encoder resourse");
finish();
}
for (int i = 0; i < caseNum.length; i++) {
String[] yuvName = null;
File yuvPath = null;
File encCaseNo = new File (mStreamPath + caseNum[i]);
String[] encFile = encCaseNo.list();
for (int k = 0; k < encFile.length; k++) {
if (encFile[k].compareToIgnoreCase ("welsenc.cfg") == 0)
inOrgfile = encCaseNo + File.separator + encFile[k];
else if (encFile[k].compareToIgnoreCase ("layer2.cfg") == 0)
inLayerfile = encCaseNo + File.separator + encFile[k];
else if (encFile[k].compareToIgnoreCase ("yuv") == 0) {
yuvPath = new File (encCaseNo + File.separator + encFile[k]);
yuvName = yuvPath.list();
}
}
for (int m = 0; m < yuvName.length; m++) {
inYuvfile = yuvPath + File.separator + yuvName[m];
outBitfile = inYuvfile + ".264";
Log.i (TAG, "enc yuv file:" + yuvName[m]);
DoEncoderAutoTest (inOrgfile, inLayerfile, inYuvfile, outBitfile);
}
}
Log.i (TAG, "encoder performance test finish");
finish();
}
};
thread.start();
}
@Override
public void onStart() {
Log.i (TAG, "welsencdemo onStart");
super.onStart();
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i (TAG, "OnDestroy");
Process.killProcess (Process.myPid());
}
@Override
public boolean onKeyDown (int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
return true;
default:
return super.onKeyDown (keyCode, event);
System.out.println("Done!");
}
}
public native void DoEncoderTest (String cfgFileName);
public native void DoEncoderAutoTest (String cfgFileName, String layerFileName, String yuvFileName,
String outBitsName);
private static final String TAG = "welsenc";
static {
try {
System.loadLibrary ("openh264");
System.loadLibrary ("stlport_shared");
System.loadLibrary ("welsencdemo");
Log.v (TAG, "Load libwelsencdemo.so successful");
} catch (Exception e) {
Log.e (TAG, "Failed to load welsenc" + e.getMessage());
@Override
public void onStart()
{
Log.i(TAG,"welsdecdemo onStart");
super.onStart();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
return true;
default:
return super.onKeyDown(keyCode, event);
}
}
public native void DoEncoderTest(String cfgFileName);
private static final String TAG = "welsenc";
static {
try {
System.loadLibrary("openh264");
System.loadLibrary("stlport_shared");
System.loadLibrary("welsencdemo");
Log.v(TAG, "Load libwelsencdemo.so successful");
}
catch(Exception e) {
Log.e(TAG, "Failed to load welsdec"+e.getMessage());
}
}
}
}

View File

@@ -14,23 +14,33 @@
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 */; };
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 */; };
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 */; };
53C1C9BC193F0FB000404D8F /* expand_pic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 53C1C9BB193F0FB000404D8F /* expand_pic.cpp */; };
5BA8F2C019603F5F00011CE4 /* common_tables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5BA8F2BF19603F5F00011CE4 /* common_tables.cpp */; };
4CE443E718B722CD0017DF25 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE443E618B722CD0017DF25 /* XCTest.framework */; };
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 */; };
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 */; };
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 */; };
F5BB0BB8196BB5960072D50D /* copy_mb_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F5BB0BB7196BB5960072D50D /* copy_mb_aarch64_neon.S */; };
F791965419D3B89D00F60C6B /* intra_pred_common_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F791965319D3B89D00F60C6B /* intra_pred_common_aarch64_neon.S */; };
F791965619D3B8A600F60C6B /* intra_pred_common_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F791965519D3B8A600F60C6B /* intra_pred_common_neon.S */; };
F791965919D3BE2200F60C6B /* intra_pred_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F791965819D3BE2200F60C6B /* intra_pred_common.cpp */; };
FAABAA1818E9354A00D4186F /* sad_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAABAA1718E9354A00D4186F /* sad_common.cpp */; };
/* 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 */
4CE443D318B722CD0017DF25 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
@@ -52,6 +62,8 @@
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>"; };
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>"; };
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>"; };
@@ -61,26 +73,22 @@
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>"; };
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>"; };
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; };
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; };
53C1C9BA193F0F9E00404D8F /* expand_pic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = expand_pic.h; sourceTree = "<group>"; };
53C1C9BB193F0FB000404D8F /* expand_pic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = expand_pic.cpp; sourceTree = "<group>"; };
5BA8F2BE19603F3500011CE4 /* wels_common_defs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_common_defs.h; sourceTree = "<group>"; };
5BA8F2BF19603F5F00011CE4 /* common_tables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = common_tables.cpp; sourceTree = "<group>"; };
4CE443F018B722CD0017DF25 /* commonTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "commonTests-Info.plist"; sourceTree = "<group>"; };
4CE443F218B722CD0017DF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
4CE443F418B722CD0017DF25 /* commonTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = commonTests.m; 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>"; };
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>"; };
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>"; };
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>"; };
F791965319D3B89D00F60C6B /* intra_pred_common_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = intra_pred_common_aarch64_neon.S; path = arm64/intra_pred_common_aarch64_neon.S; sourceTree = "<group>"; };
F791965519D3B8A600F60C6B /* intra_pred_common_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = intra_pred_common_neon.S; sourceTree = "<group>"; };
F791965719D3BA9300F60C6B /* intra_pred_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = intra_pred_common.h; sourceTree = "<group>"; };
F791965819D3BE2200F60C6B /* intra_pred_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = intra_pred_common.cpp; 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>"; };
/* End PBXFileReference section */
@@ -94,13 +102,23 @@
);
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 */
/* Begin PBXGroup section */
4C3406B118D96EA600DFA14A /* arm */ = {
isa = PBXGroup;
children = (
F791965519D3B8A600F60C6B /* intra_pred_common_neon.S */,
4CC61F0818FF6B4B00E56EAB /* copy_mb_neon.S */,
4C3406B218D96EA600DFA14A /* arm_arch_common_macro.S */,
4C3406B318D96EA600DFA14A /* deblocking_neon.S */,
@@ -113,20 +131,19 @@
4C3406B618D96EA600DFA14A /* inc */ = {
isa = PBXGroup;
children = (
F791965719D3BA9300F60C6B /* intra_pred_common.h */,
F0B204F718FD23B6005DA23F /* copy_mb.h */,
FAABAA1618E9353F00D4186F /* sad_common.h */,
4C3406B718D96EA600DFA14A /* cpu.h */,
4C3406B818D96EA600DFA14A /* cpu_core.h */,
4C3406B918D96EA600DFA14A /* crt_util_safe_x.h */,
53C1C9BA193F0F9E00404D8F /* expand_pic.h */,
4C3406BA18D96EA600DFA14A /* deblocking_common.h */,
4C3406BB18D96EA600DFA14A /* expand_picture_common.h */,
4C3406BC18D96EA600DFA14A /* logging.h */,
4C3406BD18D96EA600DFA14A /* ls_defines.h */,
4C3406BE18D96EA600DFA14A /* macros.h */,
4C3406BF18D96EA600DFA14A /* mc_common.h */,
4C3406C018D96EA600DFA14A /* measure_time.h */,
4C3406C118D96EA600DFA14A /* typedefs.h */,
5BA8F2BE19603F3500011CE4 /* wels_common_defs.h */,
4C3406C218D96EA600DFA14A /* WelsThreadLib.h */,
);
path = inc;
@@ -135,14 +152,12 @@
4C3406C318D96EA600DFA14A /* src */ = {
isa = PBXGroup;
children = (
F791965819D3BE2200F60C6B /* intra_pred_common.cpp */,
5BA8F2BF19603F5F00011CE4 /* common_tables.cpp */,
F0B204F818FD23BF005DA23F /* copy_mb.cpp */,
FAABAA1718E9354A00D4186F /* sad_common.cpp */,
4C3406C418D96EA600DFA14A /* cpu.cpp */,
4C3406C518D96EA600DFA14A /* crt_util_safe_x.cpp */,
53C1C9BB193F0FB000404D8F /* expand_pic.cpp */,
4C3406C618D96EA600DFA14A /* deblocking_common.cpp */,
4C3406C718D96EA600DFA14A /* logging.cpp */,
4C3406C818D96EA600DFA14A /* WelsThreadLib.cpp */,
);
path = src;
@@ -152,6 +167,7 @@
isa = PBXGroup;
children = (
4CE4472F18BC61650017DF25 /* common */,
4CE443EE18B722CD0017DF25 /* commonTests */,
4CE443D718B722CD0017DF25 /* Frameworks */,
4CE443D618B722CD0017DF25 /* Products */,
);
@@ -161,6 +177,7 @@
isa = PBXGroup;
children = (
4CE443D518B722CD0017DF25 /* libcommon.a */,
4CE443E518B722CD0017DF25 /* commonTests.xctest */,
);
name = Products;
sourceTree = "<group>";
@@ -169,11 +186,30 @@
isa = PBXGroup;
children = (
4CE443D818B722CD0017DF25 /* Foundation.framework */,
4CE443E618B722CD0017DF25 /* XCTest.framework */,
4CE443E918B722CD0017DF25 /* UIKit.framework */,
);
name = Frameworks;
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 */ = {
isa = PBXGroup;
children = (
@@ -189,9 +225,6 @@
F556A81D1906669F00E156A8 /* arm64 */ = {
isa = PBXGroup;
children = (
F791965319D3B89D00F60C6B /* intra_pred_common_aarch64_neon.S */,
F5BB0BB7196BB5960072D50D /* copy_mb_aarch64_neon.S */,
F5AC94FE193EB7D800F58154 /* deblocking_aarch64_neon.S */,
F5B8D82C190757290037849A /* mc_aarch64_neon.S */,
F556A8221906673900E156A8 /* arm_arch64_common_macro.S */,
F556A8231906673900E156A8 /* expand_picture_aarch64_neon.S */,
@@ -219,13 +252,31 @@
productReference = 4CE443D518B722CD0017DF25 /* libcommon.a */;
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 */
/* Begin PBXProject section */
4CE443CD18B722CC0017DF25 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0510;
LastUpgradeCheck = 0500;
ORGANIZATIONNAME = video;
};
buildConfigurationList = 4CE443D018B722CC0017DF25 /* Build configuration list for PBXProject "common" */;
@@ -241,10 +292,22 @@
projectRoot = "";
targets = (
4CE443D418B722CD0017DF25 /* common */,
4CE443E418B722CD0017DF25 /* commonTests */,
);
};
/* 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 */
4CE443D118B722CD0017DF25 /* Sources */ = {
isa = PBXSourcesBuildPhase;
@@ -253,19 +316,13 @@
F5B8D82D190757290037849A /* mc_aarch64_neon.S in Sources */,
4C3406C918D96EA600DFA14A /* arm_arch_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 */,
F791965919D3BE2200F60C6B /* intra_pred_common.cpp in Sources */,
4C3406CF18D96EA600DFA14A /* deblocking_common.cpp in Sources */,
5BA8F2C019603F5F00011CE4 /* common_tables.cpp in Sources */,
F791965419D3B89D00F60C6B /* intra_pred_common_aarch64_neon.S in Sources */,
4C3406D018D96EA600DFA14A /* logging.cpp in Sources */,
4C3406D118D96EA600DFA14A /* WelsThreadLib.cpp in Sources */,
4C3406CC18D96EA600DFA14A /* mc_neon.S in Sources */,
F5BB0BB8196BB5960072D50D /* copy_mb_aarch64_neon.S in Sources */,
4C3406CB18D96EA600DFA14A /* expand_picture_neon.S in Sources */,
F791965619D3B8A600F60C6B /* intra_pred_common_neon.S in Sources */,
4CC61F0918FF6B4B00E56EAB /* copy_mb_neon.S in Sources */,
53C1C9BC193F0FB000404D8F /* expand_pic.cpp in Sources */,
4C3406CD18D96EA600DFA14A /* cpu.cpp in Sources */,
F556A8251906673900E156A8 /* expand_picture_aarch64_neon.S in Sources */,
4C3406CA18D96EA600DFA14A /* deblocking_neon.S in Sources */,
@@ -274,13 +331,41 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
4CE443E118B722CD0017DF25 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4CE443F518B722CD0017DF25 /* commonTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* 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 */
4CE443F618B722CD0017DF25 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@@ -308,7 +393,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
@@ -318,6 +403,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@@ -339,7 +425,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
@@ -348,6 +434,7 @@
4CE443F918B722CD0017DF25 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
CLANG_CXX_LIBRARY = "compiler-default";
CODE_SIGN_IDENTITY = "iPhone Developer";
@@ -368,6 +455,8 @@
HAVE_NEON,
);
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@@ -377,6 +466,7 @@
4CE443FA18B722CD0017DF25 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
CLANG_CXX_LIBRARY = "compiler-default";
CODE_SIGN_IDENTITY = "iPhone Developer";
@@ -395,12 +485,51 @@
HAVE_NEON,
);
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
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 */
/* Begin XCConfigurationList section */
@@ -422,6 +551,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4CE443FB18B722CD0017DF25 /* Build configuration list for PBXNativeTarget "commonTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4CE443FC18B722CD0017DF25 /* Debug */,
4CE443FD18B722CD0017DF25 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
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

@@ -30,34 +30,29 @@
*
*/
#ifdef HAVE_NEON_AARCH64
.text
#include "arm_arch64_common_macro.S"
#import <XCTest/XCTest.h>
@interface commonTests : XCTestCase
WELS_ASM_AARCH64_FUNC_BEGIN WelsSetMemZero_AArch64_neon
eor v0.16b, v0.16b, v0.16b
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
@end
mem_zero_32_neon_start:
st1 {v0.16b}, [x0], #16
st1 {v0.16b}, [x0], #16
b mem_zero_end
mem_zero_24_neon_start:
st1 {v0.16b}, [x0], #16
st1 {v0.8b}, [x0], #8
mem_zero_end:
@implementation commonTests
WELS_ASM_AARCH64_FUNC_END
- (void)setUp
{
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
}
#endif
- (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;
remoteInfo = common;
};
4CE444F718B72A900017DF25 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 4CE444F018B72A8F0017DF25 /* common.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 4CE443E518B722CD0017DF25;
remoteInfo = commonTests;
};
4CE444FF18B72AD70017DF25 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 4CE444FA18B72AD70017DF25 /* welsdec.xcodeproj */;
@@ -42,19 +49,12 @@
remoteGlobalIDString = 4CE4427918B6FC360017DF25;
remoteInfo = welsdec;
};
541044A6199888F800B44931 /* PBXContainerItemProxy */ = {
4CE4450118B72AD70017DF25 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 4CE444FA18B72AD70017DF25 /* welsdec.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 4CE4427818B6FC360017DF25;
remoteInfo = welsdec;
};
541044A8199888F800B44931 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 4CE444F018B72A8F0017DF25 /* common.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 4CE443D418B722CD0017DF25;
remoteInfo = common;
proxyType = 2;
remoteGlobalIDString = 4CE4428918B6FC360017DF25;
remoteInfo = welsdecTests;
};
/* End PBXContainerItemProxy section */
@@ -67,7 +67,7 @@
F0E6634D1810EFA5000C888E /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
F0E663511810EFA5000C888E /* demo-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "demo-Info.plist"; sourceTree = "<group>"; };
F0E663531810EFA5000C888E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F0E663551810EFA5000C888E /* main.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = main.m; sourceTree = "<group>"; };
F0E663551810EFA5000C888E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
F0E663581810EFA5000C888E /* DEMOAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DEMOAppDelegate.h; sourceTree = "<group>"; };
F0E663591810EFA5000C888E /* DEMOAppDelegate.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp.preprocessed; path = DEMOAppDelegate.m; sourceTree = "<group>"; };
F0E6635B1810EFA5000C888E /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
@@ -78,10 +78,10 @@
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>"; };
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>"; };
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>"; };
F0E663B4181117B9000C888E /* DEMOViewControllerShowResource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DEMOViewControllerShowResource.m; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -106,6 +106,7 @@
isa = PBXGroup;
children = (
4CE444F618B72A900017DF25 /* libcommon.a */,
4CE444F818B72A900017DF25 /* commonTests.xctest */,
);
name = Products;
sourceTree = "<group>";
@@ -114,6 +115,7 @@
isa = PBXGroup;
children = (
4CE4450018B72AD70017DF25 /* libwelsdec.a */,
4CE4450218B72AD70017DF25 /* welsdecTests.xctest */,
);
name = Products;
sourceTree = "<group>";
@@ -220,8 +222,6 @@
buildRules = (
);
dependencies = (
541044A7199888F800B44931 /* PBXTargetDependency */,
541044A9199888F800B44931 /* PBXTargetDependency */,
);
name = demo;
productName = demo;
@@ -273,6 +273,13 @@
remoteRef = 4CE444F518B72A900017DF25 /* PBXContainerItemProxy */;
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 */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
@@ -280,6 +287,13 @@
remoteRef = 4CE444FF18B72AD70017DF25 /* PBXContainerItemProxy */;
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 */
/* Begin PBXResourcesBuildPhase section */
@@ -315,19 +329,6 @@
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
541044A7199888F800B44931 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = welsdec;
targetProxy = 541044A6199888F800B44931 /* PBXContainerItemProxy */;
};
541044A9199888F800B44931 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = common;
targetProxy = 541044A8199888F800B44931 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
F0E663521810EFA5000C888E /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
@@ -381,7 +382,7 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -406,7 +407,7 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -427,7 +428,6 @@
APPLE_IOS,
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../../../../api/svc\"",
"\"$(SRCROOT)/../../../../common/inc\"",
);
@@ -447,7 +447,6 @@
GCC_C_LANGUAGE_STANDARD = "compiler-default";
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/../../../../api/svc\"",
"\"$(SRCROOT)/../../../../common/inc\"",
);

View File

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

View File

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

View File

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

View File

@@ -34,91 +34,9 @@
#import "DEMOAppDelegate.h"
extern int DecMain (int argc, char* argv[]);
//redirect NSLog and stdout to logfile
void redirectLogToDocumentFile() {
NSArray* path = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString* document = [path objectAtIndex:0];
NSString* fileName = [NSString stringWithFormat:@"decPerf.log"];
NSString* logPath = [document stringByAppendingPathComponent:fileName];
NSFileManager* defaultManager = [NSFileManager defaultManager];
[defaultManager removeItemAtPath:logPath error:nil];
freopen ([logPath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);
freopen ([logPath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);
}
//run auto test to get encoder performance
int AutoTestDec() {
NSString* document = [[NSString alloc] init];
NSArray* paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
if ([paths count] == 0) {
NSLog (@"could not find document path");
return 2;
}
document = [paths objectAtIndex:0];
NSString* decFilePath = [document stringByAppendingString:@"/DecoderPerfTestRes"];
NSFileManager* manage = [NSFileManager defaultManager];
NSString* outYuvPath = [decFilePath stringByAppendingString:@"/yuv"];
[manage removeItemAtPath:outYuvPath error:nil];
[manage createDirectoryAtPath:outYuvPath withIntermediateDirectories:YES attributes:nil error: nil];
NSArray* bitstreams = [manage subpathsAtPath:decFilePath];
if (bitstreams == nil) {
NSLog (@"could not find any bitstream under decoderperfpath");
return 1;
}
redirectLogToDocumentFile(); //output to console, just comment this line
for (int caseNO = 0; caseNO < [bitstreams count]; caseNO++) {
NSString* caseName = [bitstreams objectAtIndex:caseNO];
if ([caseName isEqual: @"yuv"]) {
break;
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([DEMOAppDelegate class]));
}
NSString* bitstream = [decFilePath stringByAppendingString:@"/"];
bitstream = [bitstream stringByAppendingString:caseName];
NSString* yuvFileName = [caseName stringByAppendingString:@".yuv"];
NSString* tmpyuvFileName = [outYuvPath stringByAppendingString:@"/"];
yuvFileName = [tmpyuvFileName stringByAppendingString:yuvFileName];
[manage createFileAtPath:yuvFileName contents:nil attributes:nil];
const char* argvv[] = {
"decConsole.exe",
[bitstream UTF8String],
[yuvFileName UTF8String]
};
DecMain (sizeof (argvv) / sizeof (argvv[0]), (char**)&argvv[0]);
[manage removeItemAtPath:yuvFileName error:nil];//FOR limited devices spaces
fflush (stdout); // flush the content of stdout instantly
}
return 0;
}
int main (int argc, char* argv[]) {
//***For auto testing of decoder performance, call auto test here, if you not want to do auto test, you can comment it manualy
if (AutoTestDec() == 0)
NSLog (@"Auto testing running sucessfully");
else
NSLog (@"Auto testing running failed");
abort();
//********
@autoreleasepool {
return UIApplicationMain (argc, argv, nil, NSStringFromClass ([DEMOAppDelegate class]));
}
}

View File

@@ -7,8 +7,13 @@
objects = {
/* 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 */; };
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 */; };
4CE4468B18BC5EAB0017DF25 /* bit_stream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466818BC5EAA0017DF25 /* bit_stream.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 */; };
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 */; };
4CE4469218BC5EAB0017DF25 /* expand_pic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466F18BC5EAA0017DF25 /* expand_pic.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 */; };
4CE4469518BC5EAB0017DF25 /* manage_dec_ref.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467218BC5EAA0017DF25 /* manage_dec_ref.cpp */; };
@@ -27,18 +33,24 @@
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 */; };
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 */; };
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 */; };
6A3E814219D79AE900C19C1F /* cabac_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6A3E814119D79AE900C19C1F /* cabac_decoder.cpp */; };
6A3E814419D7A40600C19C1F /* parse_mb_syn_cabac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6A3E814319D7A40600C19C1F /* parse_mb_syn_cabac.cpp */; };
6C749B6A197CC6E600A111F9 /* block_add_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 6C749B69197CC6E600A111F9 /* block_add_aarch64_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 */; };
/* 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 */
4CE4427718B6FC360017DF25 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
@@ -52,11 +64,14 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
04FE0680196FD8BE0004D7CE /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = version.h; path = ../../../common/inc/version.h; sourceTree = "<group>"; };
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; };
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; };
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>"; };
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>"; };
@@ -69,6 +84,7 @@
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>"; };
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; };
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>"; };
@@ -85,6 +101,7 @@
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>"; };
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>"; };
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>"; };
@@ -96,6 +113,7 @@
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>"; };
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>"; };
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>"; };
@@ -106,22 +124,14 @@
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>"; };
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>"; };
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>"; };
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>"; };
6A3E814019D79AD900C19C1F /* cabac_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cabac_decoder.h; sourceTree = "<group>"; };
6A3E814119D79AE900C19C1F /* cabac_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cabac_decoder.cpp; sourceTree = "<group>"; };
6A3E814319D7A40600C19C1F /* parse_mb_syn_cabac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parse_mb_syn_cabac.cpp; sourceTree = "<group>"; };
6A3E814519D7A40D00C19C1F /* parse_mb_syn_cabac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parse_mb_syn_cabac.h; sourceTree = "<group>"; };
6C749B69197CC6E600A111F9 /* block_add_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = block_add_aarch64_neon.S; path = arm64/block_add_aarch64_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>"; };
F0B204FB18FD23D8005DA23F /* error_concealment.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = error_concealment.cpp; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -135,22 +145,25 @@
);
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 */
/* Begin PBXGroup section */
4CBC1B7F194AC4A400214D9E /* arm64 */ = {
isa = PBXGroup;
children = (
6C749B69197CC6E600A111F9 /* block_add_aarch64_neon.S */,
4CBC1B80194AC4E100214D9E /* intra_pred_aarch64_neon.S */,
);
name = arm64;
sourceTree = "<group>";
};
4CE4427018B6FC360017DF25 = {
isa = PBXGroup;
children = (
4CE4463E18BC5EAA0017DF25 /* decoder */,
4CE4429218B6FC360017DF25 /* welsdecTests */,
4CE4427B18B6FC360017DF25 /* Frameworks */,
4CE4427A18B6FC360017DF25 /* Products */,
);
@@ -160,6 +173,7 @@
isa = PBXGroup;
children = (
4CE4427918B6FC360017DF25 /* libwelsdec.a */,
4CE4428918B6FC360017DF25 /* welsdecTests.xctest */,
);
name = Products;
sourceTree = "<group>";
@@ -168,11 +182,30 @@
isa = PBXGroup;
children = (
4CE4427C18B6FC360017DF25 /* Foundation.framework */,
4CE4428A18B6FC360017DF25 /* XCTest.framework */,
4CE4428D18B6FC360017DF25 /* UIKit.framework */,
);
name = Frameworks;
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 */ = {
isa = PBXGroup;
children = (
@@ -186,7 +219,6 @@
4CE4463F18BC5EAA0017DF25 /* core */ = {
isa = PBXGroup;
children = (
4CBC1B7F194AC4A400214D9E /* arm64 */,
4CE447A518BC6BE90017DF25 /* arm */,
4CE4464418BC5EAA0017DF25 /* inc */,
4CE4466618BC5EAA0017DF25 /* src */,
@@ -197,10 +229,6 @@
4CE4464418BC5EAA0017DF25 /* inc */ = {
isa = PBXGroup;
children = (
6A3E814519D7A40D00C19C1F /* parse_mb_syn_cabac.h */,
6A3E814019D79AD900C19C1F /* cabac_decoder.h */,
9AED665A1946A21D009A3567 /* utils.h */,
9ABF4380193EB5F700A6BD61 /* expand_pic.h */,
F0B204FA18FD23CF005DA23F /* error_concealment.h */,
4CE4464518BC5EAA0017DF25 /* as264_common.h */,
4CE4464618BC5EAA0017DF25 /* au_parser.h */,
@@ -214,6 +242,7 @@
4CE4464E18BC5EAA0017DF25 /* decoder_context.h */,
4CE4464F18BC5EAA0017DF25 /* decoder_core.h */,
4CE4465018BC5EAA0017DF25 /* error_code.h */,
4CE4465118BC5EAA0017DF25 /* expand_pic.h */,
4CE4465218BC5EAA0017DF25 /* fmo.h */,
4CE4465318BC5EAA0017DF25 /* get_intra_predictor.h */,
4CE4465418BC5EAA0017DF25 /* manage_dec_ref.h */,
@@ -230,6 +259,7 @@
4CE4465F18BC5EAA0017DF25 /* picture.h */,
4CE4466018BC5EAA0017DF25 /* rec_mb.h */,
4CE4466118BC5EAA0017DF25 /* slice.h */,
4CE4466218BC5EAA0017DF25 /* utils.h */,
4CE4466318BC5EAA0017DF25 /* vlc_decoder.h */,
4CE4466418BC5EAA0017DF25 /* wels_common_basis.h */,
4CE4466518BC5EAA0017DF25 /* wels_const.h */,
@@ -240,10 +270,6 @@
4CE4466618BC5EAA0017DF25 /* src */ = {
isa = PBXGroup;
children = (
6A3E814319D7A40600C19C1F /* parse_mb_syn_cabac.cpp */,
6A3E814119D79AE900C19C1F /* cabac_decoder.cpp */,
9AED66581946A203009A3567 /* utils.cpp */,
9ABF4381193EB60900A6BD61 /* expand_pic.cpp */,
F0B204FB18FD23D8005DA23F /* error_concealment.cpp */,
4CE4466718BC5EAA0017DF25 /* au_parser.cpp */,
4CE4466818BC5EAA0017DF25 /* bit_stream.cpp */,
@@ -253,6 +279,7 @@
4CE4466C18BC5EAA0017DF25 /* decoder.cpp */,
4CE4466D18BC5EAA0017DF25 /* decoder_core.cpp */,
4CE4466E18BC5EAA0017DF25 /* decoder_data_tables.cpp */,
4CE4466F18BC5EAA0017DF25 /* expand_pic.cpp */,
4CE4467018BC5EAA0017DF25 /* fmo.cpp */,
4CE4467118BC5EAA0017DF25 /* get_intra_predictor.cpp */,
4CE4467218BC5EAA0017DF25 /* manage_dec_ref.cpp */,
@@ -263,6 +290,7 @@
4CE4467718BC5EAA0017DF25 /* parse_mb_syn_cavlc.cpp */,
4CE4467818BC5EAA0017DF25 /* pic_queue.cpp */,
4CE4467918BC5EAA0017DF25 /* rec_mb.cpp */,
4CE4467A18BC5EAA0017DF25 /* utils.cpp */,
);
path = src;
sourceTree = "<group>";
@@ -279,8 +307,7 @@
4CE4467C18BC5EAA0017DF25 /* inc */ = {
isa = PBXGroup;
children = (
04FE0680196FD8BE0004D7CE /* version.h */,
9AED66571946A1EB009A3567 /* welsCodecTrace.h */,
4CE4467D18BC5EAA0017DF25 /* welsCodecTrace.h */,
4CE4467E18BC5EAA0017DF25 /* welsDecoderExt.h */,
);
path = inc;
@@ -289,8 +316,8 @@
4CE4468218BC5EAB0017DF25 /* src */ = {
isa = PBXGroup;
children = (
9AED66551946A1DE009A3567 /* welsCodecTrace.cpp */,
4CE4468318BC5EAB0017DF25 /* wels_dec_export.def */,
4CE4468418BC5EAB0017DF25 /* welsCodecTrace.cpp */,
4CE4468518BC5EAB0017DF25 /* welsDecoderExt.cpp */,
);
path = src;
@@ -325,13 +352,31 @@
productReference = 4CE4427918B6FC360017DF25 /* libwelsdec.a */;
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 */
/* Begin PBXProject section */
4CE4427118B6FC360017DF25 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0510;
LastUpgradeCheck = 0500;
ORGANIZATIONNAME = video;
};
buildConfigurationList = 4CE4427418B6FC360017DF25 /* Build configuration list for PBXProject "welsdec" */;
@@ -347,33 +392,42 @@
projectRoot = "";
targets = (
4CE4427818B6FC360017DF25 /* welsdec */,
4CE4428818B6FC360017DF25 /* welsdecTests */,
);
};
/* 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 */
4CE4427518B6FC360017DF25 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6A3E814419D7A40600C19C1F /* parse_mb_syn_cabac.cpp in Sources */,
4CE4469B18BC5EAB0017DF25 /* pic_queue.cpp in Sources */,
4CE4469F18BC5EAB0017DF25 /* welsDecoderExt.cpp in Sources */,
4CE4469318BC5EAB0017DF25 /* fmo.cpp in Sources */,
4CE4469D18BC5EAB0017DF25 /* utils.cpp in Sources */,
4CE4469118BC5EAB0017DF25 /* decoder_data_tables.cpp in Sources */,
4CE4469718BC5EAB0017DF25 /* mem_align.cpp in Sources */,
9ABF4382193EB60900A6BD61 /* expand_pic.cpp in Sources */,
4CE4469518BC5EAB0017DF25 /* manage_dec_ref.cpp in Sources */,
4CE4468A18BC5EAB0017DF25 /* au_parser.cpp in Sources */,
4CE4469218BC5EAB0017DF25 /* expand_pic.cpp in Sources */,
4CE4469918BC5EAB0017DF25 /* mv_pred.cpp in Sources */,
6A3E814219D79AE900C19C1F /* cabac_decoder.cpp in Sources */,
4CE447AC18BC6BE90017DF25 /* block_add_neon.S in Sources */,
6C749B6A197CC6E600A111F9 /* block_add_aarch64_neon.S in Sources */,
4CE4469418BC5EAB0017DF25 /* get_intra_predictor.cpp in Sources */,
9AED66561946A1DE009A3567 /* welsCodecTrace.cpp in Sources */,
F0B204FC18FD23D8005DA23F /* error_concealment.cpp in Sources */,
4CBC1B81194AC4E100214D9E /* intra_pred_aarch64_neon.S in Sources */,
4CE4469018BC5EAB0017DF25 /* decoder_core.cpp in Sources */,
4CE4469E18BC5EAB0017DF25 /* welsCodecTrace.cpp in Sources */,
4CE447AE18BC6BE90017DF25 /* intra_pred_neon.S in Sources */,
4CE4469618BC5EAB0017DF25 /* mc.cpp in Sources */,
4CE4469C18BC5EAB0017DF25 /* rec_mb.cpp in Sources */,
@@ -381,20 +435,47 @@
4CE4468D18BC5EAB0017DF25 /* decode_mb_aux.cpp in Sources */,
4CE4468E18BC5EAB0017DF25 /* decode_slice.cpp in Sources */,
4CE4468F18BC5EAB0017DF25 /* decoder.cpp in Sources */,
9AED66591946A203009A3567 /* utils.cpp in Sources */,
4CE4469818BC5EAB0017DF25 /* memmgr_nal_unit.cpp in Sources */,
4CE4468C18BC5EAB0017DF25 /* deblocking.cpp in Sources */,
4CE4469A18BC5EAB0017DF25 /* parse_mb_syn_cavlc.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
4CE4428518B6FC360017DF25 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4CE4429918B6FC360017DF25 /* welsdecTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* 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 */
4CE4429A18B6FC360017DF25 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@@ -422,7 +503,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
@@ -432,6 +513,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@@ -453,7 +535,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
@@ -462,6 +544,7 @@
4CE4429D18B6FC360017DF25 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
CLANG_CXX_LIBRARY = "compiler-default";
CODE_SIGN_IDENTITY = "iPhone Developer";
@@ -482,12 +565,11 @@
);
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../../../../common/inc",
"$(SRCROOT)/../../../../api/svc",
"$(SRCROOT)/../../../../common/arm",
"$(SRCROOT)/../../../../common/arm64",
);
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@@ -498,6 +580,7 @@
4CE4429E18B6FC360017DF25 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
CLANG_CXX_LIBRARY = "compiler-default";
CODE_SIGN_IDENTITY = "iPhone Developer";
@@ -516,12 +599,11 @@
);
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../../../../common/inc",
"$(SRCROOT)/../../../../api/svc",
"$(SRCROOT)/../../../../common/arm",
"$(SRCROOT)/../../../../common/arm64",
);
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@@ -529,6 +611,44 @@
};
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 */
/* Begin XCConfigurationList section */
@@ -550,6 +670,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4CE4429F18B6FC360017DF25 /* Build configuration list for PBXNativeTarget "welsdecTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4CE442A018B6FC360017DF25 /* Debug */,
4CE442A118B6FC360017DF25 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
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,7 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
544F0DC4196F86F50092FC6F /* libprocessing.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 544F0DC3196F86EF0092FC6F /* libprocessing.a */; };
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 */; };
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 */; };
@@ -22,26 +22,13 @@
FAFB4FC218BC8DD700315438 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FAFB4FC118BC8DD700315438 /* ViewController.m */; };
FAFB4FC418BC8DD700315438 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FAFB4FC318BC8DD700315438 /* Images.xcassets */; };
FAFB500318BC8F0D00315438 /* libcommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FAFB4FF118BC8E8600315438 /* libcommon.a */; };
FAFB500418BC8F1100315438 /* libprocessing.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FAFB4FFA18BC8E9A00315438 /* libprocessing.a */; };
FAFB500518BC8F1500315438 /* libwelsenc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FAFB4FE818BC8E7D00315438 /* libwelsenc.a */; };
FAFB500B18BC8F6C00315438 /* welsenc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAFB500A18BC8F6C00315438 /* welsenc.cpp */; };
FAFB502F18BCA50900315438 /* read_config.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAFB502E18BCA50900315438 /* read_config.cpp */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
544F0DBF196F86EF0092FC6F /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 544F0DB9196F85F20092FC6F /* processing.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 5499477B196A3F3900BA3D87;
remoteInfo = processing;
};
544F0DC2196F86EF0092FC6F /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 544F0DB9196F85F20092FC6F /* processing.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 5499477C196A3F3900BA3D87;
remoteInfo = processing;
};
FAFB4FE718BC8E7D00315438 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */;
@@ -49,6 +36,13 @@
remoteGlobalIDString = 4CE4431118B6FFA00017DF25;
remoteInfo = welsenc;
};
FAFB4FE918BC8E7D00315438 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 4CE4432118B6FFA00017DF25;
remoteInfo = welsencTests;
};
FAFB4FF018BC8E8600315438 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */;
@@ -56,6 +50,27 @@
remoteGlobalIDString = 4CE443D518B722CD0017DF25;
remoteInfo = common;
};
FAFB4FF218BC8E8600315438 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 4CE443E518B722CD0017DF25;
remoteInfo = commonTests;
};
FAFB4FF918BC8E9A00315438 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FAFB4FF418BC8E9A00315438 /* processing.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 4CE4443118B724B60017DF25;
remoteInfo = processing;
};
FAFB4FFB18BC8E9A00315438 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FAFB4FF418BC8E9A00315438 /* processing.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 4CE4444118B724B60017DF25;
remoteInfo = processingTests;
};
FAFB4FFD18BC8EAA00315438 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */;
@@ -63,6 +78,13 @@
remoteGlobalIDString = 4CE443D418B722CD0017DF25;
remoteInfo = common;
};
FAFB4FFF18BC8EAF00315438 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FAFB4FF418BC8E9A00315438 /* processing.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 4CE4443018B724B60017DF25;
remoteInfo = processing;
};
FAFB500118BC8EB200315438 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */;
@@ -73,7 +95,7 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
544F0DB9196F85F20092FC6F /* processing.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = processing.xcodeproj; path = ../../processing/processing.xcodeproj; sourceTree = "<group>"; };
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>"; };
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>"; };
@@ -92,11 +114,13 @@
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>"; };
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>"; };
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>"; };
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>"; };
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 */
/* Begin PBXFrameworksBuildPhase section */
@@ -104,8 +128,8 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
544F0DC4196F86F50092FC6F /* libprocessing.a in Frameworks */,
FAFB500518BC8F1500315438 /* libwelsenc.a in Frameworks */,
FAFB500418BC8F1100315438 /* libprocessing.a in Frameworks */,
FAFB500318BC8F0D00315438 /* libcommon.a in Frameworks */,
FAFB4FAB18BC8DD700315438 /* CoreGraphics.framework in Frameworks */,
FAFB4FAD18BC8DD700315438 /* UIKit.framework in Frameworks */,
@@ -116,17 +140,10 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
544F0DBA196F85F20092FC6F /* Products */ = {
isa = PBXGroup;
children = (
544F0DC3196F86EF0092FC6F /* libprocessing.a */,
);
name = Products;
sourceTree = "<group>";
};
FAFB4F9C18BC8DD700315438 = {
isa = PBXGroup;
children = (
9ABF4378192DE20800A6BD61 /* EncUT_MemoryAlloc.cpp */,
FAFB4FAE18BC8DD700315438 /* encDemo */,
FAFB4FA718BC8DD700315438 /* Frameworks */,
FAFB4FA618BC8DD700315438 /* Products */,
@@ -144,12 +161,13 @@
FAFB4FA718BC8DD700315438 /* Frameworks */ = {
isa = PBXGroup;
children = (
544F0DB9196F85F20092FC6F /* processing.xcodeproj */,
FAFB4FF418BC8E9A00315438 /* processing.xcodeproj */,
FAFB4FEB18BC8E8600315438 /* common.xcodeproj */,
FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */,
FAFB4FA818BC8DD700315438 /* Foundation.framework */,
FAFB4FAA18BC8DD700315438 /* CoreGraphics.framework */,
FAFB4FAC18BC8DD700315438 /* UIKit.framework */,
FAFB4FCA18BC8DD700315438 /* XCTest.framework */,
);
name = Frameworks;
sourceTree = "<group>";
@@ -188,6 +206,7 @@
isa = PBXGroup;
children = (
FAFB4FE818BC8E7D00315438 /* libwelsenc.a */,
FAFB4FEA18BC8E7D00315438 /* welsencTests.xctest */,
);
name = Products;
sourceTree = "<group>";
@@ -196,6 +215,16 @@
isa = PBXGroup;
children = (
FAFB4FF118BC8E8600315438 /* libcommon.a */,
FAFB4FF318BC8E8600315438 /* commonTests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
FAFB4FF518BC8E9A00315438 /* Products */ = {
isa = PBXGroup;
children = (
FAFB4FFA18BC8E9A00315438 /* libprocessing.a */,
FAFB4FFC18BC8E9A00315438 /* processingTests.xctest */,
);
name = Products;
sourceTree = "<group>";
@@ -224,8 +253,7 @@
children = (
FAFB500918BC8F6600315438 /* read_config.h */,
);
name = inc;
path = ../common/inc;
path = inc;
sourceTree = "<group>";
};
/* End PBXGroup section */
@@ -242,8 +270,8 @@
buildRules = (
);
dependencies = (
544F0DC0196F86EF0092FC6F /* PBXTargetDependency */,
FAFB500218BC8EB200315438 /* PBXTargetDependency */,
FAFB500018BC8EAF00315438 /* PBXTargetDependency */,
FAFB4FFE18BC8EAA00315438 /* PBXTargetDependency */,
);
name = encDemo;
@@ -257,7 +285,7 @@
FAFB4F9D18BC8DD700315438 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0510;
LastUpgradeCheck = 0500;
ORGANIZATIONNAME = video;
};
buildConfigurationList = FAFB4FA018BC8DD700315438 /* Build configuration list for PBXProject "encDemo" */;
@@ -277,8 +305,8 @@
ProjectRef = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */;
},
{
ProductGroup = 544F0DBA196F85F20092FC6F /* Products */;
ProjectRef = 544F0DB9196F85F20092FC6F /* processing.xcodeproj */;
ProductGroup = FAFB4FF518BC8E9A00315438 /* Products */;
ProjectRef = FAFB4FF418BC8E9A00315438 /* processing.xcodeproj */;
},
{
ProductGroup = FAFB4FE318BC8E7C00315438 /* Products */;
@@ -293,13 +321,6 @@
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
544F0DC3196F86EF0092FC6F /* libprocessing.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libprocessing.a;
remoteRef = 544F0DC2196F86EF0092FC6F /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
FAFB4FE818BC8E7D00315438 /* libwelsenc.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
@@ -307,6 +328,13 @@
remoteRef = FAFB4FE718BC8E7D00315438 /* PBXContainerItemProxy */;
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 */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
@@ -314,6 +342,27 @@
remoteRef = FAFB4FF018BC8E8600315438 /* PBXContainerItemProxy */;
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 */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libprocessing.a;
remoteRef = FAFB4FF918BC8E9A00315438 /* PBXContainerItemProxy */;
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 */
/* Begin PBXResourcesBuildPhase section */
@@ -342,6 +391,7 @@
FAFB502F18BCA50900315438 /* read_config.cpp in Sources */,
FAFB500B18BC8F6C00315438 /* welsenc.cpp in Sources */,
FAFB4FB918BC8DD700315438 /* AppDelegate.m in Sources */,
9ABF4379192DE20800A6BD61 /* EncUT_MemoryAlloc.cpp in Sources */,
FAFB4FB518BC8DD700315438 /* main.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -349,16 +399,16 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
544F0DC0196F86EF0092FC6F /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = processing;
targetProxy = 544F0DBF196F86EF0092FC6F /* PBXContainerItemProxy */;
};
FAFB4FFE18BC8EAA00315438 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = common;
targetProxy = FAFB4FFD18BC8EAA00315438 /* PBXContainerItemProxy */;
};
FAFB500018BC8EAF00315438 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = processing;
targetProxy = FAFB4FFF18BC8EAF00315438 /* PBXContainerItemProxy */;
};
FAFB500218BC8EB200315438 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = welsenc;
@@ -398,6 +448,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@@ -426,7 +477,15 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"/Applications/Xcode\\ 5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
"\"$(SRCROOT)/../../../../api/svc\"",
"\"$(SRCROOT)/../../../../common\"",
"\"$(SRCROOT)/../../../../processing/interface\"",
"\"$(SRCROOT)/../../../../encoder/core/inc\"",
);
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -437,6 +496,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@@ -459,7 +519,15 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"/Applications/Xcode\\ 5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
"\"$(SRCROOT)/../../../../api/svc\"",
"\"$(SRCROOT)/../../../../common\"",
"\"$(SRCROOT)/../../../../processing/interface\"",
"\"$(SRCROOT)/../../../../encoder/core/inc\"",
);
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
@@ -469,15 +537,15 @@
FAFB4FDB18BC8DD700315438 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"/Applications/Xcode\\ 5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
"\"$(SRCROOT)/../../../../api/svc\"",
"\"$(SRCROOT)/../../../../common/inc\"",
"\"$(SRCROOT)/../../../../processing/interface\"",
"\"$(SRCROOT)/../../../../encoder/core/inc\"",
);
INFOPLIST_FILE = "encDemo/encDemo-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -488,15 +556,15 @@
FAFB4FDC18BC8DD700315438 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"/Applications/Xcode\\ 5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
"\"$(SRCROOT)/../../../../api/svc\"",
"\"$(SRCROOT)/../../../../common/inc\"",
"\"$(SRCROOT)/../../../../processing/interface\"",
"\"$(SRCROOT)/../../../../encoder/core/inc\"",
);
INFOPLIST_FILE = "encDemo/encDemo-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";

View File

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

View File

@@ -33,12 +33,12 @@
#import <UIKit/UIKit.h>
@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

View File

@@ -70,8 +70,6 @@ extern int EncMain(int argc, char **argv);
[bsfile UTF8String],
"-numl",
"1",
"-lconfig",
"0",
[dlayerCfg UTF8String],
};
NSLog(@"WELS_INFO: enc config file: %@", encCfg);

View File

@@ -35,141 +35,9 @@
#import "AppDelegate.h"
extern int EncMain (int argc, char** argv);
//redirect NSLog and stdout to logfile
void redirectLogToDocumentFile() {
NSArray* path = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString* document = [path objectAtIndex:0];
NSString* fileName = [NSString stringWithFormat:@"encPerf.log"];
NSString* logPath = [document stringByAppendingPathComponent:fileName];
NSFileManager* defaultManager = [NSFileManager defaultManager];
[defaultManager removeItemAtPath:logPath error:nil];
freopen ([logPath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);
freopen ([logPath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);
}
//to judge whether the path is needed case path
bool IsOneDeptDir (NSString* path) {
BOOL isDir = NO;
BOOL isOneDeptDir = NO;
NSFileManager* fileManager = [NSFileManager defaultManager];
NSArray* dirPathArray = [fileManager subpathsAtPath:path];
if ([dirPathArray count] == 0 || dirPathArray == nil)
isOneDeptDir = NO;
else {
for (NSString * dirPath in dirPathArray) {
NSString* tmpPath = [path stringByAppendingString:@"/"];
tmpPath = [tmpPath stringByAppendingString:dirPath];
[fileManager fileExistsAtPath:tmpPath isDirectory:&isDir];
if (isDir) {
isOneDeptDir = YES;
break;
}
int main(int argc, char * argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
return isOneDeptDir;
}
//run auto test to get encoder performance
int AutoTestEnc() {
NSString* document = [[NSString alloc] init];
NSArray* paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
if ([paths count] == 0) {
NSLog (@"could not find document path");
return 2;
}
document = [paths objectAtIndex:0];
NSString* encFilePath = [document stringByAppendingString:@"/EncoderPerfTestRes"];
NSFileManager* manage = [NSFileManager defaultManager];
NSArray* cases = [manage subpathsAtPath:encFilePath];
if (cases == nil) {
NSLog (@"could not find any test case under encoderperftest");
return 1;
}
redirectLogToDocumentFile();
NSMutableArray* dirArray = [[NSMutableArray alloc] init];
for (NSString * casePath in cases) {
NSString* path = [encFilePath stringByAppendingPathComponent:casePath];
if (IsOneDeptDir (path)) {
[dirArray addObject:casePath];
}
}
for (int caseNO = 0; caseNO < [dirArray count]; caseNO++) {
NSString* caseName = [dirArray objectAtIndex:caseNO];
NSString* caseFilePath = [encFilePath stringByAppendingString:@"/"];
caseFilePath = [caseFilePath stringByAppendingString:caseName];
[manage changeCurrentDirectoryPath:[caseFilePath stringByExpandingTildeInPath]];
NSString* welscfg = [caseFilePath stringByAppendingString:@"/welsenc.cfg"];
NSString* layercfg = [caseFilePath stringByAppendingString:@"/layer2.cfg"];
NSString* yuvFilePath = [caseFilePath stringByAppendingString:@"/yuv"];
NSString* bitFilePath = [caseFilePath stringByAppendingString:@"/bit"];
[manage removeItemAtPath:bitFilePath error:nil];
[manage createDirectoryAtPath:bitFilePath withIntermediateDirectories:YES attributes:nil error:nil];
NSArray* files = [manage subpathsAtPath:yuvFilePath];
[manage changeCurrentDirectoryPath:[bitFilePath stringByExpandingTildeInPath]];
for (int i = 0; i < [files count]; i++) {
NSString* yuvFileName = [files objectAtIndex:i];
NSString* bitFileName = [yuvFileName stringByAppendingString:@".264"];
NSString* bitFileNamePath = [bitFilePath stringByAppendingString:@"/"];
bitFileName = [bitFileNamePath stringByAppendingString:bitFileName];
[manage createFileAtPath:bitFileName contents:nil attributes:nil];
[manage changeCurrentDirectoryPath:[yuvFilePath stringByExpandingTildeInPath]];
const char* argvv[] = {
"dummy",
[welscfg UTF8String],
"-org",
[yuvFileName UTF8String],
"-bf",
[bitFileName UTF8String],
"-numl",
"1",
"-lconfig",
"0",
[layercfg UTF8String]
};
NSLog (@"WELS_INFO: enc config file: %@", welscfg);
NSLog (@"WELS_INFO: enc yuv file: %@", yuvFileName);
EncMain (sizeof (argvv) / sizeof (argvv[0]), (char**)&argvv[0]);
fflush (stdout); // flush the content of stdout instantly
}
}
return 0;
}
int main (int argc, char* argv[]) {
//***For auto testing of encoder performance, call auto test here, if you not want to do auto test, you can comment it manualy
if (AutoTestEnc() == 0)
NSLog (@"Auto testing running sucessfully");
else
NSLog (@"Auto testing running failed");
abort();
//************************
@autoreleasepool {
return UIApplicationMain (argc, argv, nil, NSStringFromClass ([AppDelegate class]));
}
}

View File

@@ -7,15 +7,18 @@
objects = {
/* 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 */; };
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 */; };
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 */; };
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 */; };
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 */; };
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 */; };
@@ -23,6 +26,7 @@
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 */; };
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 */; };
4CE4471718BC605C0017DF25 /* mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E618BC605C0017DF25 /* mc.cpp */; };
4CE4471818BC605C0017DF25 /* md.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E718BC605C0017DF25 /* md.cpp */; };
@@ -43,18 +47,22 @@
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 */; };
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 */; };
4CE4472D18BC605C0017DF25 /* welsCodecTrace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4470518BC605C0017DF25 /* welsCodecTrace.cpp */; };
4CE4472E18BC605C0017DF25 /* welsEncoderExt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4470618BC605C0017DF25 /* welsEncoderExt.cpp */; };
6CA38DA31991CACE003EAAE0 /* svc_motion_estimation.S in Sources */ = {isa = PBXBuildFile; fileRef = 6CA38DA21991CACE003EAAE0 /* svc_motion_estimation.S */; };
6CA38DA51991D31A003EAAE0 /* svc_motion_estimation_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 6CA38DA41991D31A003EAAE0 /* svc_motion_estimation_aarch64_neon.S */; };
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 */; };
F7E9994519EBD1E9009B1021 /* svc_set_mb_syn_cabac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F7E9994419EBD1E9009B1021 /* svc_set_mb_syn_cabac.cpp */; };
F7E9994919EBD1F8009B1021 /* set_mb_syn_cabac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F7E9994819EBD1F8009B1021 /* set_mb_syn_cabac.cpp */; };
/* 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 */
4CE4430F18B6FFA00017DF25 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
@@ -68,19 +76,20 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
04FE0684196FD9370004D7CE /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = version.h; path = ../../../common/inc/version.h; sourceTree = "<group>"; };
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>"; };
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>"; };
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>"; };
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>"; };
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; };
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; };
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>"; };
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>"; };
@@ -90,6 +99,7 @@
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>"; };
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>"; };
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>"; };
@@ -113,6 +123,7 @@
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>"; };
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>"; };
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>"; };
@@ -122,6 +133,7 @@
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>"; };
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>"; };
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>"; };
@@ -134,6 +146,7 @@
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>"; };
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>"; };
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>"; };
@@ -154,22 +167,13 @@
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>"; };
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>"; };
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>"; };
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>"; };
6CA38DA21991CACE003EAAE0 /* svc_motion_estimation.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = svc_motion_estimation.S; sourceTree = "<group>"; };
6CA38DA41991D31A003EAAE0 /* svc_motion_estimation_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = svc_motion_estimation_aarch64_neon.S; path = arm64/svc_motion_estimation_aarch64_neon.S; 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>"; };
F7E9994419EBD1E9009B1021 /* svc_set_mb_syn_cabac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = svc_set_mb_syn_cabac.cpp; sourceTree = "<group>"; };
F7E9994819EBD1F8009B1021 /* set_mb_syn_cabac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = set_mb_syn_cabac.cpp; sourceTree = "<group>"; };
F7E9997E19EBD3C6009B1021 /* set_mb_syn_cabac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = set_mb_syn_cabac.h; sourceTree = "<group>"; };
F7E9997F19EBD3CE009B1021 /* svc_set_mb_syn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_set_mb_syn.h; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -181,13 +185,23 @@
);
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 */
/* Begin PBXGroup section */
4C34066418C57D0400DFA14A /* arm */ = {
isa = PBXGroup;
children = (
6CA38DA21991CACE003EAAE0 /* svc_motion_estimation.S */,
4C34066618C57D0400DFA14A /* intra_pred_neon.S */,
4C34066718C57D0400DFA14A /* intra_pred_sad_3_opt_neon.S */,
4C34066918C57D0400DFA14A /* memory_neon.S */,
@@ -197,23 +211,11 @@
path = arm;
sourceTree = "<group>";
};
4CB8F2B219235FAC005D6386 /* arm64 */ = {
isa = PBXGroup;
children = (
6CA38DA41991D31A003EAAE0 /* svc_motion_estimation_aarch64_neon.S */,
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 = {
isa = PBXGroup;
children = (
4CE446A018BC605B0017DF25 /* encoder */,
4CE4432A18B6FFA00017DF25 /* welsencTests */,
4CE4431318B6FFA00017DF25 /* Frameworks */,
4CE4431218B6FFA00017DF25 /* Products */,
);
@@ -223,6 +225,7 @@
isa = PBXGroup;
children = (
4CE4431118B6FFA00017DF25 /* libwelsenc.a */,
4CE4432118B6FFA00017DF25 /* welsencTests.xctest */,
);
name = Products;
sourceTree = "<group>";
@@ -231,11 +234,30 @@
isa = PBXGroup;
children = (
4CE4431418B6FFA00017DF25 /* Foundation.framework */,
4CE4432218B6FFA00017DF25 /* XCTest.framework */,
4CE4432518B6FFA00017DF25 /* UIKit.framework */,
);
name = Frameworks;
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 */ = {
isa = PBXGroup;
children = (
@@ -249,7 +271,6 @@
4CE446A118BC605B0017DF25 /* core */ = {
isa = PBXGroup;
children = (
4CB8F2B219235FAC005D6386 /* arm64 */,
4C34066418C57D0400DFA14A /* arm */,
4CE446A918BC605C0017DF25 /* inc */,
4CE446DC18BC605C0017DF25 /* src */,
@@ -260,9 +281,6 @@
4CE446A918BC605C0017DF25 /* inc */ = {
isa = PBXGroup;
children = (
F7E9997F19EBD3CE009B1021 /* svc_set_mb_syn.h */,
F7E9997E19EBD3C6009B1021 /* set_mb_syn_cabac.h */,
9AED66671946A2C4009A3567 /* utils.h */,
4CDBFB9D18E5068D0025A767 /* wels_transpose_matrix.h */,
4CE446AA18BC605C0017DF25 /* as264_common.h */,
4CE446AB18BC605C0017DF25 /* au_set.h */,
@@ -273,6 +291,7 @@
4CE446B118BC605C0017DF25 /* encode_mb_aux.h */,
4CE446B218BC605C0017DF25 /* encoder.h */,
4CE446B318BC605C0017DF25 /* encoder_context.h */,
4CE446B418BC605C0017DF25 /* expand_pic.h */,
4CE446B518BC605C0017DF25 /* extern.h */,
4CE446B618BC605C0017DF25 /* get_intra_predictor.h */,
4CE446B718BC605C0017DF25 /* mb_cache.h */,
@@ -296,6 +315,7 @@
4CE446C918BC605C0017DF25 /* slice_multi_threading.h */,
4CE446CA18BC605C0017DF25 /* stat.h */,
4CE446CB18BC605C0017DF25 /* svc_base_layer_md.h */,
4CE446CC18BC605C0017DF25 /* svc_config.h */,
4CE446CD18BC605C0017DF25 /* svc_enc_frame.h */,
4CE446CE18BC605C0017DF25 /* svc_enc_golomb.h */,
4CE446CF18BC605C0017DF25 /* svc_enc_macroblock.h */,
@@ -305,6 +325,7 @@
4CE446D318BC605C0017DF25 /* svc_mode_decision.h */,
4CE446D418BC605C0017DF25 /* svc_motion_estimate.h */,
4CE446D518BC605C0017DF25 /* svc_set_mb_syn_cavlc.h */,
4CE446D618BC605C0017DF25 /* utils.h */,
4CE446D718BC605C0017DF25 /* vlc_encoder.h */,
4CE446D818BC605C0017DF25 /* wels_common_basis.h */,
4CE446D918BC605C0017DF25 /* wels_const.h */,
@@ -317,9 +338,6 @@
4CE446DC18BC605C0017DF25 /* src */ = {
isa = PBXGroup;
children = (
F7E9994819EBD1F8009B1021 /* set_mb_syn_cabac.cpp */,
F7E9994419EBD1E9009B1021 /* svc_set_mb_syn_cabac.cpp */,
9AED66651946A2B3009A3567 /* utils.cpp */,
4CE446DD18BC605C0017DF25 /* au_set.cpp */,
4CE446DE18BC605C0017DF25 /* deblocking.cpp */,
4CE446DF18BC605C0017DF25 /* decode_mb_aux.cpp */,
@@ -327,6 +345,7 @@
4CE446E118BC605C0017DF25 /* encoder.cpp */,
4CE446E218BC605C0017DF25 /* encoder_data_tables.cpp */,
4CE446E318BC605C0017DF25 /* encoder_ext.cpp */,
4CE446E418BC605C0017DF25 /* expand_pic.cpp */,
4CE446E518BC605C0017DF25 /* get_intra_predictor.cpp */,
4CE446E618BC605C0017DF25 /* mc.cpp */,
4CE446E718BC605C0017DF25 /* md.cpp */,
@@ -347,6 +366,7 @@
4CE446F618BC605C0017DF25 /* svc_mode_decision.cpp */,
4CE446F718BC605C0017DF25 /* svc_motion_estimate.cpp */,
4CE446F818BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp */,
4CE446F918BC605C0017DF25 /* utils.cpp */,
4CE446FA18BC605C0017DF25 /* wels_preprocess.cpp */,
);
path = src;
@@ -364,8 +384,7 @@
4CE446FC18BC605C0017DF25 /* inc */ = {
isa = PBXGroup;
children = (
04FE0684196FD9370004D7CE /* version.h */,
9AED664819469FAF009A3567 /* welsCodecTrace.h */,
4CE446FD18BC605C0017DF25 /* welsCodecTrace.h */,
4CE446FE18BC605C0017DF25 /* welsEncoderExt.h */,
);
path = inc;
@@ -374,8 +393,8 @@
4CE4470218BC605C0017DF25 /* src */ = {
isa = PBXGroup;
children = (
9AED664C19469FC1009A3567 /* welsCodecTrace.cpp */,
4CE4470418BC605C0017DF25 /* wels_enc_export.def */,
4CE4470518BC605C0017DF25 /* welsCodecTrace.cpp */,
4CE4470618BC605C0017DF25 /* welsEncoderExt.cpp */,
);
path = src;
@@ -401,13 +420,31 @@
productReference = 4CE4431118B6FFA00017DF25 /* libwelsenc.a */;
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 */
/* Begin PBXProject section */
4CE4430918B6FFA00017DF25 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0510;
LastUpgradeCheck = 0500;
ORGANIZATIONNAME = video;
};
buildConfigurationList = 4CE4430C18B6FFA00017DF25 /* Build configuration list for PBXProject "welsenc" */;
@@ -423,10 +460,22 @@
projectRoot = "";
targets = (
4CE4431018B6FFA00017DF25 /* welsenc */,
4CE4432018B6FFA00017DF25 /* welsencTests */,
);
};
/* 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 */
4CE4430D18B6FFA00017DF25 /* Sources */ = {
isa = PBXSourcesBuildPhase;
@@ -437,56 +486,76 @@
4CE4472718BC605C0017DF25 /* svc_mode_decision.cpp in Sources */,
4CE4472818BC605C0017DF25 /* svc_motion_estimate.cpp in Sources */,
4CE4471D18BC605C0017DF25 /* property.cpp in Sources */,
4CE4472A18BC605C0017DF25 /* utils.cpp in Sources */,
4CE4471018BC605C0017DF25 /* decode_mb_aux.cpp in Sources */,
4CE4472018BC605C0017DF25 /* sample.cpp in Sources */,
6CA38DA31991CACE003EAAE0 /* svc_motion_estimation.S in Sources */,
4CE4472D18BC605C0017DF25 /* welsCodecTrace.cpp in Sources */,
4CE4471318BC605C0017DF25 /* encoder_data_tables.cpp in Sources */,
4C34067118C57D0400DFA14A /* pixel_neon.S in Sources */,
9AED665019469FC1009A3567 /* welsCodecTrace.cpp in Sources */,
4CE4471F18BC605C0017DF25 /* ref_list_mgr_svc.cpp in Sources */,
4CE4472218BC605C0017DF25 /* slice_multi_threading.cpp in Sources */,
4CE4471518BC605C0017DF25 /* expand_pic.cpp in Sources */,
4C34067018C57D0400DFA14A /* memory_neon.S in Sources */,
4CE4470F18BC605C0017DF25 /* deblocking.cpp in Sources */,
4CE4472518BC605C0017DF25 /* svc_encode_mb.cpp in Sources */,
4CE4471A18BC605C0017DF25 /* mv_pred.cpp 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 */,
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 */,
F7E9994519EBD1E9009B1021 /* svc_set_mb_syn_cabac.cpp in Sources */,
F5617A50196A833A006E2B20 /* reconstruct_aarch64_neon.S in Sources */,
4CE4472918BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp in Sources */,
4CE4471818BC605C0017DF25 /* md.cpp in Sources */,
4CE4471B18BC605C0017DF25 /* nal_encap.cpp in Sources */,
4CE4471918BC605C0017DF25 /* memory_align.cpp in Sources */,
4CE4472418BC605C0017DF25 /* svc_enc_slice_segment.cpp in Sources */,
4CE4472318BC605C0017DF25 /* svc_base_layer_md.cpp in Sources */,
4CB8F2B419235FC5005D6386 /* pixel_aarch64_neon.S in Sources */,
4CE4471E18BC605C0017DF25 /* ratectl.cpp in Sources */,
4C34066D18C57D0400DFA14A /* intra_pred_neon.S in Sources */,
4CE4471C18BC605C0017DF25 /* picture_handle.cpp in Sources */,
9AED66661946A2B3009A3567 /* utils.cpp in Sources */,
4CE4472618BC605C0017DF25 /* svc_encode_slice.cpp in Sources */,
4CE4471218BC605C0017DF25 /* encoder.cpp in Sources */,
4CE4471618BC605C0017DF25 /* get_intra_predictor.cpp in Sources */,
4CE4472E18BC605C0017DF25 /* welsEncoderExt.cpp in Sources */,
6CA38DA51991D31A003EAAE0 /* svc_motion_estimation_aarch64_neon.S in Sources */,
4CE4471418BC605C0017DF25 /* encoder_ext.cpp in Sources */,
4C34067218C57D0400DFA14A /* reconstruct_neon.S in Sources */,
F7E9994919EBD1F8009B1021 /* set_mb_syn_cabac.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
4CE4431D18B6FFA00017DF25 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4CE4433118B6FFA00017DF25 /* welsencTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* 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 */
4CE4433218B6FFA00017DF25 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@@ -514,7 +583,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
@@ -524,6 +593,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@@ -545,7 +615,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
@@ -554,6 +624,7 @@
4CE4433518B6FFA00017DF25 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
CLANG_CXX_LIBRARY = "compiler-default";
CODE_SIGN_IDENTITY = "iPhone Developer";
@@ -575,13 +646,13 @@
);
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../../../../common/inc",
"$(SRCROOT)/../../../../processing/interface",
"$(SRCROOT)/../../../../api/svc",
"$(SRCROOT)/../../../../common/arm",
"$(SRCROOT)/../../../../common/arm64",
);
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@@ -592,6 +663,7 @@
4CE4433618B6FFA00017DF25 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
CLANG_CXX_LIBRARY = "compiler-default";
CODE_SIGN_IDENTITY = "iPhone Developer";
@@ -612,13 +684,12 @@
);
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../../../../common/inc",
"$(SRCROOT)/../../../../processing/interface",
"$(SRCROOT)/../../../../api/svc",
"$(SRCROOT)/../../../../common/arm",
"$(SRCROOT)/../../../../common/arm64",
);
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@@ -626,6 +697,44 @@
};
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 */
/* Begin XCConfigurationList section */
@@ -647,6 +756,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4CE4433718B6FFA00017DF25 /* Build configuration list for PBXNativeTarget "welsencTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4CE4433818B6FFA00017DF25 /* Debug */,
4CE4433918B6FFA00017DF25 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
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,356 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXAggregateTarget section */
54D5364C196CC907005442F9 /* openh264 */ = {
isa = PBXAggregateTarget;
buildConfigurationList = 54D5364D196CC907005442F9 /* Build configuration list for PBXAggregateTarget "openh264" */;
buildPhases = (
);
dependencies = (
54D53651196CCC40005442F9 /* PBXTargetDependency */,
54D53653196CCC40005442F9 /* PBXTargetDependency */,
54D53655196CCC40005442F9 /* PBXTargetDependency */,
54D53657196CCC40005442F9 /* PBXTargetDependency */,
);
name = openh264;
productName = openh264;
};
/* End PBXAggregateTarget section */
/* Begin PBXContainerItemProxy section */
54D53638196CC8CB005442F9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 54D53634196CC8CB005442F9 /* common.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 4CE443D518B722CD0017DF25;
remoteInfo = common;
};
54D5363E196CC8DA005442F9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 54D5363A196CC8DA005442F9 /* welsdec.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 4CE4427918B6FC360017DF25;
remoteInfo = welsdec;
};
54D53644196CC8E6005442F9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 54D53640196CC8E6005442F9 /* welsenc.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 4CE4431118B6FFA00017DF25;
remoteInfo = welsenc;
};
54D5364A196CC8F3005442F9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 54D53646196CC8F3005442F9 /* processing.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 5499477C196A3F3900BA3D87;
remoteInfo = processing;
};
54D53650196CCC40005442F9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 54D53646196CC8F3005442F9 /* processing.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 5499477B196A3F3900BA3D87;
remoteInfo = processing;
};
54D53652196CCC40005442F9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 54D53640196CC8E6005442F9 /* welsenc.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 4CE4431018B6FFA00017DF25;
remoteInfo = welsenc;
};
54D53654196CCC40005442F9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 54D5363A196CC8DA005442F9 /* welsdec.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 4CE4427818B6FC360017DF25;
remoteInfo = welsdec;
};
54D53656196CCC40005442F9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 54D53634196CC8CB005442F9 /* common.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 4CE443D418B722CD0017DF25;
remoteInfo = common;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
54D53634196CC8CB005442F9 /* common.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = common.xcodeproj; path = ../common/common.xcodeproj; sourceTree = "<group>"; };
54D5363A196CC8DA005442F9 /* welsdec.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = welsdec.xcodeproj; path = ../dec/welsdec/welsdec.xcodeproj; sourceTree = "<group>"; };
54D53640196CC8E6005442F9 /* welsenc.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = welsenc.xcodeproj; path = ../enc/welsenc/welsenc.xcodeproj; sourceTree = "<group>"; };
54D53646196CC8F3005442F9 /* processing.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = processing.xcodeproj; path = ../processing/processing.xcodeproj; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXGroup section */
54D53602196CC76D005442F9 = {
isa = PBXGroup;
children = (
54D5360D196CC76D005442F9 /* Frameworks */,
54D5360C196CC76D005442F9 /* Products */,
);
sourceTree = "<group>";
};
54D5360C196CC76D005442F9 /* Products */ = {
isa = PBXGroup;
children = (
);
name = Products;
sourceTree = "<group>";
};
54D5360D196CC76D005442F9 /* Frameworks */ = {
isa = PBXGroup;
children = (
54D53646196CC8F3005442F9 /* processing.xcodeproj */,
54D53640196CC8E6005442F9 /* welsenc.xcodeproj */,
54D5363A196CC8DA005442F9 /* welsdec.xcodeproj */,
54D53634196CC8CB005442F9 /* common.xcodeproj */,
);
name = Frameworks;
sourceTree = "<group>";
};
54D53635196CC8CB005442F9 /* Products */ = {
isa = PBXGroup;
children = (
54D53639196CC8CB005442F9 /* libcommon.a */,
);
name = Products;
sourceTree = "<group>";
};
54D5363B196CC8DA005442F9 /* Products */ = {
isa = PBXGroup;
children = (
54D5363F196CC8DA005442F9 /* libwelsdec.a */,
);
name = Products;
sourceTree = "<group>";
};
54D53641196CC8E6005442F9 /* Products */ = {
isa = PBXGroup;
children = (
54D53645196CC8E6005442F9 /* libwelsenc.a */,
);
name = Products;
sourceTree = "<group>";
};
54D53647196CC8F3005442F9 /* Products */ = {
isa = PBXGroup;
children = (
54D5364B196CC8F3005442F9 /* libprocessing.a */,
);
name = Products;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXProject section */
54D53603196CC76D005442F9 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0510;
ORGANIZATIONNAME = com.cisco;
};
buildConfigurationList = 54D53606196CC76D005442F9 /* Build configuration list for PBXProject "openh264" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 54D53602196CC76D005442F9;
productRefGroup = 54D5360C196CC76D005442F9 /* Products */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = 54D53635196CC8CB005442F9 /* Products */;
ProjectRef = 54D53634196CC8CB005442F9 /* common.xcodeproj */;
},
{
ProductGroup = 54D53647196CC8F3005442F9 /* Products */;
ProjectRef = 54D53646196CC8F3005442F9 /* processing.xcodeproj */;
},
{
ProductGroup = 54D5363B196CC8DA005442F9 /* Products */;
ProjectRef = 54D5363A196CC8DA005442F9 /* welsdec.xcodeproj */;
},
{
ProductGroup = 54D53641196CC8E6005442F9 /* Products */;
ProjectRef = 54D53640196CC8E6005442F9 /* welsenc.xcodeproj */;
},
);
projectRoot = "";
targets = (
54D5364C196CC907005442F9 /* openh264 */,
);
};
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
54D53639196CC8CB005442F9 /* libcommon.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libcommon.a;
remoteRef = 54D53638196CC8CB005442F9 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
54D5363F196CC8DA005442F9 /* libwelsdec.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libwelsdec.a;
remoteRef = 54D5363E196CC8DA005442F9 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
54D53645196CC8E6005442F9 /* libwelsenc.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libwelsenc.a;
remoteRef = 54D53644196CC8E6005442F9 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
54D5364B196CC8F3005442F9 /* libprocessing.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libprocessing.a;
remoteRef = 54D5364A196CC8F3005442F9 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
/* Begin PBXTargetDependency section */
54D53651196CCC40005442F9 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = processing;
targetProxy = 54D53650196CCC40005442F9 /* PBXContainerItemProxy */;
};
54D53653196CCC40005442F9 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = welsenc;
targetProxy = 54D53652196CCC40005442F9 /* PBXContainerItemProxy */;
};
54D53655196CCC40005442F9 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = welsdec;
targetProxy = 54D53654196CCC40005442F9 /* PBXContainerItemProxy */;
};
54D53657196CCC40005442F9 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = common;
targetProxy = 54D53656196CCC40005442F9 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
54D5362C196CC76D005442F9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
ONLY_ACTIVE_ARCH = NO;
SDKROOT = iphoneos;
};
name = Debug;
};
54D5362D196CC76D005442F9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
54D5364E196CC907005442F9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
54D5364F196CC907005442F9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
54D53606196CC76D005442F9 /* Build configuration list for PBXProject "openh264" */ = {
isa = XCConfigurationList;
buildConfigurations = (
54D5362C196CC76D005442F9 /* Debug */,
54D5362D196CC76D005442F9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
54D5364D196CC907005442F9 /* Build configuration list for PBXAggregateTarget "openh264" */ = {
isa = XCConfigurationList;
buildConfigurations = (
54D5364E196CC907005442F9 /* Debug */,
54D5364F196CC907005442F9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 54D53603196CC76D005442F9 /* Project object */;
}

View File

@@ -1,542 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
4CC6094F197E009D00BE8B8B /* down_sample_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CC6094E197E009D00BE8B8B /* down_sample_aarch64_neon.S */; };
4CC6095A1980F34F00BE8B8B /* vaa_calc_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CC609591980F34F00BE8B8B /* vaa_calc_aarch64_neon.S */; };
4CD0FE36199082AD00375C9A /* pixel_sad_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CD0FE35199082AD00375C9A /* pixel_sad_aarch64_neon.S */; };
54994780196A3F3900BA3D87 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5499477F196A3F3900BA3D87 /* Foundation.framework */; };
549947DF196A3FB400BA3D87 /* AdaptiveQuantization.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947A9196A3FB400BA3D87 /* AdaptiveQuantization.cpp */; };
549947E0196A3FB400BA3D87 /* adaptive_quantization.S in Sources */ = {isa = PBXBuildFile; fileRef = 549947AC196A3FB400BA3D87 /* adaptive_quantization.S */; };
549947E1196A3FB400BA3D87 /* down_sample_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 549947AD196A3FB400BA3D87 /* down_sample_neon.S */; };
549947E2196A3FB400BA3D87 /* pixel_sad_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 549947AE196A3FB400BA3D87 /* pixel_sad_neon.S */; };
549947E3196A3FB400BA3D87 /* vaa_calc_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 549947AF196A3FB400BA3D87 /* vaa_calc_neon.S */; };
549947E4196A3FB400BA3D87 /* BackgroundDetection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947B1196A3FB400BA3D87 /* BackgroundDetection.cpp */; };
549947E6196A3FB400BA3D87 /* memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947B6196A3FB400BA3D87 /* memory.cpp */; };
549947E7196A3FB400BA3D87 /* WelsFrameWork.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947BB196A3FB400BA3D87 /* WelsFrameWork.cpp */; };
549947E8196A3FB400BA3D87 /* WelsFrameWorkEx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947BD196A3FB400BA3D87 /* WelsFrameWorkEx.cpp */; };
549947E9196A3FB400BA3D87 /* ComplexityAnalysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947C1196A3FB400BA3D87 /* ComplexityAnalysis.cpp */; };
549947EA196A3FB400BA3D87 /* denoise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947C4196A3FB400BA3D87 /* denoise.cpp */; };
549947EB196A3FB400BA3D87 /* denoise_filter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947C6196A3FB400BA3D87 /* denoise_filter.cpp */; };
549947EC196A3FB400BA3D87 /* downsample.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947C8196A3FB400BA3D87 /* downsample.cpp */; };
549947ED196A3FB400BA3D87 /* downsamplefuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947CA196A3FB400BA3D87 /* downsamplefuncs.cpp */; };
549947EE196A3FB400BA3D87 /* imagerotate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947CC196A3FB400BA3D87 /* imagerotate.cpp */; };
549947EF196A3FB400BA3D87 /* imagerotatefuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947CE196A3FB400BA3D87 /* imagerotatefuncs.cpp */; };
549947F0196A3FB400BA3D87 /* SceneChangeDetection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947D0196A3FB400BA3D87 /* SceneChangeDetection.cpp */; };
549947F1196A3FB400BA3D87 /* ScrollDetection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947D3196A3FB400BA3D87 /* ScrollDetection.cpp */; };
549947F2196A3FB400BA3D87 /* ScrollDetectionFuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947D5196A3FB400BA3D87 /* ScrollDetectionFuncs.cpp */; };
549947F3196A3FB400BA3D87 /* vaacalcfuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947D8196A3FB400BA3D87 /* vaacalcfuncs.cpp */; };
549947F4196A3FB400BA3D87 /* vaacalculation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947D9196A3FB400BA3D87 /* vaacalculation.cpp */; };
6C749B78197E2A2000A111F9 /* adaptive_quantization_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 6C749B77197E2A2000A111F9 /* adaptive_quantization_aarch64_neon.S */; };
F791965B19D3BF6B00F60C6B /* intra_pred_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F791965A19D3BF6B00F60C6B /* intra_pred_common.cpp */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
5499477A196A3F3900BA3D87 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "include/$(PRODUCT_NAME)";
dstSubfolderSpec = 16;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
4CC6094E197E009D00BE8B8B /* down_sample_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = down_sample_aarch64_neon.S; path = arm64/down_sample_aarch64_neon.S; sourceTree = "<group>"; };
4CC609591980F34F00BE8B8B /* vaa_calc_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = vaa_calc_aarch64_neon.S; path = arm64/vaa_calc_aarch64_neon.S; sourceTree = "<group>"; };
4CD0FE35199082AD00375C9A /* pixel_sad_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = pixel_sad_aarch64_neon.S; path = arm64/pixel_sad_aarch64_neon.S; sourceTree = "<group>"; };
5499477C196A3F3900BA3D87 /* libprocessing.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libprocessing.a; sourceTree = BUILT_PRODUCTS_DIR; };
5499477F196A3F3900BA3D87 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
54994790196A3F3900BA3D87 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
549947A6196A3FB400BA3D87 /* IWelsVP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IWelsVP.h; sourceTree = "<group>"; };
549947A9196A3FB400BA3D87 /* AdaptiveQuantization.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AdaptiveQuantization.cpp; sourceTree = "<group>"; };
549947AA196A3FB400BA3D87 /* AdaptiveQuantization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdaptiveQuantization.h; sourceTree = "<group>"; };
549947AC196A3FB400BA3D87 /* adaptive_quantization.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = adaptive_quantization.S; sourceTree = "<group>"; };
549947AD196A3FB400BA3D87 /* down_sample_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = down_sample_neon.S; sourceTree = "<group>"; };
549947AE196A3FB400BA3D87 /* pixel_sad_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = pixel_sad_neon.S; sourceTree = "<group>"; };
549947AF196A3FB400BA3D87 /* vaa_calc_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = vaa_calc_neon.S; sourceTree = "<group>"; };
549947B1196A3FB400BA3D87 /* BackgroundDetection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BackgroundDetection.cpp; sourceTree = "<group>"; };
549947B2196A3FB400BA3D87 /* BackgroundDetection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BackgroundDetection.h; sourceTree = "<group>"; };
549947B5196A3FB400BA3D87 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = "<group>"; };
549947B6196A3FB400BA3D87 /* memory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memory.cpp; sourceTree = "<group>"; };
549947B7196A3FB400BA3D87 /* memory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memory.h; sourceTree = "<group>"; };
549947B8196A3FB400BA3D87 /* resource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resource.h; sourceTree = "<group>"; };
549947B9196A3FB400BA3D87 /* typedef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = typedef.h; sourceTree = "<group>"; };
549947BA196A3FB400BA3D87 /* util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = util.h; sourceTree = "<group>"; };
549947BB196A3FB400BA3D87 /* WelsFrameWork.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WelsFrameWork.cpp; sourceTree = "<group>"; };
549947BC196A3FB400BA3D87 /* WelsFrameWork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WelsFrameWork.h; sourceTree = "<group>"; };
549947BD196A3FB400BA3D87 /* WelsFrameWorkEx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WelsFrameWorkEx.cpp; sourceTree = "<group>"; };
549947BE196A3FB400BA3D87 /* WelsVP.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WelsVP.def; sourceTree = "<group>"; };
549947BF196A3FB400BA3D87 /* WelsVP.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WelsVP.rc; sourceTree = "<group>"; };
549947C1196A3FB400BA3D87 /* ComplexityAnalysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComplexityAnalysis.cpp; sourceTree = "<group>"; };
549947C2196A3FB400BA3D87 /* ComplexityAnalysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComplexityAnalysis.h; sourceTree = "<group>"; };
549947C4196A3FB400BA3D87 /* denoise.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = denoise.cpp; sourceTree = "<group>"; };
549947C5196A3FB400BA3D87 /* denoise.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = denoise.h; sourceTree = "<group>"; };
549947C6196A3FB400BA3D87 /* denoise_filter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = denoise_filter.cpp; sourceTree = "<group>"; };
549947C8196A3FB400BA3D87 /* downsample.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = downsample.cpp; sourceTree = "<group>"; };
549947C9196A3FB400BA3D87 /* downsample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = downsample.h; sourceTree = "<group>"; };
549947CA196A3FB400BA3D87 /* downsamplefuncs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = downsamplefuncs.cpp; sourceTree = "<group>"; };
549947CC196A3FB400BA3D87 /* imagerotate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = imagerotate.cpp; sourceTree = "<group>"; };
549947CD196A3FB400BA3D87 /* imagerotate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imagerotate.h; sourceTree = "<group>"; };
549947CE196A3FB400BA3D87 /* imagerotatefuncs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = imagerotatefuncs.cpp; sourceTree = "<group>"; };
549947D0196A3FB400BA3D87 /* SceneChangeDetection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SceneChangeDetection.cpp; sourceTree = "<group>"; };
549947D1196A3FB400BA3D87 /* SceneChangeDetection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SceneChangeDetection.h; sourceTree = "<group>"; };
549947D3196A3FB400BA3D87 /* ScrollDetection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollDetection.cpp; sourceTree = "<group>"; };
549947D4196A3FB400BA3D87 /* ScrollDetection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollDetection.h; sourceTree = "<group>"; };
549947D5196A3FB400BA3D87 /* ScrollDetectionFuncs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollDetectionFuncs.cpp; sourceTree = "<group>"; };
549947D6196A3FB400BA3D87 /* ScrollDetectionFuncs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollDetectionFuncs.h; sourceTree = "<group>"; };
549947D8196A3FB400BA3D87 /* vaacalcfuncs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vaacalcfuncs.cpp; sourceTree = "<group>"; };
549947D9196A3FB400BA3D87 /* vaacalculation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vaacalculation.cpp; sourceTree = "<group>"; };
549947DA196A3FB400BA3D87 /* vaacalculation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vaacalculation.h; sourceTree = "<group>"; };
6C749B77197E2A2000A111F9 /* adaptive_quantization_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = adaptive_quantization_aarch64_neon.S; path = arm64/adaptive_quantization_aarch64_neon.S; sourceTree = "<group>"; };
F791965A19D3BF6B00F60C6B /* intra_pred_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = intra_pred_common.cpp; path = ../../../common/src/intra_pred_common.cpp; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
54994779196A3F3900BA3D87 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
54994780196A3F3900BA3D87 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
4CC6094D197E008B00BE8B8B /* arm64 */ = {
isa = PBXGroup;
children = (
4CD0FE35199082AD00375C9A /* pixel_sad_aarch64_neon.S */,
6C749B77197E2A2000A111F9 /* adaptive_quantization_aarch64_neon.S */,
4CC609591980F34F00BE8B8B /* vaa_calc_aarch64_neon.S */,
4CC6094E197E009D00BE8B8B /* down_sample_aarch64_neon.S */,
);
name = arm64;
sourceTree = "<group>";
};
54994773196A3F3900BA3D87 = {
isa = PBXGroup;
children = (
549947A5196A3FB400BA3D87 /* interface */,
549947A7196A3FB400BA3D87 /* src */,
5499477E196A3F3900BA3D87 /* Frameworks */,
5499477D196A3F3900BA3D87 /* Products */,
);
sourceTree = "<group>";
};
5499477D196A3F3900BA3D87 /* Products */ = {
isa = PBXGroup;
children = (
5499477C196A3F3900BA3D87 /* libprocessing.a */,
);
name = Products;
sourceTree = "<group>";
};
5499477E196A3F3900BA3D87 /* Frameworks */ = {
isa = PBXGroup;
children = (
5499477F196A3F3900BA3D87 /* Foundation.framework */,
54994790196A3F3900BA3D87 /* UIKit.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
549947A5196A3FB400BA3D87 /* interface */ = {
isa = PBXGroup;
children = (
549947A6196A3FB400BA3D87 /* IWelsVP.h */,
);
name = interface;
path = ../../../processing/interface;
sourceTree = "<group>";
};
549947A7196A3FB400BA3D87 /* src */ = {
isa = PBXGroup;
children = (
4CC6094D197E008B00BE8B8B /* arm64 */,
549947A8196A3FB400BA3D87 /* adaptivequantization */,
549947AB196A3FB400BA3D87 /* arm */,
549947B0196A3FB400BA3D87 /* backgrounddetection */,
549947B3196A3FB400BA3D87 /* common */,
549947C0196A3FB400BA3D87 /* complexityanalysis */,
549947C3196A3FB400BA3D87 /* denoise */,
549947C7196A3FB400BA3D87 /* downsample */,
549947CB196A3FB400BA3D87 /* imagerotate */,
549947CF196A3FB400BA3D87 /* scenechangedetection */,
549947D2196A3FB400BA3D87 /* scrolldetection */,
549947D7196A3FB400BA3D87 /* vaacalc */,
);
name = src;
path = ../../../processing/src;
sourceTree = "<group>";
};
549947A8196A3FB400BA3D87 /* adaptivequantization */ = {
isa = PBXGroup;
children = (
549947A9196A3FB400BA3D87 /* AdaptiveQuantization.cpp */,
549947AA196A3FB400BA3D87 /* AdaptiveQuantization.h */,
);
path = adaptivequantization;
sourceTree = "<group>";
};
549947AB196A3FB400BA3D87 /* arm */ = {
isa = PBXGroup;
children = (
549947AC196A3FB400BA3D87 /* adaptive_quantization.S */,
549947AD196A3FB400BA3D87 /* down_sample_neon.S */,
549947AE196A3FB400BA3D87 /* pixel_sad_neon.S */,
549947AF196A3FB400BA3D87 /* vaa_calc_neon.S */,
);
path = arm;
sourceTree = "<group>";
};
549947B0196A3FB400BA3D87 /* backgrounddetection */ = {
isa = PBXGroup;
children = (
549947B1196A3FB400BA3D87 /* BackgroundDetection.cpp */,
549947B2196A3FB400BA3D87 /* BackgroundDetection.h */,
);
path = backgrounddetection;
sourceTree = "<group>";
};
549947B3196A3FB400BA3D87 /* common */ = {
isa = PBXGroup;
children = (
F791965A19D3BF6B00F60C6B /* intra_pred_common.cpp */,
549947B5196A3FB400BA3D87 /* common.h */,
549947B6196A3FB400BA3D87 /* memory.cpp */,
549947B7196A3FB400BA3D87 /* memory.h */,
549947B8196A3FB400BA3D87 /* resource.h */,
549947B9196A3FB400BA3D87 /* typedef.h */,
549947BA196A3FB400BA3D87 /* util.h */,
549947BB196A3FB400BA3D87 /* WelsFrameWork.cpp */,
549947BC196A3FB400BA3D87 /* WelsFrameWork.h */,
549947BD196A3FB400BA3D87 /* WelsFrameWorkEx.cpp */,
549947BE196A3FB400BA3D87 /* WelsVP.def */,
549947BF196A3FB400BA3D87 /* WelsVP.rc */,
);
path = common;
sourceTree = "<group>";
};
549947C0196A3FB400BA3D87 /* complexityanalysis */ = {
isa = PBXGroup;
children = (
549947C1196A3FB400BA3D87 /* ComplexityAnalysis.cpp */,
549947C2196A3FB400BA3D87 /* ComplexityAnalysis.h */,
);
path = complexityanalysis;
sourceTree = "<group>";
};
549947C3196A3FB400BA3D87 /* denoise */ = {
isa = PBXGroup;
children = (
549947C4196A3FB400BA3D87 /* denoise.cpp */,
549947C5196A3FB400BA3D87 /* denoise.h */,
549947C6196A3FB400BA3D87 /* denoise_filter.cpp */,
);
path = denoise;
sourceTree = "<group>";
};
549947C7196A3FB400BA3D87 /* downsample */ = {
isa = PBXGroup;
children = (
549947C8196A3FB400BA3D87 /* downsample.cpp */,
549947C9196A3FB400BA3D87 /* downsample.h */,
549947CA196A3FB400BA3D87 /* downsamplefuncs.cpp */,
);
path = downsample;
sourceTree = "<group>";
};
549947CB196A3FB400BA3D87 /* imagerotate */ = {
isa = PBXGroup;
children = (
549947CC196A3FB400BA3D87 /* imagerotate.cpp */,
549947CD196A3FB400BA3D87 /* imagerotate.h */,
549947CE196A3FB400BA3D87 /* imagerotatefuncs.cpp */,
);
path = imagerotate;
sourceTree = "<group>";
};
549947CF196A3FB400BA3D87 /* scenechangedetection */ = {
isa = PBXGroup;
children = (
549947D0196A3FB400BA3D87 /* SceneChangeDetection.cpp */,
549947D1196A3FB400BA3D87 /* SceneChangeDetection.h */,
);
path = scenechangedetection;
sourceTree = "<group>";
};
549947D2196A3FB400BA3D87 /* scrolldetection */ = {
isa = PBXGroup;
children = (
549947D3196A3FB400BA3D87 /* ScrollDetection.cpp */,
549947D4196A3FB400BA3D87 /* ScrollDetection.h */,
549947D5196A3FB400BA3D87 /* ScrollDetectionFuncs.cpp */,
549947D6196A3FB400BA3D87 /* ScrollDetectionFuncs.h */,
);
path = scrolldetection;
sourceTree = "<group>";
};
549947D7196A3FB400BA3D87 /* vaacalc */ = {
isa = PBXGroup;
children = (
549947D8196A3FB400BA3D87 /* vaacalcfuncs.cpp */,
549947D9196A3FB400BA3D87 /* vaacalculation.cpp */,
549947DA196A3FB400BA3D87 /* vaacalculation.h */,
);
path = vaacalc;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
5499477B196A3F3900BA3D87 /* processing */ = {
isa = PBXNativeTarget;
buildConfigurationList = 5499479F196A3F3900BA3D87 /* Build configuration list for PBXNativeTarget "processing" */;
buildPhases = (
54994778196A3F3900BA3D87 /* Sources */,
54994779196A3F3900BA3D87 /* Frameworks */,
5499477A196A3F3900BA3D87 /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = processing;
productName = processing;
productReference = 5499477C196A3F3900BA3D87 /* libprocessing.a */;
productType = "com.apple.product-type.library.static";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
54994774196A3F3900BA3D87 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0510;
ORGANIZATIONNAME = com.cisco;
};
buildConfigurationList = 54994777196A3F3900BA3D87 /* Build configuration list for PBXProject "processing" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 54994773196A3F3900BA3D87;
productRefGroup = 5499477D196A3F3900BA3D87 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
5499477B196A3F3900BA3D87 /* processing */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
54994778196A3F3900BA3D87 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6C749B78197E2A2000A111F9 /* adaptive_quantization_aarch64_neon.S in Sources */,
549947F4196A3FB400BA3D87 /* vaacalculation.cpp in Sources */,
549947E9196A3FB400BA3D87 /* ComplexityAnalysis.cpp in Sources */,
549947E3196A3FB400BA3D87 /* vaa_calc_neon.S in Sources */,
549947EE196A3FB400BA3D87 /* imagerotate.cpp in Sources */,
549947EA196A3FB400BA3D87 /* denoise.cpp in Sources */,
549947E7196A3FB400BA3D87 /* WelsFrameWork.cpp in Sources */,
549947F1196A3FB400BA3D87 /* ScrollDetection.cpp in Sources */,
549947E4196A3FB400BA3D87 /* BackgroundDetection.cpp in Sources */,
549947F3196A3FB400BA3D87 /* vaacalcfuncs.cpp in Sources */,
4CD0FE36199082AD00375C9A /* pixel_sad_aarch64_neon.S in Sources */,
549947E0196A3FB400BA3D87 /* adaptive_quantization.S in Sources */,
549947EB196A3FB400BA3D87 /* denoise_filter.cpp in Sources */,
549947ED196A3FB400BA3D87 /* downsamplefuncs.cpp in Sources */,
549947E6196A3FB400BA3D87 /* memory.cpp in Sources */,
549947E2196A3FB400BA3D87 /* pixel_sad_neon.S in Sources */,
549947F0196A3FB400BA3D87 /* SceneChangeDetection.cpp in Sources */,
4CC6094F197E009D00BE8B8B /* down_sample_aarch64_neon.S in Sources */,
4CC6095A1980F34F00BE8B8B /* vaa_calc_aarch64_neon.S in Sources */,
549947F2196A3FB400BA3D87 /* ScrollDetectionFuncs.cpp in Sources */,
F791965B19D3BF6B00F60C6B /* intra_pred_common.cpp in Sources */,
549947EF196A3FB400BA3D87 /* imagerotatefuncs.cpp in Sources */,
549947DF196A3FB400BA3D87 /* AdaptiveQuantization.cpp in Sources */,
549947EC196A3FB400BA3D87 /* downsample.cpp in Sources */,
549947E8196A3FB400BA3D87 /* WelsFrameWorkEx.cpp in Sources */,
549947E1196A3FB400BA3D87 /* down_sample_neon.S in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
5499479D196A3F3900BA3D87 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
name = Debug;
};
5499479E196A3F3900BA3D87 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
549947A0196A3F3900BA3D87 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
DSTROOT = /tmp/processing.dst;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "";
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=arm64]" = (
APPLE_IOS,
HAVE_NEON_AARCH64,
);
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=armv7]" = (
APPLE_IOS,
HAVE_NEON,
);
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=armv7s]" = (
APPLE_IOS,
HAVE_NEON,
);
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../../../processing/interface",
"$(SRCROOT)/../../../processing/src/common",
"$(SRCROOT)/../../../common/inc",
"$(SRCROOT)/../../../common/arm64",
"$(SRCROOT)/../../../common/arm",
);
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Debug;
};
549947A1196A3F3900BA3D87 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
DSTROOT = /tmp/processing.dst;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "";
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=arm64]" = (
APPLE_IOS,
HAVE_NEON_AARCH64,
);
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=armv7]" = (
APPLE_IOS,
HAVE_NEON,
);
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=armv7s]" = (
APPLE_IOS,
HAVE_NEON,
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../../../processing/interface",
"$(SRCROOT)/../../../processing/src/common",
"$(SRCROOT)/../../../common/inc",
"$(SRCROOT)/../../../common/arm64",
"$(SRCROOT)/../../../common/arm",
);
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
54994777196A3F3900BA3D87 /* Build configuration list for PBXProject "processing" */ = {
isa = XCConfigurationList;
buildConfigurations = (
5499479D196A3F3900BA3D87 /* Debug */,
5499479E196A3F3900BA3D87 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
5499479F196A3F3900BA3D87 /* Build configuration list for PBXNativeTarget "processing" */ = {
isa = XCConfigurationList;
buildConfigurations = (
549947A0196A3F3900BA3D87 /* Debug */,
549947A1196A3F3900BA3D87 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 54994774196A3F3900BA3D87 /* Project object */;
}

View File

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

View File

@@ -23,14 +23,13 @@
<Configurations>
<Configuration
Name="Release|Win32"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win32\Release"
IntermediateDirectory=".\..\..\..\obj\decoder\core\release"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
@@ -54,13 +53,18 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc"
PreprocessorDefinitions="NDEBUG;_LIB;X86_ASM"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc;..\..\..\hwDecoder\core\inc;..\..\..\hwDecoder\dxva\inc"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;X86_ASM;HAVE_CACHE_LINE_ALIGN"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\..\..\..\obj\decoder\core\release/WelsDecCore.pch"
AssemblerListingLocation=".\..\..\..\obj\decoder\core\release/"
ObjectFile=".\..\..\..\obj\decoder\core\release/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\release/"
WarningLevel="3"
DebugInformationFormat="3"
SuppressStartupBanner="true"
DebugInformationFormat="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -76,6 +80,7 @@
<Tool
Name="VCLibrarianTool"
OutputFile="$(OutDir)\welsdcore.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
@@ -85,6 +90,8 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecCore.bsc"
/>
<Tool
Name="VCFxCopTool"
@@ -95,14 +102,13 @@
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win64\Release"
IntermediateDirectory=".\..\..\..\obj\decoder\core\release"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
@@ -127,13 +133,18 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc"
PreprocessorDefinitions="NDEBUG;_LIB;X86_ASM"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc;..\..\..\hwDecoder\core\inc;..\..\..\hwDecoder\dxva\inc"
PreprocessorDefinitions="WIN64;NDEBUG;_LIB;HAVE_CACHE_LINE_ALIGN;X86_ASM"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\..\..\..\obj\decoder\core\release/WelsDecCore.pch"
AssemblerListingLocation=".\..\..\..\obj\decoder\core\release/"
ObjectFile=".\..\..\..\obj\decoder\core\release/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\release/"
WarningLevel="3"
DebugInformationFormat="3"
SuppressStartupBanner="true"
DebugInformationFormat="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -149,6 +160,7 @@
<Tool
Name="VCLibrarianTool"
OutputFile="$(OutDir)\welsdcore.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
@@ -158,6 +170,8 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecCore.bsc"
/>
<Tool
Name="VCFxCopTool"
@@ -168,8 +182,8 @@
</Configuration>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win32\Debug"
IntermediateDirectory=".\..\..\..\obj\decoder\core\debug"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
@@ -197,12 +211,17 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc"
PreprocessorDefinitions="_DEBUG;_LIB;X86_ASM"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc;..\..\..\hwDecoder\core\inc;..\..\..\hwDecoder\dxva\inc"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;X86_ASM;HAVE_CACHE_LINE_ALIGN"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
PrecompiledHeaderFile=".\..\..\..\obj\decoder\core\debug/WelsDecCore.pch"
AssemblerListingLocation=".\..\..\..\obj\decoder\core\debug/"
ObjectFile=".\..\..\..\obj\decoder\core\debug/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\debug/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4"
/>
<Tool
@@ -219,6 +238,7 @@
<Tool
Name="VCLibrarianTool"
OutputFile="$(OutDir)\welsdcore.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
@@ -228,6 +248,8 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecCore.bsc"
/>
<Tool
Name="VCFxCopTool"
@@ -238,8 +260,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win64\Debug"
IntermediateDirectory=".\..\..\..\obj\decoder\core\debug"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
@@ -268,12 +290,17 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc"
PreprocessorDefinitions="_DEBUG;_LIB;X86_ASM"
AdditionalIncludeDirectories="..\..\..\decoder\core\inc;..\..\..\common\inc;..\..\..\api\svc;..\..\..\hwDecoder\core\inc;..\..\..\hwDecoder\dxva\inc"
PreprocessorDefinitions="WIN64;_DEBUG;_LIB;HAVE_CACHE_LINE_ALIGN;X86_ASM"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
PrecompiledHeaderFile=".\..\..\..\obj\decoder\core\debug/WelsDecCore.pch"
AssemblerListingLocation=".\..\..\..\obj\decoder\core\debug/"
ObjectFile=".\..\..\..\obj\decoder\core\debug/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\debug/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
@@ -290,6 +317,7 @@
<Tool
Name="VCLibrarianTool"
OutputFile="$(OutDir)\welsdcore.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
@@ -299,6 +327,8 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecCore.bsc"
/>
<Tool
Name="VCFxCopTool"
@@ -326,7 +356,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -335,7 +365,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -344,7 +374,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -353,7 +383,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -366,7 +396,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -375,7 +405,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -384,7 +414,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -393,7 +423,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -406,7 +436,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -415,7 +445,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -424,7 +454,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -433,7 +463,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -446,7 +476,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -455,7 +485,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -464,7 +494,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -473,7 +503,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -486,7 +516,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -495,7 +525,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -504,7 +534,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -513,7 +543,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -526,7 +556,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -535,7 +565,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -544,7 +574,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -553,7 +583,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -566,7 +596,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -575,7 +605,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -584,7 +614,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -593,7 +623,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -606,7 +636,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -615,7 +645,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -624,7 +654,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -633,7 +663,7 @@
>
<Tool
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"
/>
</FileConfiguration>
@@ -655,14 +685,10 @@
RelativePath="..\..\..\decoder\core\inc\bit_stream.h"
>
</File>
<File
RelativePath="..\..\..\decoder\core\inc\cabac_decoder.h"
>
</File>
<File
RelativePath="..\..\..\common\inc\copy_mb.h"
>
</File>
<File
RelativePath="..\..\..\common\inc\copy_mb.h"
>
</File>
<File
RelativePath="..\..\..\common\inc\cpu.h"
>
@@ -711,12 +737,16 @@
RelativePath="..\..\..\decoder\core\inc\error_code.h"
>
</File>
<File
RelativePath="..\..\..\decoder\core\inc\error_concealment.h"
>
</File>
<File
RelativePath="..\..\..\decoder\core\inc\error_concealment.h"
RelativePath="..\..\..\decoder\core\inc\expand_pic.h"
>
</File>
<File
RelativePath="..\..\..\common\inc\expand_pic.h"
RelativePath="..\..\..\common\inc\expand_picture_common.h"
>
</File>
<File
@@ -779,10 +809,6 @@
RelativePath="..\..\..\decoder\core\inc\parameter_sets.h"
>
</File>
<File
RelativePath="..\..\..\decoder\core\inc\parse_mb_syn_cabac.h"
>
</File>
<File
RelativePath="..\..\..\decoder\core\inc\parse_mb_syn_cavlc.h"
>
@@ -808,7 +834,7 @@
>
</File>
<File
RelativePath="..\..\..\common\inc\utils.h"
RelativePath="..\..\..\decoder\core\inc\utils.h"
>
</File>
<File
@@ -819,10 +845,6 @@
RelativePath="..\..\..\decoder\core\inc\wels_common_basis.h"
>
</File>
<File
RelativePath="..\..\..\common\inc\wels_common_defs.h"
>
</File>
<File
RelativePath="..\..\..\decoder\core\inc\wels_const.h"
>
@@ -840,18 +862,10 @@
RelativePath="..\..\..\decoder\core\src\bit_stream.cpp"
>
</File>
<File
RelativePath="..\..\..\decoder\core\src\cabac_decoder.cpp"
>
</File>
<File
RelativePath="..\..\..\common\src\common_tables.cpp"
>
</File>
<File
RelativePath="..\..\..\common\src\copy_mb.cpp"
>
</File>
<File
RelativePath="..\..\..\common\src\copy_mb.cpp"
>
</File>
<File
RelativePath="..\..\..\common\src\cpu.cpp"
>
@@ -888,12 +902,12 @@
RelativePath="..\..\..\decoder\core\src\decoder_data_tables.cpp"
>
</File>
<File
RelativePath="..\..\..\decoder\core\src\error_concealment.cpp"
>
</File>
<File
RelativePath="..\..\..\decoder\core\src\error_concealment.cpp"
>
</File>
<File
RelativePath="..\..\..\common\src\expand_pic.cpp"
RelativePath="..\..\..\decoder\core\src\expand_pic.cpp"
>
</File>
<File
@@ -904,6 +918,10 @@
RelativePath="..\..\..\decoder\core\src\get_intra_predictor.cpp"
>
</File>
<File
RelativePath="..\..\..\common\src\logging.cpp"
>
</File>
<File
RelativePath="..\..\..\decoder\core\src\manage_dec_ref.cpp"
>
@@ -924,10 +942,6 @@
RelativePath="..\..\..\decoder\core\src\mv_pred.cpp"
>
</File>
<File
RelativePath="..\..\..\decoder\core\src\parse_mb_syn_cabac.cpp"
>
</File>
<File
RelativePath="..\..\..\decoder\core\src\parse_mb_syn_cavlc.cpp"
>
@@ -941,7 +955,7 @@
>
</File>
<File
RelativePath="..\..\..\common\src\utils.cpp"
RelativePath="..\..\..\decoder\core\src\utils.cpp"
>
</File>
</Filter>

View File

@@ -20,14 +20,13 @@
<Configurations>
<Configuration
Name="Release|Win32"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win32\Release"
IntermediateDirectory=".\..\..\..\obj\decoder\plus\Release"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
@@ -43,17 +42,28 @@
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\..\..\..\..\..\bin\win32\Release/WelsDecPlus.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc"
PreprocessorDefinitions="NDEBUG;_USRDLL;X86_ASM"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\hwDecoder\plus\inc;..\..\..\hwDecoder\core\inc"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;WELSDECPLUS_EXPORTS;HAVE_CACHE_LINE_ALIGN;X86_ASM"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\..\..\..\obj\decoder\plus\Release/WelsDecPlus.pch"
AssemblerListingLocation=".\..\..\..\obj\decoder\plus\Release/"
ObjectFile=".\..\..\..\obj\decoder\plus\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\Release/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
@@ -69,11 +79,16 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsdcore.lib"
AdditionalDependencies=".\..\..\..\..\bin\win32\Release\welsdcore.lib"
OutputFile="$(OutDir)\welsdec.dll"
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories=".\..\..\..\libs\Release\"
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\..\..\..\maps\Release\welsdec.pdb"
GenerateMapFile="true"
MapFileName=".\..\..\..\maps\Release\welsdec.map"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
ImportLibrary="$(OutDir)\welsdec.lib"
@@ -90,6 +105,8 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecPlus.bsc"
/>
<Tool
Name="VCFxCopTool"
@@ -103,14 +120,13 @@
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win64\Release"
IntermediateDirectory=".\..\..\..\obj\decoder\plus\Release"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
@@ -126,17 +142,28 @@
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="3"
TypeLibraryName=".\..\..\..\..\..\bin\win32\Release/WelsDecPlus.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc"
PreprocessorDefinitions="NDEBUG;_USRDLL;X86_ASM"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\hwDecoder\plus\inc;..\..\..\hwDecoder\core\inc"
PreprocessorDefinitions="WIN64;NDEBUG;_WINDOWS;_USRDLL;WELSDECPLUS_EXPORTS;HAVE_CACHE_LINE_ALIGN;X86_ASM"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\..\..\..\obj\decoder\plus\Release/WelsDecPlus.pch"
AssemblerListingLocation=".\..\..\..\obj\decoder\plus\Release/"
ObjectFile=".\..\..\..\obj\decoder\plus\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\Release/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
@@ -152,11 +179,16 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsdcore.lib"
AdditionalDependencies=".\..\..\..\..\bin\win64\Release\welsdcore.lib"
OutputFile="$(OutDir)\welsdec.dll"
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories=".\..\..\..\libs\Release\"
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\..\..\..\maps\Release\welsdec.pdb"
GenerateMapFile="true"
MapFileName=".\..\..\..\maps\Release\welsdec.map"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
ImportLibrary="$(OutDir)\welsdec.lib"
@@ -173,6 +205,8 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecPlus.bsc"
/>
<Tool
Name="VCFxCopTool"
@@ -186,8 +220,8 @@
</Configuration>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win32\Debug"
IntermediateDirectory=".\..\..\..\obj\decoder\plus\debug"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
@@ -208,16 +242,27 @@
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\..\..\..\..\..\bin\win32\Debug/WelsDecPlus.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc"
PreprocessorDefinitions="_DEBUG;_USRDLL;X86_ASM"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\hwDecoder\plus\inc;..\..\..\hwDecoder\core\inc"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;WELSDECPLUS_EXPORTS;HAVE_CACHE_LINE_ALIGN;X86_ASM"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
PrecompiledHeaderFile=".\..\..\..\obj\decoder\plus\debug/WelsDecPlus.pch"
AssemblerListingLocation=".\..\..\..\obj\decoder\plus\debug/"
ObjectFile=".\..\..\..\obj\decoder\plus\debug/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\debug/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4"
/>
<Tool
@@ -233,11 +278,14 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsdcore.lib"
AdditionalDependencies=".\..\..\..\..\bin\win32\Debug\welsdcore.lib"
OutputFile="$(OutDir)\welsdec.dll"
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\libs\debug"
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\..\..\..\..\bin\win32\Debug/welsdec.pdb"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
ImportLibrary="$(OutDir)\welsdec.lib"
@@ -254,6 +302,8 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecPlus.bsc"
/>
<Tool
Name="VCFxCopTool"
@@ -267,8 +317,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win64\Debug"
IntermediateDirectory=".\..\..\..\obj\decoder\plus\debug"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
@@ -289,16 +339,27 @@
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="3"
TypeLibraryName=".\..\..\..\..\..\bin\win32\Debug/WelsDecPlus.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc"
PreprocessorDefinitions="_DEBUG;_USRDLL;X86_ASM"
AdditionalIncludeDirectories="..\..\..\decoder\plus\inc;..\..\..\decoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\hwDecoder\plus\inc;..\..\..\hwDecoder\core\inc"
PreprocessorDefinitions="WIN64;_DEBUG;_WINDOWS;_USRDLL;WELSDECPLUS_EXPORTS;HAVE_CACHE_LINE_ALIGN;X86_ASM"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
PrecompiledHeaderFile=".\..\..\..\obj\decoder\plus\debug/WelsDecPlus.pch"
AssemblerListingLocation=".\..\..\..\obj\decoder\plus\debug/"
ObjectFile=".\..\..\..\obj\decoder\plus\debug/"
ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\debug/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
@@ -314,11 +375,14 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsdcore.lib"
AdditionalDependencies=".\..\..\..\..\bin\win64\Debug\welsdcore.lib"
OutputFile="$(OutDir)\welsdec.dll"
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\libs\debug"
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\..\..\..\..\bin\win32\Debug/welsdec.pdb"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
ImportLibrary="$(OutDir)\welsdec.lib"
@@ -335,6 +399,8 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecPlus.bsc"
/>
<Tool
Name="VCFxCopTool"
@@ -360,6 +426,42 @@
<File
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>
</Filter>
<Filter
@@ -371,12 +473,84 @@
>
</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
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>
</Filter>
<Filter
@@ -388,7 +562,7 @@
>
</File>
<File
RelativePath="..\..\..\common\inc\welsCodecTrace.h"
RelativePath="..\..\..\decoder\plus\inc\welsCodecTrace.h"
>
</File>
<File

View File

@@ -20,8 +20,8 @@
<Configurations>
<Configuration
Name="Release|Win32"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win32\Release"
IntermediateDirectory=".\..\..\..\obj\decConsole\Release"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
@@ -42,18 +42,24 @@
/>
<Tool
Name="VCMIDLTool"
TypeLibraryName=".\..\..\..\..\bin\win32\Release/decConsole.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\common\inc"
PreprocessorDefinitions="NDEBUG;_CONSOLE"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\api\svc,..\..\..\common\inc,..\..\..\encoder\core\inc"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\..\..\..\obj\decConsole\Release/decConsole.pch"
AssemblerListingLocation=".\..\..\..\obj\decConsole\Release/"
ObjectFile=".\..\..\..\obj\decConsole\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Release/"
WarningLevel="3"
DebugInformationFormat="3"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -71,7 +77,10 @@
AdditionalDependencies="$(OutDir)\welsdec.lib"
OutputFile="$(OutDir)\decConsole.exe"
LinkIncremental="1"
GenerateDebugInformation="true"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\bin\win32"
ProgramDatabaseFile="$(OutDir)\decConsole.pdb"
GenerateMapFile="false"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
@@ -88,6 +97,7 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)\decConsole.bsc"
/>
<Tool
@@ -102,8 +112,8 @@
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win64\Release"
IntermediateDirectory=".\..\..\..\obj\decConsole\Release"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
@@ -124,18 +134,25 @@
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
TypeLibraryName=".\..\..\..\..\bin\win32\Release/decConsole.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\common\inc"
PreprocessorDefinitions="NDEBUG;_CONSOLE"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\api\svc,..\..\..\common\inc,..\..\..\encoder\core\inc"
PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\..\..\..\obj\decConsole\Release/decConsole.pch"
AssemblerListingLocation=".\..\..\..\obj\decConsole\Release/"
ObjectFile=".\..\..\..\obj\decConsole\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Release/"
WarningLevel="3"
DebugInformationFormat="3"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -153,7 +170,10 @@
AdditionalDependencies="$(OutDir)\welsdec.lib"
OutputFile="$(OutDir)\decConsole.exe"
LinkIncremental="1"
GenerateDebugInformation="true"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\bin\win64"
ProgramDatabaseFile="$(OutDir)\decConsole.pdb"
GenerateMapFile="false"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
@@ -170,6 +190,7 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)\decConsole.bsc"
/>
<Tool
@@ -184,8 +205,8 @@
</Configuration>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win32\Debug"
IntermediateDirectory=".\..\..\..\obj\decConsole\Debug"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
@@ -206,16 +227,24 @@
/>
<Tool
Name="VCMIDLTool"
TypeLibraryName=".\..\..\..\..\bin\win32\Debug/decConsole.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\common\inc"
PreprocessorDefinitions="_DEBUG;_CONSOLE"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\api\svc,..\..\..\common\inc,..\..\..\decoder\core\inc,..\..\..\encoder\core\inc"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
PrecompiledHeaderFile=".\..\..\..\obj\decConsole\Debug/decConsole.pch"
AssemblerListingLocation=".\..\..\..\obj\decConsole\Debug/"
ObjectFile=".\..\..\..\obj\decConsole\Debug/"
ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Debug/"
BrowseInformation="1"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4"
/>
<Tool
@@ -234,7 +263,10 @@
AdditionalDependencies="$(OutDir)\welsdec.lib"
OutputFile="$(OutDir)\decConsoled.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\bin\win32"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\decConsoled.pdb"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
@@ -251,6 +283,7 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)\decConsole.bsc"
/>
<Tool
@@ -265,8 +298,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win64\Debug"
IntermediateDirectory=".\..\..\..\obj\decConsole\Debug"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
@@ -287,16 +320,25 @@
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
TypeLibraryName=".\..\..\..\..\bin\win32\Debug/decConsole.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\common\inc"
PreprocessorDefinitions="_DEBUG;_CONSOLE"
AdditionalIncludeDirectories="..\..\..\console\dec\inc,..\..\..\api\svc,..\..\..\common\inc,..\..\..\decoder\core\inc,..\..\..\encoder\core\inc"
PreprocessorDefinitions="WIN64;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
PrecompiledHeaderFile=".\..\..\..\obj\decConsole\Debug/decConsole.pch"
AssemblerListingLocation=".\..\..\..\obj\decConsole\Debug/"
ObjectFile=".\..\..\..\obj\decConsole\Debug/"
ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Debug/"
BrowseInformation="1"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
@@ -315,7 +357,10 @@
AdditionalDependencies="$(OutDir)\welsdec.lib"
OutputFile="$(OutDir)\decConsoled.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\bin\win64"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\decConsoled.pdb"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
@@ -332,6 +377,7 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)\decConsole.bsc"
/>
<Tool
@@ -359,11 +405,87 @@
<File
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
RelativePath="..\..\..\console\common\src\read_config.cpp"
RelativePath="..\..\..\common\src\logging.cpp"
>
</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
Name="Header Files"
@@ -374,7 +496,7 @@
>
</File>
<File
RelativePath="..\..\..\console\common\inc\read_config.h"
RelativePath="..\..\..\console\dec\inc\read_config.h"
>
</File>
</Filter>

File diff suppressed because it is too large Load Diff

View File

@@ -20,8 +20,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win32\Debug"
IntermediateDirectory=".\..\..\..\obj\encoder\plus\Debug"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
@@ -42,16 +42,27 @@
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\..\..\..\..\..\bin\Debug/WelsEncPlus.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
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"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
PrecompiledHeaderFile=".\..\..\..\obj\encoder\plus\Debug/WelsEncPlus.pch"
AssemblerListingLocation=".\..\..\..\obj\encoder\plus\Debug/"
ObjectFile=".\..\..\..\obj\encoder\plus\Debug/"
ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Debug/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4"
/>
<Tool
@@ -67,11 +78,16 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib"
AdditionalDependencies="$(OutDir)\welsecore.lib"
OutputFile="$(OutDir)\welsenc.dll"
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\libs"
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\welsenc.pdb"
GenerateMapFile="true"
MapFileName="$(OutDir)\welsenc.map"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
ImportLibrary="$(OutDir)\welsenc.lib"
@@ -88,6 +104,7 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)/WelsEncPlus.bsc"
/>
<Tool
@@ -102,8 +119,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win64\Debug"
IntermediateDirectory=".\..\..\..\obj\encoder\plus\Debug"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
@@ -124,16 +141,27 @@
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="3"
TypeLibraryName=".\..\..\..\..\..\bin\Debug/WelsEncPlus.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
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"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
PrecompiledHeaderFile=".\..\..\..\obj\encoder\plus\Debug/WelsEncPlus.pch"
AssemblerListingLocation=".\..\..\..\obj\encoder\plus\Debug/"
ObjectFile=".\..\..\..\obj\encoder\plus\Debug/"
ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Debug/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
@@ -149,11 +177,16 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib"
AdditionalDependencies="$(OutDir)\welsecore.lib"
OutputFile="$(OutDir)\welsenc.dll"
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\libs"
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\welsenc.pdb"
GenerateMapFile="true"
MapFileName="$(OutDir)\welsenc.map"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
ImportLibrary="$(OutDir)\welsenc.lib"
@@ -170,6 +203,7 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)/WelsEncPlus.bsc"
/>
<Tool
@@ -184,14 +218,13 @@
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win32\Release"
IntermediateDirectory=".\..\..\..\obj\encoder\plus\Release"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
@@ -207,18 +240,31 @@
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\..\..\..\..\..\bin\Release/WelsEncPlus.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="3"
InlineFunctionExpansion="2"
FavorSizeOrSpeed="1"
EnableFiberSafeOptimizations="true"
WholeProgramOptimization="true"
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"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\..\..\..\obj\encoder\plus\Release/WelsEncPlus.pch"
AssemblerListingLocation=".\..\..\..\obj\encoder\plus\Release/"
ObjectFile=".\..\..\..\obj\encoder\plus\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Release/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
@@ -234,11 +280,18 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib"
AdditionalOptions="/MAPINFO:exports /LTCG"
AdditionalDependencies="$(OutDir)\welsecore.lib"
OutputFile="$(OutDir)\welsenc.dll"
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\libs"
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\welsenc.pdb"
GenerateMapFile="false"
MapFileName=""
MapExports="false"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
ImportLibrary="$(OutDir)\welsenc.lib"
@@ -255,6 +308,7 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)/WelsEncPlus.bsc"
/>
<Tool
@@ -269,14 +323,13 @@
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win64\Release"
IntermediateDirectory=".\..\..\..\obj\encoder\plus\Release"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
@@ -292,18 +345,31 @@
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="3"
TypeLibraryName=".\..\..\..\..\..\bin\Release/WelsEncPlus.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="3"
InlineFunctionExpansion="2"
FavorSizeOrSpeed="1"
EnableFiberSafeOptimizations="true"
WholeProgramOptimization="true"
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"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\..\..\..\obj\encoder\plus\Release/WelsEncPlus.pch"
AssemblerListingLocation=".\..\..\..\obj\encoder\plus\Release/"
ObjectFile=".\..\..\..\obj\encoder\plus\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Release/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
@@ -319,11 +385,18 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib"
AdditionalOptions="/MAPINFO:exports /LTCG"
AdditionalDependencies="$(OutDir)\welsecore.lib"
OutputFile="$(OutDir)\welsenc.dll"
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\..\libs"
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\welsenc.pdb"
GenerateMapFile="false"
MapFileName=""
MapExports="false"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
ImportLibrary="$(OutDir)\welsenc.lib"
@@ -340,6 +413,7 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)/WelsEncPlus.bsc"
/>
<Tool
@@ -363,18 +437,126 @@
<File
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
RelativePath="..\..\..\encoder\plus\src\wels_enc_export.def"
>
</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
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>
</Filter>
<Filter
@@ -382,7 +564,7 @@
Filter="h;hpp;hxx;hm;inl"
>
<File
RelativePath="..\..\..\common\inc\welsCodecTrace.h"
RelativePath="..\..\..\encoder\plus\inc\welsCodecTrace.h"
>
</File>
<File
@@ -397,6 +579,42 @@
<File
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>
</Filter>
</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}
EndProjectSection
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
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

View File

@@ -20,8 +20,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win32\Debug"
IntermediateDirectory=".\..\..\..\obj\encConsole\Debug"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
@@ -42,16 +42,23 @@
/>
<Tool
Name="VCMIDLTool"
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;"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\api\svc,..\..\..\WelsThreadLib\api,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
PreprocessorDefinitions="WIN32;_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="4"
/>
<Tool
@@ -70,7 +77,12 @@
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"
@@ -87,6 +99,7 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)\encConsole.bsc"
/>
<Tool
@@ -100,9 +113,9 @@
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
Name="Release|Win32"
OutputDirectory=".\..\..\..\..\bin\win32\Release"
IntermediateDirectory=".\..\..\..\obj\encConsole\Release"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
@@ -123,16 +136,119 @@
/>
<Tool
Name="VCMIDLTool"
TypeLibraryName=".\..\..\..\..\..\bin\Release/encConsole.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\api\svc,..\..\..\WelsThreadLib\api,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;X86_ASM;"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\..\..\..\obj\encConsole\Release/encConsole.pch"
AssemblerListingLocation=".\..\..\..\obj\encConsole\Release/"
ObjectFile=".\..\..\..\obj\encConsole\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\encConsole\Release/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsenc.lib"
OutputFile="$(OutDir)\encConsole.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\bin"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\encConsole.pdb"
GenerateMapFile="false"
MapExports="false"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
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,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
PreprocessorDefinitions="_DEBUG;_CONSOLE"
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
@@ -151,7 +267,12 @@
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"
@@ -168,88 +289,7 @@
/>
<Tool
Name="VCBscMakeTool"
OutputFile="$(OutDir)\encConsole.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
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"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
PreprocessorDefinitions="NDEBUG;_CONSOLE;X86_ASM;"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(OutDir)\welsenc.lib"
OutputFile="$(OutDir)\encConsole.exe"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)\encConsole.bsc"
/>
<Tool
@@ -264,8 +304,8 @@
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
OutputDirectory=".\..\..\..\..\bin\win64\Release"
IntermediateDirectory=".\..\..\..\obj\encConsole\Release"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
@@ -286,17 +326,25 @@
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
TypeLibraryName=".\..\..\..\..\..\bin\Release/encConsole.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\console\common\inc,..\..\..\api\svc,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
PreprocessorDefinitions="NDEBUG;_CONSOLE"
AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\api\svc,..\..\..\WelsThreadLib\api,..\..\..\encoder\core\inc,..\..\..\common\inc,..\..\..\processing\interface"
PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\..\..\..\obj\encConsole\Release/encConsole.pch"
AssemblerListingLocation=".\..\..\..\obj\encConsole\Release/"
ObjectFile=".\..\..\..\obj\encConsole\Release/"
ProgramDataBaseFileName=".\..\..\..\obj\encConsole\Release/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
@@ -315,7 +363,12 @@
AdditionalDependencies="$(OutDir)\welsenc.lib"
OutputFile="$(OutDir)\encConsole.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="..\..\..\bin"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)\encConsole.pdb"
GenerateMapFile="false"
MapExports="false"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="2"
@@ -332,6 +385,7 @@
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile="$(OutDir)\encConsole.bsc"
/>
<Tool
@@ -353,12 +407,88 @@
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
RelativePath="..\..\..\console\common\src\read_config.cpp"
RelativePath="..\..\..\common\src\logging.cpp"
>
</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
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>
</Filter>
<Filter
@@ -366,7 +496,7 @@
Filter="h;hpp;hxx;hm;inl"
>
<File
RelativePath="..\..\..\console\common\inc\read_config.h"
RelativePath="..\..\..\console\enc\inc\read_config.h"
>
</File>
</Filter>

View File

@@ -30,10 +30,6 @@
*
*/
#ifdef HAVE_NEON
.syntax unified
#ifdef __APPLE__
.macro WELS_ASM_FUNC_BEGIN
@@ -48,6 +44,7 @@ mov pc, lr
.endm
#else
.syntax unified
.section .note.GNU-stack,"",%progbits // Mark stack as non-executable
.text
@@ -65,5 +62,3 @@ mov pc, lr
.endfunc
.endm
#endif
#endif

View File

@@ -35,76 +35,76 @@
#include "arm_arch_common_macro.S"
#ifdef __APPLE__
.macro LOAD_ALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, src*, src_stride
vld1.64 {$0}, [$4,:128], $5
vld1.64 {$1}, [$4,:128], $5
vld1.64 {$2}, [$4,:128], $5
vld1.64 {$3}, [$4,:128], $5
// }
.macro LOAD_ALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, src*, src_stride
vld1.64 {$0}, [$4,:128], $5
vld1.64 {$1}, [$4,:128], $5
vld1.64 {$2}, [$4,:128], $5
vld1.64 {$3}, [$4,:128], $5
// }
.endm
.macro STORE_ALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, dst*, dst_stride
vst1.64 {$0}, [$4,:128], $5
vst1.64 {$1}, [$4,:128], $5
vst1.64 {$2}, [$4,:128], $5
vst1.64 {$3}, [$4,:128], $5
// }
.macro STORE_ALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, dst*, dst_stride
vst1.64 {$0}, [$4,:128], $5
vst1.64 {$1}, [$4,:128], $5
vst1.64 {$2}, [$4,:128], $5
vst1.64 {$3}, [$4,:128], $5
// }
.endm
.macro LOAD_UNALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, src*, src_stride
vld1.64 {$0}, [$4], $5
vld1.64 {$1}, [$4], $5
vld1.64 {$2}, [$4], $5
vld1.64 {$3}, [$4], $5
// }
.macro LOAD_UNALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, src*, src_stride
vld1.64 {$0}, [$4], $5
vld1.64 {$1}, [$4], $5
vld1.64 {$2}, [$4], $5
vld1.64 {$3}, [$4], $5
// }
.endm
.macro STORE_UNALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, dst*, dst_stride
vst1.64 {$0}, [$4], $5
vst1.64 {$1}, [$4], $5
vst1.64 {$2}, [$4], $5
vst1.64 {$3}, [$4], $5
// }
.macro STORE_UNALIGNED_DATA_WITH_STRIDE
// { // input: $0~$3, dst*, dst_stride
vst1.64 {$0}, [$4], $5
vst1.64 {$1}, [$4], $5
vst1.64 {$2}, [$4], $5
vst1.64 {$3}, [$4], $5
// }
.endm
#else
.macro LOAD_ALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: \arg0~\arg3, src*, src_stride
vld1.64 {\arg0}, [\arg4,:128], \arg5
vld1.64 {\arg1}, [\arg4,:128], \arg5
vld1.64 {\arg2}, [\arg4,:128], \arg5
vld1.64 {\arg3}, [\arg4,:128], \arg5
// }
.macro LOAD_ALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: \arg0~\arg3, src*, src_stride
vld1.64 {\arg0}, [\arg4,:128], \arg5
vld1.64 {\arg1}, [\arg4,:128], \arg5
vld1.64 {\arg2}, [\arg4,:128], \arg5
vld1.64 {\arg3}, [\arg4,:128], \arg5
// }
.endm
.macro STORE_ALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: \arg0~\arg3, dst*, dst_stride
vst1.64 {\arg0}, [\arg4,:128], \arg5
vst1.64 {\arg1}, [\arg4,:128], \arg5
vst1.64 {\arg2}, [\arg4,:128], \arg5
vst1.64 {\arg3}, [\arg4,:128], \arg5
// }
.macro STORE_ALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: \arg0~\arg3, dst*, dst_stride
vst1.64 {\arg0}, [\arg4,:128], \arg5
vst1.64 {\arg1}, [\arg4,:128], \arg5
vst1.64 {\arg2}, [\arg4,:128], \arg5
vst1.64 {\arg3}, [\arg4,:128], \arg5
// }
.endm
.macro LOAD_UNALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: \arg0~\arg3, src*, src_stride
vld1.64 {\arg0}, [\arg4], \arg5
vld1.64 {\arg1}, [\arg4], \arg5
vld1.64 {\arg2}, [\arg4], \arg5
vld1.64 {\arg3}, [\arg4], \arg5
// }
.macro LOAD_UNALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: \arg0~\arg3, src*, src_stride
vld1.64 {\arg0}, [\arg4], \arg5
vld1.64 {\arg1}, [\arg4], \arg5
vld1.64 {\arg2}, [\arg4], \arg5
vld1.64 {\arg3}, [\arg4], \arg5
// }
.endm
.macro STORE_UNALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: \arg0~\arg3, dst*, dst_stride
vst1.64 {\arg0}, [\arg4], \arg5
vst1.64 {\arg1}, [\arg4], \arg5
vst1.64 {\arg2}, [\arg4], \arg5
vst1.64 {\arg3}, [\arg4], \arg5
// }
.macro STORE_UNALIGNED_DATA_WITH_STRIDE arg0, arg1, arg2, arg3, arg4, arg5
// { // input: \arg0~\arg3, dst*, dst_stride
vst1.64 {\arg0}, [\arg4], \arg5
vst1.64 {\arg1}, [\arg4], \arg5
vst1.64 {\arg2}, [\arg4], \arg5
vst1.64 {\arg3}, [\arg4], \arg5
// }
.endm
#endif
@@ -112,89 +112,89 @@
WELS_ASM_FUNC_BEGIN WelsCopy8x8_neon
LOAD_UNALIGNED_DATA_WITH_STRIDE d0, d1, d2, d3, r2, r3
LOAD_UNALIGNED_DATA_WITH_STRIDE d0, d1, d2, d3, r2, r3
STORE_UNALIGNED_DATA_WITH_STRIDE d0, d1, d2, d3, r0, r1
STORE_UNALIGNED_DATA_WITH_STRIDE d0, d1, d2, d3, r0, r1
LOAD_UNALIGNED_DATA_WITH_STRIDE d4, d5, d6, d7, r2, r3
LOAD_UNALIGNED_DATA_WITH_STRIDE d4, d5, d6, d7, r2, r3
STORE_UNALIGNED_DATA_WITH_STRIDE d4, d5, d6, d7, r0, r1
STORE_UNALIGNED_DATA_WITH_STRIDE d4, d5, d6, d7, r0, r1
WELS_ASM_FUNC_END
WELS_ASM_FUNC_BEGIN WelsCopy16x16_neon
LOAD_ALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r2, r3
LOAD_ALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r2, r3
STORE_ALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r0, r1
STORE_ALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r0, r1
LOAD_ALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r2, r3
LOAD_ALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r2, r3
STORE_ALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r0, r1
STORE_ALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r0, r1
LOAD_ALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r2, r3
LOAD_ALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r2, r3
STORE_ALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r0, r1
STORE_ALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r0, r1
LOAD_ALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r2, r3
LOAD_ALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r2, r3
STORE_ALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r0, r1
STORE_ALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r0, r1
WELS_ASM_FUNC_END
WELS_ASM_FUNC_BEGIN WelsCopy16x16NotAligned_neon
LOAD_UNALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r2, r3
LOAD_UNALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r2, r3
STORE_UNALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r0, r1
STORE_UNALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r0, r1
LOAD_UNALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r2, r3
LOAD_UNALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r2, r3
STORE_UNALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r0, r1
STORE_UNALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r0, r1
LOAD_UNALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r2, r3
LOAD_UNALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r2, r3
STORE_UNALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r0, r1
STORE_UNALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r0, r1
LOAD_UNALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r2, r3
LOAD_UNALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r2, r3
STORE_UNALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r0, r1
STORE_UNALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r0, r1
WELS_ASM_FUNC_END
WELS_ASM_FUNC_BEGIN WelsCopy16x8NotAligned_neon
LOAD_UNALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r2, r3
LOAD_UNALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r2, r3
STORE_UNALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r0, r1
STORE_UNALIGNED_DATA_WITH_STRIDE q0, q1, q2, q3, r0, r1
LOAD_UNALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r2, r3
LOAD_UNALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r2, r3
STORE_UNALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r0, r1
STORE_UNALIGNED_DATA_WITH_STRIDE q8, q9, q10, q11, r0, r1
WELS_ASM_FUNC_END
WELS_ASM_FUNC_BEGIN WelsCopy8x16_neon
LOAD_UNALIGNED_DATA_WITH_STRIDE d0, d1, d2, d3, r2, r3
LOAD_UNALIGNED_DATA_WITH_STRIDE d0, d1, d2, d3, r2, r3
STORE_UNALIGNED_DATA_WITH_STRIDE d0, d1, d2, d3, r0, r1
STORE_UNALIGNED_DATA_WITH_STRIDE d0, d1, d2, d3, r0, r1
LOAD_UNALIGNED_DATA_WITH_STRIDE d4, d5, d6, d7, r2, r3
LOAD_UNALIGNED_DATA_WITH_STRIDE d4, d5, d6, d7, r2, r3
STORE_UNALIGNED_DATA_WITH_STRIDE d4, d5, d6, d7, r0, r1
STORE_UNALIGNED_DATA_WITH_STRIDE d4, d5, d6, d7, r0, r1
LOAD_UNALIGNED_DATA_WITH_STRIDE d0, d1, d2, d3, r2, r3
LOAD_UNALIGNED_DATA_WITH_STRIDE d0, d1, d2, d3, r2, r3
STORE_UNALIGNED_DATA_WITH_STRIDE d0, d1, d2, d3, r0, r1
STORE_UNALIGNED_DATA_WITH_STRIDE d0, d1, d2, d3, r0, r1
LOAD_UNALIGNED_DATA_WITH_STRIDE d4, d5, d6, d7, r2, r3
LOAD_UNALIGNED_DATA_WITH_STRIDE d4, d5, d6, d7, r2, r3
STORE_UNALIGNED_DATA_WITH_STRIDE d4, d5, d6, d7, r0, r1
STORE_UNALIGNED_DATA_WITH_STRIDE d4, d5, d6, d7, r0, r1
WELS_ASM_FUNC_END

File diff suppressed because it is too large Load Diff

View File

@@ -37,119 +37,119 @@
WELS_ASM_FUNC_BEGIN ExpandPictureLuma_neon
stmdb sp!, {r4-r8}
//Save the dst
mov r7, r0
mov r8, r3
//Save the dst
mov r7, r0
mov r8, r3
add r4, r7, r2
sub r4, #1
add r4, r7, r2
sub r4, #1
//For the left and right expand
_expand_picture_luma_loop2:
sub r5, r7, #32
add r6, r4, #1
sub r5, r7, #32
add r6, r4, #1
vld1.8 {d0[], d1[]}, [r7], r1
vld1.8 {d2[], d3[]}, [r4], r1
vld1.8 {d0[], d1[]}, [r7], r1
vld1.8 {d2[], d3[]}, [r4], r1
vst1.8 {q0}, [r5]!
vst1.8 {q0}, [r5]
vst1.8 {q1}, [r6]!
vst1.8 {q1}, [r6]
subs r8, #1
bne _expand_picture_luma_loop2
vst1.8 {q0}, [r5]!
vst1.8 {q0}, [r5]
vst1.8 {q1}, [r6]!
vst1.8 {q1}, [r6]
subs r8, #1
bne _expand_picture_luma_loop2
//for the top and bottom expand
add r2, #64
sub r0, #32
mla r4, r1, r3, r0
sub r4, r1
//for the top and bottom expand
add r2, #64
sub r0, #32
mla r4, r1, r3, r0
sub r4, r1
_expand_picture_luma_loop0:
mov r5, #32
mov r5, #32
mls r5, r5, r1, r0
add r6, r4, r1
vld1.8 {q0}, [r0]!
vld1.8 {q1}, [r4]!
add r6, r4, r1
vld1.8 {q0}, [r0]!
vld1.8 {q1}, [r4]!
mov r8, #32
mov r8, #32
_expand_picture_luma_loop1:
vst1.8 {q0}, [r5], r1
vst1.8 {q1}, [r6], r1
subs r8, #1
vst1.8 {q0}, [r5], r1
vst1.8 {q1}, [r6], r1
subs r8, #1
bne _expand_picture_luma_loop1
subs r2, #16
bne _expand_picture_luma_loop0
subs r2, #16
bne _expand_picture_luma_loop0
//vldreq.32 d0, [r0]
ldmia sp!, {r4-r8}
ldmia sp!, {r4-r8}
WELS_ASM_FUNC_END
WELS_ASM_FUNC_BEGIN ExpandPictureChroma_neon
stmdb sp!, {r4-r9}
//Save the dst
mov r7, r0
mov r8, r3
//Save the dst
mov r7, r0
mov r8, r3
add r4, r7, r2
sub r4, #1
add r4, r7, r2
sub r4, #1
//For the left and right expand
_expand_picture_chroma_loop2:
sub r5, r7, #16
add r6, r4, #1
sub r5, r7, #16
add r6, r4, #1
vld1.8 {d0[], d1[]}, [r7], r1
vld1.8 {d2[], d3[]}, [r4], r1
vld1.8 {d0[], d1[]}, [r7], r1
vld1.8 {d2[], d3[]}, [r4], r1
vst1.8 {q0}, [r5]
vst1.8 {q1}, [r6]
subs r8, #1
bne _expand_picture_chroma_loop2
vst1.8 {q0}, [r5]
vst1.8 {q1}, [r6]
subs r8, #1
bne _expand_picture_chroma_loop2
//for the top and bottom expand
add r2, #32
mov r9, r2
bic r2, #15
sub r0, #16
mla r4, r1, r3, r0
sub r4, r1
//for the top and bottom expand
add r2, #32
mov r9, r2
bic r2, #15
sub r0, #16
mla r4, r1, r3, r0
sub r4, r1
_expand_picture_chroma_loop0:
mov r5, #16
mls r5, r5, r1, r0
add r6, r4, r1
vld1.8 {q0}, [r0]!
vld1.8 {q1}, [r4]!
mov r5, #16
mls r5, r5, r1, r0
add r6, r4, r1
vld1.8 {q0}, [r0]!
vld1.8 {q1}, [r4]!
mov r8, #16
mov r8, #16
_expand_picture_chroma_loop1:
vst1.8 {q0}, [r5], r1
vst1.8 {q1}, [r6], r1
subs r8, #1
bne _expand_picture_chroma_loop1
vst1.8 {q0}, [r5], r1
vst1.8 {q1}, [r6], r1
subs r8, #1
bne _expand_picture_chroma_loop1
subs r2, #16
bne _expand_picture_chroma_loop0
subs r2, #16
bne _expand_picture_chroma_loop0
//vldreq.32 d0, [r0]
and r9, #15
cmp r9, #8
bne _expand_picture_chroma_end
mov r5, #16
mls r5, r5, r1, r0
add r6, r4, r1
vld1.8 {d0}, [r0]!
vld1.8 {d2}, [r4]!
mov r8, #16
and r9, #15
cmp r9, #8
bne _expand_picture_chroma_end
mov r5, #16
mls r5, r5, r1, r0
add r6, r4, r1
vld1.8 {d0}, [r0]!
vld1.8 {d2}, [r4]!
mov r8, #16
_expand_picture_chroma_loop3:
vst1.8 {d0}, [r5], r1
vst1.8 {d2}, [r6], r1
subs r8, #1
bne _expand_picture_chroma_loop3
vst1.8 {d0}, [r5], r1
vst1.8 {d2}, [r6], r1
subs r8, #1
bne _expand_picture_chroma_loop3
_expand_picture_chroma_end:
ldmia sp!, {r4-r9}
ldmia sp!, {r4-r9}
WELS_ASM_FUNC_END
#endif

View File

@@ -1,83 +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
.text
#include "arm_arch_common_macro.S"
WELS_ASM_FUNC_BEGIN WelsI16x16LumaPredV_neon
//Get the top line data to 'q0'
sub r3, r1, r2
vldm r3, {d0, d1}
//mov r2, #16
mov r3, #4
//Set the top line to the each line of MB(16*16)
loop_0_get_i16x16_luma_pred_v:
vst1.8 {d0,d1}, [r0]!
vst1.8 {d0,d1}, [r0]!
vst1.8 {d0,d1}, [r0]!
vst1.8 {d0,d1}, [r0]!
subs r3, #1
bne loop_0_get_i16x16_luma_pred_v
WELS_ASM_FUNC_END
WELS_ASM_FUNC_BEGIN WelsI16x16LumaPredH_neon
//stmdb sp!, {r4, lr}
sub r1, r1, #1
mov r3, #4
loop_0_get_i16x16_luma_pred_h:
//Get one byte data from left side
vld1.8 {d0[],d1[]}, [r1], r2
vld1.8 {d2[],d3[]}, [r1], r2
vld1.8 {d4[],d5[]}, [r1], r2
vld1.8 {d6[],d7[]}, [r1], r2
//Set the line of MB using the left side byte data
vst1.8 {d0,d1}, [r0]!
//add r0, #16
vst1.8 {d2,d3}, [r0]!
//add r0, #16
vst1.8 {d4,d5}, [r0]!
//add r0, #16
vst1.8 {d6,d7}, [r0]!
//add r0, #16
subs r3, #1
bne loop_0_get_i16x16_luma_pred_h
WELS_ASM_FUNC_END
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -32,13 +32,13 @@
#ifdef __APPLE__
.macro WELS_ASM_AARCH64_FUNC_BEGIN
.macro WELS_ASM_ARCH64_FUNC_BEGIN
.align 2
.globl _$0
_$0:
.endm
.macro WELS_ASM_AARCH64_FUNC_END
.macro WELS_ASM_ARCH64_FUNC_END
ret
.endm
#else
@@ -46,7 +46,7 @@ ret
.section .note.GNU-stack,"",%progbits // Mark stack as non-executable
.text
.macro WELS_ASM_AARCH64_FUNC_BEGIN funcName
.macro WELS_ASM_ARCH64_FUNC_BEGIN funcName
.align 2
.global \funcName
.type \funcName, %function
@@ -54,7 +54,7 @@ ret
\funcName:
.endm
.macro WELS_ASM_AARCH64_FUNC_END
.macro WELS_ASM_ARCH64_FUNC_END
ret
.endfunc
.endm
@@ -67,4 +67,11 @@ ret
mov \arg0\().8b, \arg1\().8b
.endm
.macro ext.16b arg0, arg1, arg2, arg3
ext \arg0\().16b, \arg1\().16b, \arg2\().16b, \arg3
.endm
.macro ext.8b arg0, arg1, arg2, arg3
ext \arg0\().8b, \arg1\().8b, \arg2\().8b, \arg3
.endm
#endif

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
#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 x8, x3
add x4, x7, x2
@@ -53,91 +53,91 @@ _expand_picture_luma_loop2:
sub x8, x8, #1
cbnz x8, _expand_picture_luma_loop2
//for the top and bottom expand
add x2, x2, #64
sub x0, x0, #32
add x2, x2, #64
sub x0, x0, #32
madd x4, x1, x3, x0
sub x4, x4, x1
_expand_picture_luma_loop0:
mov x5, #32
mov x5, #32
msub x5, x5, x1, x0
add x6, x4, x1
add x6, x4, x1
ld1 {v0.16b}, [x0], x10
ld1 {v1.16b}, [x4], x10
mov x8, #32
mov x8, #32
_expand_picture_luma_loop1:
st1 {v0.16b}, [x5], x1
st1 {v1.16b}, [x6], x1
sub x8, x8, #1
st1 {v0.16b}, [x5], x1
st1 {v1.16b}, [x6], x1
sub x8, x8, #1
cbnz x8, _expand_picture_luma_loop1
sub x2, x2, #16
cbnz x2, _expand_picture_luma_loop0
WELS_ASM_AARCH64_FUNC_END
sub x2, x2, #16
cbnz x2, _expand_picture_luma_loop0
WELS_ASM_ARCH64_FUNC_END
WELS_ASM_AARCH64_FUNC_BEGIN ExpandPictureChroma_AArch64_neon
//Save the dst
mov x7, x0
mov x8, x3
WELS_ASM_ARCH64_FUNC_BEGIN ExpandPictureChroma_AArch64_neon
//Save the dst
mov x7, x0
mov x8, x3
mov x10, #16
add x4, x7, x2
sub x4, x4, #1
add x4, x7, x2
sub x4, x4, #1
//For the left and right expand
_expand_picture_chroma_loop2:
sub x5, x7, #16
add x6, x4, #1
sub x5, x7, #16
add x6, x4, #1
ld1r {v0.16b}, [x7], x1
ld1r {v1.16b}, [x4], x1
ld1r {v0.16b}, [x7], x1
ld1r {v1.16b}, [x4], x1
st1 {v0.16b}, [x5]
st1 {v1.16b}, [x6]
sub x8, x8, #1
cbnz x8, _expand_picture_chroma_loop2
st1 {v0.16b}, [x5]
st1 {v1.16b}, [x6]
sub x8, x8, #1
cbnz x8, _expand_picture_chroma_loop2
//for the top and bottom expand
add x2, x2, #32
//for the top and bottom expand
add x2, x2, #32
//
mov x9, x2
mov x11, #15
bic x2, x2, x11
//
sub x0, x0, #16
madd x4, x1, x3, x0
sub x4, x4, x1
sub x0, x0, #16
madd x4, x1, x3, x0
sub x4, x4, x1
_expand_picture_chroma_loop0:
mov x5, #16
mov x5, #16
msub x5, x5, x1, x0
add x6, x4, x1
ld1 {v0.16b}, [x0], x10
ld1 {v1.16b}, [x4], x10
add x6, x4, x1
ld1 {v0.16b}, [x0], x10
ld1 {v1.16b}, [x4], x10
mov x8, #16
mov x8, #16
_expand_picture_chroma_loop1:
st1 {v0.16b}, [x5], x1
st1 {v1.16b}, [x6], x1
sub x8, x8, #1
st1 {v0.16b}, [x5], x1
st1 {v1.16b}, [x6], x1
sub x8, x8, #1
cbnz x8, _expand_picture_chroma_loop1
sub x2, x2, #16
cbnz x2, _expand_picture_chroma_loop0
sub x2, x2, #16
cbnz x2, _expand_picture_chroma_loop0
and x9, x9, #15
sub x9, x9, #8
cbnz x9, _expand_picture_chroma_end
mov x5, #16
mov x5, #16
msub x5, x5, x1, x0
add x6, x4, x1
ld1 {v0.8b}, [x0]
ld1 {v1.8b}, [x4]
add x6, x4, x1
ld1 {v0.8b}, [x0]
ld1 {v1.8b}, [x4]
mov x8, #16
mov x8, #16
_expand_picture_chroma_loop3:
st1 {v0.8b}, [x5], x1
st1 {v1.8b}, [x6], x1
sub x8, x8, #1
st1 {v0.8b}, [x5], x1
st1 {v1.8b}, [x6], x1
sub x8, x8, #1
cbnz x8, _expand_picture_chroma_loop3
_expand_picture_chroma_end:
WELS_ASM_AARCH64_FUNC_END
WELS_ASM_ARCH64_FUNC_END
#endif

File diff suppressed because it is too large Load Diff

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