Compare commits
No commits in common. "main" and "gh-pages" have entirely different histories.
43
.gitignore
vendored
43
.gitignore
vendored
@ -1,13 +1,6 @@
|
||||
# Object files
|
||||
*.o
|
||||
*.obj
|
||||
*.res
|
||||
|
||||
# Dependency files
|
||||
*.d
|
||||
|
||||
# orig files generated by astyle
|
||||
*.orig
|
||||
*.ko
|
||||
|
||||
# Libraries
|
||||
*.lib
|
||||
@ -23,37 +16,3 @@
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
h264dec
|
||||
h264enc
|
||||
codec_unittest
|
||||
|
||||
# Other files generated by the MSVC compiler
|
||||
*.exp
|
||||
*.pdb
|
||||
*.map
|
||||
|
||||
# Executables built by the MSVC project files
|
||||
bin
|
||||
|
||||
# External source
|
||||
gtest
|
||||
gmp-api
|
||||
|
||||
# Output files from example commands
|
||||
testbin/test_vd_1d.264
|
||||
testbin/test_vd_1d.yuv
|
||||
testbin/test_vd_rc.264
|
||||
testbin/test_vd_rc.yuv
|
||||
testbin/test.264
|
||||
testbin/test.yuv
|
||||
|
||||
# iOS output files
|
||||
codec/build/iOS/common/build/
|
||||
codec/build/iOS/dec/welsdec/build/
|
||||
|
||||
# pkg-config file
|
||||
*.pc
|
||||
|
||||
# editor files
|
||||
*~
|
||||
|
||||
|
@ -1,3 +0,0 @@
|
||||
REVIEWBOARD_URL = 'https://rbcommons.com/s/OpenH264/'
|
||||
REPOSITORY = 'OpenH264'
|
||||
|
36
.travis.yml
36
.travis.yml
@ -1,36 +0,0 @@
|
||||
language: cpp
|
||||
dist: trusty
|
||||
|
||||
compiler:
|
||||
- g++
|
||||
- clang
|
||||
|
||||
before_install:
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install -qq nasm g++-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=CVPCMNL1_SVA_C.264
|
||||
|
||||
matrix:
|
||||
exclude:
|
||||
- compiler: clang
|
||||
env: TASK=BinaryCompare; TestParameter=BA_MW_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}
|
59
BINARY_LICENSE.txt
Normal file
59
BINARY_LICENSE.txt
Normal file
@ -0,0 +1,59 @@
|
||||
-------------------------------------------------------
|
||||
About The Cisco-Provided Binary of OpenH264 Video Codec
|
||||
-------------------------------------------------------
|
||||
|
||||
Cisco provides this program under the terms of the BSD license.
|
||||
|
||||
Additionally, this binary is licensed under Cisco’s AVC/H.264 Patent Portfolio License from MPEG LA, at no cost to you, provided that the requirements and conditions shown below in the AVC/H.264 Patent Portfolio sections are met.
|
||||
|
||||
As with all AVC/H.264 codecs, you may also obtain your own patent license from MPEG LA or from the individual patent owners, or proceed at your own risk. Your rights from Cisco under the BSD license are not affected by this choice.
|
||||
|
||||
For more information on the OpenH264 binary licensing, please see the OpenH264 FAQ found at http://www.openh264.org/faq.html#binary
|
||||
|
||||
A corresponding source code to this binary program is available under the same BSD terms, which can be found at http://www.openh264.org
|
||||
|
||||
-----------
|
||||
BSD License
|
||||
-----------
|
||||
|
||||
Copyright © 2014 Cisco Systems, Inc.
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. 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.
|
||||
|
||||
-----------------------------------------
|
||||
AVC/H.264 Patent Portfolio License Notice
|
||||
-----------------------------------------
|
||||
|
||||
The binary form of this Software is distributed by Cisco under the AVC/H.264 Patent Portfolio License from MPEG LA, and is subject to the following requirements, which may or may not be applicable to your use of this software:
|
||||
|
||||
THIS PRODUCT IS LICENSED UNDER THE AVC PATENT PORTFOLIO LICENSE FOR THE PERSONAL USE OF A CONSUMER OR OTHER USES IN WHICH IT DOES NOT RECEIVE REMUNERATION TO (i) ENCODE VIDEO IN COMPLIANCE WITH THE AVC STANDARD (“AVC VIDEO”) AND/OR (ii) DECODE AVC VIDEO THAT WAS ENCODED BY A CONSUMER ENGAGED IN A PERSONAL ACTIVITY AND/OR WAS OBTAINED FROM A VIDEO PROVIDER LICENSED TO PROVIDE AVC VIDEO. NO LICENSE IS GRANTED OR SHALL BE IMPLIED FOR ANY OTHER USE. ADDITIONAL INFORMATION MAY BE OBTAINED FROM MPEG LA, L.L.C. SEE HTTP://WWW.MPEGLA.COM
|
||||
|
||||
Accordingly, please be advised that content providers and broadcasters using AVC/H.264 in their service may be required to obtain a separate use license from MPEG LA, referred to as "(b) sublicenses" in the SUMMARY OF AVC/H.264 LICENSE TERMS from MPEG LA found at http://www.openh264.org/mpegla
|
||||
|
||||
---------------------------------------------
|
||||
AVC/H.264 Patent Portfolio License Conditions
|
||||
---------------------------------------------
|
||||
|
||||
In addition, the Cisco-provided binary of this Software is licensed under Cisco's license from MPEG LA only if the following conditions are met:
|
||||
|
||||
1. The Cisco-provided binary is separately downloaded to an end user’s device, and not integrated into or combined with third party software prior to being downloaded to the end user’s device;
|
||||
|
||||
2. The end user must have the ability to control (e.g., to enable, disable, or re-enable) the use of the Cisco-provided binary;
|
||||
|
||||
3. Third party software, in the location where end users can control the use of the Cisco-provided binary, must display the following text:
|
||||
|
||||
"OpenH264 Video Codec provided by Cisco Systems, Inc."
|
||||
|
||||
4. Any third-party software that makes use of the Cisco-provided binary must reproduce all of the above text, as well as this last condition, in the EULA and/or in another location where licensing information is to be presented to the end user.
|
||||
|
||||
|
||||
|
||||
v1.0
|
@ -1,8 +0,0 @@
|
||||
Code Guidelines
|
||||
|
||||
Try to follow the style of the existing code.
|
||||
|
||||
Please do not add tabs, trailing whitespace, or Windows-style line endings (CRLF).
|
||||
|
||||
The C++ code was pretty-printed with astyle on 05/01/2014 using the configuration found in build/astyle.cfg
|
||||
|
55
CONTRIBUTORS
55
CONTRIBUTORS
@ -1,55 +0,0 @@
|
||||
# Contributors to the OpenH264 project
|
||||
|
||||
Patrick Ai
|
||||
Sijia Chen
|
||||
ZhaoZheng Chu
|
||||
Paley Du
|
||||
Martin Ettl
|
||||
Andreas Gal
|
||||
Xu Guang
|
||||
Licai Guo
|
||||
Yi Guo
|
||||
Horace Huang
|
||||
Steven Huang
|
||||
Ethan Hugg
|
||||
Cullen Jennings
|
||||
Zhaofeng Jia
|
||||
Derrick Jin
|
||||
Jesse Li
|
||||
Jifei Li
|
||||
Kai Li
|
||||
Karina Li
|
||||
Matt Li
|
||||
Xiang Li
|
||||
Bourne Ling
|
||||
Alex Liu
|
||||
Wayne Liu
|
||||
Varun Patil
|
||||
Eric Rescorla
|
||||
Adam Roach
|
||||
Sawyer Shan
|
||||
Siping Tao
|
||||
Martin Storsjö
|
||||
Brion Vibber
|
||||
James Wang
|
||||
Juanny Wang
|
||||
Zhiliang Wang
|
||||
Hervé Willems
|
||||
Gregory J Wolfe
|
||||
Katherine Wu
|
||||
Guang Xu
|
||||
Jeffery Xu
|
||||
Gang Yang
|
||||
Li Yao
|
||||
Jiessie Zhang
|
||||
Rory Zhang
|
||||
Volvet Zhang
|
||||
Ling Zhu
|
||||
James Zhu
|
||||
Dong Zhang
|
||||
Haibo Zhu
|
||||
Huade Shi
|
||||
|
||||
|
||||
|
||||
|
@ -19,5 +19,5 @@ 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.
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
376
Makefile
376
Makefile
@ -1,376 +0,0 @@
|
||||
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)
|
||||
vpath %.rc $(SRC_PATH)
|
||||
vpath %.pc.in $(SRC_PATH)
|
||||
|
||||
OS=$(shell uname | tr A-Z a-z | tr -d \\-[:digit:]. | sed -E 's/^(net|open|free)bsd/bsd/')
|
||||
ARCH=$(shell uname -m)
|
||||
LIBPREFIX=lib
|
||||
LIBSUFFIX=a
|
||||
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
|
||||
BUILDTYPE=Release
|
||||
V=Yes
|
||||
PREFIX=/usr/local
|
||||
SHARED=-shared
|
||||
OBJ=o
|
||||
DESTDIR=
|
||||
LIBDIR_NAME=lib
|
||||
SHAREDLIB_DIR=$(PREFIX)/lib
|
||||
PROJECT_NAME=openh264
|
||||
MODULE_NAME=gmpopenh264
|
||||
GMP_API_BRANCH=Firefox39
|
||||
CCASFLAGS=$(CFLAGS)
|
||||
STATIC_LDFLAGS=-lstdc++
|
||||
|
||||
VERSION=1.6
|
||||
SHAREDLIBVERSION=3
|
||||
|
||||
ifeq (,$(wildcard $(SRC_PATH)gmp-api))
|
||||
HAVE_GMP_API=No
|
||||
else
|
||||
HAVE_GMP_API=Yes
|
||||
endif
|
||||
|
||||
ifeq (,$(wildcard $(SRC_PATH)gtest))
|
||||
HAVE_GTEST=No
|
||||
else
|
||||
HAVE_GTEST=Yes
|
||||
endif
|
||||
|
||||
# Configurations
|
||||
ifeq ($(BUILDTYPE), Release)
|
||||
CFLAGS += $(CFLAGS_OPT)
|
||||
CFLAGS += -DNDEBUG
|
||||
USE_ASM = Yes
|
||||
ifeq ($(DEBUGSYMBOLS), True)
|
||||
CFLAGS += -g
|
||||
CXXFLAGS += -g
|
||||
DEBUGSYMBOLS_TAG := _debug_symbols
|
||||
PROCESS_FILES := True
|
||||
endif
|
||||
else
|
||||
CFLAGS += $(CFLAGS_DEBUG)
|
||||
USE_ASM = No
|
||||
endif
|
||||
|
||||
ifeq ($(USE_ASAN), Yes)
|
||||
CFLAGS += -fsanitize=address
|
||||
LDFLAGS += -fsanitize=address
|
||||
endif
|
||||
|
||||
STRIP_FLAGS := -S
|
||||
ifeq (linux, $((OS)))
|
||||
STRIP_FLAGS := -g
|
||||
endif
|
||||
|
||||
# Make sure the all target is the first one
|
||||
all: libraries binaries
|
||||
|
||||
include $(SRC_PATH)build/platform-$(OS).mk
|
||||
|
||||
MODULE := $(LIBPREFIX)$(MODULE_NAME).$(SHAREDLIBSUFFIX)
|
||||
|
||||
CFLAGS += -DGENERATED_VERSION_HEADER
|
||||
LDFLAGS +=
|
||||
|
||||
ifeq (Yes, $(GCOV))
|
||||
CFLAGS += -fprofile-arcs -ftest-coverage
|
||||
LDFLAGS += -lgcov
|
||||
endif
|
||||
|
||||
#### No user-serviceable parts below this line
|
||||
ifneq ($(V),Yes)
|
||||
QUIET_CXX = @printf "CXX\t$@\n";
|
||||
QUIET_CC = @printf "CC\t$@\n";
|
||||
QUIET_CCAS = @printf "CCAS\t$@\n";
|
||||
QUIET_ASM = @printf "ASM\t$@\n";
|
||||
QUIET_AR = @printf "AR\t$@\n";
|
||||
QUIET_RC = @printf "RC\t$@\n";
|
||||
QUIET = @
|
||||
endif
|
||||
|
||||
|
||||
INCLUDES += -I$(SRC_PATH)codec/api/svc -I$(SRC_PATH)codec/common/inc -Icodec/common/inc
|
||||
|
||||
DECODER_INCLUDES += \
|
||||
-I$(SRC_PATH)codec/decoder/core/inc \
|
||||
-I$(SRC_PATH)codec/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
|
||||
|
||||
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
|
||||
|
||||
GTEST_INCLUDES += \
|
||||
-I$(SRC_PATH)gtest/googletest \
|
||||
-I$(SRC_PATH)gtest/googletest/include
|
||||
|
||||
CODEC_UNITTEST_INCLUDES += \
|
||||
-I$(SRC_PATH)gtest/googletest/include \
|
||||
-I$(SRC_PATH)codec/common/inc \
|
||||
-I$(SRC_PATH)test
|
||||
|
||||
CONSOLE_COMMON_INCLUDES += \
|
||||
-I$(SRC_PATH)codec/console/common/inc
|
||||
|
||||
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) $(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_DEPS = $(LIBPREFIX)gtest.$(LIBSUFFIX) $(LIBPREFIX)decoder.$(LIBSUFFIX) $(LIBPREFIX)encoder.$(LIBSUFFIX) $(LIBPREFIX)processing.$(LIBSUFFIX) $(LIBPREFIX)common.$(LIBSUFFIX)
|
||||
DECODER_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(DECODER_INCLUDES)
|
||||
ENCODER_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(ENCODER_INCLUDES)
|
||||
PROCESSING_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(PROCESSING_INCLUDES)
|
||||
API_TEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES)
|
||||
COMMON_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES)
|
||||
MODULE_INCLUDES += -I$(SRC_PATH)gmp-api
|
||||
|
||||
DECODER_UNITTEST_CFLAGS += $(CODEC_UNITTEST_CFLAGS)
|
||||
ENCODER_UNITTEST_CFLAGS += $(CODEC_UNITTEST_CFLAGS)
|
||||
PROCESSING_UNITTEST_CFLAGS += $(CODEC_UNITTEST_CFLAGS)
|
||||
API_TEST_CFLAGS += $(CODEC_UNITTEST_CFLAGS)
|
||||
COMMON_UNITTEST_CFLAGS += $(CODEC_UNITTEST_CFLAGS)
|
||||
|
||||
.PHONY: test gtest-bootstrap clean $(PROJECT_NAME).pc $(PROJECT_NAME)-static.pc
|
||||
|
||||
generate-version:
|
||||
$(QUIET)sh $(SRC_PATH)codec/common/generate_version.sh $(SRC_PATH)
|
||||
|
||||
codec/decoder/plus/src/welsDecoderExt.$(OBJ): | generate-version
|
||||
codec/encoder/plus/src/welsEncoderExt.$(OBJ): | generate-version
|
||||
|
||||
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 *.exe *.pdb *.exp *.pc *.res *.map
|
||||
|
||||
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)
|
||||
|
||||
gtest-bootstrap:
|
||||
git clone https://github.com/google/googletest.git gtest
|
||||
|
||||
ifeq ($(HAVE_GTEST),Yes)
|
||||
|
||||
ifneq (android,$(OS))
|
||||
ifneq (ios,$(OS))
|
||||
ifneq (msvc-wp,$(OS))
|
||||
BUILD_UT_EXE=Yes
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
test: codec_unittest$(EXEEXT)
|
||||
ifeq ($(BUILD_UT_EXE), Yes)
|
||||
./codec_unittest
|
||||
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
|
||||
|
||||
ifneq (android, $(OS))
|
||||
ifneq (ios, $(OS))
|
||||
ifneq (msvc-wp, $(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
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
libraries: $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX)
|
||||
|
||||
# No point in building dylib for ios
|
||||
ifneq (ios, $(OS))
|
||||
libraries: $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX)
|
||||
endif
|
||||
|
||||
LIBRARIES += $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX) $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXVER)
|
||||
|
||||
$(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX): $(ENCODER_OBJS) $(DECODER_OBJS) $(PROCESSING_OBJS) $(COMMON_OBJS)
|
||||
$(QUIET)rm -f $@
|
||||
$(QUIET_AR)$(AR) $(AR_OPTS) $+
|
||||
ifeq (True, $(PROCESS_FILES))
|
||||
cp $@ $(LIBPREFIX)$(PROJECT_NAME)$(DEBUGSYMBOLS_TAG).$(LIBSUFFIX)
|
||||
strip $(STRIP_FLAGS) $@ -o $@
|
||||
endif
|
||||
|
||||
$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXVER): $(ENCODER_OBJS) $(DECODER_OBJS) $(PROCESSING_OBJS) $(COMMON_OBJS)
|
||||
$(QUIET)rm -f $@
|
||||
$(QUIET_CXX)$(CXX) $(SHARED) $(CXX_LINK_O) $+ $(LDFLAGS) $(SHLDFLAGS)
|
||||
ifeq (True, $(PROCESS_FILES))
|
||||
cp $@ $(LIBPREFIX)$(PROJECT_NAME)$(DEBUGSYMBOLS_TAG).$(SHAREDLIBSUFFIXVER)
|
||||
strip $(STRIP_FLAGS) $@ -o $@
|
||||
endif
|
||||
|
||||
ifneq ($(SHAREDLIBSUFFIXVER),$(SHAREDLIBSUFFIX))
|
||||
$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX): $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXVER)
|
||||
$(QUIET)ln -sfn $+ $@
|
||||
ifeq (True, $(PROCESS_FILES))
|
||||
$(QUIET)ln -sfn $(LIBPREFIX)$(PROJECT_NAME)$(DEBUGSYMBOLS_TAG).$(SHAREDLIBSUFFIXVER) $(LIBPREFIX)$(PROJECT_NAME)$(DEBUGSYMBOLS_TAG).$(SHAREDLIBSUFFIX)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_GMP_API),Yes)
|
||||
plugin: $(MODULE)
|
||||
LIBRARIES += $(LIBPREFIX)$(MODULE_NAME).$(SHAREDLIBSUFFIXVER)
|
||||
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
|
||||
|
||||
echo-plugin-name:
|
||||
@echo $(MODULE)
|
||||
|
||||
$(LIBPREFIX)$(MODULE_NAME).$(SHAREDLIBSUFFIXVER): $(MODULE_OBJS) $(ENCODER_OBJS) $(DECODER_OBJS) $(PROCESSING_OBJS) $(COMMON_OBJS)
|
||||
$(QUIET)rm -f $@
|
||||
$(QUIET_CXX)$(CXX) $(SHARED) $(CXX_LINK_O) $+ $(LDFLAGS) $(SHLDFLAGS) $(MODULE_LDFLAGS)
|
||||
ifeq (True, $(PROCESS_FILES))
|
||||
cp $@ $(LIBPREFIX)$(MODULE_NAME)$(DEBUGSYMBOLS_TAG).$(SHAREDLIBSUFFIXVER)
|
||||
strip $(STRIP_FLAGS) $@ -o $@
|
||||
endif
|
||||
|
||||
ifneq ($(SHAREDLIBSUFFIXVER),$(SHAREDLIBSUFFIX))
|
||||
$(MODULE): $(LIBPREFIX)$(MODULE_NAME).$(SHAREDLIBSUFFIXVER)
|
||||
$(QUIET)ln -sfn $+ $@
|
||||
ifeq (True, $(PROCESS_FILES))
|
||||
$(QUIET)ln -sfn $(LIBPREFIX)$(MODULE_NAME)$(DEBUGSYMBOLS_TAG).$(SHAREDLIBSUFFIXVER) $(LIBPREFIX)$(MODULE_NAME)$(DEBUGSYMBOLS_TAG).$(SHAREDLIBSUFFIX)
|
||||
endif
|
||||
endif
|
||||
|
||||
$(PROJECT_NAME).pc: $(PROJECT_NAME).pc.in
|
||||
@sed -e 's;@prefix@;$(PREFIX);' -e 's;@VERSION@;$(VERSION);' -e 's;@LIBS@;;' -e 's;@LIBS_PRIVATE@;$(STATIC_LDFLAGS);' < $< > $@
|
||||
|
||||
$(PROJECT_NAME)-static.pc: $(PROJECT_NAME).pc.in
|
||||
@sed -e 's;@prefix@;$(PREFIX);' -e 's;@VERSION@;$(VERSION);' -e 's;@LIBS@;$(STATIC_LDFLAGS);' -e 's;@LIBS_PRIVATE@;;' < $< > $@
|
||||
|
||||
install-headers:
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/include/wels
|
||||
install -m 644 $(SRC_PATH)/codec/api/svc/codec*.h $(DESTDIR)$(PREFIX)/include/wels
|
||||
|
||||
install-static-lib: $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX) install-headers
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/$(LIBDIR_NAME)
|
||||
install -m 644 $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX) $(DESTDIR)$(PREFIX)/$(LIBDIR_NAME)
|
||||
|
||||
install-static: install-static-lib $(PROJECT_NAME)-static.pc
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/$(LIBDIR_NAME)/pkgconfig
|
||||
install -m 644 $(PROJECT_NAME)-static.pc $(DESTDIR)$(PREFIX)/$(LIBDIR_NAME)/pkgconfig/$(PROJECT_NAME).pc
|
||||
|
||||
install-shared: $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX) install-headers $(PROJECT_NAME).pc
|
||||
mkdir -p $(DESTDIR)$(SHAREDLIB_DIR)
|
||||
install -m 755 $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXVER) $(DESTDIR)$(SHAREDLIB_DIR)
|
||||
if [ "$(SHAREDLIBSUFFIXVER)" != "$(SHAREDLIBSUFFIX)" ]; then \
|
||||
cp -a $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX) $(DESTDIR)$(SHAREDLIB_DIR); \
|
||||
fi
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/$(LIBDIR_NAME)/pkgconfig
|
||||
install -m 644 $(PROJECT_NAME).pc $(DESTDIR)$(PREFIX)/$(LIBDIR_NAME)/pkgconfig
|
||||
ifneq ($(EXTRA_LIBRARY),)
|
||||
install -m 644 $(EXTRA_LIBRARY) $(DESTDIR)$(PREFIX)/$(LIBDIR_NAME)
|
||||
endif
|
||||
|
||||
install: install-static-lib install-shared
|
||||
@:
|
||||
|
||||
ifneq ($(HAVE_GTEST),Yes)
|
||||
binaries:
|
||||
@:
|
||||
else
|
||||
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) $(UTSHLDFLAGS) $(CODEC_UNITTEST_LDFLAGS)
|
||||
|
||||
binaries: codec_unittest$(EXEEXT)
|
||||
BINARIES += codec_unittest$(EXEEXT)
|
||||
|
||||
ifeq ($(BUILD_UT_EXE), Yes)
|
||||
# Build a normal command line executable
|
||||
codec_unittest$(EXEEXT): $(DECODER_UNITTEST_OBJS) $(ENCODER_UNITTEST_OBJS) $(PROCESSING_UNITTEST_OBJS) $(API_TEST_OBJS) $(COMMON_UNITTEST_OBJS) $(CODEC_UNITTEST_DEPS) | res
|
||||
$(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
|
||||
else
|
||||
|
||||
# Build the unit test suite into a library that is included in a project file
|
||||
ifeq (ios,$(OS))
|
||||
codec_unittest$(EXEEXT): $(LIBPREFIX)ut.$(LIBSUFFIX) $(LIBPREFIX)gtest.$(LIBSUFFIX) $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX)
|
||||
else
|
||||
codec_unittest$(EXEEXT): $(LIBPREFIX)ut.$(SHAREDLIBSUFFIX)
|
||||
endif
|
||||
|
||||
ifeq (android,$(OS))
|
||||
ifeq (./,$(SRC_PATH))
|
||||
codec_unittest$(EXEEXT):
|
||||
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
|
||||
endif
|
||||
endif
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
-include $(OBJS:.$(OBJ)=.d)
|
||||
|
||||
OBJDIRS = $(sort $(dir $(OBJS)))
|
||||
|
||||
$(OBJDIRS):
|
||||
$(QUIET)mkdir -p $@
|
||||
|
||||
$(OBJS): | $(OBJDIRS)
|
161
README.md
161
README.md
@ -1,161 +0,0 @@
|
||||
OpenH264
|
||||
========
|
||||
OpenH264 is a codec library which supports H.264 encoding and decoding. It is suitable for use in real time applications such as WebRTC. See http://www.openh264.org/ for more details.
|
||||
|
||||
Encoder Features
|
||||
----------------
|
||||
- Constrained Baseline Profile up to Level 5.2 (Max frame size is 36864 macro-blocks)
|
||||
- Arbitrary resolution, not constrained to multiples of 16x16
|
||||
- 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
|
||||
- Temporal scalability up to 4 layers in a dyadic hierarchy
|
||||
- Simulcast AVC up to 4 resolutions from a single input
|
||||
- Spatial simulcast up to 4 resolutions from a single input
|
||||
- Long Term Reference (LTR) frames
|
||||
- Memory Management Control Operation (MMCO)
|
||||
- Reference picture list modification
|
||||
- Single reference frame for inter prediction
|
||||
- Multiple reference frames when using LTR and/or 3-4 temporal layers
|
||||
- Periodic and on-demand Instantaneous Decoder Refresh (IDR) frame insertion
|
||||
- Dynamic changes to bit rate, frame rate, and resolution
|
||||
- Annex B byte stream output
|
||||
- YUV 4:2:0 planar input
|
||||
|
||||
Decoder Features
|
||||
----------------
|
||||
- Constrained Baseline Profile up to Level 5.2 (Max frame size is 36864 macro-blocks)
|
||||
- Arbitrary resolution, not constrained to multiples of 16x16
|
||||
- Single thread for all slices
|
||||
- Long Term Reference (LTR) frames
|
||||
- Memory Management Control Operation (MMCO)
|
||||
- Reference picture list modification
|
||||
- Multiple reference frames when specified in Sequence Parameter Set (SPS)
|
||||
- Annex B byte stream input
|
||||
- YUV 4:2:0 planar output
|
||||
|
||||
OS Support
|
||||
----------
|
||||
- Windows 64-bit and 32-bit
|
||||
- Mac OS X 64-bit and 32-bit
|
||||
- Linux 64-bit and 32-bit
|
||||
- Android 64-bit and 32-bit
|
||||
- iOS 64-bit and 32-bit
|
||||
- Windows Phone 32-bit
|
||||
|
||||
Processor Support
|
||||
-----------------
|
||||
- Intel x86 optionally with MMX/SSE (no AVX yet, help is welcome)
|
||||
- ARMv7 optionally with NEON, AArch64 optionally with NEON
|
||||
- Any architecture using C/C++ fallback functions
|
||||
|
||||
Building the Library
|
||||
--------------------
|
||||
NASM needed to be installed for assembly code: workable version 2.10.06 or above, nasm can downloaded from http://www.nasm.us/
|
||||
For Mac OSX 64-bit NASM needed to be below version 2.11.08 as nasm 2.11.08 will introduce error when using RIP-relative addresses in Mac OSX 64-bit
|
||||
|
||||
To build the arm assembly for Windows Phone, gas-preprocessor is required. It can be downloaded from git://git.libav.org/gas-preprocessor.git
|
||||
|
||||
For Android Builds
|
||||
------------------
|
||||
To build for android platform, You need to install android sdk and ndk. You also need to export `**ANDROID_SDK**/tools` to PATH. On Linux, this can be done by
|
||||
|
||||
export PATH=**ANDROID_SDK**/tools:$PATH
|
||||
|
||||
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.
|
||||
`ARCH` specifies the architecture of android device. Currently `arm`, `arm64`, `x86` and `x86_64` are supported, the default is `arm`. (`mips` and `mips64` can also be used, but there's no specific optimization for those architectures.)
|
||||
`NDKLEVEL` specifies android api level, the default is 12. Available possibilities can be found in `**ANDROID_NDK**/platforms`, such as `android-21` (strip away the `android-` prefix).
|
||||
|
||||
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).
|
||||
To build for 64-bit ABI, such as `arm64`, explicitly set `NDKLEVEL` to 21 or higher.
|
||||
|
||||
For iOS Builds
|
||||
--------------
|
||||
You can build the libraries and demo applications using xcode project files
|
||||
located in `codec/build/iOS/dec` and `codec/build/iOS/enc`.
|
||||
|
||||
You can also build the libraries (but not the demo applications) using the
|
||||
make based build system from the command line. Build with
|
||||
|
||||
make OS=ios ARCH=**ARCH**
|
||||
|
||||
Valid values for `**ARCH**` are the normal iOS architecture names such as
|
||||
`armv7`, `armv7s`, `arm64`, and `i386` and `x86_64` for the simulator.
|
||||
Another settable iOS specific parameter
|
||||
is `SDK_MIN`, specifying the minimum deployment target for the built library.
|
||||
For other details on building using make on the command line, see
|
||||
'For All Platforms' below.
|
||||
|
||||
For Windows Builds
|
||||
------------------
|
||||
|
||||
Our Windows builds use MinGW which can be found here - http://www.mingw.org/
|
||||
|
||||
To build with gcc, add the MinGW bin directory (e.g. `/c/MinGW/bin`) to your path and follow the 'For All Platforms' instructions below.
|
||||
|
||||
To build with Visual Studio you will need to set up your path to run cl.exe. The easiest way is to start MSYS from a developer command line session - http://msdn.microsoft.com/en-us/library/ms229859(v=vs.110).aspx If you need to do it by hand here is an example from a Windows 64bit install of VS2012:
|
||||
|
||||
export PATH="$PATH:/c/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin:/c/Program Files (x86)/Microsoft Visual Studio 11.0/Common7/IDE"
|
||||
|
||||
You will also need to set your INCLUDE and LIB paths to point to your VS and SDK installs. Something like this, again from Win64 with VS2012 (note the use of Windows-style paths here).
|
||||
|
||||
export INCLUDE="C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include;C:\Program Files (x86)\Windows Kits\8.0\Include\um;C:\Program Files (x86)\Windows Kits\8.0\Include\shared"
|
||||
export LIB="C:\Program Files (x86)\Windows Kits\8.0\Lib\Win8\um\x86;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib"
|
||||
|
||||
Then add `OS=msvc` to the make line of the 'For All Platforms' instructions.
|
||||
|
||||
For Windows Phone builds
|
||||
------------------------
|
||||
|
||||
Follow the instructions above for normal Windows builds, but use `OS=msvc-wp`
|
||||
instead of `OS=msvc`. You will also need gas-preprocessor (as mentioned below
|
||||
"Building the Library").
|
||||
|
||||
If building for Windows Phone with MSVC 2013, there's no included bat file that sets the lib paths to the Windows Phone kit, but that can be done with a command like this:
|
||||
|
||||
export LIB="c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib\store\arm;c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib\arm;c:\Program Files (x86)\Windows Phone Kits\8.1\lib\arm"
|
||||
|
||||
This is only necessary for building the DLL; the static library can be built without setting this.
|
||||
|
||||
For All Platforms
|
||||
-------------------
|
||||
From the main project directory:
|
||||
- `make` for automatically detecting architecture and building accordingly
|
||||
- `make ARCH=i386` for x86 32bit builds
|
||||
- `make ARCH=x86_64` for x86 64bit builds
|
||||
- `make V=No` for a silent build (not showing the actual compiler commands)
|
||||
- `make DEBUGSYMBOLS=True` for two libraries, one is normal libraries, another one is removed the debugging symbol table entries (those created by the -g option )
|
||||
|
||||
The command line programs `h264enc` and `h264dec` will appear in the main project directory.
|
||||
|
||||
A shell script to run the command-line apps is in `testbin/CmdLineExample.sh`
|
||||
|
||||
Usage information can be found in `testbin/CmdLineReadMe`
|
||||
|
||||
Using the Source
|
||||
----------------
|
||||
- `codec` - encoder, decoder, console (test app), build (makefile, vcproj)
|
||||
- `build` - scripts for Makefile build system.
|
||||
- `test` - GTest unittest files.
|
||||
- `testbin` - autobuild scripts, test app config files
|
||||
- `res` - yuv and bitstream test files
|
||||
|
||||
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
|
||||
- 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
|
||||
|
||||
License
|
||||
-------
|
||||
BSD, see `LICENSE` file for details.
|
211
RELEASES
211
RELEASES
@ -1,211 +0,0 @@
|
||||
|
||||
Releases
|
||||
-----------
|
||||
v1.6.0
|
||||
------
|
||||
- Adjusted the encoder API structures
|
||||
- Removed the unused data format in decoder API
|
||||
- Encoder support of simulcast AVC
|
||||
- Added support of video signal type present information
|
||||
- Added support of encoder load-balancing
|
||||
- Improved encoder multi-threads, rate control and down-sampling
|
||||
- Fixed the frame size constraint in encoder
|
||||
- Bug fixes for rate control, multi-threading, simulcasting in encoder
|
||||
- Bug fixes for interface call, return value check, memory leak in decoder
|
||||
- Bug fixes for UT and statistic information
|
||||
- Bug fixes for assembly code
|
||||
- Remove the unused and redundant code
|
||||
- Improvements on UT, memory allocation failed protection, error-protection in decoder, input parameters checking in encoder, assembly for AVX2 support, assembly code performance, logging and documentation
|
||||
- Correct some typos in source code and documents
|
||||
|
||||
v1.5.3
|
||||
------
|
||||
- Bug fixes for GMP Plugin
|
||||
|
||||
v1.5.2
|
||||
------
|
||||
- Fix GMP Plugin causing the Browser crash on Android
|
||||
|
||||
v1.5.1
|
||||
------
|
||||
- Bug fixes for GMP Plugin
|
||||
|
||||
v1.5.0
|
||||
------
|
||||
- Correct a typo in codec return value (github issue#2046, cmUnkonwReason -> cmUnknownReason)
|
||||
- Added Codec demo and auto build script for WP8
|
||||
- Decoder support of 'Constrained High Profile' of H.264
|
||||
- Encoder support of CABAC of H.264
|
||||
- Encoder support of input frame rate 60
|
||||
- Improved syntax of gaps_in_frame_num_value_allowed_flag in encoder
|
||||
- Improved memory usage for multi-threading in encoder
|
||||
- Added VUI info for base layer in encoder
|
||||
- Added encoder interface to get external setting of iMaxQp and iMinQp for rate control
|
||||
- Bug fixes for Rate Control, multi-threading and simulcasting in encoder
|
||||
- Bug fixes for NoDelay API, ParseOnly functions, error-concealment off functiond and error-detection in decoder
|
||||
- Bug fixes for UT
|
||||
- Fixes to avoid valgrind warnings, potential crash and calculation overflow
|
||||
- Merged files for decoder/encoder and remove unused files
|
||||
- Improvements on build scripts, UT, error-protection in decoder, input param checking in encoder, assembly for 64bit support, downsampling, logging and documentation
|
||||
|
||||
Note:
|
||||
'Constrained High Profile' = 'Constrained Baseline Profile' plus:
|
||||
- CABAC
|
||||
- Intra 8x8 mode support
|
||||
- 8x8 transform
|
||||
- QP scaling matrices
|
||||
- QP per chroma component
|
||||
- Mono 4:0:0 (experimental)
|
||||
- Weighted prediction
|
||||
|
||||
v1.4.0
|
||||
------
|
||||
- Decoder new interface of DecodeFrameNoDelay
|
||||
- Added new encoder and decoder statistics
|
||||
- Added option for generating pdb in windows builds
|
||||
- Added new rate control mode (RC_TIMESTAMP_MODE) for inconstant frame rate input
|
||||
- Added new Sps/Pps strategies for real-time video
|
||||
— Added support for simulcast avc
|
||||
- Improvements in code structure, assembly, input parameter checking, logging, UT and comments
|
||||
- In gmp-openh264, return decoder error correctly and other fixes
|
||||
- Decoder bug fixes when for Error Concealment disabled
|
||||
- Bug fixes for ParseOnly functions
|
||||
- Bug fixes for encoding large frame size (>32767MBs)
|
||||
- Fixes to avoid valgrind warnings, potential crash and calculation overflow
|
||||
|
||||
-----------
|
||||
v1.3.1
|
||||
------
|
||||
- Fixed and enhanced protection to avoid crash when reading lossy bitstreams
|
||||
- Adjust the default mode of Error Concealment used by gmp-openh264
|
||||
|
||||
-----------
|
||||
v1.3.0
|
||||
------
|
||||
- Removed manual API document, now using wiki: https://github.com/cisco/openh264/wiki (0af48e5 for v1.3.0)
|
||||
- Added API version in API header files
|
||||
- Added pkg-config file
|
||||
- Added decoder support of parsing only (bParseOnly) for only parsing bit stream but not decoding
|
||||
- Added timestamp and max nal size in gmp-openh264.cpp when calling encoding
|
||||
- Added timestamp info in decoder input and return structure
|
||||
- Added support of level 9 in decoder
|
||||
- Added total length of the encoded frame in encoder return structure
|
||||
- Added SetOption(ENCODER_OPTION_SVC_ENCODE_PARAM_BASE,&base) for encoder
|
||||
- Set constraint set 0 and 1 flags for non-scalable
|
||||
- Improved error concealment algorithms and provide more modes of error-concealment
|
||||
- Improved rate control algorithms and reference selection algorithms for screen content encoding
|
||||
- Added encoder and decoder statistics interface
|
||||
- Improved input parameter checking and logging
|
||||
- Bug fixes, warning reductions, and test improvements
|
||||
|
||||
-----------
|
||||
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.6.0
|
||||
------
|
||||
http://ciscobinary.openh264.org/libopenh264-1.6.0-android19.so.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.6.0-ios.a.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.6.0-linux32.3.so.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.6.0-linux64.3.so.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.6.0-osx32.3.dylib.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.6.0-osx64.3.dylib.bz2
|
||||
http://ciscobinary.openh264.org/openh264-1.6.0-win32msvc.dll.bz2
|
||||
http://ciscobinary.openh264.org/openh264-1.6.0-win64msvc.dll.bz2
|
||||
|
||||
v1.5.0
|
||||
------
|
||||
http://ciscobinary.openh264.org/libopenh264-1.5.0-android19.so.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.5.0-ios.a.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.5.0-linux32.so.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.5.0-linux64.so.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.5.0-osx32.dylib.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.5.0-osx64.dylib.bz2
|
||||
http://ciscobinary.openh264.org/openh264-1.5.0-win32msvc.dll.bz2
|
||||
http://ciscobinary.openh264.org/openh264-1.5.0-win64msvc.dll.bz2
|
||||
|
||||
v1.4.0
|
||||
------
|
||||
http://ciscobinary.openh264.org/libopenh264-1.4.0-android19.so.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.4.0-linux32.so.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.4.0-linux64.so.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.4.0-osx32.dylib.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.4.0-osx64.dylib.bz2
|
||||
http://ciscobinary.openh264.org/openh264-1.4.0-win32msvc.dll.bz2
|
||||
http://ciscobinary.openh264.org/openh264-1.4.0-win64msvc.dll.bz2
|
||||
|
||||
v1.3.1
|
||||
------
|
||||
http://ciscobinary.openh264.org/libopenh264-1.3.1-android19.so.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.3.1-linux32.so.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.3.1-linux64.so.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.3.1-osx32.dylib.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.3.1-osx64.dylib.bz2
|
||||
http://ciscobinary.openh264.org/openh264-1.3.1-win32msvc.dll.bz2
|
||||
http://ciscobinary.openh264.org/openh264-1.3.1-win64msvc.dll.bz2
|
||||
|
||||
v1.3.0
|
||||
------
|
||||
http://ciscobinary.openh264.org/libopenh264-1.3.0-android19.so.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.3.0-linux32.so.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.3.0-linux64.so.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.3.0-osx32.dylib.bz2
|
||||
http://ciscobinary.openh264.org/libopenh264-1.3.0-osx64.dylib.bz2
|
||||
http://ciscobinary.openh264.org/openh264-1.3.0-win32msvc.dll.bz2
|
||||
http://ciscobinary.openh264.org/openh264-1.3.0-win64msvc.dll.bz2
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
@ -1,431 +0,0 @@
|
||||
#!/bin/bash
|
||||
#*******************************************************************
|
||||
# brief: multi-encoders comparision for openh264
|
||||
# (one given sequence only)
|
||||
# comparision almong encoders in \$TestEncoderList
|
||||
#
|
||||
# more detail, please refer to runUsage() and runBrief()
|
||||
#
|
||||
# date: 2015-12-16
|
||||
#*******************************************************************
|
||||
|
||||
runUsage()
|
||||
{
|
||||
echo -e "\033[32m ********************************************************************* \033[0m"
|
||||
echo " Usage: "
|
||||
echo " --$0 \$TestPicW \$TestPicH \$TestEncoderList"
|
||||
echo ""
|
||||
echo " --example:"
|
||||
echo " $0 1280 720 h264enc_master h264enc_target1 h264enc_target2 "
|
||||
echo ""
|
||||
echo " Pre-test:"
|
||||
echo " --1) copy welsenc.cfg from ./openh264/testbin/ to current dir"
|
||||
echo " --2) set test YUV path in welsenc.cfg "
|
||||
echo " --3) copy layer0.cfg from ./openh264/testbin/layer2.cfg to current dir"
|
||||
echo " --4) copy layer1.cfg from ./openh264/testbin/layer2.cfg to current dir"
|
||||
echo " --5) copy layer2.cfg from ./openh264/testbin/layer2.cfg to current dir"
|
||||
echo " --6) copy layer3.cfg from ./openh264/testbin/layer2.cfg to current dir"
|
||||
echo " layer0.cfg~layer3.cfg are used for multi-layers test cases"
|
||||
echo ""
|
||||
echo " --7) generate at least one encoder, "
|
||||
echo " eg. h264enc_master----master branch as benchmark codec"
|
||||
echo " h264enc_target----your branch CodecChanged as target codec"
|
||||
echo ""
|
||||
echo " --8) copy all tests codec to folder ./Encoder"
|
||||
echo " --9) run below command line:"
|
||||
echo " $0 \$TestPicW \$TestPicH \$TestEncoderList"
|
||||
echo ""
|
||||
echo " Post-test:"
|
||||
echo " --1) temp cases log will be output in ./Trace-AllTestData"
|
||||
echo " --2) all comparision data parsed from log files will be output to "
|
||||
echo " related .csv file under ./Trace-AllTestData "
|
||||
echo ""
|
||||
echo " example:"
|
||||
echo " --comparison almong h264enc_master h264enc_target1 h264enc_target2"
|
||||
echo " for Zhuling_1280x720.yuv"
|
||||
echo ""
|
||||
echo " --run command as below:"
|
||||
echo " $0 1280 720 h264enc_master h264enc_target1 h264enc_target2 "
|
||||
echo ""
|
||||
echo " --get final result files(.csv) under ./Trace-AllTestData"
|
||||
echo ""
|
||||
echo -e "\033[32m ********************************************************************* \033[0m"
|
||||
}
|
||||
|
||||
runBrief()
|
||||
{
|
||||
echo -e "\033[32m ********************************************************************* \033[0m"
|
||||
echo " brief:"
|
||||
echo ""
|
||||
echo " encoder veision comparision "
|
||||
echo " --comparision almong encoders in \$TestEncoderList"
|
||||
echo " --please generate at least one encoder and copy to folder ./Encoder"
|
||||
echo " --script will run all test cases for each test encoder"
|
||||
echo " and generate related trace log files for each encoder"
|
||||
echo " --script will parse and extact data based on keyword from trace log file"
|
||||
echo " and output to related .csv files for all encoder"
|
||||
echo " --the test outout file will be put under ./Trace-AllTestData"
|
||||
echo ""
|
||||
echo " test cases:"
|
||||
echo " --add more cases in function runGlobleInit()"
|
||||
echo " --add new argument with for loop like rc. etc in function "
|
||||
echo " runAllEncodeCasesAndGenerateLog()"
|
||||
echo ""
|
||||
echo " new data:"
|
||||
echo " --currently only memory usage, you can add new data for your comparision"
|
||||
echo " --need to add related data parse in function runParseTraceLog()"
|
||||
echo ""
|
||||
echo -e "\033[32m ********************************************************************* \033[0m"
|
||||
}
|
||||
|
||||
runPrompt()
|
||||
{
|
||||
echo -e "\033[32m ********************************************************************* \033[0m"
|
||||
echo ""
|
||||
echo " ------Test completed!--------"
|
||||
echo ""
|
||||
echo -e "\033[32m ********************************************************************* \033[0m"
|
||||
echo " "
|
||||
echo " --Total ${iTotalCaseNum} cases run for encoders: ${aEncoderList[@]}"
|
||||
echo ""
|
||||
echo " --Statistic files for comparision are list as below:"
|
||||
echo " ${MemoryUsageStatic}"
|
||||
echo ""
|
||||
echo " --trace log files can be found under:"
|
||||
echo " ${LogDir}"
|
||||
echo ""
|
||||
echo -e "\033[32m ********************************************************************* \033[0m"
|
||||
}
|
||||
|
||||
runGlobleInit()
|
||||
{
|
||||
CurrenDir=`pwd`
|
||||
LogDir="${CurrenDir}/Trace-AllTestData"
|
||||
EncoderDir="${CurrenDir}/Encoder"
|
||||
|
||||
if [ ! -d ${LogDir} ]
|
||||
then
|
||||
mkdir ${LogDir}
|
||||
fi
|
||||
|
||||
|
||||
LogFile="Log_EncTraceInfo.log"
|
||||
MemoryUsageStatic="${LogDir}/MemoryUsage.csv"
|
||||
TempEncoderList=""
|
||||
for((i=0; i<${#aEncoderList[@]}; i++))
|
||||
do
|
||||
if [ -z "${TempEncoderList}" ]
|
||||
then
|
||||
TempEncoderList="${aEncoderList[$i]},"
|
||||
else
|
||||
TempEncoderList="${TempEncoderList} ${aEncoderList[$i]},"
|
||||
fi
|
||||
done
|
||||
|
||||
let "iTotalCaseNum=0"
|
||||
let "MemoryUsage = 0"
|
||||
echo "LogDir is ${LogDir}"
|
||||
echo "MemoryUsageStatic file is ${MemoryUsageStatic}"
|
||||
echo "SpatialLayerNum, ThreadNum, SliceMode, SliceNum, SlicMbNum, ${TempEncoderList}" >${MemoryUsageStatic}
|
||||
|
||||
echo "LogDir is ${LogDir}"
|
||||
echo "MemoryUsageStatic file is ${MemoryUsageStatic}"
|
||||
|
||||
|
||||
let "iTraceLevel=4"
|
||||
let "iFrameToBeEncoded = 32"
|
||||
let "iMaxNalSize=0"
|
||||
#you can add more test case like rc, gop size, et.
|
||||
#and add "for loop" in function runAllEncodeCasesAndGenerateLog()
|
||||
aSpatialLayerNum=(1 2 3 4 )
|
||||
aThreadIdc=(1 4)
|
||||
aSliceMode=(0 1 2 3)
|
||||
aSliceNum=(0 8 16 32)
|
||||
aSliceMbNum=(0 960)
|
||||
|
||||
Encoder=""
|
||||
sEncoderCommand=""
|
||||
}
|
||||
|
||||
runCheck()
|
||||
{
|
||||
if [ ! -d ${EncoderDir} ]
|
||||
then
|
||||
echo "encoder folder does not exist, please following below command to copy encoder to test folder--./Encoder"
|
||||
echo " mkdir Encoder"
|
||||
echo " cp \${AllVersionEncoders} ./Encoder "
|
||||
exit 1
|
||||
fi
|
||||
|
||||
let "bEncoderFlag = 0"
|
||||
echo "aEncoderList is ${aEncoderList[@]} "
|
||||
for file in ${aEncoderList[@]}
|
||||
do
|
||||
if [ -x ${EncoderDir}/${file} ]
|
||||
then
|
||||
let "bEncoderFlag = 1"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${bEncoderFlag} -eq 0 ]
|
||||
then
|
||||
echo "no encoder under test folder, please following below command to copy encoder to test folder--./Encoder"
|
||||
echo " cp \${AllVersionEncoders} ./Encoder "
|
||||
echo " chmod u+x ./Encoder/* "
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
runGenerateSpatialLayerResolution()
|
||||
{
|
||||
SpatialLayerNum=$1
|
||||
if [ -z "${SpatialLayerNum}" ]
|
||||
then
|
||||
let "SpatialLayerNum =1"
|
||||
fi
|
||||
|
||||
let "PicW_L0= PicW / 8"
|
||||
let "PicW_L1= PicW / 4"
|
||||
let "PicW_L2= PicW / 2"
|
||||
let "PicW_L3= PicW"
|
||||
|
||||
let "PicH_L0= PicH / 8"
|
||||
let "PicH_L1= PicH / 4"
|
||||
let "PicH_L2= PicH / 2"
|
||||
let "PicH_L3= PicH"
|
||||
|
||||
if [ ${SpatialLayerNum} -eq 1 ]
|
||||
then
|
||||
aPicW=( ${PicW_L3} 0 0 0 )
|
||||
aPicH=( ${PicH_L3} 0 0 0 )
|
||||
|
||||
elif [ ${SpatialLayerNum} -eq 2 ]
|
||||
then
|
||||
aPicW=( ${PicW_L2} ${PicW_L3} 0 0 )
|
||||
aPicH=( ${PicH_L2} ${PicH_L3} 0 0 )
|
||||
|
||||
elif [ ${SpatialLayerNum} -eq 3 ]
|
||||
then
|
||||
aPicW=( ${PicW_L1} ${PicW_L2} ${PicW_L3} 0 )
|
||||
aPicH=( ${PicH_L1} ${PicH_L2} ${PicH_L3} 0 )
|
||||
|
||||
elif [ ${SpatialLayerNum} -eq 4 ]
|
||||
then
|
||||
aPicW=( ${PicW_L0} ${PicW_L1} ${PicW_L2} ${PicW_L3} )
|
||||
aPicH=( ${PicH_L0} ${PicH_L1} ${PicH_L2} ${PicH_L3} )
|
||||
fi
|
||||
|
||||
echo "*************************************************************************"
|
||||
echo " ${SpatialLayerNum} layers spactial resolution for ${PicW}x${PicH} are:"
|
||||
echo ""
|
||||
echo " aPicW is ${aPicW[@]}"
|
||||
echo " aPicH is ${aPicH[@]}"
|
||||
echo "*************************************************************************"
|
||||
|
||||
}
|
||||
|
||||
#parse data from encoder trace log
|
||||
#you can add more key word to extract data from log file
|
||||
runParseTraceLog()
|
||||
{
|
||||
TempLogFile=$1
|
||||
let "MemoryUsage = 0"
|
||||
|
||||
echo "*****************************************"
|
||||
echo "parsing trace log file"
|
||||
echo "log file name is ${TempLogFile}"
|
||||
echo "*****************************************"
|
||||
|
||||
if [ ! -e ${TempLogFile} ]
|
||||
then
|
||||
echo "LogFile ${TempLogFile} does not exist, please double check!"
|
||||
return 1
|
||||
fi
|
||||
|
||||
MemUsageInLog=""
|
||||
while read line
|
||||
do
|
||||
if [[ "${line}" =~ "overall memory usage" ]]
|
||||
then
|
||||
#[OpenH264] this = 0x0x7fa4d2c04c30, Info:WelsInitEncoderExt() exit, overall memory usage: 40907254 bytes
|
||||
MemUsageInLog=(`echo $line | awk 'BEGIN {FS="usage:"} {print $2}' `)
|
||||
fi
|
||||
|
||||
# you can add more key word to extract data from log file
|
||||
# e.g.: bit rate, fps, encoder time, psnr etc.
|
||||
# add script block like:
|
||||
# ****************************************************
|
||||
# if [[ "${line}" =~ "KeyWordYouWantToSearch" ]]
|
||||
# then
|
||||
# $line in log file which contain data you want
|
||||
# DataYouWant=(`echo $line | awk 'BEGIN {FS="keywordYourSearch"} {print $2}' `)
|
||||
# fi
|
||||
# ****************************************************
|
||||
|
||||
done < ${TempLogFile}
|
||||
|
||||
let "MemoryUsage = ${MemUsageInLog}"
|
||||
echo "MemoryUsage is ${MemoryUsage}"
|
||||
}
|
||||
|
||||
runEncodeOneCase()
|
||||
{
|
||||
#encoding process
|
||||
echo "------------------------------------------------------"
|
||||
echo "${Encoder} welsenc.cfg ${sEncoderCommand}" >${LogFile}
|
||||
${Encoder} welsenc.cfg ${sEncoderCommand} 2>>${LogFile}
|
||||
${Encoder} welsenc.cfg ${sEncoderCommand} >>${LogFile}
|
||||
echo "------------------------------------------------------"
|
||||
}
|
||||
|
||||
runAllEncodeCasesAndGenerateLog()
|
||||
{
|
||||
|
||||
echo "aSpatialLayerNum is ${aSpatialLayerNum[@]}"
|
||||
echo "aThreadIdc is ${aThreadIdc[@]}"
|
||||
echo "aSliceMode is ${aSliceMode[@]}"
|
||||
echo "aSliceNum is ${aSliceNum[@]}"
|
||||
echo "aSliceMbNum is ${aSliceMbNum[@]}"
|
||||
|
||||
sEncoderCommand1="-lconfig 0 layer0.cfg -lconfig 1 layer1.cfg -lconfig 2 layer2.cfg -lconfig 3 layer3.cfg"
|
||||
TempMemoryUsage=""
|
||||
OtherDataYouWant=""
|
||||
TempTestCase=""
|
||||
let "CaseNum=1"
|
||||
for iSLayerNum in ${aSpatialLayerNum[@]}
|
||||
do
|
||||
for iThreadNum in ${aThreadIdc[@]}
|
||||
do
|
||||
for iSliceMode in ${aSliceMode[@]}
|
||||
do
|
||||
for iSliceNum in ${aSliceNum[@]}
|
||||
do
|
||||
#raster slice mb mode, slice-mb-num =0, switch to row-mb-mode
|
||||
if [ ${iSliceMode} -eq 2 ]
|
||||
then
|
||||
aSliceMbNum=(0 960)
|
||||
else
|
||||
aSliceMbNum=(960)
|
||||
fi
|
||||
|
||||
for iSlicMbNum in ${aSliceMbNum[@]}
|
||||
do
|
||||
TempMemoryUsage=""
|
||||
#for cases output to statistic file
|
||||
TempTestCase="${iSLayerNum}, ${iThreadNum}, ${iSliceMode}, ${iSliceNum}, ${iSlicMbNum}"
|
||||
|
||||
for eEncoder in ${aEncoderList[@]}
|
||||
do
|
||||
Encoder=${EncoderDir}/${eEncoder}
|
||||
if [ -x ${Encoder} ]
|
||||
then
|
||||
|
||||
if [ ${iSliceMode} -eq 3 ]
|
||||
then
|
||||
iMaxNalSize=1000
|
||||
else
|
||||
iMaxNalSize=0
|
||||
fi
|
||||
|
||||
runGenerateSpatialLayerResolution ${iSLayerNum}
|
||||
|
||||
sEncoderCommand2="-slcmd 0 ${iSliceMode} -slcmd 1 ${iSliceMode} -slcmd 2 ${iSliceMode} -slcmd 3 ${iSliceMode}"
|
||||
sEncoderCommand3="-slcnum 0 ${iSliceNum} -slcnum 1 ${iSliceNum} -slcnum 2 ${iSliceNum} -slcnum 3 ${iSliceNum}"
|
||||
sEncoderCommand4="-slcmbnum 0 ${iSlicMbNum} -slcmbnum 1 ${iSlicMbNum} -slcmbnum 2 ${iSlicMbNum} -slcmbnum 3 ${iSlicMbNum} "
|
||||
|
||||
sEncoderCommand5="-trace ${iTraceLevel} -numl ${iSLayerNum} -thread ${iThreadNum} -nalsize ${iMaxNalSize}"
|
||||
|
||||
sEncoderCommand6="-dw 0 ${aPicW[0]} -dw 1 ${aPicW[1]} -dw 2 ${aPicW[2]} -dw 3 ${aPicW[3]}"
|
||||
sEncoderCommand7="-dh 0 ${aPicH[0]} -dh 1 ${aPicH[1]} -dh 2 ${aPicH[2]} -dh 3 ${aPicH[3]}"
|
||||
|
||||
sEncoderCommand="-frms ${iFrameToBeEncoded} ${sEncoderCommand1} ${sEncoderCommand2} ${sEncoderCommand3} ${sEncoderCommand4} ${sEncoderCommand5} ${sEncoderCommand6} ${sEncoderCommand7}"
|
||||
|
||||
LogFile="${LogDir}/${CaseNum}_LogInfo_iSLNum_${iSLayerNum}_ThrNum_${iThreadNum}_SlcM_${iSliceMode}_SlcN_${iSliceNum}_${eEncoder}.log"
|
||||
|
||||
echo "Encode command is: "
|
||||
echo "${Encoder} welsenc.cfg ${sEncoderCommand}"
|
||||
echo ""
|
||||
echo "log file is ${LogFile}"
|
||||
|
||||
#encode one case
|
||||
runEncodeOneCase
|
||||
|
||||
#parse trace log
|
||||
runParseTraceLog ${LogFile}
|
||||
|
||||
#data extracted from log
|
||||
#you can add new data here like rc, fps , etc.
|
||||
echo "memory usage is ${MemoryUsage}"
|
||||
if [ -z ${TempMemoryUsage} ]
|
||||
then
|
||||
TempMemoryUsage="${MemoryUsage},"
|
||||
else
|
||||
TempMemoryUsage="${TempMemoryUsage} ${MemoryUsage},"
|
||||
fi
|
||||
echo "TempMemoryUsage is ${TempMemoryUsage}"
|
||||
fi
|
||||
done
|
||||
|
||||
#output memory usage for all encoders
|
||||
echo "${TempTestCase}, ${TempMemoryUsage}, ${OtherDataYouWant}" >>${MemoryUsageStatic}
|
||||
let " CaseNum ++"
|
||||
let "iTotalCaseNum ++"
|
||||
|
||||
done
|
||||
|
||||
done
|
||||
|
||||
done
|
||||
|
||||
done
|
||||
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
|
||||
runMain()
|
||||
{
|
||||
runGlobleInit
|
||||
runCheck
|
||||
runAllEncodeCasesAndGenerateLog
|
||||
runPrompt
|
||||
}
|
||||
|
||||
#*************************************************************
|
||||
if [ $# -lt 3 ]
|
||||
then
|
||||
runUsage
|
||||
runBrief
|
||||
exit 1
|
||||
fi
|
||||
|
||||
declare -a aEncoderList
|
||||
declare -a aParamList
|
||||
|
||||
aParamList=( $@ )
|
||||
ParamNum=$#
|
||||
|
||||
PicW=${aParamList[0]}
|
||||
PicH=${aParamList[1]}
|
||||
|
||||
for((i=2;i<$#;i++))
|
||||
do
|
||||
echo "encoder is ${aParamList[$i]}"
|
||||
aEncoderList="${aEncoderList} ${aParamList[$i]}"
|
||||
done
|
||||
aEncoderList=(${aEncoderList})
|
||||
|
||||
|
||||
echo -e "\033[32m ********************************* \033[0m"
|
||||
echo ""
|
||||
echo " --num parameters is ${ParamNum} "
|
||||
echo " --input parameters are:"
|
||||
echo " $0 $@"
|
||||
echo ""
|
||||
echo -e "\033[32m ********************************* \033[0m"
|
||||
|
||||
runMain
|
||||
#*************************************************************
|
||||
|
13
autotest/performanceTest/.gitignore
vendored
13
autotest/performanceTest/.gitignore
vendored
@ -1,13 +0,0 @@
|
||||
#performance test resource folder
|
||||
./EncoderPerfTestRes
|
||||
./DecoderPerfTestRes
|
||||
./DecoderPerfTestRes/*.*
|
||||
./EncoderPerfTestRes/*.*
|
||||
#performance test result folder
|
||||
./TestResultCSV
|
||||
#
|
||||
.DS_Store
|
||||
#.
|
||||
./android/report
|
||||
./ios/report
|
||||
|
@ -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
|
||||
|
Binary file not shown.
Binary file not shown.
@ -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 {} \;
|
@ -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);
|
@ -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
|
@ -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
|
||||
|
||||
|
4
autotest/unitTest/.gitignore
vendored
4
autotest/unitTest/.gitignore
vendored
@ -1,4 +0,0 @@
|
||||
.DS_Store
|
||||
./ios/report/
|
||||
./android/report/
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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
|
@ -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
|
@ -1,439 +0,0 @@
|
||||
@echo off
|
||||
rem *************************************************************************************************
|
||||
rem usage:
|
||||
rem AutoBuildForWPAndWindows.bat % Configuration %
|
||||
rem --For debug version:
|
||||
rem Win32-C-Only: AutoBuildForWPAndWindows.bat Win32-Debug-C
|
||||
rem Win32-ASM: AutoBuildForWPAndWindows.bat Win32-Debug-ASM
|
||||
rem Win64-C-Only: AutoBuildForWPAndWindows.bat Win64-Debug-C
|
||||
rem Win64-ASM: AutoBuildForWPAndWindows.bat Win64-Debug-ASM
|
||||
rem ARM-C-Only(WP8): AutoBuildForWPAndWindows.bat ARM-Debug-C
|
||||
rem ARM-ASM(WP8): AutoBuildForWPAndWindows.bat ARM-Debug-ASM
|
||||
rem --For release version:
|
||||
rem Win32-C-Only: AutoBuildForWPAndWindows.bat Win32-Release-C
|
||||
rem Win32-ASM: AutoBuildForWPAndWindows.bat Win32-Release-ASM
|
||||
rem Win64-C-Only: AutoBuildForWPAndWindows.bat Win64-Release-C
|
||||
rem Win64-ASM(WP8): AutoBuildForWPAndWindows.bat Win64-Release-ASM
|
||||
rem ARM-C-Only(WP8): AutoBuildForWPAndWindows.bat ARM-Release-C
|
||||
rem ARM-ASM(WP8): AutoBuildForWPAndWindows.bat ARM-Release-ASM
|
||||
rem --For debug and release version:
|
||||
rem Win32-C-Only: AutoBuildForWPAndWindows.bat Win32-All-C
|
||||
rem Win32-ASM: AutoBuildForWPAndWindows.bat Win32-All-ASM
|
||||
rem Win64-C-Only: AutoBuildForWPAndWindows.bat Win64-All-C
|
||||
rem Win64-ASM: AutoBuildForWPAndWindows.bat Win64-All-ASM
|
||||
rem ARM-C-Only(WP8): AutoBuildForWPAndWindows.bat ARM-All-C
|
||||
rem ARM-ASM(WP8): AutoBuildForWPAndWindows.bat ARM-All-ASM
|
||||
rem --For default:
|
||||
rem AutoBuildForWPAndWindows.bat
|
||||
rem ARM-All-ASM(WP8)
|
||||
rem
|
||||
rem --lib/dll files will be copied to folder .\bin
|
||||
rem --win32 folder bin\i386*
|
||||
rem --win64 folder bin\x86_64*
|
||||
rem --arm folder bin\arm*
|
||||
rem
|
||||
rem Environment:
|
||||
rem ----for windows phone, Visual studio with update 3 or later is needed
|
||||
rem ----gas-preprocessor(windows phone build only)
|
||||
rem --you can clone it from git://git.libav.org/gas-preprocessor.git
|
||||
rem --for more detail, please refer to https://git.libav.org/?p=gas-preprocessor.git
|
||||
rem -- and then set gas-preprocessor path to the %GasScriptPath% variable in this script
|
||||
rem or just copy to VC2013 bin's path,you can refer to variable %VC12Path%
|
||||
rem
|
||||
rem ----MinGW
|
||||
rem --install MinGW tools
|
||||
rem --more detail, please refer to http://www.mingw.org/
|
||||
rem
|
||||
rem 2015/03/15 huashi@cisco.com
|
||||
rem *************************************************************************************************
|
||||
|
||||
set WP8Flag=0
|
||||
call :BasicSetting
|
||||
call :PathSetting
|
||||
call :SetBuildOption %1
|
||||
if not %ERRORLEVEL%==0 (
|
||||
echo not suppot option!
|
||||
goto :ErrorReturn
|
||||
)
|
||||
call :EnvSetting %1
|
||||
call :BuildResultInit
|
||||
call :RunBuild
|
||||
call :OutputBuildResult
|
||||
call :GetFinalReturnCode
|
||||
echo ReturnCode is %ReturnCode%
|
||||
cd %WorkingDir%
|
||||
goto :End
|
||||
|
||||
:RunBuild
|
||||
for %%j in ( %aConfigurationList% ) do (
|
||||
set BuildFlag=0
|
||||
call :Build %%j
|
||||
call :BuildCheck %%j
|
||||
call :CopyDll %%j
|
||||
)
|
||||
goto :EOF
|
||||
|
||||
|
||||
rem function for setting
|
||||
rem ***********************************************
|
||||
:BasicSetting
|
||||
set DllFile=openh264.dll
|
||||
set LibFile=openh264.lib
|
||||
set PDBFile=openh264.pdb
|
||||
set UTDllFile=ut.dll
|
||||
set UTBinFile=codec_unittest.exe
|
||||
set EncBinFile=h264enc.exe
|
||||
set DecBinFile=h264dec.exe
|
||||
goto :EOF
|
||||
|
||||
:PathSetting
|
||||
set WorkingDir=%cd%
|
||||
cd ..
|
||||
set RootDir=%cd%
|
||||
set BinDir=%RootDir%\bin
|
||||
cd %WorkingDir%
|
||||
goto :EOF
|
||||
|
||||
:EnvSetting
|
||||
set MinGWPath=C:\MinGW\bin
|
||||
set MsysPath=C:\MinGW\msys\1.0\bin
|
||||
set GitPath=C:\Program Files (x86)\Git\bin
|
||||
|
||||
set VC14Path=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
|
||||
set VC12Path=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC
|
||||
set VC11Path=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC
|
||||
set VC10Path=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC
|
||||
set VC9Path=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC
|
||||
|
||||
set VC12ArmLib01=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib\store\arm
|
||||
set VC12ArmLib02=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib\arm
|
||||
set WP8KitLib=C:\Program Files (x86)\Windows Phone Kits\8.1\lib\arm
|
||||
|
||||
if exist "%VC9Path%" set VCPATH=%VC9Path%
|
||||
if exist "%VC10Path%" set VCPATH=%VC10Path%
|
||||
if exist "%VC11Path%" set VCPATH=%VC11Path%
|
||||
if exist "%VC12Path%" set VCPATH=%VC12Path%
|
||||
if exist "%VC14Path%" set VCPATH=%VC14Path%
|
||||
if %WP8Flag%==1 set VCPATH=%VC12Path%
|
||||
|
||||
set GasScriptPath=%VCPATH%\bin
|
||||
|
||||
if "%vArcType%" =="i386" set PATH=%MinGWPath%;%MsysPath%;%VCPATH%\bin;%GitPath%;%PATH%
|
||||
if "%vArcType%" =="x86_64" set PATH=%MinGWPath%;%MsysPath%;%VCPATH%\bin;%GitPath%;%PATH%
|
||||
if "%vArcType%" =="arm" set PATH=%MinGWPath%;%MsysPath%;%VCPATH%\bin;%GitPath%;%PATH%
|
||||
rem if "%vArcType%" =="arm" set PATH=C:\MinGW\bin;C:\MinGW\msys\1.0\bin;C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin;C:\Program Files (x86)\Git\bin;%PATH%
|
||||
|
||||
if "%vArcType%" =="i386" call "%VCPATH%\vcvarsall.bat" x86
|
||||
if "%vArcType%" =="x86_64" call "%VCPATH%\vcvarsall.bat" x64
|
||||
if "%vArcType%" =="arm" call "%VCPATH%\vcvarsall.bat" x86_arm
|
||||
if %WP8Flag%==1 call :WPSetting
|
||||
|
||||
echo PATH is %PATH%
|
||||
echo LIB is %LIB%
|
||||
goto :EOF
|
||||
|
||||
:WPSetting
|
||||
set LIB=%VC12ArmLib01%;%VC12ArmLib02%;%WP8KitLib%
|
||||
echo LIB setting for wp8 is:
|
||||
echo %LIB%
|
||||
if not exist "%VC12Path%" (
|
||||
echo VC12 does not exist,
|
||||
echo ******************************************
|
||||
echo VC12 does not exist,
|
||||
echo which is needed for windows phone
|
||||
echo ******************************************
|
||||
goto :ErrorReturn
|
||||
)
|
||||
goto :EOF
|
||||
|
||||
:SetBuildOption
|
||||
if "aaa%1"=="aaa" (
|
||||
set aConfigurationList=Debug Release
|
||||
set vArcType=arm
|
||||
set vOSType=msvc-wp
|
||||
set vEnable64BitFlag=No
|
||||
set vASMFlag=Yes
|
||||
set WP8Flag=1
|
||||
echo default setting
|
||||
) else if "%1"=="Win32-Debug-C" (
|
||||
set aConfigurationList=Debug
|
||||
set vArcType=i386
|
||||
set vOSType=msvc
|
||||
set vEnable64BitFlag=No
|
||||
set vASMFlag=No
|
||||
echo Win32-Debug-C setting
|
||||
) else if "%1"=="Win32-Release-C" (
|
||||
set aConfigurationList=Release
|
||||
set vArcType=i386
|
||||
set vOSType=msvc
|
||||
set vEnable64BitFlag=No
|
||||
set vASMFlag=No
|
||||
echo Win32-Release-C setting
|
||||
) else if "%1"=="Win64-Debug-C" (
|
||||
set aConfigurationList=Debug
|
||||
set vArcType=x86_64
|
||||
set vOSType=msvc
|
||||
set vEnable64BitFlag=Yes
|
||||
set vASMFlag=No
|
||||
echo All-C setting
|
||||
) else if "%1"=="Win64-Release-C" (
|
||||
set aConfigurationList=Release
|
||||
set vArcType=x86_64
|
||||
set vOSType=msvc
|
||||
set vEnable64BitFlag=Yes
|
||||
set vASMFlag=No
|
||||
echo Win64-Release-C setting
|
||||
) else if "%1"=="ARM-Debug-C" (
|
||||
set aConfigurationList=Debug
|
||||
set vArcType=arm
|
||||
set vOSType=msvc-wp
|
||||
set vEnable64BitFlag=No
|
||||
set vASMFlag=No
|
||||
set WP8Flag=1
|
||||
echo ARM-Debug-C setting
|
||||
) else if "%1"=="ARM-Release-C" (
|
||||
set aConfigurationList=Debug Release
|
||||
set vArcType=arm
|
||||
set vOSType=msvc-wp
|
||||
set vEnable64BitFlag=No
|
||||
set vASMFlag=No
|
||||
set WP8Flag=1
|
||||
echo ARM-Release-C setting
|
||||
) else if "%1"=="Win32-All-C" (
|
||||
set aConfigurationList=Debug Release
|
||||
set vArcType=i386
|
||||
set vOSType=msvc
|
||||
set vEnable64BitFlag=No
|
||||
set vASMFlag=No
|
||||
echo Win32-All-C setting
|
||||
) else if "%1"=="Win64-All-C" (
|
||||
set aConfigurationList=Debug Release
|
||||
set vArcType=x86_64
|
||||
set vOSType=msvc
|
||||
set vEnable64BitFlag=Yes
|
||||
set vASMFlag=No
|
||||
echo All-C setting
|
||||
) else if "%1"=="ARM-All-C" (
|
||||
set aConfigurationList=Debug Release
|
||||
set vArcType=arm
|
||||
set vOSType=msvc-wp
|
||||
set vEnable64BitFlag=No
|
||||
set vASMFlag=No
|
||||
set WP8Flag=1
|
||||
echo ARM-All-C setting
|
||||
) else if "%1"=="Win32-Debug-ASM" (
|
||||
set aConfigurationList=Debug
|
||||
set vArcType=i386
|
||||
set vOSType=msvc
|
||||
set vEnable64BitFlag=No
|
||||
set vASMFlag=Yes
|
||||
echo Win32-Debug-ASM setting
|
||||
) else if "%1"=="Win32-Release-ASM" (
|
||||
set aConfigurationList=Release
|
||||
set vArcType=i386
|
||||
set vOSType=msvc
|
||||
set vEnable64BitFlag=No
|
||||
set vASMFlag=Yes
|
||||
echo Win32-Release-ASM setting
|
||||
) else if "%1"=="Win64-Debug-ASM" (
|
||||
set aConfigurationList=Debug
|
||||
set vArcType=x86_64
|
||||
set vOSType=msvc
|
||||
set vEnable64BitFlag=Yes
|
||||
set vASMFlag=Yes
|
||||
echo All-ASM setting
|
||||
) else if "%1"=="Win64-Release-ASM" (
|
||||
set aConfigurationList=Release
|
||||
set vArcType=x86_64
|
||||
set vOSType=msvc
|
||||
set vEnable64BitFlag=Yes
|
||||
set vASMFlag=Yes
|
||||
echo Win64-Release-ASM setting
|
||||
) else if "%1"=="ARM-Debug-ASM" (
|
||||
set aConfigurationList=Debug
|
||||
set vArcType=arm
|
||||
set vOSType=msvc-wp
|
||||
set vEnable64BitFlag=No
|
||||
set vASMFlag=Yes
|
||||
set WP8Flag=1
|
||||
echo ARM-Debug-ASM setting
|
||||
) else if "%1"=="ARM-Release-ASM" (
|
||||
set aConfigurationList=Release
|
||||
set vArcType=arm
|
||||
set vOSType=msvc-wp
|
||||
set vEnable64BitFlag=No
|
||||
set vASMFlag=Yes
|
||||
set WP8Flag=1
|
||||
echo ARM-Release-ASM setting
|
||||
) else if "%1"=="Win32-All-ASM" (
|
||||
set aConfigurationList=Debug Release
|
||||
set vArcType=i386
|
||||
set vOSType=msvc
|
||||
set vEnable64BitFlag=No
|
||||
set vASMFlag=Yes
|
||||
echo Win32-All-ASM setting
|
||||
) else if "%1"=="Win64-All-ASM" (
|
||||
set aConfigurationList=Debug Release
|
||||
set vArcType=x86_64
|
||||
set vOSType=msvc
|
||||
set vEnable64BitFlag=Yes
|
||||
set vASMFlag=Yes
|
||||
echo All-ASM setting
|
||||
) else if "%1"=="ARM-All-ASM" (
|
||||
set aConfigurationList=Debug Release
|
||||
set vArcType=arm
|
||||
set vOSType=msvc-wp
|
||||
set vEnable64BitFlag=No
|
||||
set vASMFlag=Yes
|
||||
set WP8Flag=1
|
||||
echo ARM-All-ASM setting
|
||||
) else (
|
||||
call :help
|
||||
goto :ErrorReturn
|
||||
)
|
||||
echo aConfigurationList is %aConfigurationList%
|
||||
echo vArcType is %vArcType%
|
||||
echo vOSType is %vOSType%
|
||||
echo vEnable64BitFlag is %vEnable64BitFlag%
|
||||
echo vASMFlag is %vASMFlag%
|
||||
goto :EOF
|
||||
|
||||
rem function for build result
|
||||
rem ***********************************************
|
||||
:BuildResultInit
|
||||
set BuildDebugFlag=0
|
||||
set BuildReleaseFlag=0
|
||||
set BuildDebugInfo=NULL
|
||||
set BuildReleaseInfo=NULL
|
||||
goto :EOF
|
||||
|
||||
:OutputBuildResult
|
||||
echo BuildDebugFlag =%BuildDebugFlag%
|
||||
echo BuildReleaseFlag =%BuildReleaseFlag%
|
||||
echo BuildDebugInfo =%BuildDebugInfo%
|
||||
echo BuildReleaseInfo =%BuildReleaseInfo%
|
||||
goto :EOF
|
||||
|
||||
:BuildCheck
|
||||
set vConfiguration=%1
|
||||
if not %BuildFlag%==0 (
|
||||
if "%vConfiguration%"=="Debug" (
|
||||
set BuildDebugFlag=1
|
||||
set BuildDebugInfo="build debug--failed"
|
||||
) else (
|
||||
set BuildReleaseFlag=1
|
||||
set BuildReleaseInfo="build release--failed"
|
||||
)
|
||||
) else (
|
||||
if "%vConfiguration%"=="Debug" (
|
||||
set BuildDebugFlag=0
|
||||
set BuildDebugInfo="build debug--succeed"
|
||||
) else (
|
||||
set BuildReleaseFlag=0
|
||||
set BuildReleaseInfo="build release--succeed"
|
||||
)
|
||||
)
|
||||
goto :EOF
|
||||
|
||||
:GetFinalReturnCode
|
||||
set aBuildFlagList=%BuildDebugFlag% %BuildReleaseFlag%
|
||||
echo aBuildFlagList is %aBuildFlagList%
|
||||
set ReturnCode=0
|
||||
for %%k in (%aBuildFlagList%) do (
|
||||
if not %%k == 0 (
|
||||
set ReturnCode=1
|
||||
)
|
||||
)
|
||||
goto :EOF
|
||||
|
||||
rem function for help
|
||||
rem ***********************************************
|
||||
:help
|
||||
echo *******************************************************************************
|
||||
echo usage:
|
||||
echo AutoBuildForWPAndWindows.bat % Configuration %
|
||||
echo --For debug version:
|
||||
echo Win32-C-Only: AutoBuildForWPAndWindows.bat Win32-Debug-C
|
||||
echo Win32-ASM: AutoBuildForWPAndWindows.bat Win32-Debug-ASM
|
||||
echo Win64-C-Only: AutoBuildForWPAndWindows.bat Win64-Debug-C
|
||||
echo Win64-ASM: AutoBuildForWPAndWindows.bat Win64-Debug-ASM
|
||||
echo ARM-C-Only(WP8): AutoBuildForWPAndWindows.bat ARM-Debug-C
|
||||
echo ARM-ASM(WP8): AutoBuildForWPAndWindows.bat ARM-Debug-ASM
|
||||
echo --For release version:
|
||||
echo Win32-C-Only: AutoBuildForWPAndWindows.bat Win32-Release-C
|
||||
echo Win32-ASM: AutoBuildForWPAndWindows.bat Win32-Release-ASM
|
||||
echo Win64-C-Only: AutoBuildForWPAndWindows.bat Win64-Release-C
|
||||
echo Win64-ASM: AutoBuildForWPAndWindows.bat Win64-Release-ASM
|
||||
echo ARM-C-Only(WP8): AutoBuildForWPAndWindows.bat ARM-Release-C
|
||||
echo ARM-ASM(WP8): AutoBuildForWPAndWindows.bat ARM-Release-ASM
|
||||
echo --For debug and release version:
|
||||
echo Win32-C-Only: AutoBuildForWPAndWindows.bat Win32-All-C
|
||||
echo Win32-ASM: AutoBuildForWPAndWindows.bat Win32-All-ASM
|
||||
echo Win64-C-Only: AutoBuildForWPAndWindows.bat Win64-All-C
|
||||
echo Win64-ASM: AutoBuildForWPAndWindows.bat Win64-All-ASM
|
||||
echo ARM-C-Only(WP8): AutoBuildForWPAndWindows.bat ARM-All-C
|
||||
echo ARM-ASM(WP8): AutoBuildForWPAndWindows.bat ARM-All-ASM
|
||||
echo --For default:
|
||||
echo AutoBuildForWPAndWindows.bat
|
||||
echo ARM-All-ASM(WP8)
|
||||
echo *******************************************************************************
|
||||
goto :EOF
|
||||
|
||||
rem function for build
|
||||
rem ***********************************************
|
||||
:Build
|
||||
set vConfiguration=%1
|
||||
cd %RootDir%
|
||||
echo bash -c "make OS=%vOSType% ARCH=%vArcType% USE_ASM=%vASMFlag% BUILDTYPE=%vConfiguration% clean"
|
||||
echo bash -c "make OS=%vOSType% ARCH=%vArcType% USE_ASM=%vASMFlag% BUILDTYPE=%vConfiguration%"
|
||||
bash -c "make OS=%vOSType% ARCH=%vArcType% USE_ASM=%vASMFlag% BUILDTYPE=%vConfiguration% clean"
|
||||
bash -c "make OS=%vOSType% ARCH=%vArcType% USE_ASM=%vASMFlag% BUILDTYPE=%vConfiguration%"
|
||||
if not %ERRORLEVEL%==0 (
|
||||
set BuildFlag=1
|
||||
)
|
||||
cd %WorkingDir%
|
||||
goto :EOF
|
||||
|
||||
:CopyDll
|
||||
set vConfiguration=%1
|
||||
set vBuildOption=%2
|
||||
cd %RootDir%
|
||||
if "%vArcType%"=="arm" (
|
||||
set vBinDirName=ARM
|
||||
) else if "%vArcType%"=="i386" (
|
||||
set vBinDirName=Win32
|
||||
) else (
|
||||
set vBinDirName=x64
|
||||
)
|
||||
set ArchDestDir=%BinDir%\%vBinDirName%
|
||||
set FullDestDir=%BinDir%\%vBinDirName%\%vConfiguration%
|
||||
echo copying dll files to destination folder...
|
||||
echo FullDestDir is %FullDestDir%
|
||||
if not exist %ArchDestDir% md %ArchDestDir%
|
||||
if exist %FullDestDir% (
|
||||
rd /s /q %FullDestDir%
|
||||
)
|
||||
md %FullDestDir%
|
||||
|
||||
echo current dir is:
|
||||
cd
|
||||
set DestDir=bin/%vBinDirName%/%vConfiguration%
|
||||
echo DestDir is %DestDir%
|
||||
if "%vOSType%"=="msvc-wp" (
|
||||
set aFileList=%DllFile% %LibFile% %PDBFile% %UTDllFile%
|
||||
) else (
|
||||
set aFileList=%DllFile% %LibFile% %PDBFile% %UTBinFile% %EncBinFile% %DecBinFile%
|
||||
)
|
||||
for %%k in (%aFileList%) do (
|
||||
bash -c "cp -f %%k %DestDir%"
|
||||
)
|
||||
cd %WorkingDir%
|
||||
goto :EOF
|
||||
|
||||
:ErrorReturn
|
||||
endlocal
|
||||
exit /b 2
|
||||
|
||||
:End
|
||||
endlocal
|
||||
exit /b %ReturnCode%
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,31 +0,0 @@
|
||||
#for x86
|
||||
HAVE_AVX2 := true
|
||||
|
||||
ifneq ($(filter %86 x86_64, $(ARCH)),)
|
||||
include $(SRC_PATH)build/x86-common.mk
|
||||
ifeq ($(USE_ASM), Yes)
|
||||
ifeq ($(HAVE_AVX2), true)
|
||||
CFLAGS += -DHAVE_AVX2
|
||||
CXXFLAGS += -DHAVE_AVX2
|
||||
ASMFLAGS += -DHAVE_AVX2
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
#for arm
|
||||
ifneq ($(filter-out arm64, $(filter arm%, $(ARCH))),)
|
||||
ifeq ($(USE_ASM), Yes)
|
||||
ASM_ARCH = arm
|
||||
ASMFLAGS += -I$(SRC_PATH)codec/common/arm/
|
||||
CFLAGS += -DHAVE_NEON
|
||||
endif
|
||||
endif
|
||||
|
||||
#for arm64
|
||||
ifneq ($(filter arm64 aarch64, $(ARCH)),)
|
||||
ifeq ($(USE_ASM), Yes)
|
||||
ASM_ARCH = arm64
|
||||
ASMFLAGS += -I$(SRC_PATH)codec/common/arm64/
|
||||
CFLAGS += -DHAVE_NEON_AARCH64
|
||||
endif
|
||||
endif
|
@ -1,10 +0,0 @@
|
||||
--style=google
|
||||
--indent=spaces=2
|
||||
--max-code-length=120
|
||||
--pad-oper
|
||||
--align-pointer=type
|
||||
--align-reference=type
|
||||
--unpad-paren
|
||||
--pad-first-paren-out
|
||||
--lineend=linux
|
||||
--convert-tabs
|
@ -1,17 +0,0 @@
|
||||
GTEST_SRCDIR=gtest/googletest
|
||||
GTEST_CPP_SRCS=\
|
||||
$(GTEST_SRCDIR)/src/gtest-all.cc\
|
||||
|
||||
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) $<
|
||||
|
||||
$(LIBPREFIX)gtest.$(LIBSUFFIX): $(GTEST_OBJS)
|
||||
$(QUIET)rm -f $@
|
||||
$(QUIET_AR)$(AR) $(AR_OPTS) $+
|
||||
|
||||
libraries: $(LIBPREFIX)gtest.$(LIBSUFFIX)
|
||||
LIBRARIES += $(LIBPREFIX)gtest.$(LIBSUFFIX)
|
@ -1,198 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
import sys
|
||||
import argparse
|
||||
import os
|
||||
|
||||
parser = argparse.ArgumentParser(description="Make helper parser")
|
||||
parser.add_argument("--directory", dest="directory", required=True)
|
||||
parser.add_argument("--library", dest="library", help="Make a library")
|
||||
parser.add_argument("--binary", dest="binary", help="Make a binary")
|
||||
parser.add_argument("--prefix", dest="prefix", help="Make a set of objs")
|
||||
parser.add_argument("--exclude", dest="exclude", help="Exclude file", action="append")
|
||||
parser.add_argument("--include", dest="include", help="Include file", action="append")
|
||||
parser.add_argument("--out", dest="out", help="Output file")
|
||||
parser.add_argument("--cpp-suffix", dest="cpp_suffix", help="C++ file suffix")
|
||||
PREFIX=None
|
||||
LIBRARY=None
|
||||
BINARY=None
|
||||
EXCLUDE=[]
|
||||
INCLUDE=[]
|
||||
OUTFILE="targets.mk"
|
||||
CPP_SUFFIX=".cpp"
|
||||
|
||||
def write_cpp_rule_pattern(f):
|
||||
src = "$(%s_SRCDIR)/%%%s"%(PREFIX, CPP_SUFFIX)
|
||||
dst = "$(%s_SRCDIR)/%%.$(OBJ)"%(PREFIX)
|
||||
|
||||
f.write("%s: %s\n"%(dst, src))
|
||||
f.write('\t$(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(' + PREFIX + '_CFLAGS) $(' + PREFIX + '_INCLUDES) -c $(CXX_O) $<\n')
|
||||
f.write("\n")
|
||||
|
||||
def write_c_rule_pattern(f):
|
||||
src = "$(%s_SRCDIR)/%%.c"%(PREFIX)
|
||||
dst = "$(%s_SRCDIR)/%%.$(OBJ)"%(PREFIX)
|
||||
|
||||
f.write("%s: %s\n"%(dst, src))
|
||||
f.write('\t$(QUIET_CC)$(CC) $(CFLAGS) $(INCLUDES) $(' + PREFIX + '_CFLAGS) $(' + PREFIX + '_INCLUDES) -c $(CXX_O) $<\n')
|
||||
f.write("\n")
|
||||
|
||||
def write_asm_rule_pattern(f):
|
||||
src = "$(%s_SRCDIR)/%%.asm"%(PREFIX)
|
||||
dst = "$(%s_SRCDIR)/%%.$(OBJ)"%(PREFIX)
|
||||
|
||||
f.write("%s: %s\n"%(dst, src))
|
||||
f.write('\t$(QUIET_ASM)$(ASM) $(ASMFLAGS) $(ASM_INCLUDES) $(' + PREFIX + '_ASMFLAGS) $(' + PREFIX + '_ASM_INCLUDES) -o $@ $<\n')
|
||||
f.write("\n")
|
||||
|
||||
def write_asm_s_rule_pattern(f):
|
||||
src = "$(%s_SRCDIR)/%%.S"%(PREFIX)
|
||||
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("\n")
|
||||
|
||||
|
||||
def find_sources():
|
||||
cpp_files = []
|
||||
asm_files = []
|
||||
c_files = []
|
||||
s_files = []
|
||||
print EXCLUDE
|
||||
for dir in os.walk("."):
|
||||
for file in dir[2]:
|
||||
if (len(INCLUDE) == 0 and not file in EXCLUDE) or file in INCLUDE:
|
||||
if os.path.splitext(file)[1] == CPP_SUFFIX:
|
||||
cpp_files.append(os.path.join(dir[0].strip('./'), file))
|
||||
if os.path.splitext(file)[1] == '.asm':
|
||||
asm_files.append(os.path.join(dir[0].strip('./'), file))
|
||||
if os.path.splitext(file)[1] == '.c':
|
||||
c_files.append(os.path.join(dir[0].strip('./'), file))
|
||||
if os.path.splitext(file)[1] == '.S':
|
||||
s_files.append(os.path.join(dir[0].strip('./'), file))
|
||||
return [cpp_files, asm_files, c_files, s_files]
|
||||
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.library is not None:
|
||||
PREFIX=args.library.upper()
|
||||
elif args.binary is not None:
|
||||
PREFIX=args.binary.upper()
|
||||
elif args.prefix is not None:
|
||||
PREFIX=args.prefix.upper()
|
||||
else:
|
||||
sys.stderr.write("Must provide either library, binary or prefix")
|
||||
sys.exit(1)
|
||||
|
||||
if args.exclude is not None:
|
||||
EXCLUDE = args.exclude
|
||||
if args.include is not None:
|
||||
INCLUDE = args.include
|
||||
if args.out is not None:
|
||||
OUTFILE = args.out
|
||||
else:
|
||||
OUTFILE = os.path.join(args.directory, OUTFILE)
|
||||
if args.cpp_suffix is not None:
|
||||
CPP_SUFFIX = args.cpp_suffix
|
||||
|
||||
OUTFILE = os.path.abspath(OUTFILE)
|
||||
try:
|
||||
os.chdir(args.directory)
|
||||
except OSError as e:
|
||||
sys.stderr.write("Error changing directory to %s\n" % e.filename)
|
||||
sys.exit(1)
|
||||
|
||||
(cpp, asm, cfiles, sfiles) = find_sources()
|
||||
|
||||
cpp = sorted(cpp, key=lambda s: s.lower())
|
||||
asm = sorted(asm, key=lambda s: s.lower())
|
||||
cfiles = sorted(cfiles, key=lambda s: s.lower())
|
||||
sfiles = sorted(sfiles, key=lambda s: s.lower())
|
||||
armfiles = []
|
||||
arm64files = []
|
||||
for file in sfiles:
|
||||
c = file.split('/')
|
||||
if 'arm64' in c:
|
||||
arm64files.append(file)
|
||||
elif 'arm' in c:
|
||||
armfiles.append(file)
|
||||
|
||||
|
||||
|
||||
f = open(OUTFILE, "w")
|
||||
f.write("%s_SRCDIR=%s\n"%(PREFIX, args.directory))
|
||||
|
||||
f.write("%s_CPP_SRCS=\\\n"%(PREFIX))
|
||||
for c in cpp:
|
||||
f.write("\t$(%s_SRCDIR)/%s\\\n"%(PREFIX, c))
|
||||
f.write("\n")
|
||||
f.write("%s_OBJS += $(%s_CPP_SRCS:%s=.$(OBJ))\n\n"%(PREFIX, PREFIX, CPP_SUFFIX))
|
||||
|
||||
if len(cfiles) > 0:
|
||||
f.write("%s_C_SRCS=\\\n"%(PREFIX))
|
||||
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))
|
||||
|
||||
if len(asm) > 0:
|
||||
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))
|
||||
|
||||
if len(armfiles) > 0:
|
||||
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))
|
||||
|
||||
if len(arm64files) > 0:
|
||||
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("OBJS += $(%s_OBJS)\n\n"%(PREFIX))
|
||||
write_cpp_rule_pattern(f)
|
||||
|
||||
if len(cfiles) > 0:
|
||||
write_c_rule_pattern(f)
|
||||
|
||||
if len(asm) > 0:
|
||||
write_asm_rule_pattern(f)
|
||||
|
||||
if len(sfiles) > 0:
|
||||
write_asm_s_rule_pattern(f)
|
||||
|
||||
if args.library is not None:
|
||||
f.write("$(LIBPREFIX)%s.$(LIBSUFFIX): $(%s_OBJS)\n"%(args.library, PREFIX))
|
||||
f.write("\t$(QUIET)rm -f $@\n")
|
||||
f.write("\t$(QUIET_AR)$(AR) $(AR_OPTS) $+\n")
|
||||
f.write("\n")
|
||||
f.write("libraries: $(LIBPREFIX)%s.$(LIBSUFFIX)\n"%args.library)
|
||||
f.write("LIBRARIES += $(LIBPREFIX)%s.$(LIBSUFFIX)\n"%args.library)
|
||||
|
||||
if args.binary is not None:
|
||||
f.write("%s$(EXEEXT): $(%s_OBJS) $(%s_DEPS)\n"%(args.binary, PREFIX, PREFIX))
|
||||
f.write("\t$(QUIET_CXX)$(CXX) $(CXX_LINK_O) $(%s_OBJS) $(%s_LDFLAGS) $(LDFLAGS)\n\n"%(PREFIX, PREFIX))
|
||||
f.write("binaries: %s$(EXEEXT)\n"%args.binary)
|
||||
f.write("BINARIES += %s$(EXEEXT)\n"%args.binary)
|
||||
|
||||
f.close()
|
@ -1,17 +0,0 @@
|
||||
#!/bin/sh
|
||||
cd "$(git rev-parse --show-toplevel 2>/dev/null)" >/dev/null 2>&1
|
||||
python build/mktargets.py --directory codec/decoder --library decoder
|
||||
python build/mktargets.py --directory codec/encoder --library encoder --exclude DllEntry.cpp
|
||||
python build/mktargets.py --directory codec/common --library common --exclude asm_inc.asm --exclude arm_arch_common_macro.S --exclude arm_arch64_common_macro.S
|
||||
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/googletest --library gtest --out build/gtest-targets.mk --cpp-suffix .cc --include gtest-all.cc
|
@ -1,15 +0,0 @@
|
||||
include $(SRC_PATH)build/msvc-common.mk
|
||||
CFLAGS_OPT += -MD
|
||||
CFLAGS_DEBUG += -MDd
|
||||
CFLAGS += -DUNICODE
|
||||
# Ignore warnings about the main function prototype when building with -ZW
|
||||
CXXFLAGS += -ZW -wd4447
|
||||
# Ignore warnings about code built with -ZW in .lib files
|
||||
AR_OPTS += -ignore:4264
|
||||
|
||||
# WelsThreadLib requires building with -ZW, since it uses new Windows Runtime
|
||||
# classes for creating threads.
|
||||
# If linking an .exe that contains Windows Runtime code, the first object
|
||||
# file linked into the exe also needs to be built with -ZW (otherwise the build
|
||||
# fails with "vccorlib_lib_should_be_specified_before_msvcrt_lib_to_linker",
|
||||
# so set it on all files.
|
@ -1,49 +0,0 @@
|
||||
include $(SRC_PATH)build/arch.mk
|
||||
ifeq ($(ASM_ARCH), x86)
|
||||
ifeq ($(ARCH), x86_64)
|
||||
ASMFLAGS += -f win64
|
||||
ASMFLAGS_PLATFORM = -DWIN64
|
||||
else
|
||||
ASMFLAGS += -f win32 -DPREFIX
|
||||
endif
|
||||
else
|
||||
endif
|
||||
ifeq ($(ASM_ARCH), arm)
|
||||
CCAS = gas-preprocessor.pl -as-type armasm -force-thumb -- armasm
|
||||
CCASFLAGS = -nologo -DHAVE_NEON -ignore 4509
|
||||
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.
|
||||
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_M32=
|
||||
CFLAGS_M64=
|
||||
LINK_LOCAL_DIR=
|
||||
LINK_LIB=$(1).lib
|
||||
LIBSUFFIX=lib
|
||||
LIBPREFIX=
|
||||
EXEEXT=.exe
|
||||
OBJ=obj
|
||||
SHAREDLIB_DIR = $(PREFIX)/bin
|
||||
SHAREDLIBSUFFIX=dll
|
||||
SHAREDLIBSUFFIXVER=$(SHAREDLIBSUFFIX)
|
||||
SHARED=-LD
|
||||
EXTRA_LIBRARY=$(PROJECT_NAME)_dll.lib
|
||||
LDFLAGS += -link
|
||||
SHLDFLAGS=-debug -map -opt:ref -opt:icf -def:$(SRC_PATH)openh264.def -implib:$(EXTRA_LIBRARY)
|
||||
STATIC_LDFLAGS=
|
||||
CODEC_UNITTEST_CFLAGS=-D_CRT_SECURE_NO_WARNINGS
|
||||
|
||||
%.res: %.rc
|
||||
$(QUIET_RC)rc -fo $@ $<
|
@ -1,95 +0,0 @@
|
||||
ARCH = arm
|
||||
include $(SRC_PATH)build/arch.mk
|
||||
SHAREDLIBSUFFIX = so
|
||||
# Android APK/JARs expect libraries to be unversioned
|
||||
SHAREDLIBSUFFIXVER=$(SHAREDLIBSUFFIX)
|
||||
SHLDFLAGS =
|
||||
NDKLEVEL = 12
|
||||
ifeq ($(ARCH), arm)
|
||||
ifneq ($(APP_ABI), armeabi)
|
||||
CFLAGS += -march=armv7-a -mfloat-abi=softfp
|
||||
CFLAGS += -mfpu=vfpv3-d16
|
||||
LDFLAGS += -march=armv7-a -Wl,--fix-cortex-a8
|
||||
APP_ABI = armeabi-v7a
|
||||
endif
|
||||
else ifeq ($(ARCH), arm64)
|
||||
APP_ABI = arm64-v8a
|
||||
else ifeq ($(ARCH), x86)
|
||||
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
|
||||
endif
|
||||
else
|
||||
APP_ABI = $(ARCH)
|
||||
endif
|
||||
|
||||
ifndef NDKROOT
|
||||
$(error NDKROOT is not set)
|
||||
endif
|
||||
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
|
||||
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
|
||||
|
||||
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)
|
||||
|
||||
ifeq (./,$(SRC_PATH))
|
||||
binaries: decdemo encdemo
|
||||
|
||||
decdemo: libraries
|
||||
cd ./codec/build/android/dec && $(NDKROOT)/ndk-build -B APP_ABI=$(APP_ABI) && android update project -t $(TARGET) -p . && ant debug
|
||||
|
||||
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
|
||||
clean_Android:
|
||||
@:
|
||||
endif
|
||||
|
||||
COMMON_INCLUDES += -I$(NDKROOT)/sources/android/cpufeatures
|
||||
COMMON_OBJS += $(COMMON_SRCDIR)/src/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
|
||||
$(QUIET_CC)$(CC) $(CFLAGS) $(INCLUDES) $(COMMON_CFLAGS) $(COMMON_INCLUDES) -c $(CXX_O) $<
|
@ -1,14 +0,0 @@
|
||||
include $(SRC_PATH)build/arch.mk
|
||||
SHAREDLIBSUFFIX = so
|
||||
SHAREDLIBSUFFIXVER=$(SHAREDLIBSUFFIX).$(SHAREDLIBVERSION)
|
||||
SHLDFLAGS = -Wl,-soname,$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXVER)
|
||||
CFLAGS += -fPIC
|
||||
LDFLAGS += -lpthread
|
||||
ifeq ($(ASM_ARCH), x86)
|
||||
ifeq ($(ARCH), x86_64)
|
||||
ASMFLAGS += -f elf64
|
||||
else
|
||||
ASMFLAGS += -f elf
|
||||
endif
|
||||
endif
|
||||
|
@ -1,20 +0,0 @@
|
||||
include $(SRC_PATH)build/arch.mk
|
||||
SHAREDLIB_DIR = $(PREFIX)/lib
|
||||
SHAREDLIBSUFFIX = dylib
|
||||
SHAREDLIBSUFFIXVER=$(SHAREDLIBVERSION).$(SHAREDLIBSUFFIX)
|
||||
SHLDFLAGS = -dynamiclib -twolevel_namespace -undefined dynamic_lookup \
|
||||
-fno-common -headerpad_max_install_names -install_name \
|
||||
$(SHAREDLIB_DIR)/$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXVER)
|
||||
SHARED = -dynamiclib
|
||||
CFLAGS += -Wall -fPIC -MMD -MP
|
||||
LDFLAGS += -lpthread
|
||||
ifeq ($(ASM_ARCH), x86)
|
||||
ASMFLAGS += -DPREFIX
|
||||
ifeq ($(ARCH), x86_64)
|
||||
ASMFLAGS += -f macho64
|
||||
else
|
||||
ASMFLAGS += -f macho
|
||||
LDFLAGS += -read_only_relocs suppress
|
||||
endif
|
||||
endif
|
||||
|
@ -1,17 +0,0 @@
|
||||
ARCH = armv7
|
||||
include $(SRC_PATH)build/platform-darwin.mk
|
||||
CXX = clang++
|
||||
CC = clang
|
||||
ifneq ($(filter %86 x86_64, $(ARCH)),)
|
||||
SDKTYPE = iPhoneSimulator
|
||||
else
|
||||
SDKTYPE = iPhoneOS
|
||||
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
|
||||
CFLAGS += -arch $(ARCH) -isysroot $(SDKROOT) -miphoneos-version-min=$(SDK_MIN) -DAPPLE_IOS -fembed-bitcode
|
||||
LDFLAGS += -arch $(ARCH) -isysroot $(SDKROOT) -miphoneos-version-min=$(SDK_MIN)
|
||||
|
@ -1,22 +0,0 @@
|
||||
include $(SRC_PATH)build/arch.mk
|
||||
SHAREDLIBSUFFIX = so
|
||||
SHAREDLIBSUFFIXVER=$(SHAREDLIBSUFFIX).$(SHAREDLIBVERSION)
|
||||
SHLDFLAGS = -Wl,-soname,$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXVER)
|
||||
CFLAGS += -Wall -fno-strict-aliasing -fPIC -MMD -MP
|
||||
LDFLAGS += -lpthread
|
||||
AR_OPTS = crD $@
|
||||
ifeq ($(ASM_ARCH), x86)
|
||||
ifeq ($(ARCH), x86_64)
|
||||
ASMFLAGS += -f elf64
|
||||
else
|
||||
ASMFLAGS += -f elf
|
||||
endif
|
||||
endif
|
||||
ifeq ($(ASM_ARCH), arm)
|
||||
ASMFLAGS += -march=armv7-a -mfpu=neon
|
||||
endif
|
||||
|
||||
ifeq ($(CXX), clang++)
|
||||
CXXFLAGS += -Wc++11-compat-reserved-user-defined-literal
|
||||
endif
|
||||
|
@ -1,19 +0,0 @@
|
||||
include $(SRC_PATH)build/x86-common.mk
|
||||
SHAREDLIB_DIR = $(PREFIX)/bin
|
||||
SHAREDLIBSUFFIX = dll
|
||||
SHAREDLIBSUFFIXVER=$(SHAREDLIBSUFFIX)
|
||||
EXTRA_LIBRARY=$(LIBPREFIX)$(PROJECT_NAME).dll.a
|
||||
SHLDFLAGS = -Wl,--out-implib,$(EXTRA_LIBRARY)
|
||||
CFLAGS += -MMD -MP
|
||||
LDFLAGS +=
|
||||
ifeq ($(ARCH), x86_64)
|
||||
ASMFLAGS += -f win64
|
||||
ASMFLAGS_PLATFORM = -DWIN64
|
||||
CC = x86_64-w64-mingw32-gcc
|
||||
CXX = x86_64-w64-mingw32-g++
|
||||
AR = x86_64-w64-mingw32-ar
|
||||
else
|
||||
ASMFLAGS += -f win32 -DPREFIX
|
||||
endif
|
||||
EXEEXT = .exe
|
||||
|
@ -1,3 +0,0 @@
|
||||
include $(SRC_PATH)build/msvc-app.mk
|
||||
CFLAGS += -DWINAPI_FAMILY=WINAPI_FAMILY_APP
|
||||
|
@ -1,6 +0,0 @@
|
||||
ARCH = arm
|
||||
include $(SRC_PATH)build/msvc-app.mk
|
||||
CFLAGS += -DWINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP -DWINDOWS_PHONE
|
||||
LDFLAGS += -nodefaultlib:kernel32.lib -nodefaultlib:ole32.lib WindowsPhoneCore.lib
|
||||
UTSHLDFLAGS = -def:$(SRC_PATH)ut.def
|
||||
|
@ -1,6 +0,0 @@
|
||||
include $(SRC_PATH)build/msvc-common.mk
|
||||
LDFLAGS += user32.lib
|
||||
CFLAGS_OPT += -MT
|
||||
CFLAGS_DEBUG += -MTd -Gm
|
||||
|
||||
$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXVER): openh264.res
|
@ -1,28 +0,0 @@
|
||||
CFLAGS_M32=-m32
|
||||
CFLAGS_M64=-m64
|
||||
ASM_INCLUDES = -I$(SRC_PATH)codec/common/x86/
|
||||
ifneq ($(ENABLE64BIT),)
|
||||
ifeq ($(ENABLE64BIT), Yes)
|
||||
ARCH = x86_64
|
||||
else
|
||||
ARCH = x86
|
||||
endif
|
||||
endif
|
||||
ifeq ($(ARCH), x86_64)
|
||||
CFLAGS += $(CFLAGS_M64)
|
||||
LDFLAGS += $(CFLAGS_M64)
|
||||
ASMFLAGS_PLATFORM = -DUNIX64
|
||||
else
|
||||
CFLAGS += $(CFLAGS_M32)
|
||||
LDFLAGS += $(CFLAGS_M32)
|
||||
ASMFLAGS_PLATFORM = -DX86_32
|
||||
endif
|
||||
ifeq ($(USE_ASM),Yes)
|
||||
CFLAGS += -DX86_ASM
|
||||
ifneq ($(ARCH), x86_64)
|
||||
CFLAGS += -DX86_32_ASM
|
||||
endif
|
||||
ASM_ARCH = x86
|
||||
endif
|
||||
ASM = nasm
|
||||
ASMFLAGS += $(ASMFLAGS_PLATFORM)
|
@ -1,6 +0,0 @@
|
||||
#!/bin/sh
|
||||
lcov -b . -d . -c -o tmp.info
|
||||
lcov -e tmp.info \*/codec/\* -o gcov.info
|
||||
mkdir -p code-coverage
|
||||
genhtml gcov.info -o ./code-coverage
|
||||
rm -f tmp.info gcov.info
|
@ -1,576 +0,0 @@
|
||||
/*!
|
||||
*@page License
|
||||
*
|
||||
* \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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef WELS_VIDEO_CODEC_SVC_API_H__
|
||||
#define WELS_VIDEO_CODEC_SVC_API_H__
|
||||
|
||||
#ifndef __cplusplus
|
||||
#if defined(_MSC_VER) && (_MSC_VER < 1800)
|
||||
typedef unsigned char bool;
|
||||
#else
|
||||
#include <stdbool.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include "codec_app_def.h"
|
||||
#include "codec_def.h"
|
||||
|
||||
#if defined(_WIN32) || defined(__cdecl)
|
||||
#define EXTAPI __cdecl
|
||||
#else
|
||||
#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 = DecodeFrameNoDelay(pBuf, iSize, pData, &sDstBufInfo);
|
||||
* //or
|
||||
* 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.iNalNum > 0){
|
||||
* Hardware decoding sDstParseInfo;
|
||||
* }
|
||||
* //no-delay decoding can be realized by directly calling DecodeFrameNoDelay(), which is the recommended usage.
|
||||
* //no-delay decoding can also be realized by directly calling DecodeFrame2() 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 (¶m, 0, sizeof (SEncParamBase));
|
||||
* param.iUsageType = usageType;
|
||||
* param.fMaxFrameRate = frameRate;
|
||||
* param.iPicWidth = width;
|
||||
* param.iPicHeight = height;
|
||||
* param.iTargetBitrate = 5000000;
|
||||
* encoder_->Initialize (¶m);
|
||||
* @endcode
|
||||
*
|
||||
* Step3:set option, set option during encoding process
|
||||
* @code
|
||||
* encoder_->SetOption (ENCODER_OPTION_TRACE_LEVEL, &g_LevelSetting);
|
||||
* int videoFormat = videoFormatI420;
|
||||
* encoder_->SetOption (ENCODER_OPTION_DATAFORMAT, &videoFormat);
|
||||
* @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 (¶m);
|
||||
* param.iUsageType = usageType;
|
||||
* param.fMaxFrameRate = frameRate;
|
||||
* param.iPicWidth = width;
|
||||
* param.iPicHeight = height;
|
||||
* param.iTargetBitrate = 5000000;
|
||||
* 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 (¶m);
|
||||
* int videoFormat = videoFormatI420;
|
||||
* encoder_->SetOption (ENCODER_OPTION_DATAFORMAT, &videoFormat);
|
||||
*
|
||||
* @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;
|
||||
*/
|
||||
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;
|
||||
*/
|
||||
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;
|
||||
*/
|
||||
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;
|
||||
*/
|
||||
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;
|
||||
*/
|
||||
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 DecodeFrameNoDelay() (4 parameters input),
|
||||
* whatever the function return value is, the output data
|
||||
* of I420 format will only be available when pDstInfo->iBufferStatus == 1,.
|
||||
* This function will parse and reconstruct the input frame immediately if it is complete
|
||||
* It is recommended as the main decoding function for H.264/AVC format input
|
||||
* @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;
|
||||
*/
|
||||
virtual DECODING_STATE EXTAPI DecodeFrameNoDelay (const unsigned char* pSrc,
|
||||
const int iSrcLen,
|
||||
unsigned char** ppDst,
|
||||
SBufferInfo* pDstInfo) = 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;
|
||||
*/
|
||||
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 ...
|
||||
*/
|
||||
virtual DECODING_STATE EXTAPI DecodeFrameEx (const unsigned char* pSrc,
|
||||
const int iSrcLen,
|
||||
unsigned char* pDst,
|
||||
int iDstStride,
|
||||
int& iDstLen,
|
||||
int& iWidth,
|
||||
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;
|
||||
*/
|
||||
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() {}
|
||||
};
|
||||
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#else
|
||||
|
||||
typedef struct ISVCEncoderVtbl ISVCEncoderVtbl;
|
||||
typedef const ISVCEncoderVtbl* ISVCEncoder;
|
||||
struct ISVCEncoderVtbl {
|
||||
|
||||
int (*Initialize) (ISVCEncoder*, const SEncParamBase* pParam);
|
||||
int (*InitializeExt) (ISVCEncoder*, const SEncParamExt* pParam);
|
||||
|
||||
int (*GetDefaultParams) (ISVCEncoder*, SEncParamExt* pParam);
|
||||
|
||||
int (*Uninitialize) (ISVCEncoder*);
|
||||
|
||||
int (*EncodeFrame) (ISVCEncoder*, const SSourcePicture* kpSrcPic, SFrameBSInfo* pBsInfo);
|
||||
int (*EncodeParameterSets) (ISVCEncoder*, SFrameBSInfo* pBsInfo);
|
||||
|
||||
int (*ForceIntraFrame) (ISVCEncoder*, bool bIDR);
|
||||
|
||||
int (*SetOption) (ISVCEncoder*, ENCODER_OPTION eOptionId, void* pOption);
|
||||
int (*GetOption) (ISVCEncoder*, ENCODER_OPTION eOptionId, void* pOption);
|
||||
};
|
||||
|
||||
typedef struct ISVCDecoderVtbl ISVCDecoderVtbl;
|
||||
typedef const ISVCDecoderVtbl* ISVCDecoder;
|
||||
struct ISVCDecoderVtbl {
|
||||
long (*Initialize) (ISVCDecoder*, const SDecodingParam* pParam);
|
||||
long (*Uninitialize) (ISVCDecoder*);
|
||||
|
||||
DECODING_STATE (*DecodeFrame) (ISVCDecoder*, const unsigned char* pSrc,
|
||||
const int iSrcLen,
|
||||
unsigned char** ppDst,
|
||||
int* pStride,
|
||||
int* iWidth,
|
||||
int* iHeight);
|
||||
|
||||
DECODING_STATE (*DecodeFrameNoDelay) (ISVCDecoder*, const unsigned char* pSrc,
|
||||
const int iSrcLen,
|
||||
unsigned char** ppDst,
|
||||
SBufferInfo* pDstInfo);
|
||||
|
||||
DECODING_STATE (*DecodeFrame2) (ISVCDecoder*, const unsigned char* pSrc,
|
||||
const int iSrcLen,
|
||||
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,
|
||||
int iDstStride,
|
||||
int* iDstLen,
|
||||
int* iWidth,
|
||||
int* iHeight,
|
||||
int* iColorFormat);
|
||||
|
||||
long (*SetOption) (ISVCDecoder*, DECODER_OPTION eOptionId, void* pOption);
|
||||
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);
|
||||
|
||||
/** @brief Get codec version
|
||||
* Note, old versions of Mingw (GCC < 4.7) are buggy and use an
|
||||
* incorrect/different ABI for calling this function, making it
|
||||
* incompatible with MSVC builds.
|
||||
* @return The linked codec version
|
||||
*/
|
||||
OpenH264Version WelsGetCodecVersion (void);
|
||||
|
||||
/** @brief Get codec version
|
||||
* @param pVersion struct to fill in with the version
|
||||
*/
|
||||
void WelsGetCodecVersionEx (OpenH264Version *pVersion);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif//WELS_VIDEO_CODEC_SVC_API_H__
|
@ -1,741 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#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"
|
||||
/* 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_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 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 Struct of OpenH264 version
|
||||
*/
|
||||
///
|
||||
/// E.g. SDK version is 1.2.0.0, major version number is 1, minor version number is 2, and revision number is 0.
|
||||
typedef struct _tagVersion {
|
||||
unsigned int uMajor; ///< The major version number
|
||||
unsigned int uMinor; ///< The minor version number
|
||||
unsigned int uRevision; ///< The revision number
|
||||
unsigned int uReserved; ///< The reserved number, it should be 0.
|
||||
} OpenH264Version;
|
||||
|
||||
/**
|
||||
* @brief Decoding status
|
||||
*/
|
||||
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 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
|
||||
|
||||
} DECODING_STATE;
|
||||
|
||||
/**
|
||||
* @brief 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_BITRATE,
|
||||
ENCODER_OPTION_MAX_BITRATE,
|
||||
ENCODER_OPTION_INTER_SPATIAL_PRED,
|
||||
ENCODER_OPTION_RC_MODE,
|
||||
ENCODER_OPTION_RC_FRAME_SKIP,
|
||||
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_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,
|
||||
|
||||
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_BITS_VARY_PERCENTAGE ///< bit vary percentage
|
||||
} ENCODER_OPTION;
|
||||
|
||||
/**
|
||||
* @brief Option types introduced in decoder application
|
||||
*/
|
||||
typedef enum {
|
||||
DECODER_OPTION_END_OF_STREAM = 1, ///< 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, ///< indicate decoder error concealment method
|
||||
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;
|
||||
|
||||
/**
|
||||
* @brief Enumerate the type 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 {
|
||||
FEEDBACK_NON_VCL_NAL = 0,
|
||||
FEEDBACK_VCL_NAL,
|
||||
FEEDBACK_UNKNOWN_NAL
|
||||
} FEEDBACK_VCL_NAL_IN_AU;
|
||||
|
||||
/**
|
||||
* @brief 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
|
||||
} LAYER_NUM;
|
||||
|
||||
/**
|
||||
* @brief 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_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
|
||||
} 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.
|
||||
} 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
|
||||
} 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 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_TIMESTAMP_MODE = 3, //rate control based timestamp
|
||||
RC_BITRATE_MODE_POST_SKIP = 4, ///< this is in-building RC MODE, WILL BE DELETED after algorithm tuning!
|
||||
RC_OFF_MODE = -1, ///< rate control off mode
|
||||
} RC_MODES;
|
||||
|
||||
/**
|
||||
* @brief Enumerate the type of profile id
|
||||
*/
|
||||
typedef enum {
|
||||
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_CAVLC444 = 244,
|
||||
|
||||
PRO_SCALABLE_BASELINE = 83,
|
||||
PRO_SCALABLE_HIGH = 86
|
||||
} EProfileIdc;
|
||||
|
||||
/**
|
||||
* @brief Enumerate the type of level id
|
||||
*/
|
||||
typedef enum {
|
||||
LEVEL_UNKNOWN,
|
||||
LEVEL_1_0,
|
||||
LEVEL_1_B,
|
||||
LEVEL_1_1,
|
||||
LEVEL_1_2,
|
||||
LEVEL_1_3,
|
||||
LEVEL_2_0,
|
||||
LEVEL_2_1,
|
||||
LEVEL_2_2,
|
||||
LEVEL_3_0,
|
||||
LEVEL_3_1,
|
||||
LEVEL_3_2,
|
||||
LEVEL_4_0,
|
||||
LEVEL_4_1,
|
||||
LEVEL_4_2,
|
||||
LEVEL_5_0,
|
||||
LEVEL_5_1,
|
||||
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_WARNING ///< default log iLevel in Wels codec
|
||||
};
|
||||
|
||||
/**
|
||||
* @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_SIZELIMITED_SLICE = 3, ///< | according to SliceSize | slicing according to size, the slicing will be dynamic(have no idea about slice_nums until encoding current frame)
|
||||
SM_RESERVED = 4
|
||||
} SliceModeEnum;
|
||||
|
||||
/**
|
||||
* @brief Structure for slice argument
|
||||
*/
|
||||
typedef struct {
|
||||
SliceModeEnum uiSliceMode; ///< by default, uiSliceMode will be SM_SINGLE_SLICE
|
||||
unsigned int uiSliceNum; ///< only used when uiSliceMode=1, when uiSliceNum=0 means auto design it with cpu core number
|
||||
unsigned int uiSliceMbNum[MAX_SLICES_NUM_TMP]; ///< only used when uiSliceMode=2; when =0 means setting one MB row a slice
|
||||
unsigned int uiSliceSizeConstraint; ///< now only used when uiSliceMode=4
|
||||
} SSliceArgument;
|
||||
|
||||
/**
|
||||
* @brief Enumerate the type of video format
|
||||
*/
|
||||
typedef enum {
|
||||
VF_COMPONENT,
|
||||
VF_PAL,
|
||||
VF_NTSC,
|
||||
VF_SECAM,
|
||||
VF_MAC,
|
||||
VF_UNDEF,
|
||||
VF_NUM_ENUM
|
||||
} EVideoFormatSPS; // EVideoFormat is already defined/used elsewhere!
|
||||
|
||||
/**
|
||||
* @brief Enumerate the type of color primaries
|
||||
*/
|
||||
typedef enum {
|
||||
CP_RESERVED0,
|
||||
CP_BT709,
|
||||
CP_UNDEF,
|
||||
CP_RESERVED3,
|
||||
CP_BT470M,
|
||||
CP_BT470BG,
|
||||
CP_SMPTE170M,
|
||||
CP_SMPTE240M,
|
||||
CP_FILM,
|
||||
CP_BT2020,
|
||||
CP_NUM_ENUM
|
||||
} EColorPrimaries;
|
||||
|
||||
/**
|
||||
* @brief Enumerate the type of transfer characteristics
|
||||
*/
|
||||
typedef enum {
|
||||
TRC_RESERVED0,
|
||||
TRC_BT709,
|
||||
TRC_UNDEF,
|
||||
TRC_RESERVED3,
|
||||
TRC_BT470M,
|
||||
TRC_BT470BG,
|
||||
TRC_SMPTE170M,
|
||||
TRC_SMPTE240M,
|
||||
TRC_LINEAR,
|
||||
TRC_LOG100,
|
||||
TRC_LOG316,
|
||||
TRC_IEC61966_2_4,
|
||||
TRC_BT1361E,
|
||||
TRC_IEC61966_2_1,
|
||||
TRC_BT2020_10,
|
||||
TRC_BT2020_12,
|
||||
TRC_NUM_ENUM
|
||||
} ETransferCharacteristics;
|
||||
|
||||
/**
|
||||
* @brief Enumerate the type of color matrix
|
||||
*/
|
||||
typedef enum {
|
||||
CM_GBR,
|
||||
CM_BT709,
|
||||
CM_UNDEF,
|
||||
CM_RESERVED3,
|
||||
CM_FCC,
|
||||
CM_BT470BG,
|
||||
CM_SMPTE170M,
|
||||
CM_SMPTE240M,
|
||||
CM_YCGCO,
|
||||
CM_BT2020NC,
|
||||
CM_BT2020C,
|
||||
CM_NUM_ENUM
|
||||
} EColorMatrix;
|
||||
|
||||
/**
|
||||
* @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, in unit of bps
|
||||
int iMaxSpatialBitrate; ///< maximum bitrate for a spatial layer, in unit of bps
|
||||
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)
|
||||
|
||||
SSliceArgument sSliceArgument;
|
||||
|
||||
// Note: members bVideoSignalTypePresent through uiColorMatrix below are also defined in SWelsSPS in parameter_sets.h.
|
||||
bool bVideoSignalTypePresent; // false => do not write any of the following information to the header
|
||||
unsigned char uiVideoFormat; // EVideoFormatSPS; 3 bits in header; 0-5 => component, kpal, ntsc, secam, mac, undef
|
||||
bool bFullRange; // false => analog video data range [16, 235]; true => full data range [0,255]
|
||||
bool bColorDescriptionPresent; // false => do not write any of the following three items to the header
|
||||
unsigned char uiColorPrimaries; // EColorPrimaries; 8 bits in header; 0 - 9 => ???, bt709, undef, ???, bt470m, bt470bg,
|
||||
// smpte170m, smpte240m, film, bt2020
|
||||
unsigned char uiTransferCharacteristics; // ETransferCharacteristics; 8 bits in header; 0 - 15 => ???, bt709, undef, ???, bt470m, bt470bg, smpte170m,
|
||||
// smpte240m, linear, log100, log316, iec61966-2-4, bt1361e, iec61966-2-1, bt2020-10, bt2020-12
|
||||
unsigned char uiColorMatrix; // EColorMatrix; 8 bits in header (corresponds to FFmpeg "colorspace"); 0 - 10 => GBR, bt709,
|
||||
// undef, ???, fcc, bt470bg, smpte170m, smpte240m, YCgCo, bt2020nc, bt2020c
|
||||
} SSpatialLayerConfig;
|
||||
|
||||
/**
|
||||
* @brief Encoder usage type
|
||||
*/
|
||||
typedef enum {
|
||||
CAMERA_VIDEO_REAL_TIME, ///< camera video for real-time communication
|
||||
SCREEN_CONTENT_REAL_TIME, ///< screen content signal
|
||||
CAMERA_VIDEO_NON_REAL_TIME
|
||||
} 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;
|
||||
|
||||
/**
|
||||
* @brief Enumulate for the stategy of SPS/PPS strategy
|
||||
*/
|
||||
typedef enum {
|
||||
CONSTANT_ID = 0, ///< constant id in SPS/PPS
|
||||
INCREASING_ID = 0x01, ///< SPS/PPS id increases at each IDR
|
||||
SPS_LISTING = 0x02, ///< using SPS in the existing list if possible
|
||||
SPS_LISTING_AND_PPS_INCREASING = 0x03,
|
||||
SPS_PPS_LISTING = 0x06,
|
||||
} EParameterSetStrategy;
|
||||
|
||||
// TODO: Refine the parameters definition.
|
||||
/**
|
||||
* @brief 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;
|
||||
|
||||
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, in unit of bps
|
||||
RC_MODES iRCMode; ///< rate control mode
|
||||
float fMaxFrameRate; ///< maximal input 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;
|
||||
|
||||
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, in unit of bps
|
||||
RC_MODES iRCMode; ///< rate control mode
|
||||
float fMaxFrameRate; ///< maximal input 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
|
||||
SSpatialLayerConfig sSpatialLayers[MAX_SPATIAL_LAYER_NUM];
|
||||
|
||||
ECOMPLEXITY_MODE iComplexityMode;
|
||||
unsigned int uiIntraPeriod; ///< period of Intra frame
|
||||
int iNumRefFrame; ///< number of reference frame used
|
||||
EParameterSetStrategy
|
||||
eSpsPpsIdStrategy; ///< different stategy in adjust ID in SPS/PPS: 0- constant ID, 1-additional ID, 6-mapping and additional
|
||||
bool bPrefixNalAddingCtrl; ///< false:not use Prefix NAL; true: use Prefix NAL
|
||||
bool bEnableSSEI; ///< false:not use SSEI; true: use SSEI -- TODO: planning to remove the interface of SSEI
|
||||
bool bSimulcastAVC; ///< (when encoding more than 1 spatial layer) false: use SVC syntax for higher layers; true: use Simulcast AVC
|
||||
int iPaddingFlag; ///< 0:disable padding;1:padding
|
||||
int iEntropyCodingModeFlag; ///< 0:CAVLC 1:CABAC.
|
||||
|
||||
/* 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, in unit of bps, set it to UNSPECIFIED_BIT_RATE if not needed
|
||||
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
|
||||
|
||||
/*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.
|
||||
/* 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;
|
||||
bool bUseLoadBalancing; ///< only used when uiSliceMode=1 or 3, will change slicing of a picture during the run-time of multi-thread encoding, so the result of each run may be different
|
||||
|
||||
/* 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
|
||||
/*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 bEnableSceneChangeDetect;
|
||||
|
||||
bool bIsLosslessLink; ///< LTR advanced setting
|
||||
} SEncParamExt;
|
||||
|
||||
/**
|
||||
* @brief 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)
|
||||
} SVideoProperty;
|
||||
|
||||
/**
|
||||
* @brief 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
|
||||
|
||||
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
|
||||
|
||||
SVideoProperty sVideoProperty; ///< video stream property
|
||||
} SDecodingParam, *PDecodingParam;
|
||||
|
||||
/**
|
||||
* @brief Bitstream inforamtion of a layer being encoded
|
||||
*/
|
||||
typedef struct {
|
||||
unsigned char uiTemporalId;
|
||||
unsigned char uiSpatialId;
|
||||
unsigned char uiQualityId;
|
||||
EVideoFrameType eFrameType;
|
||||
unsigned char uiLayerType;
|
||||
|
||||
/**
|
||||
* 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
|
||||
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
|
||||
} SLayerBSInfo, *PLayerBSInfo;
|
||||
|
||||
/**
|
||||
* @brief Frame bit stream info
|
||||
*/
|
||||
typedef struct {
|
||||
int iLayerNum;
|
||||
SLayerBSInfo sLayerInfo[MAX_LAYER_NUM_OF_FRAME];
|
||||
|
||||
EVideoFrameType eFrameType;
|
||||
int iFrameSizeInBytes;
|
||||
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
|
||||
long long uiTimeStamp; ///< timestamp of the source picture, unit: millisecond
|
||||
} SSourcePicture;
|
||||
/**
|
||||
* @brief Structure for bit rate info
|
||||
*/
|
||||
typedef struct TagBitrateInfo {
|
||||
LAYER_NUM iLayer;
|
||||
int iBitrate; ///< the maximum bitrate
|
||||
} SBitrateInfo;
|
||||
|
||||
/**
|
||||
* @brief Structure for dump layer info
|
||||
*/
|
||||
typedef struct TagDumpLayer {
|
||||
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 uiAverageFrameQP; ///< the average QP of last encoded frame
|
||||
|
||||
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
|
||||
|
||||
long long iStatisticsTs; ///< Timestamp of updating the statistics
|
||||
} 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
|
||||
float fActualAverageFrameSpeedInMs; ///< actual average_Decoding_Time, including freezing pictures
|
||||
unsigned int uiDecodedFrameCount; ///< number of frames
|
||||
unsigned int uiResolutionChangeTimes; ///< uiResolutionChangeTimes
|
||||
unsigned int uiIDRCorrectNum; ///< number of correct IDR received
|
||||
//EC on related
|
||||
unsigned int
|
||||
uiAvgEcRatio; ///< when EC is on, the average ratio of total EC areas, can be an indicator of reconstruction quality
|
||||
unsigned int
|
||||
uiAvgEcPropRatio; ///< when EC is on, the rough average ratio of propogate 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; ///< number of whole lost IDR
|
||||
unsigned int uiFreezingIDRNum; ///< number of freezing IDR with error (partly received), under resolution change
|
||||
unsigned int uiFreezingNonIDRNum; ///< number of freezing non-IDR with error
|
||||
int iAvgLumaQp; ///< average luma QP. default: -1, no correct frame outputted
|
||||
int iSpsReportErrorNum; ///< number of Sps Invalid report
|
||||
int iSubSpsReportErrorNum; ///< number of SubSps Invalid report
|
||||
int iPpsReportErrorNum; ///< number of Pps Invalid report
|
||||
int iSpsNoExistNalNum; ///< number of Sps NoExist Nal
|
||||
int iSubSpsNoExistNalNum; ///< number of SubSps NoExist Nal
|
||||
int iPpsNoExistNalNum; ///< number of Pps NoExist Nal
|
||||
} SDecoderStatistics; // in building, coming soon
|
||||
|
||||
#endif//WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__
|
@ -1,215 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
#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
|
||||
videoFormatRGBA = 2,
|
||||
videoFormatRGB555 = 3,
|
||||
videoFormatRGB565 = 4,
|
||||
videoFormatBGR = 5,
|
||||
videoFormatBGRA = 6,
|
||||
videoFormatABGR = 7,
|
||||
videoFormatARGB = 8,
|
||||
|
||||
videoFormatYUY2 = 20, ///< yuv color formats
|
||||
videoFormatYVYU = 21,
|
||||
videoFormatUYVY = 22,
|
||||
videoFormatI420 = 23, ///< the same as IYUV
|
||||
videoFormatYV12 = 24,
|
||||
videoFormatInternal = 25, ///< only used in SVC decoder testbed
|
||||
|
||||
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
|
||||
} EVideoFrameType;
|
||||
|
||||
/**
|
||||
* @brief Enumerate return type
|
||||
*/
|
||||
typedef enum {
|
||||
cmResultSuccess, ///< successful
|
||||
cmInitParaError, ///< parameters are invalid
|
||||
cmUnknownReason,
|
||||
cmMallocMemeError, ///< malloc a memory error
|
||||
cmInitExpected, ///< initial action is expected
|
||||
cmUnsupportedData
|
||||
} CM_RETURN;
|
||||
|
||||
/**
|
||||
* @brief Enumulate the nal unit type
|
||||
*/
|
||||
enum ENalUnitType {
|
||||
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_SPS = 7,
|
||||
NAL_PPS = 8
|
||||
///< ref_idc == 0 for 6,9,10,11,12
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief NRI: eNalRefIdc
|
||||
*/
|
||||
enum ENalPriority {
|
||||
NAL_PRIORITY_DISPOSABLE = 0,
|
||||
NAL_PRIORITY_LOW = 1,
|
||||
NAL_PRIORITY_HIGH = 2,
|
||||
NAL_PRIORITY_HIGHEST = 3
|
||||
};
|
||||
|
||||
#define IS_PARAMETER_SET_NAL(eNalRefIdc, eNalType) \
|
||||
( (eNalRefIdc == NAL_PRIORITY_HIGHEST) && (eNalType == (NAL_SPS|NAL_PPS) || eNalType == NAL_SPS) )
|
||||
|
||||
#define IS_IDR_NAL(eNalRefIdc, eNalType) \
|
||||
( (eNalRefIdc == NAL_PRIORITY_HIGHEST) && (eNalType == NAL_SLICE_IDR) )
|
||||
|
||||
#define FRAME_NUM_PARAM_SET (-1)
|
||||
#define FRAME_NUM_IDR 0
|
||||
|
||||
/**
|
||||
* @brief eDeblockingIdc
|
||||
*/
|
||||
enum {
|
||||
DEBLOCKING_IDC_0 = 0,
|
||||
DEBLOCKING_IDC_1 = 1,
|
||||
DEBLOCKING_IDC_2 = 2
|
||||
};
|
||||
#define DEBLOCKING_OFFSET (6)
|
||||
#define DEBLOCKING_OFFSET_MINUS (-6)
|
||||
|
||||
/* 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
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief 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
|
||||
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
|
||||
*/
|
||||
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
|
||||
} 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
|
||||
} 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
|
||||
union {
|
||||
SSysMEMBuffer sSystemBuffer; ///< memory info for one picture
|
||||
} UsrData; ///< output buffer info
|
||||
} SBufferInfo;
|
||||
|
||||
|
||||
/**
|
||||
* @brief 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,
|
||||
};
|
||||
|
||||
#endif//WELS_VIDEO_CODEC_DEFINITION_H__
|
@ -1,15 +0,0 @@
|
||||
//The current file is auto-generated by script: generate_codec_ver.sh
|
||||
#ifndef CODEC_VER_H
|
||||
#define CODEC_VER_H
|
||||
|
||||
#include "codec_app_def.h"
|
||||
|
||||
static const OpenH264Version g_stCodecVersion = {1, 6, 0, 0};
|
||||
static const char* const g_strCodecVer = "OpenH264 version:1.6.0.0";
|
||||
|
||||
#define OPENH264_MAJOR (1)
|
||||
#define OPENH264_MINOR (6)
|
||||
#define OPENH264_REVISION (0)
|
||||
#define OPENH264_RESERVED (0)
|
||||
|
||||
#endif // CODEC_VER_H
|
6
codec/build/android/.gitignore
vendored
6
codec/build/android/.gitignore
vendored
@ -1,6 +0,0 @@
|
||||
build.xml
|
||||
local.properties
|
||||
proguard-project.txt
|
||||
gen
|
||||
bin
|
||||
project.properties
|
@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.wels.dec"
|
||||
android:versionCode="1"
|
||||
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">
|
||||
<activity android:name=".WelsDecTest"
|
||||
android:label="@string/app_name">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
</application>
|
||||
|
||||
|
||||
</manifest>
|
@ -1,9 +0,0 @@
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
MY_LOCAL_PATH := $(LOCAL_PATH)
|
||||
|
||||
# Step3
|
||||
#Generate the libwelsdecdemo.so file
|
||||
include $(LOCAL_PATH)/welsdecdemo.mk
|
||||
LOCAL_PATH := $(MY_LOCAL_PATH)
|
||||
|
@ -1,2 +0,0 @@
|
||||
APP_STL := stlport_shared
|
||||
APP_PLATFORM := android-12
|
@ -1,24 +0,0 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <jni.h>
|
||||
#include <android/log.h>
|
||||
|
||||
#define LOG_TAG "welsdec"
|
||||
#define LOGI(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
|
||||
|
||||
extern int DecMain (int argc, char* argv[]);
|
||||
extern "C"
|
||||
JNIEXPORT void JNICALL Java_com_wels_dec_WelsDecTest_DoDecoderTest
|
||||
(JNIEnv* env, jobject thiz, jstring jsFileNameIn, jstring jsFileNameOut) {
|
||||
/**************** Add the native codes/API *****************/
|
||||
char* argv[3];
|
||||
int argc = 3;
|
||||
argv[0] = (char*) ("decConsole.exe");
|
||||
argv[1] = (char*) ((*env).GetStringUTFChars (jsFileNameIn, NULL));
|
||||
argv[2] = (char*) ((*env).GetStringUTFChars (jsFileNameOut, NULL));
|
||||
LOGI ("Start to run JNI module!+++");
|
||||
DecMain (argc, argv);
|
||||
LOGI ("End to run JNI module!+++");
|
||||
}
|
||||
|
||||
|
@ -1,47 +0,0 @@
|
||||
# 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
|
||||
|
||||
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
#
|
||||
# Module Settings
|
||||
#
|
||||
LOCAL_MODULE := welsdecdemo
|
||||
|
||||
#
|
||||
# Source Files
|
||||
#
|
||||
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/d3d9_utils.cpp \
|
||||
myjni.cpp
|
||||
#
|
||||
# Header Includes
|
||||
#
|
||||
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_LDLIBS := -llog
|
||||
LOCAL_SHARED_LIBRARIES := wels
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
@ -1,21 +0,0 @@
|
||||
<?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>
|
@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">WelsDecoderTest</string>
|
||||
</resources>
|
@ -1,151 +0,0 @@
|
||||
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;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
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;
|
||||
|
||||
final String mStreamPath = "/sdcard/welsdec/";
|
||||
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);
|
||||
|
||||
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);
|
||||
}
|
||||
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);
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.wels.enc"
|
||||
android:versionCode="1"
|
||||
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">
|
||||
<activity android:name=".WelsEncTest"
|
||||
android:label="@string/app_name">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
</application>
|
||||
|
||||
|
||||
</manifest>
|
@ -1,9 +0,0 @@
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
MY_LOCAL_PATH := $(LOCAL_PATH)
|
||||
|
||||
# Step3
|
||||
#Generate the libwelsdecdemo.so file
|
||||
include $(LOCAL_PATH)/welsencdemo.mk
|
||||
LOCAL_PATH := $(MY_LOCAL_PATH)
|
||||
|
@ -1,2 +0,0 @@
|
||||
APP_STL := stlport_shared
|
||||
APP_PLATFORM := android-12
|
@ -1,45 +0,0 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <jni.h>
|
||||
#include <android/log.h>
|
||||
|
||||
#define LOG_TAG "welsdec"
|
||||
#define LOGI(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
|
||||
|
||||
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 *****************/
|
||||
char* argv[2];
|
||||
int argc = 2;
|
||||
argv[0] = (char*) ("encConsole.exe");
|
||||
argv[1] = (char*) ((*env).GetStringUTFChars (jsFileNameIn, NULL));
|
||||
LOGI ("Start to run JNI module!+++");
|
||||
EncMain (argc, argv);
|
||||
LOGI ("End to run JNI module!+++");
|
||||
|
||||
}
|
||||
|
||||
|
@ -1,51 +0,0 @@
|
||||
# Generate the libwelsencdemo.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
|
||||
|
||||
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
#
|
||||
# Module Settings
|
||||
#
|
||||
LOCAL_MODULE := welsencdemo
|
||||
|
||||
#
|
||||
# Source Files
|
||||
#
|
||||
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 \
|
||||
myjni.cpp
|
||||
|
||||
#
|
||||
# Header Includes
|
||||
#
|
||||
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
|
||||
|
||||
|
||||
#
|
||||
# Compile Flags and Link Libraries
|
||||
#
|
||||
LOCAL_CFLAGS := -DANDROID_NDK
|
||||
|
||||
LOCAL_LDLIBS := -llog
|
||||
LOCAL_SHARED_LIBRARIES := wels
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
@ -1,21 +0,0 @@
|
||||
<?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>
|
@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">WelsEncoderTest</string>
|
||||
</resources>
|
@ -1,173 +0,0 @@
|
||||
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;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
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;
|
||||
|
||||
final String mStreamPath = "/sdcard/welsenc/";
|
||||
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);
|
||||
|
||||
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);
|
||||
}
|
||||
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);
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,62 +0,0 @@
|
||||
# Run this to update the codec_ver.h at changes of api
|
||||
|
||||
#!/bin/sh
|
||||
#
|
||||
|
||||
if [ "$1"x = ""x ]; then
|
||||
echo "Please input the version number as: major_ver.minor_ver.patch.reserve"
|
||||
exit 127
|
||||
fi
|
||||
|
||||
codec_ver=`echo "$1" | egrep "^([0-9]+[.]){3}[0-9]+$"`
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Please input the version number as: major_ver.minor_ver.patch.reserve"
|
||||
exit 127
|
||||
fi
|
||||
|
||||
revision=`git show | head -n 1`
|
||||
revision=`echo $revision|cut -d' ' -f2|sed -e 's#[ ]*\(.*\)[ ]*#\1#'`
|
||||
revision=${revision:0:7}
|
||||
|
||||
echo "//The current file is auto-generated by script: generate_codec_ver.sh" >>codec_ver.h
|
||||
echo "#ifndef CODEC_VER_H" >>codec_ver.h
|
||||
echo "#define CODEC_VER_H" >>codec_ver.h
|
||||
echo "" >>codec_ver.h
|
||||
|
||||
echo "#include \"codec_app_def.h\"" >>codec_ver.h
|
||||
echo "" >>codec_ver.h
|
||||
|
||||
fullver="$1"
|
||||
major="${1%%.*}"
|
||||
tmp=${1#*.}
|
||||
minor="${tmp%%.*}"
|
||||
tmp=${tmp#*.}
|
||||
revnr="${tmp%%.*}"
|
||||
tmp=${tmp#*.}
|
||||
resnr="${tmp%%.*}"
|
||||
|
||||
echo "static const OpenH264Version g_stCodecVersion = {$major, $minor, $revnr, $resnr};" >>codec_ver.h
|
||||
echo "static const char* const g_strCodecVer = \"OpenH264 version:$fullver\";" >>codec_ver.h
|
||||
#if [ "$2"x = ""x ]; then
|
||||
#echo "static const char* const g_strCodecBuildNum = \"OpenH264 revision:$revision\";" >> codec_ver.h
|
||||
#else
|
||||
#echo "static const char* const g_strCodecBuildNum = \"OpenH264 build:$2, OpenH264 revision:$revision\";" >> codec_ver.h
|
||||
#fi
|
||||
echo "" >>codec_ver.h
|
||||
|
||||
#define OPENH264_MAJOR 1, #define OPENH264_MINOR 2 #define OPENH264_REVISION 3 #define OPENH264_RESERVED 0
|
||||
echo "#define OPENH264_MAJOR ($major)" >>codec_ver.h
|
||||
echo "#define OPENH264_MINOR ($minor)" >>codec_ver.h
|
||||
echo "#define OPENH264_REVISION ($revnr)" >>codec_ver.h
|
||||
echo "#define OPENH264_RESERVED ($resnr)" >>codec_ver.h
|
||||
echo "" >>codec_ver.h
|
||||
|
||||
echo "#endif // CODEC_VER_H" >>codec_ver.h
|
||||
|
||||
mv -f codec_ver.h ../api/svc/codec_ver.h
|
||||
|
||||
# Ignore non-utf8 chars in the input
|
||||
export LC_ALL=C
|
||||
cat ../../openh264.rc.template | sed "s/\$MAJOR/$major/g" | sed "s/\$MINOR/$minor/g" | sed "s/\$REVISION/$revnr/g" | sed "s/\$RESERVED/$resnr/g" > openh264.rc.tmp
|
||||
mv openh264.rc.tmp ../../openh264.rc
|
3
codec/build/iOS/.gitignore
vendored
3
codec/build/iOS/.gitignore
vendored
@ -1,3 +0,0 @@
|
||||
project.xcworkspace
|
||||
xcuserdata
|
||||
.DS_Store
|
@ -1,476 +0,0 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
0DD32A861B467902009181A1 /* WelsThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0DD32A851B467902009181A1 /* WelsThread.cpp */; };
|
||||
0DD32A881B467911009181A1 /* WelsTaskThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0DD32A871B467911009181A1 /* WelsTaskThread.cpp */; };
|
||||
0DD32A941B468F77009181A1 /* WelsThreadPool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0DD32A931B468F77009181A1 /* WelsThreadPool.cpp */; };
|
||||
4C3406C918D96EA600DFA14A /* arm_arch_common_macro.S in Sources */ = {isa = PBXBuildFile; fileRef = 4C3406B218D96EA600DFA14A /* arm_arch_common_macro.S */; };
|
||||
4C3406CA18D96EA600DFA14A /* deblocking_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4C3406B318D96EA600DFA14A /* deblocking_neon.S */; };
|
||||
4C3406CB18D96EA600DFA14A /* expand_picture_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4C3406B418D96EA600DFA14A /* expand_picture_neon.S */; };
|
||||
4C3406CC18D96EA600DFA14A /* mc_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4C3406B518D96EA600DFA14A /* mc_neon.S */; };
|
||||
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 */; };
|
||||
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 */; };
|
||||
5BD896BA1A7B839B00D32B7D /* memory_align.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5BD896B91A7B839B00D32B7D /* memory_align.cpp */; };
|
||||
5BDD15ED1A79027600B6CA2E /* mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5BDD15EC1A79027600B6CA2E /* mc.cpp */; };
|
||||
F0B204F918FD23BF005DA23F /* copy_mb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F0B204F818FD23BF005DA23F /* copy_mb.cpp */; };
|
||||
F556A8241906673900E156A8 /* arm_arch64_common_macro.S in Sources */ = {isa = PBXBuildFile; fileRef = F556A8221906673900E156A8 /* arm_arch64_common_macro.S */; };
|
||||
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 PBXCopyFilesBuildPhase section */
|
||||
4CE443D318B722CD0017DF25 /* CopyFiles */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "include/$(PRODUCT_NAME)";
|
||||
dstSubfolderSpec = 16;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
0DB71EF31BAB273500EABC51 /* WelsCircleQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WelsCircleQueue.h; sourceTree = "<group>"; };
|
||||
0DD32A851B467902009181A1 /* WelsThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WelsThread.cpp; sourceTree = "<group>"; };
|
||||
0DD32A871B467911009181A1 /* WelsTaskThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WelsTaskThread.cpp; sourceTree = "<group>"; };
|
||||
0DD32A8E1B467B83009181A1 /* WelsLock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WelsLock.h; sourceTree = "<group>"; };
|
||||
0DD32A8F1B467C73009181A1 /* WelsTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WelsTask.h; sourceTree = "<group>"; };
|
||||
0DD32A901B467C73009181A1 /* WelsTaskThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WelsTaskThread.h; sourceTree = "<group>"; };
|
||||
0DD32A911B467C73009181A1 /* WelsThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WelsThread.h; sourceTree = "<group>"; };
|
||||
0DD32A921B467C73009181A1 /* WelsThreadPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WelsThreadPool.h; sourceTree = "<group>"; };
|
||||
0DD32A931B468F77009181A1 /* WelsThreadPool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WelsThreadPool.cpp; sourceTree = "<group>"; };
|
||||
0DEA477E1BB36FE100ADD134 /* WelsList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WelsList.h; sourceTree = "<group>"; };
|
||||
4C3406B218D96EA600DFA14A /* arm_arch_common_macro.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = arm_arch_common_macro.S; sourceTree = "<group>"; };
|
||||
4C3406B318D96EA600DFA14A /* deblocking_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = deblocking_neon.S; sourceTree = "<group>"; };
|
||||
4C3406B418D96EA600DFA14A /* expand_picture_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = expand_picture_neon.S; sourceTree = "<group>"; };
|
||||
4C3406B518D96EA600DFA14A /* mc_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = mc_neon.S; sourceTree = "<group>"; };
|
||||
4C3406B718D96EA600DFA14A /* cpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpu.h; sourceTree = "<group>"; };
|
||||
4C3406B818D96EA600DFA14A /* cpu_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpu_core.h; sourceTree = "<group>"; };
|
||||
4C3406B918D96EA600DFA14A /* crt_util_safe_x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crt_util_safe_x.h; sourceTree = "<group>"; };
|
||||
4C3406BA18D96EA600DFA14A /* deblocking_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = deblocking_common.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>"; };
|
||||
4C3406C018D96EA600DFA14A /* measure_time.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = measure_time.h; sourceTree = "<group>"; };
|
||||
4C3406C118D96EA600DFA14A /* typedefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = typedefs.h; sourceTree = "<group>"; };
|
||||
4C3406C218D96EA600DFA14A /* WelsThreadLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WelsThreadLib.h; sourceTree = "<group>"; };
|
||||
4C3406C418D96EA600DFA14A /* cpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cpu.cpp; sourceTree = "<group>"; };
|
||||
4C3406C518D96EA600DFA14A /* crt_util_safe_x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = crt_util_safe_x.cpp; sourceTree = "<group>"; };
|
||||
4C3406C618D96EA600DFA14A /* deblocking_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = deblocking_common.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; };
|
||||
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>"; };
|
||||
5B9196F91A7F8BA40075D641 /* wels_const_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_const_common.h; 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>"; };
|
||||
5BD896B81A7B837700D32B7D /* memory_align.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memory_align.h; sourceTree = "<group>"; };
|
||||
5BD896B91A7B839B00D32B7D /* memory_align.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memory_align.cpp; sourceTree = "<group>"; };
|
||||
5BDD15EB1A79026A00B6CA2E /* mc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mc.h; sourceTree = "<group>"; };
|
||||
5BDD15EC1A79027600B6CA2E /* mc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mc.cpp; 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 */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
4CE443D218B722CD0017DF25 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
4CE443D918B722CD0017DF25 /* 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 */,
|
||||
4C3406B418D96EA600DFA14A /* expand_picture_neon.S */,
|
||||
4C3406B518D96EA600DFA14A /* mc_neon.S */,
|
||||
);
|
||||
path = arm;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
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 */,
|
||||
4C3406BD18D96EA600DFA14A /* ls_defines.h */,
|
||||
4C3406BE18D96EA600DFA14A /* macros.h */,
|
||||
5BDD15EB1A79026A00B6CA2E /* mc.h */,
|
||||
4C3406C018D96EA600DFA14A /* measure_time.h */,
|
||||
5BD896B81A7B837700D32B7D /* memory_align.h */,
|
||||
4C3406C118D96EA600DFA14A /* typedefs.h */,
|
||||
5BA8F2BE19603F3500011CE4 /* wels_common_defs.h */,
|
||||
0DB71EF31BAB273500EABC51 /* WelsCircleQueue.h */,
|
||||
0DEA477E1BB36FE100ADD134 /* WelsList.h */,
|
||||
0DD32A8E1B467B83009181A1 /* WelsLock.h */,
|
||||
0DD32A8F1B467C73009181A1 /* WelsTask.h */,
|
||||
0DD32A901B467C73009181A1 /* WelsTaskThread.h */,
|
||||
0DD32A911B467C73009181A1 /* WelsThread.h */,
|
||||
0DD32A921B467C73009181A1 /* WelsThreadPool.h */,
|
||||
5B9196F91A7F8BA40075D641 /* wels_const_common.h */,
|
||||
4C3406C218D96EA600DFA14A /* WelsThreadLib.h */,
|
||||
);
|
||||
path = inc;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
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 */,
|
||||
5BDD15EC1A79027600B6CA2E /* mc.cpp */,
|
||||
5BD896B91A7B839B00D32B7D /* memory_align.cpp */,
|
||||
0DD32A871B467911009181A1 /* WelsTaskThread.cpp */,
|
||||
0DD32A931B468F77009181A1 /* WelsThreadPool.cpp */,
|
||||
0DD32A851B467902009181A1 /* WelsThread.cpp */,
|
||||
4C3406C818D96EA600DFA14A /* WelsThreadLib.cpp */,
|
||||
);
|
||||
path = src;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE443CC18B722CC0017DF25 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE4472F18BC61650017DF25 /* common */,
|
||||
4CE443D718B722CD0017DF25 /* Frameworks */,
|
||||
4CE443D618B722CD0017DF25 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE443D618B722CD0017DF25 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE443D518B722CD0017DF25 /* libcommon.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE443D718B722CD0017DF25 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE443D818B722CD0017DF25 /* Foundation.framework */,
|
||||
4CE443E918B722CD0017DF25 /* UIKit.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE4472F18BC61650017DF25 /* common */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F556A81D1906669F00E156A8 /* arm64 */,
|
||||
4C3406B118D96EA600DFA14A /* arm */,
|
||||
4C3406B618D96EA600DFA14A /* inc */,
|
||||
4C3406C318D96EA600DFA14A /* src */,
|
||||
);
|
||||
name = common;
|
||||
path = ../../../common;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
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 */,
|
||||
);
|
||||
name = arm64;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
4CE443D418B722CD0017DF25 /* common */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 4CE443F818B722CD0017DF25 /* Build configuration list for PBXNativeTarget "common" */;
|
||||
buildPhases = (
|
||||
4CE443D118B722CD0017DF25 /* Sources */,
|
||||
4CE443D218B722CD0017DF25 /* Frameworks */,
|
||||
4CE443D318B722CD0017DF25 /* CopyFiles */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = common;
|
||||
productName = common;
|
||||
productReference = 4CE443D518B722CD0017DF25 /* libcommon.a */;
|
||||
productType = "com.apple.product-type.library.static";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
4CE443CD18B722CC0017DF25 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0510;
|
||||
ORGANIZATIONNAME = video;
|
||||
};
|
||||
buildConfigurationList = 4CE443D018B722CC0017DF25 /* Build configuration list for PBXProject "common" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = 4CE443CC18B722CC0017DF25;
|
||||
productRefGroup = 4CE443D618B722CD0017DF25 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
4CE443D418B722CD0017DF25 /* common */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
4CE443D118B722CD0017DF25 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
0DD32A941B468F77009181A1 /* WelsThreadPool.cpp in Sources */,
|
||||
F5B8D82D190757290037849A /* mc_aarch64_neon.S in Sources */,
|
||||
4C3406C918D96EA600DFA14A /* arm_arch_common_macro.S in Sources */,
|
||||
F556A8241906673900E156A8 /* arm_arch64_common_macro.S in Sources */,
|
||||
5BDD15ED1A79027600B6CA2E /* mc.cpp in Sources */,
|
||||
F5AC94FF193EB7D800F58154 /* deblocking_aarch64_neon.S in Sources */,
|
||||
4C3406CE18D96EA600DFA14A /* crt_util_safe_x.cpp in Sources */,
|
||||
F791965919D3BE2200F60C6B /* intra_pred_common.cpp in Sources */,
|
||||
5BD896BA1A7B839B00D32B7D /* memory_align.cpp in Sources */,
|
||||
0DD32A881B467911009181A1 /* WelsTaskThread.cpp in Sources */,
|
||||
4C3406CF18D96EA600DFA14A /* deblocking_common.cpp in Sources */,
|
||||
5BA8F2C019603F5F00011CE4 /* common_tables.cpp in Sources */,
|
||||
0DD32A861B467902009181A1 /* WelsThread.cpp in Sources */,
|
||||
F791965419D3B89D00F60C6B /* intra_pred_common_aarch64_neon.S 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 */,
|
||||
F0B204F918FD23BF005DA23F /* copy_mb.cpp in Sources */,
|
||||
FAABAA1818E9354A00D4186F /* sad_common.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
4CE443F618B722CD0017DF25 /* 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;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
4CE443F718B722CD0017DF25 /* 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;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||
SDKROOT = iphoneos;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
4CE443F918B722CD0017DF25 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
|
||||
CLANG_CXX_LIBRARY = "compiler-default";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
DSTROOT = /tmp/common.dst;
|
||||
GCC_C_LANGUAGE_STANDARD = "compiler-default";
|
||||
GCC_OPTIMIZATION_LEVEL = 3;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "";
|
||||
"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)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
"$(SRCROOT)/../../../api/svc",
|
||||
);
|
||||
OTHER_LDFLAGS = "-ObjC";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
4CE443FA18B722CD0017DF25 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
|
||||
CLANG_CXX_LIBRARY = "compiler-default";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
DSTROOT = /tmp/common.dst;
|
||||
GCC_C_LANGUAGE_STANDARD = "compiler-default";
|
||||
"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)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
"$(SRCROOT)/../../../api/svc",
|
||||
);
|
||||
OTHER_LDFLAGS = "-ObjC";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
4CE443D018B722CC0017DF25 /* Build configuration list for PBXProject "common" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
4CE443F618B722CD0017DF25 /* Debug */,
|
||||
4CE443F718B722CD0017DF25 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
4CE443F818B722CD0017DF25 /* Build configuration list for PBXNativeTarget "common" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
4CE443F918B722CD0017DF25 /* Debug */,
|
||||
4CE443FA18B722CD0017DF25 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 4CE443CD18B722CC0017DF25 /* Project object */;
|
||||
}
|
@ -1,484 +0,0 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
4CE444F918B72AA40017DF25 /* libcommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE444F618B72A900017DF25 /* libcommon.a */; };
|
||||
4CE4450318B72AE40017DF25 /* libwelsdec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CE4450018B72AD70017DF25 /* libwelsdec.a */; };
|
||||
F0E6634A1810EFA5000C888E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F0E663491810EFA5000C888E /* UIKit.framework */; };
|
||||
F0E6634C1810EFA5000C888E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F0E6634B1810EFA5000C888E /* Foundation.framework */; };
|
||||
F0E6634E1810EFA5000C888E /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F0E6634D1810EFA5000C888E /* CoreGraphics.framework */; };
|
||||
F0E663541810EFA5000C888E /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F0E663521810EFA5000C888E /* InfoPlist.strings */; };
|
||||
F0E663561810EFA5000C888E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F0E663551810EFA5000C888E /* main.m */; };
|
||||
F0E6635A1810EFA5000C888E /* DEMOAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F0E663591810EFA5000C888E /* DEMOAppDelegate.m */; };
|
||||
F0E6635C1810EFA5000C888E /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = F0E6635B1810EFA5000C888E /* Default.png */; };
|
||||
F0E6635E1810EFA5000C888E /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F0E6635D1810EFA5000C888E /* Default@2x.png */; };
|
||||
F0E663601810EFA5000C888E /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F0E6635F1810EFA5000C888E /* Default-568h@2x.png */; };
|
||||
F0E663631810EFA5000C888E /* MainStoryboard_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F0E663611810EFA5000C888E /* MainStoryboard_iPhone.storyboard */; };
|
||||
F0E663661810EFA5000C888E /* MainStoryboard_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F0E663641810EFA5000C888E /* MainStoryboard_iPad.storyboard */; };
|
||||
F0E663691810EFA5000C888E /* DEMOViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F0E663681810EFA5000C888E /* DEMOViewController.m */; };
|
||||
F0E6637A1810EFF7000C888E /* d3d9_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F0E663761810EFF7000C888E /* d3d9_utils.cpp */; };
|
||||
F0E6637B1810EFF7000C888E /* h264dec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F0E663771810EFF7000C888E /* h264dec.cpp */; };
|
||||
F0E6637D1810EFF7000C888E /* read_config.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F0E663791810EFF7000C888E /* read_config.cpp */; };
|
||||
F0E663B5181117B9000C888E /* DEMOViewControllerShowResource.m in Sources */ = {isa = PBXBuildFile; fileRef = F0E663B4181117B9000C888E /* DEMOViewControllerShowResource.m */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
4CE444F518B72A900017DF25 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 4CE444F018B72A8F0017DF25 /* common.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 4CE443D518B722CD0017DF25;
|
||||
remoteInfo = common;
|
||||
};
|
||||
4CE444FF18B72AD70017DF25 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 4CE444FA18B72AD70017DF25 /* welsdec.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 4CE4427918B6FC360017DF25;
|
||||
remoteInfo = welsdec;
|
||||
};
|
||||
541044A6199888F800B44931 /* 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;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
4CE444F018B72A8F0017DF25 /* common.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = common.xcodeproj; path = ../../common/common.xcodeproj; sourceTree = "<group>"; };
|
||||
4CE444FA18B72AD70017DF25 /* welsdec.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = welsdec.xcodeproj; path = ../welsdec/welsdec.xcodeproj; sourceTree = "<group>"; };
|
||||
F0E663461810EFA5000C888E /* demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = demo.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
F0E663491810EFA5000C888E /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
F0E6634B1810EFA5000C888E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
F0E6635D1810EFA5000C888E /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = "<group>"; };
|
||||
F0E6635F1810EFA5000C888E /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
|
||||
F0E663621810EFA5000C888E /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPhone.storyboard; sourceTree = "<group>"; };
|
||||
F0E663651810EFA5000C888E /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPad.storyboard; sourceTree = "<group>"; };
|
||||
F0E663671810EFA5000C888E /* DEMOViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DEMOViewController.h; sourceTree = "<group>"; };
|
||||
F0E663681810EFA5000C888E /* DEMOViewController.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = DEMOViewController.m; sourceTree = "<group>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
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 */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
F0E663431810EFA5000C888E /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
4CE4450318B72AE40017DF25 /* libwelsdec.a in Frameworks */,
|
||||
4CE444F918B72AA40017DF25 /* libcommon.a in Frameworks */,
|
||||
F0E6634A1810EFA5000C888E /* UIKit.framework in Frameworks */,
|
||||
F0E6634C1810EFA5000C888E /* Foundation.framework in Frameworks */,
|
||||
F0E6634E1810EFA5000C888E /* CoreGraphics.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
4CE444F118B72A8F0017DF25 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE444F618B72A900017DF25 /* libcommon.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE444FB18B72AD70017DF25 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE4450018B72AD70017DF25 /* libwelsdec.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F0E6633D1810EFA5000C888E = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F0E6634F1810EFA5000C888E /* demo */,
|
||||
F0E663481810EFA5000C888E /* Frameworks */,
|
||||
F0E663471810EFA5000C888E /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F0E663471810EFA5000C888E /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F0E663461810EFA5000C888E /* demo.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F0E663481810EFA5000C888E /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE444FA18B72AD70017DF25 /* welsdec.xcodeproj */,
|
||||
4CE444F018B72A8F0017DF25 /* common.xcodeproj */,
|
||||
F0E663491810EFA5000C888E /* UIKit.framework */,
|
||||
F0E6634B1810EFA5000C888E /* Foundation.framework */,
|
||||
F0E6634D1810EFA5000C888E /* CoreGraphics.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F0E6634F1810EFA5000C888E /* demo */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F0E663701810EFF7000C888E /* console */,
|
||||
F0E663581810EFA5000C888E /* DEMOAppDelegate.h */,
|
||||
F0E663591810EFA5000C888E /* DEMOAppDelegate.m */,
|
||||
F0E663611810EFA5000C888E /* MainStoryboard_iPhone.storyboard */,
|
||||
F0E663B3181117B9000C888E /* DEMOViewControllerShowResource.h */,
|
||||
F0E663B4181117B9000C888E /* DEMOViewControllerShowResource.m */,
|
||||
F0E663641810EFA5000C888E /* MainStoryboard_iPad.storyboard */,
|
||||
F0E663671810EFA5000C888E /* DEMOViewController.h */,
|
||||
F0E663681810EFA5000C888E /* DEMOViewController.m */,
|
||||
F0E663501810EFA5000C888E /* Supporting Files */,
|
||||
);
|
||||
path = demo;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F0E663501810EFA5000C888E /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F0E663511810EFA5000C888E /* demo-Info.plist */,
|
||||
F0E663521810EFA5000C888E /* InfoPlist.strings */,
|
||||
F0E663551810EFA5000C888E /* main.m */,
|
||||
F0E6635B1810EFA5000C888E /* Default.png */,
|
||||
F0E6635D1810EFA5000C888E /* Default@2x.png */,
|
||||
F0E6635F1810EFA5000C888E /* Default-568h@2x.png */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F0E663701810EFF7000C888E /* console */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F0E663711810EFF7000C888E /* inc */,
|
||||
F0E663751810EFF7000C888E /* src */,
|
||||
);
|
||||
name = console;
|
||||
path = ../../../../../console/dec;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F0E663711810EFF7000C888E /* inc */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F0E663721810EFF7000C888E /* d3d9_utils.h */,
|
||||
F0E663741810EFF7000C888E /* read_config.h */,
|
||||
);
|
||||
path = inc;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F0E663751810EFF7000C888E /* src */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F0E663761810EFF7000C888E /* d3d9_utils.cpp */,
|
||||
F0E663771810EFF7000C888E /* h264dec.cpp */,
|
||||
F0E663791810EFF7000C888E /* read_config.cpp */,
|
||||
);
|
||||
path = src;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
F0E663451810EFA5000C888E /* demo */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = F0E6636C1810EFA5000C888E /* Build configuration list for PBXNativeTarget "demo" */;
|
||||
buildPhases = (
|
||||
F0E663421810EFA5000C888E /* Sources */,
|
||||
F0E663431810EFA5000C888E /* Frameworks */,
|
||||
F0E663441810EFA5000C888E /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
541044A7199888F800B44931 /* PBXTargetDependency */,
|
||||
541044A9199888F800B44931 /* PBXTargetDependency */,
|
||||
);
|
||||
name = demo;
|
||||
productName = demo;
|
||||
productReference = F0E663461810EFA5000C888E /* demo.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
F0E6633E1810EFA5000C888E /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
CLASSPREFIX = DEMO;
|
||||
LastUpgradeCheck = 0460;
|
||||
ORGANIZATIONNAME = zhaozheng;
|
||||
};
|
||||
buildConfigurationList = F0E663411810EFA5000C888E /* Build configuration list for PBXProject "demo" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = F0E6633D1810EFA5000C888E;
|
||||
productRefGroup = F0E663471810EFA5000C888E /* Products */;
|
||||
projectDirPath = "";
|
||||
projectReferences = (
|
||||
{
|
||||
ProductGroup = 4CE444F118B72A8F0017DF25 /* Products */;
|
||||
ProjectRef = 4CE444F018B72A8F0017DF25 /* common.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 4CE444FB18B72AD70017DF25 /* Products */;
|
||||
ProjectRef = 4CE444FA18B72AD70017DF25 /* welsdec.xcodeproj */;
|
||||
},
|
||||
);
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
F0E663451810EFA5000C888E /* demo */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXReferenceProxy section */
|
||||
4CE444F618B72A900017DF25 /* libcommon.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libcommon.a;
|
||||
remoteRef = 4CE444F518B72A900017DF25 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
4CE4450018B72AD70017DF25 /* libwelsdec.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libwelsdec.a;
|
||||
remoteRef = 4CE444FF18B72AD70017DF25 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
/* End PBXReferenceProxy section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
F0E663441810EFA5000C888E /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
F0E663541810EFA5000C888E /* InfoPlist.strings in Resources */,
|
||||
F0E6635C1810EFA5000C888E /* Default.png in Resources */,
|
||||
F0E6635E1810EFA5000C888E /* Default@2x.png in Resources */,
|
||||
F0E663601810EFA5000C888E /* Default-568h@2x.png in Resources */,
|
||||
F0E663631810EFA5000C888E /* MainStoryboard_iPhone.storyboard in Resources */,
|
||||
F0E663661810EFA5000C888E /* MainStoryboard_iPad.storyboard in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
F0E663421810EFA5000C888E /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
F0E663561810EFA5000C888E /* main.m in Sources */,
|
||||
F0E6635A1810EFA5000C888E /* DEMOAppDelegate.m in Sources */,
|
||||
F0E663691810EFA5000C888E /* DEMOViewController.m in Sources */,
|
||||
F0E6637A1810EFF7000C888E /* d3d9_utils.cpp in Sources */,
|
||||
F0E6637B1810EFF7000C888E /* h264dec.cpp in Sources */,
|
||||
F0E6637D1810EFF7000C888E /* read_config.cpp in Sources */,
|
||||
F0E663B5181117B9000C888E /* DEMOViewControllerShowResource.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* 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;
|
||||
children = (
|
||||
F0E663531810EFA5000C888E /* en */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F0E663611810EFA5000C888E /* MainStoryboard_iPhone.storyboard */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
F0E663621810EFA5000C888E /* en */,
|
||||
);
|
||||
name = MainStoryboard_iPhone.storyboard;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F0E663641810EFA5000C888E /* MainStoryboard_iPad.storyboard */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
F0E663651810EFA5000C888E /* en */,
|
||||
);
|
||||
name = MainStoryboard_iPad.storyboard;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
F0E6636A1810EFA5000C888E /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
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_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
F0E6636B1810EFA5000C888E /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
F0E6636D1810EFA5000C888E /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
|
||||
CLANG_CXX_LIBRARY = "compiler-default";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
GCC_C_LANGUAGE_STANDARD = "compiler-default";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
APPLE_IOS,
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/../../../../api/svc\"",
|
||||
"\"$(SRCROOT)/../../../../common/inc\"",
|
||||
);
|
||||
INFOPLIST_FILE = "demo/demo-Info.plist";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
F0E6636E1810EFA5000C888E /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
|
||||
CLANG_CXX_LIBRARY = "compiler-default";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
GCC_C_LANGUAGE_STANDARD = "compiler-default";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/../../../../api/svc\"",
|
||||
"\"$(SRCROOT)/../../../../common/inc\"",
|
||||
);
|
||||
INFOPLIST_FILE = "demo/demo-Info.plist";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
F0E663411810EFA5000C888E /* Build configuration list for PBXProject "demo" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
F0E6636A1810EFA5000C888E /* Debug */,
|
||||
F0E6636B1810EFA5000C888E /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
F0E6636C1810EFA5000C888E /* Build configuration list for PBXNativeTarget "demo" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
F0E6636D1810EFA5000C888E /* Debug */,
|
||||
F0E6636E1810EFA5000C888E /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = F0E6633E1810EFA5000C888E /* Project object */;
|
||||
}
|
@ -1,39 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface DEMOAppDelegate : UIResponder <UIApplicationDelegate>
|
||||
|
||||
@property (strong, nonatomic) UIWindow* window;
|
||||
|
||||
@end
|
@ -1,68 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
#import "DEMOAppDelegate.h"
|
||||
|
||||
@implementation DEMOAppDelegate
|
||||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||||
{
|
||||
//Override point for customization after application launch.
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)applicationWillResignActive:(UIApplication *)application
|
||||
{
|
||||
//Sent when the application is about to move from active to inactive state.
|
||||
}
|
||||
|
||||
- (void)applicationDidEnterBackground:(UIApplication *)application
|
||||
{
|
||||
//Used to store application state information.
|
||||
}
|
||||
|
||||
- (void)applicationWillEnterForeground:(UIApplication *)application
|
||||
{
|
||||
//Called as part of the transition from the background to the inactive state.
|
||||
}
|
||||
|
||||
- (void)applicationDidBecomeActive:(UIApplication *)application
|
||||
{
|
||||
//Restart any tasks that were paused while the application was inactive.
|
||||
}
|
||||
|
||||
- (void)applicationWillTerminate:(UIApplication *)application
|
||||
{
|
||||
//Called when the application is about to terminate.
|
||||
}
|
||||
|
||||
@end
|
@ -1,48 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface DEMOViewController : UIViewController {
|
||||
BOOL bEnableFlag;
|
||||
}
|
||||
@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;
|
||||
|
||||
//unwind segue
|
||||
- (IBAction)unwindSegueForShowResourceViewController: (UIStoryboardSegue*)segue;
|
||||
@end
|
@ -1,187 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
#define ENDLESS_LOOP //define to do the performance testing
|
||||
#define NO_OUTPUT_MODE //define to disable the output yuv file
|
||||
|
||||
extern int DecMain(int argc, char * argv[]);
|
||||
|
||||
#import "DEMOViewController.h"
|
||||
#import "DEMOViewControllerShowResource.h"
|
||||
|
||||
@interface DEMOViewController ()
|
||||
|
||||
@end
|
||||
|
||||
@implementation DEMOViewController
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view, typically from a nib.
|
||||
//Add the testing codes
|
||||
self.resFileArray = [[NSMutableArray alloc] init];
|
||||
self.selectedRow = 0;
|
||||
[self updateResourceArray];
|
||||
//Init the status indication window
|
||||
_statusIndication = [[UIAlertView alloc] initWithTitle: @"Decoding" message: @"Waiting the decoding" delegate: self cancelButtonTitle: @"Cancel" otherButtonTitles: nil];
|
||||
if ([self.resFileArray count] > self.selectedRow)
|
||||
self.currentSelectedFileTF.text = [[self.resFileArray objectAtIndex:self.selectedRow] lastPathComponent];
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning
|
||||
{
|
||||
[super didReceiveMemoryWarning];
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
- (IBAction)startDecoderAll:(id)sender {
|
||||
bEnableFlag = YES;
|
||||
[_statusIndication show];
|
||||
[NSThread detachNewThreadSelector:@selector(processDecoderAll) toTarget:self withObject:nil];
|
||||
}
|
||||
|
||||
- (IBAction)startDecoderOne:(id)sender {
|
||||
bEnableFlag = YES;
|
||||
[_statusIndication show];
|
||||
[NSThread detachNewThreadSelector:@selector(processDecoderOne) toTarget:self withObject:nil];
|
||||
}
|
||||
- (void)processDecoderAll
|
||||
{
|
||||
[self updateResourceArray];
|
||||
if (YES == [self DoDecoderAll]) {
|
||||
[self performSelectorOnMainThread:@selector(showAlertWnd) withObject:nil waitUntilDone:NO];
|
||||
}
|
||||
}
|
||||
- (void)processDecoderOne
|
||||
{
|
||||
if (YES == [self DoDecoderOne:self.selectedRow]) {
|
||||
[self performSelectorOnMainThread:@selector(showAlertWnd) withObject:nil waitUntilDone:NO];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)showAlertWnd
|
||||
{
|
||||
[_statusIndication dismissWithClickedButtonIndex:0 animated:(BOOL)YES];
|
||||
[self showAlertWindowTitle:@"Successful" message: @"Decode is successful!"];
|
||||
}
|
||||
|
||||
-(void)showAlertWindowTitle:(NSString*)title message:(NSString*)message
|
||||
{
|
||||
UIAlertView *someError = [[UIAlertView alloc] initWithTitle: title message: message delegate: self cancelButtonTitle: @"Ok" otherButtonTitles: nil];
|
||||
[someError show];
|
||||
}
|
||||
|
||||
//Delegate for alertView
|
||||
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
|
||||
{
|
||||
if (_statusIndication == alertView) {
|
||||
bEnableFlag = NO;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
|
||||
{
|
||||
if ([segue.identifier isEqualToString:@"segueShowResource"]) {
|
||||
[self updateResourceArray];
|
||||
UINavigationController *navigationController = [segue destinationViewController];
|
||||
DEMOViewControllerShowResource *ViewControllerShowResource = (DEMOViewControllerShowResource *)[navigationController topViewController];
|
||||
ViewControllerShowResource.resFileArray = self.resFileArray;
|
||||
}
|
||||
}
|
||||
|
||||
//unwind segue
|
||||
- (void)unwindSegueForShowResourceViewController:(UIStoryboardSegue *)segue
|
||||
{
|
||||
DEMOViewControllerShowResource *ViewControllerShowResource = [segue sourceViewController];
|
||||
self.selectedRow = ViewControllerShowResource.selectedRow;
|
||||
if ([self.resFileArray count] > self.selectedRow)
|
||||
self.currentSelectedFileTF.text = [[self.resFileArray objectAtIndex:self.selectedRow] lastPathComponent];
|
||||
}
|
||||
|
||||
//**************************************************************************/
|
||||
// Following codes is for demo testing input
|
||||
//**************************************************************************/
|
||||
- (BOOL) DoDecoderAll
|
||||
{
|
||||
BOOL bResult;
|
||||
for (NSUInteger index=0; index<[self.resFileArray count]; index++) {
|
||||
if ((bResult = [self DoDecoderOne:index]) == NO) {
|
||||
return NO;
|
||||
}
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
- (BOOL) DoDecoderOne:(NSUInteger)index
|
||||
{
|
||||
char *argv[3];//0 for exe name, 1 for resource input, 2 for output yuvfile
|
||||
int argc = 3;
|
||||
NSString *fileName = [[self.resFileArray objectAtIndex:index] lastPathComponent];
|
||||
NSString *outputFileName = [[fileName stringByDeletingPathExtension] stringByAppendingPathExtension:@"yuv"];
|
||||
NSString *outputFilePath = [[[self.resFileArray objectAtIndex:index] stringByDeletingLastPathComponent] stringByAppendingPathComponent:outputFileName];
|
||||
argv[0] = (char *)("decConsole.exe");
|
||||
argv[1] = (char *)[[self.resFileArray objectAtIndex:index] UTF8String]; //input resouce file path
|
||||
argv[2] = (char *)[outputFilePath UTF8String]; //output file path
|
||||
if (bEnableFlag == NO) {
|
||||
return NO;
|
||||
}
|
||||
DecMain(argc, argv);
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void) updateResourceArray
|
||||
{
|
||||
//Clear the resource array
|
||||
if ([self.resFileArray count] > 0) {
|
||||
[self.resFileArray removeAllObjects];
|
||||
}
|
||||
//get the sharing folder path
|
||||
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
|
||||
NSString *sharingFolderPath = [paths objectAtIndex:0];
|
||||
//enumerate the h.264 files at sharing folder
|
||||
NSFileManager *fileManager = [NSFileManager defaultManager];
|
||||
|
||||
NSError *error;
|
||||
NSArray * directoryContents = [fileManager contentsOfDirectoryAtPath:sharingFolderPath error:&error];
|
||||
for (NSUInteger index=0; index < [directoryContents count]; index++) {
|
||||
NSString *fileName = [directoryContents objectAtIndex:index];
|
||||
if (([fileName hasSuffix:@"264"] == YES) ||
|
||||
([fileName hasSuffix:@"h264"] == YES)||
|
||||
([fileName hasSuffix:@"H264"] == YES))
|
||||
{
|
||||
[self.resFileArray addObject:[sharingFolderPath stringByAppendingPathComponent:fileName]];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
@ -1,38 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface DEMOViewControllerShowResource : UITableViewController
|
||||
@property (strong, nonatomic) NSMutableArray* resFileArray;
|
||||
@property (assign, nonatomic) NSUInteger selectedRow;
|
||||
@end
|
@ -1,93 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
#import "DEMOViewControllerShowResource.h"
|
||||
|
||||
@interface DEMOViewControllerShowResource ()
|
||||
|
||||
@end
|
||||
|
||||
@implementation DEMOViewControllerShowResource
|
||||
|
||||
- (id)initWithStyle:(UITableViewStyle)style
|
||||
{
|
||||
self = [super initWithStyle:style];
|
||||
if (self) {
|
||||
// Custom initialization
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning
|
||||
{
|
||||
[super didReceiveMemoryWarning];
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
#pragma mark - Table view data source
|
||||
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
|
||||
{
|
||||
// Return the number of sections.
|
||||
return 1;
|
||||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
|
||||
{
|
||||
// Return the number of rows in the section.
|
||||
return [self.resFileArray count];
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
static NSString *CellIdentifier = @"resourcesListCell";
|
||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
|
||||
// Configure the cell...
|
||||
cell.textLabel.text = [[self.resFileArray objectAtIndex:indexPath.row] lastPathComponent];
|
||||
return cell;
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Table view delegate
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
// Navigation logic may go here. Create and push another view controller.
|
||||
self.selectedRow = indexPath.row;
|
||||
}
|
||||
|
||||
@end
|
Binary file not shown.
Before Width: | Height: | Size: 18 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.4 KiB |
Binary file not shown.
Before Width: | Height: | Size: 16 KiB |
@ -1,51 +0,0 @@
|
||||
<?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>CFBundleDisplayName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>hf.cisco.${PRODUCT_NAME:rfc1034identifier}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>UIFileSharingEnabled</key>
|
||||
<true/>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
<string>MainStoryboard_iPhone</string>
|
||||
<key>UIMainStoryboardFile~ipad</key>
|
||||
<string>MainStoryboard_iPad</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
@ -1,2 +0,0 @@
|
||||
/* Localized versions of Info.plist keys */
|
||||
|
@ -1,163 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="4510" systemVersion="13A524d" targetRuntime="iOS.CocoaTouch.iPad" variant="6xAndEarlier" propertyAccessControl="none" useAutolayout="YES" initialViewController="yXx-eU-91T">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1552" identifier="iOS"/>
|
||||
<development version="4600" identifier="xcode"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3742"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--View Controller-->
|
||||
<scene sceneID="jPS-ri-o6p">
|
||||
<objects>
|
||||
<viewController id="yXx-eU-91T" customClass="DEMOViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="hbu-fP-oM5">
|
||||
<rect key="frame" x="0.0" y="20" width="768" height="1004"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hYB-j2-40C">
|
||||
<rect key="frame" x="183" y="420" width="108" height="33"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Decoder All">
|
||||
<color key="titleColor" red="0.19607843137254902" green="0.30980392156862746" blue="0.52156862745098043" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="startDecoderAll:" destination="yXx-eU-91T" eventType="touchUpInside" id="3MS-Cf-Adc"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="2wb-SI-4H1">
|
||||
<rect key="frame" x="183" y="345" width="108" height="33"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="108" id="2v6-gF-smR"/>
|
||||
<constraint firstAttribute="height" constant="32" id="eJ4-hy-WrG"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Select File">
|
||||
<color key="titleColor" red="0.19607843137254902" green="0.30980392156862746" blue="0.52156862745098043" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<segue destination="8C7-cK-gmI" kind="modal" identifier="segueShowResource" id="hQX-Cl-38d"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="TYm-NZ-PYc">
|
||||
<rect key="frame" x="299" y="345" width="108" height="33"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Decoder">
|
||||
<color key="titleColor" red="0.19607843137254902" green="0.30980392156862746" blue="0.52156862745098043" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="startDecoderOne:" destination="yXx-eU-91T" eventType="touchUpInside" id="QTx-lm-dBt"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="File:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MKn-UR-WQ1">
|
||||
<rect key="frame" x="183" y="283" width="32" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="6we-jx-Qq3">
|
||||
<rect key="frame" x="223" y="274" width="323" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="323" id="4v5-6h-G72"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits"/>
|
||||
</textField>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="2wb-SI-4H1" firstAttribute="width" secondItem="hYB-j2-40C" secondAttribute="width" type="user" id="6XQ-FA-Gxw"/>
|
||||
<constraint firstItem="6we-jx-Qq3" firstAttribute="leading" secondItem="MKn-UR-WQ1" secondAttribute="trailing" constant="8" symbolic="YES" type="default" id="A8k-85-yfT"/>
|
||||
<constraint firstItem="TYm-NZ-PYc" firstAttribute="baseline" secondItem="2wb-SI-4H1" secondAttribute="baseline" type="default" id="By0-sg-TgF"/>
|
||||
<constraint firstItem="2wb-SI-4H1" firstAttribute="leading" secondItem="MKn-UR-WQ1" secondAttribute="leading" type="default" id="EOt-Ub-ktw"/>
|
||||
<constraint firstItem="2wb-SI-4H1" firstAttribute="height" secondItem="TYm-NZ-PYc" secondAttribute="height" type="user" id="FEa-hl-Nkb"/>
|
||||
<constraint firstItem="6we-jx-Qq3" firstAttribute="centerX" secondItem="hbu-fP-oM5" secondAttribute="centerX" type="default" id="Kiw-Sc-FdU"/>
|
||||
<constraint firstItem="MKn-UR-WQ1" firstAttribute="bottom" secondItem="6we-jx-Qq3" secondAttribute="bottom" type="default" id="Lcn-Qu-3kM"/>
|
||||
<constraint firstItem="TYm-NZ-PYc" firstAttribute="leading" secondItem="2wb-SI-4H1" secondAttribute="trailing" constant="8" symbolic="YES" type="default" id="QIU-v5-1LW"/>
|
||||
<constraint firstItem="2wb-SI-4H1" firstAttribute="height" secondItem="hYB-j2-40C" secondAttribute="height" type="user" id="QKo-Ly-odJ"/>
|
||||
<constraint firstItem="2wb-SI-4H1" firstAttribute="width" secondItem="TYm-NZ-PYc" secondAttribute="width" type="user" id="ZsI-jv-vxw"/>
|
||||
<constraint firstItem="hYB-j2-40C" firstAttribute="leading" secondItem="2wb-SI-4H1" secondAttribute="leading" type="default" id="paU-W4-QEQ"/>
|
||||
<constraint firstItem="6we-jx-Qq3" firstAttribute="top" secondItem="hbu-fP-oM5" secondAttribute="top" constant="274" id="swb-OF-reU"/>
|
||||
<constraint firstItem="2wb-SI-4H1" firstAttribute="top" secondItem="hbu-fP-oM5" secondAttribute="top" constant="345" id="ty2-u6-bWv"/>
|
||||
<constraint firstItem="hYB-j2-40C" firstAttribute="top" secondItem="hbu-fP-oM5" secondAttribute="top" constant="420" id="zeL-FT-4Zf"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics"/>
|
||||
<connections>
|
||||
<outlet property="currentSelectedFileTF" destination="6we-jx-Qq3" id="kXv-Fm-gM8"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="ev2-Bg-nkw" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="-885" y="74"/>
|
||||
</scene>
|
||||
<!--View Controller Show Resource - Resource List-->
|
||||
<scene sceneID="0YF-PF-BUj">
|
||||
<objects>
|
||||
<tableViewController id="aiM-V0-4K8" customClass="DEMOViewControllerShowResource" sceneMemberID="viewController">
|
||||
<tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="wwS-SO-V2c">
|
||||
<rect key="frame" x="0.0" y="64" width="768" height="960"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<prototypes>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="resourcesListCell" id="tKV-R7-KlD">
|
||||
<rect key="frame" x="0.0" y="22" width="768" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="0.0" y="0.0" width="768" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</tableViewCell>
|
||||
</prototypes>
|
||||
</tableView>
|
||||
<navigationItem key="navigationItem" title="Resource List" id="nUp-VX-3WO">
|
||||
<barButtonItem key="leftBarButtonItem" title="Back" id="vnO-PI-39R">
|
||||
<connections>
|
||||
<segue destination="igZ-GB-DHn" kind="unwind" unwindAction="unwindSegueForShowResourceViewController:" id="PBk-bM-n1O"/>
|
||||
</connections>
|
||||
</barButtonItem>
|
||||
</navigationItem>
|
||||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Ikd-br-I9X" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
<exit id="igZ-GB-DHn" userLabel="Exit" sceneMemberID="exit"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="783" y="79"/>
|
||||
</scene>
|
||||
<!--Navigation Controller-->
|
||||
<scene sceneID="n0I-kW-S3k">
|
||||
<objects>
|
||||
<navigationController definesPresentationContext="YES" id="8C7-cK-gmI" sceneMemberID="viewController">
|
||||
<navigationItem key="navigationItem" id="dzH-BV-b40"/>
|
||||
<navigationBar key="navigationBar" contentMode="scaleToFill" id="40d-Zw-OWZ">
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</navigationBar>
|
||||
<connections>
|
||||
<segue destination="aiM-V0-4K8" kind="relationship" relationship="rootViewController" id="W69-zP-VcW"/>
|
||||
</connections>
|
||||
</navigationController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="ZxZ-cF-kpk" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="-51" y="74"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||
<simulatedStatusBarMetrics key="statusBar" statusBarStyle="blackTranslucent"/>
|
||||
<simulatedOrientationMetrics key="orientation"/>
|
||||
<simulatedScreenMetrics key="destination"/>
|
||||
</simulatedMetricsContainer>
|
||||
</document>
|
@ -1,162 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="4510" systemVersion="13A524d" targetRuntime="iOS.CocoaTouch" variant="6xAndEarlier" propertyAccessControl="none" useAutolayout="YES" initialViewController="2">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1552" identifier="iOS"/>
|
||||
<development version="4600" identifier="xcode"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3742"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--View Controller-->
|
||||
<scene sceneID="5">
|
||||
<objects>
|
||||
<viewController id="2" customClass="DEMOViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="3">
|
||||
<rect key="frame" x="0.0" y="20" width="568" height="300"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="O8J-C0-MbI">
|
||||
<rect key="frame" x="32" y="134" width="108" height="33"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Decoder All">
|
||||
<color key="titleColor" red="0.19607843137254902" green="0.30980392156862746" blue="0.52156862745098043" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="startDecoderAll:" destination="2" eventType="touchUpInside" id="Hll-tC-Hss"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="abQ-CA-DAK">
|
||||
<rect key="frame" x="32" y="94" width="108" height="33"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="108" id="IqM-pe-lBv"/>
|
||||
<constraint firstAttribute="height" constant="32" id="cem-8H-DBq"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Select File">
|
||||
<color key="titleColor" red="0.19607843137254902" green="0.30980392156862746" blue="0.52156862745098043" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<segue destination="mcO-AN-z7a" kind="modal" identifier="segueShowResource" id="WLe-Im-zJ0"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ykW-2E-vCm">
|
||||
<rect key="frame" x="148" y="94" width="108" height="33"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Decoder">
|
||||
<color key="titleColor" red="0.19607843137254902" green="0.30980392156862746" blue="0.52156862745098043" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="startDecoderOne:" destination="2" eventType="touchUpInside" id="q2K-s3-RgD"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="File:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rsq-r5-ON5">
|
||||
<rect key="frame" x="32" y="65" width="32" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Qve-7L-UkU">
|
||||
<rect key="frame" x="72" y="56" width="26" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits"/>
|
||||
</textField>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="rsq-r5-ON5" firstAttribute="leading" secondItem="O8J-C0-MbI" secondAttribute="leading" type="user" id="29I-Xb-0ag"/>
|
||||
<constraint firstItem="abQ-CA-DAK" firstAttribute="height" secondItem="O8J-C0-MbI" secondAttribute="height" type="user" id="OR0-zx-XNf"/>
|
||||
<constraint firstItem="rsq-r5-ON5" firstAttribute="leading" secondItem="abQ-CA-DAK" secondAttribute="leading" type="user" id="W38-q7-4nd"/>
|
||||
<constraint firstItem="ykW-2E-vCm" firstAttribute="baseline" secondItem="abQ-CA-DAK" secondAttribute="baseline" type="default" id="WZe-oK-YSo"/>
|
||||
<constraint firstItem="Qve-7L-UkU" firstAttribute="leading" secondItem="rsq-r5-ON5" secondAttribute="trailing" constant="8" symbolic="YES" type="default" id="b9u-gT-BF9"/>
|
||||
<constraint firstItem="O8J-C0-MbI" firstAttribute="centerY" secondItem="3" secondAttribute="centerY" type="default" id="cPq-Zs-v04"/>
|
||||
<constraint firstItem="abQ-CA-DAK" firstAttribute="top" secondItem="Qve-7L-UkU" secondAttribute="bottom" constant="8" symbolic="YES" type="default" id="cgB-TX-pla"/>
|
||||
<constraint firstItem="abQ-CA-DAK" firstAttribute="top" secondItem="rsq-r5-ON5" secondAttribute="bottom" constant="8" symbolic="YES" type="default" id="de6-nY-107"/>
|
||||
<constraint firstItem="O8J-C0-MbI" firstAttribute="top" secondItem="abQ-CA-DAK" secondAttribute="bottom" constant="8" symbolic="YES" type="default" id="fos-tl-P2o"/>
|
||||
<constraint firstItem="abQ-CA-DAK" firstAttribute="width" secondItem="O8J-C0-MbI" secondAttribute="width" type="user" id="fxT-PS-wQq"/>
|
||||
<constraint firstItem="ykW-2E-vCm" firstAttribute="leading" secondItem="abQ-CA-DAK" secondAttribute="trailing" constant="8" symbolic="YES" type="default" id="hxv-KP-JUV"/>
|
||||
<constraint firstItem="abQ-CA-DAK" firstAttribute="height" secondItem="ykW-2E-vCm" secondAttribute="height" type="user" id="jFb-R4-no1"/>
|
||||
<constraint firstItem="rsq-r5-ON5" firstAttribute="leading" secondItem="3" secondAttribute="leading" constant="32" id="nbA-ra-IBI"/>
|
||||
<constraint firstItem="abQ-CA-DAK" firstAttribute="width" secondItem="ykW-2E-vCm" secondAttribute="width" type="user" id="rEp-US-RsU"/>
|
||||
</constraints>
|
||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
|
||||
</view>
|
||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
|
||||
<connections>
|
||||
<outlet property="currentSelectedFileTF" destination="Qve-7L-UkU" id="Aua-id-o2H"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="4" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="-383" y="79"/>
|
||||
</scene>
|
||||
<!--View Controller Show Resource - Resource List-->
|
||||
<scene sceneID="3sV-NI-ybj">
|
||||
<objects>
|
||||
<tableViewController id="MBG-12-1iR" customClass="DEMOViewControllerShowResource" sceneMemberID="viewController">
|
||||
<tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="fij-4E-cXa">
|
||||
<rect key="frame" x="0.0" y="64" width="568" height="256"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
|
||||
<prototypes>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="resourcesListCell" id="uxm-wK-Brx">
|
||||
<rect key="frame" x="0.0" y="22" width="568" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="0.0" y="0.0" width="568" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</tableViewCell>
|
||||
</prototypes>
|
||||
</tableView>
|
||||
<navigationItem key="navigationItem" title="Resource List" id="MFQ-Qp-f4f">
|
||||
<barButtonItem key="leftBarButtonItem" title="Back" id="eU8-kD-m0U">
|
||||
<connections>
|
||||
<segue destination="iD0-QE-VCb" kind="unwind" unwindAction="unwindSegueForShowResourceViewController:" id="ikx-lg-mCQ"/>
|
||||
</connections>
|
||||
</barButtonItem>
|
||||
</navigationItem>
|
||||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="fdb-Ea-RUm" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
<exit id="iD0-QE-VCb" userLabel="Exit" sceneMemberID="exit"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="556" y="79"/>
|
||||
</scene>
|
||||
<!--Navigation Controller-->
|
||||
<scene sceneID="GZm-Tn-RdS">
|
||||
<objects>
|
||||
<navigationController definesPresentationContext="YES" id="mcO-AN-z7a" sceneMemberID="viewController">
|
||||
<navigationItem key="navigationItem" id="jLO-A7-sdU"/>
|
||||
<navigationBar key="navigationBar" contentMode="scaleToFill" id="Nee-ii-B3U">
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</navigationBar>
|
||||
<connections>
|
||||
<segue destination="MBG-12-1iR" kind="relationship" relationship="rootViewController" id="pLU-XE-NvG"/>
|
||||
</connections>
|
||||
</navigationController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="hNx-Nt-9ig" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="22" y="79"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||
<simulatedStatusBarMetrics key="statusBar"/>
|
||||
<simulatedOrientationMetrics key="orientation"/>
|
||||
<simulatedScreenMetrics key="destination" type="retina4"/>
|
||||
</simulatedMetricsContainer>
|
||||
</document>
|
@ -1,124 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#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;
|
||||
}
|
||||
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]));
|
||||
}
|
||||
}
|
@ -1,536 +0,0 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
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 */; };
|
||||
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 */; };
|
||||
4CE4468D18BC5EAB0017DF25 /* decode_mb_aux.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466A18BC5EAA0017DF25 /* decode_mb_aux.cpp */; };
|
||||
4CE4468E18BC5EAB0017DF25 /* decode_slice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466B18BC5EAA0017DF25 /* decode_slice.cpp */; };
|
||||
4CE4468F18BC5EAB0017DF25 /* decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466C18BC5EAA0017DF25 /* decoder.cpp */; };
|
||||
4CE4469018BC5EAB0017DF25 /* decoder_core.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466D18BC5EAA0017DF25 /* decoder_core.cpp */; };
|
||||
4CE4469118BC5EAB0017DF25 /* decoder_data_tables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4466E18BC5EAA0017DF25 /* decoder_data_tables.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 */; };
|
||||
4CE4469818BC5EAB0017DF25 /* memmgr_nal_unit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467518BC5EAA0017DF25 /* memmgr_nal_unit.cpp */; };
|
||||
4CE4469918BC5EAB0017DF25 /* mv_pred.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467618BC5EAA0017DF25 /* mv_pred.cpp */; };
|
||||
4CE4469A18BC5EAB0017DF25 /* parse_mb_syn_cavlc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467718BC5EAA0017DF25 /* parse_mb_syn_cavlc.cpp */; };
|
||||
4CE4469B18BC5EAB0017DF25 /* pic_queue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467818BC5EAA0017DF25 /* pic_queue.cpp */; };
|
||||
4CE4469C18BC5EAB0017DF25 /* rec_mb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4467918BC5EAA0017DF25 /* rec_mb.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 */; };
|
||||
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 PBXCopyFilesBuildPhase section */
|
||||
4CE4427718B6FC360017DF25 /* CopyFiles */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "include/$(PRODUCT_NAME)";
|
||||
dstSubfolderSpec = 16;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* 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; };
|
||||
4CE4428D18B6FC360017DF25 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
|
||||
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>"; };
|
||||
4CE4464818BC5EAA0017DF25 /* deblocking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = deblocking.h; sourceTree = "<group>"; };
|
||||
4CE4464918BC5EAA0017DF25 /* dec_frame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dec_frame.h; sourceTree = "<group>"; };
|
||||
4CE4464A18BC5EAA0017DF25 /* dec_golomb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dec_golomb.h; sourceTree = "<group>"; };
|
||||
4CE4464B18BC5EAA0017DF25 /* decode_mb_aux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decode_mb_aux.h; sourceTree = "<group>"; };
|
||||
4CE4464C18BC5EAA0017DF25 /* decode_slice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decode_slice.h; sourceTree = "<group>"; };
|
||||
4CE4464D18BC5EAA0017DF25 /* decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoder.h; sourceTree = "<group>"; };
|
||||
4CE4464E18BC5EAA0017DF25 /* decoder_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoder_context.h; sourceTree = "<group>"; };
|
||||
4CE4464F18BC5EAA0017DF25 /* decoder_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoder_core.h; sourceTree = "<group>"; };
|
||||
4CE4465018BC5EAA0017DF25 /* error_code.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = error_code.h; sourceTree = "<group>"; };
|
||||
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>"; };
|
||||
4CE4465518BC5EAA0017DF25 /* mb_cache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mb_cache.h; sourceTree = "<group>"; };
|
||||
4CE4465818BC5EAA0017DF25 /* memmgr_nal_unit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memmgr_nal_unit.h; sourceTree = "<group>"; };
|
||||
4CE4465918BC5EAA0017DF25 /* mv_pred.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mv_pred.h; sourceTree = "<group>"; };
|
||||
4CE4465A18BC5EAA0017DF25 /* nal_prefix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nal_prefix.h; sourceTree = "<group>"; };
|
||||
4CE4465B18BC5EAA0017DF25 /* nalu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nalu.h; sourceTree = "<group>"; };
|
||||
4CE4465C18BC5EAA0017DF25 /* parameter_sets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parameter_sets.h; sourceTree = "<group>"; };
|
||||
4CE4465D18BC5EAA0017DF25 /* parse_mb_syn_cavlc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parse_mb_syn_cavlc.h; sourceTree = "<group>"; };
|
||||
4CE4465E18BC5EAA0017DF25 /* pic_queue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pic_queue.h; sourceTree = "<group>"; };
|
||||
4CE4465F18BC5EAA0017DF25 /* picture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = picture.h; sourceTree = "<group>"; };
|
||||
4CE4466018BC5EAA0017DF25 /* rec_mb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rec_mb.h; sourceTree = "<group>"; };
|
||||
4CE4466118BC5EAA0017DF25 /* slice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slice.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>"; };
|
||||
4CE4466718BC5EAA0017DF25 /* au_parser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = au_parser.cpp; sourceTree = "<group>"; usesTabs = 0; };
|
||||
4CE4466818BC5EAA0017DF25 /* bit_stream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bit_stream.cpp; sourceTree = "<group>"; usesTabs = 0; };
|
||||
4CE4466918BC5EAA0017DF25 /* deblocking.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = deblocking.cpp; sourceTree = "<group>"; tabWidth = 2; };
|
||||
4CE4466A18BC5EAA0017DF25 /* decode_mb_aux.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decode_mb_aux.cpp; sourceTree = "<group>"; };
|
||||
4CE4466B18BC5EAA0017DF25 /* decode_slice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decode_slice.cpp; sourceTree = "<group>"; usesTabs = 0; };
|
||||
4CE4466C18BC5EAA0017DF25 /* decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoder.cpp; sourceTree = "<group>"; tabWidth = 4; usesTabs = 0; };
|
||||
4CE4466D18BC5EAA0017DF25 /* decoder_core.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoder_core.cpp; sourceTree = "<group>"; };
|
||||
4CE4466E18BC5EAA0017DF25 /* decoder_data_tables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoder_data_tables.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>"; };
|
||||
4CE4467518BC5EAA0017DF25 /* memmgr_nal_unit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memmgr_nal_unit.cpp; sourceTree = "<group>"; };
|
||||
4CE4467618BC5EAA0017DF25 /* mv_pred.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mv_pred.cpp; sourceTree = "<group>"; };
|
||||
4CE4467718BC5EAA0017DF25 /* parse_mb_syn_cavlc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parse_mb_syn_cavlc.cpp; sourceTree = "<group>"; };
|
||||
4CE4467818BC5EAA0017DF25 /* pic_queue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pic_queue.cpp; sourceTree = "<group>"; };
|
||||
4CE4467918BC5EAA0017DF25 /* rec_mb.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rec_mb.cpp; 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>"; };
|
||||
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>"; };
|
||||
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 */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
4CE4427618B6FC360017DF25 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
4CE4427D18B6FC360017DF25 /* 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 */,
|
||||
4CE4427B18B6FC360017DF25 /* Frameworks */,
|
||||
4CE4427A18B6FC360017DF25 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE4427A18B6FC360017DF25 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE4427918B6FC360017DF25 /* libwelsdec.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE4427B18B6FC360017DF25 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE4427C18B6FC360017DF25 /* Foundation.framework */,
|
||||
4CE4428D18B6FC360017DF25 /* UIKit.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE4463E18BC5EAA0017DF25 /* decoder */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE4463F18BC5EAA0017DF25 /* core */,
|
||||
4CE4467B18BC5EAA0017DF25 /* plus */,
|
||||
);
|
||||
name = decoder;
|
||||
path = ../../../../decoder;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE4463F18BC5EAA0017DF25 /* core */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CBC1B7F194AC4A400214D9E /* arm64 */,
|
||||
4CE447A518BC6BE90017DF25 /* arm */,
|
||||
4CE4464418BC5EAA0017DF25 /* inc */,
|
||||
4CE4466618BC5EAA0017DF25 /* src */,
|
||||
);
|
||||
path = core;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE4464418BC5EAA0017DF25 /* inc */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6A3E814519D7A40D00C19C1F /* parse_mb_syn_cabac.h */,
|
||||
6A3E814019D79AD900C19C1F /* cabac_decoder.h */,
|
||||
9AED665A1946A21D009A3567 /* utils.h */,
|
||||
F0B204FA18FD23CF005DA23F /* error_concealment.h */,
|
||||
4CE4464618BC5EAA0017DF25 /* au_parser.h */,
|
||||
4CE4464718BC5EAA0017DF25 /* bit_stream.h */,
|
||||
4CE4464818BC5EAA0017DF25 /* deblocking.h */,
|
||||
4CE4464918BC5EAA0017DF25 /* dec_frame.h */,
|
||||
4CE4464A18BC5EAA0017DF25 /* dec_golomb.h */,
|
||||
4CE4464B18BC5EAA0017DF25 /* decode_mb_aux.h */,
|
||||
4CE4464C18BC5EAA0017DF25 /* decode_slice.h */,
|
||||
4CE4464D18BC5EAA0017DF25 /* decoder.h */,
|
||||
4CE4464E18BC5EAA0017DF25 /* decoder_context.h */,
|
||||
4CE4464F18BC5EAA0017DF25 /* decoder_core.h */,
|
||||
4CE4465018BC5EAA0017DF25 /* error_code.h */,
|
||||
4CE4465218BC5EAA0017DF25 /* fmo.h */,
|
||||
4CE4465318BC5EAA0017DF25 /* get_intra_predictor.h */,
|
||||
4CE4465418BC5EAA0017DF25 /* manage_dec_ref.h */,
|
||||
4CE4465518BC5EAA0017DF25 /* mb_cache.h */,
|
||||
4CE4465818BC5EAA0017DF25 /* memmgr_nal_unit.h */,
|
||||
4CE4465918BC5EAA0017DF25 /* mv_pred.h */,
|
||||
4CE4465A18BC5EAA0017DF25 /* nal_prefix.h */,
|
||||
4CE4465B18BC5EAA0017DF25 /* nalu.h */,
|
||||
4CE4465C18BC5EAA0017DF25 /* parameter_sets.h */,
|
||||
4CE4465D18BC5EAA0017DF25 /* parse_mb_syn_cavlc.h */,
|
||||
4CE4465E18BC5EAA0017DF25 /* pic_queue.h */,
|
||||
4CE4465F18BC5EAA0017DF25 /* picture.h */,
|
||||
4CE4466018BC5EAA0017DF25 /* rec_mb.h */,
|
||||
4CE4466118BC5EAA0017DF25 /* slice.h */,
|
||||
4CE4466318BC5EAA0017DF25 /* vlc_decoder.h */,
|
||||
4CE4466418BC5EAA0017DF25 /* wels_common_basis.h */,
|
||||
4CE4466518BC5EAA0017DF25 /* wels_const.h */,
|
||||
);
|
||||
path = inc;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE4466618BC5EAA0017DF25 /* src */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6A3E814319D7A40600C19C1F /* parse_mb_syn_cabac.cpp */,
|
||||
6A3E814119D79AE900C19C1F /* cabac_decoder.cpp */,
|
||||
9AED66581946A203009A3567 /* utils.cpp */,
|
||||
F0B204FB18FD23D8005DA23F /* error_concealment.cpp */,
|
||||
4CE4466718BC5EAA0017DF25 /* au_parser.cpp */,
|
||||
4CE4466818BC5EAA0017DF25 /* bit_stream.cpp */,
|
||||
4CE4466918BC5EAA0017DF25 /* deblocking.cpp */,
|
||||
4CE4466A18BC5EAA0017DF25 /* decode_mb_aux.cpp */,
|
||||
4CE4466B18BC5EAA0017DF25 /* decode_slice.cpp */,
|
||||
4CE4466C18BC5EAA0017DF25 /* decoder.cpp */,
|
||||
4CE4466D18BC5EAA0017DF25 /* decoder_core.cpp */,
|
||||
4CE4466E18BC5EAA0017DF25 /* decoder_data_tables.cpp */,
|
||||
4CE4467018BC5EAA0017DF25 /* fmo.cpp */,
|
||||
4CE4467118BC5EAA0017DF25 /* get_intra_predictor.cpp */,
|
||||
4CE4467218BC5EAA0017DF25 /* manage_dec_ref.cpp */,
|
||||
4CE4467518BC5EAA0017DF25 /* memmgr_nal_unit.cpp */,
|
||||
4CE4467618BC5EAA0017DF25 /* mv_pred.cpp */,
|
||||
4CE4467718BC5EAA0017DF25 /* parse_mb_syn_cavlc.cpp */,
|
||||
4CE4467818BC5EAA0017DF25 /* pic_queue.cpp */,
|
||||
4CE4467918BC5EAA0017DF25 /* rec_mb.cpp */,
|
||||
);
|
||||
path = src;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE4467B18BC5EAA0017DF25 /* plus */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE4467C18BC5EAA0017DF25 /* inc */,
|
||||
4CE4468218BC5EAB0017DF25 /* src */,
|
||||
);
|
||||
path = plus;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE4467C18BC5EAA0017DF25 /* inc */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
04FE0680196FD8BE0004D7CE /* version.h */,
|
||||
9AED66571946A1EB009A3567 /* welsCodecTrace.h */,
|
||||
4CE4467E18BC5EAA0017DF25 /* welsDecoderExt.h */,
|
||||
);
|
||||
path = inc;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE4468218BC5EAB0017DF25 /* src */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9AED66551946A1DE009A3567 /* welsCodecTrace.cpp */,
|
||||
4CE4468318BC5EAB0017DF25 /* wels_dec_export.def */,
|
||||
4CE4468518BC5EAB0017DF25 /* welsDecoderExt.cpp */,
|
||||
);
|
||||
path = src;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE447A518BC6BE90017DF25 /* arm */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE447A718BC6BE90017DF25 /* block_add_neon.S */,
|
||||
4CE447A918BC6BE90017DF25 /* intra_pred_neon.S */,
|
||||
);
|
||||
path = arm;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
4CE4427818B6FC360017DF25 /* welsdec */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 4CE4429C18B6FC360017DF25 /* Build configuration list for PBXNativeTarget "welsdec" */;
|
||||
buildPhases = (
|
||||
4CE4427518B6FC360017DF25 /* Sources */,
|
||||
4CE4427618B6FC360017DF25 /* Frameworks */,
|
||||
4CE4427718B6FC360017DF25 /* CopyFiles */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = welsdec;
|
||||
productName = welsdec;
|
||||
productReference = 4CE4427918B6FC360017DF25 /* libwelsdec.a */;
|
||||
productType = "com.apple.product-type.library.static";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
4CE4427118B6FC360017DF25 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0510;
|
||||
ORGANIZATIONNAME = video;
|
||||
};
|
||||
buildConfigurationList = 4CE4427418B6FC360017DF25 /* Build configuration list for PBXProject "welsdec" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = 4CE4427018B6FC360017DF25;
|
||||
productRefGroup = 4CE4427A18B6FC360017DF25 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
4CE4427818B6FC360017DF25 /* welsdec */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject 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 */,
|
||||
4CE4469118BC5EAB0017DF25 /* decoder_data_tables.cpp in Sources */,
|
||||
4CE4469518BC5EAB0017DF25 /* manage_dec_ref.cpp in Sources */,
|
||||
4CE4468A18BC5EAB0017DF25 /* au_parser.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 */,
|
||||
4CE447AE18BC6BE90017DF25 /* intra_pred_neon.S in Sources */,
|
||||
4CE4469C18BC5EAB0017DF25 /* rec_mb.cpp in Sources */,
|
||||
4CE4468B18BC5EAB0017DF25 /* bit_stream.cpp in Sources */,
|
||||
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;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
4CE4429A18B6FC360017DF25 /* 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;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
4CE4429B18B6FC360017DF25 /* 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;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||
SDKROOT = iphoneos;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
4CE4429D18B6FC360017DF25 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
|
||||
CLANG_CXX_LIBRARY = "compiler-default";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
DSTROOT = /tmp/welsdec.dst;
|
||||
GCC_OPTIMIZATION_LEVEL = 3;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "";
|
||||
"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)/../../../../common/inc",
|
||||
"$(SRCROOT)/../../../../api/svc",
|
||||
"$(SRCROOT)/../../../../common/arm",
|
||||
"$(SRCROOT)/../../../../common/arm64",
|
||||
);
|
||||
OTHER_LDFLAGS = "-ObjC";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
4CE4429E18B6FC360017DF25 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
|
||||
CLANG_CXX_LIBRARY = "compiler-default";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
DSTROOT = /tmp/welsdec.dst;
|
||||
"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)/../../../../common/inc",
|
||||
"$(SRCROOT)/../../../../api/svc",
|
||||
"$(SRCROOT)/../../../../common/arm",
|
||||
"$(SRCROOT)/../../../../common/arm64",
|
||||
);
|
||||
OTHER_LDFLAGS = "-ObjC";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
4CE4427418B6FC360017DF25 /* Build configuration list for PBXProject "welsdec" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
4CE4429A18B6FC360017DF25 /* Debug */,
|
||||
4CE4429B18B6FC360017DF25 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
4CE4429C18B6FC360017DF25 /* Build configuration list for PBXNativeTarget "welsdec" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
4CE4429D18B6FC360017DF25 /* Debug */,
|
||||
4CE4429E18B6FC360017DF25 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 4CE4427118B6FC360017DF25 /* Project object */;
|
||||
}
|
@ -1,531 +0,0 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
544F0DC4196F86F50092FC6F /* libprocessing.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 544F0DC3196F86EF0092FC6F /* libprocessing.a */; };
|
||||
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 */; };
|
||||
FAFB4FA918BC8DD700315438 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAFB4FA818BC8DD700315438 /* Foundation.framework */; };
|
||||
FAFB4FAB18BC8DD700315438 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAFB4FAA18BC8DD700315438 /* CoreGraphics.framework */; };
|
||||
FAFB4FAD18BC8DD700315438 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAFB4FAC18BC8DD700315438 /* UIKit.framework */; };
|
||||
FAFB4FB318BC8DD700315438 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = FAFB4FB118BC8DD700315438 /* InfoPlist.strings */; };
|
||||
FAFB4FB518BC8DD700315438 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = FAFB4FB418BC8DD700315438 /* main.m */; };
|
||||
FAFB4FB918BC8DD700315438 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FAFB4FB818BC8DD700315438 /* AppDelegate.m */; };
|
||||
FAFB4FBC18BC8DD700315438 /* Main_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FAFB4FBA18BC8DD700315438 /* Main_iPhone.storyboard */; };
|
||||
FAFB4FBF18BC8DD700315438 /* Main_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FAFB4FBD18BC8DD700315438 /* Main_iPad.storyboard */; };
|
||||
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 */; };
|
||||
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 */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 4CE4431118B6FFA00017DF25;
|
||||
remoteInfo = welsenc;
|
||||
};
|
||||
FAFB4FF018BC8E8600315438 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 4CE443D518B722CD0017DF25;
|
||||
remoteInfo = common;
|
||||
};
|
||||
FAFB4FFD18BC8EAA00315438 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 4CE443D418B722CD0017DF25;
|
||||
remoteInfo = common;
|
||||
};
|
||||
FAFB500118BC8EB200315438 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 4CE4431018B6FFA00017DF25;
|
||||
remoteInfo = welsenc;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
544F0DB9196F85F20092FC6F /* processing.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = processing.xcodeproj; path = ../../processing/processing.xcodeproj; 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>"; };
|
||||
FAFB4FA518BC8DD700315438 /* encDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = encDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
FAFB4FA818BC8DD700315438 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
FAFB4FAA18BC8DD700315438 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
|
||||
FAFB4FAC18BC8DD700315438 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
FAFB4FB018BC8DD700315438 /* encDemo-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "encDemo-Info.plist"; sourceTree = "<group>"; };
|
||||
FAFB4FB218BC8DD700315438 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
FAFB4FB418BC8DD700315438 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
FAFB4FB618BC8DD700315438 /* encDemo-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "encDemo-Prefix.pch"; sourceTree = "<group>"; };
|
||||
FAFB4FB718BC8DD700315438 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||
FAFB4FB818BC8DD700315438 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||
FAFB4FBB18BC8DD700315438 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main_iPhone.storyboard; sourceTree = "<group>"; };
|
||||
FAFB4FBE18BC8DD700315438 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main_iPad.storyboard; sourceTree = "<group>"; };
|
||||
FAFB4FC018BC8DD700315438 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
|
||||
FAFB4FC118BC8DD700315438 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
|
||||
FAFB4FC318BC8DD700315438 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
||||
FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = welsenc.xcodeproj; path = ../welsenc/welsenc.xcodeproj; sourceTree = "<group>"; };
|
||||
FAFB4FEB18BC8E8600315438 /* common.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = common.xcodeproj; path = ../../common/common.xcodeproj; sourceTree = "<group>"; };
|
||||
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>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
FAFB4FA218BC8DD700315438 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
544F0DC4196F86F50092FC6F /* libprocessing.a in Frameworks */,
|
||||
FAFB500518BC8F1500315438 /* libwelsenc.a in Frameworks */,
|
||||
FAFB500318BC8F0D00315438 /* libcommon.a in Frameworks */,
|
||||
FAFB4FAB18BC8DD700315438 /* CoreGraphics.framework in Frameworks */,
|
||||
FAFB4FAD18BC8DD700315438 /* UIKit.framework in Frameworks */,
|
||||
FAFB4FA918BC8DD700315438 /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
544F0DBA196F85F20092FC6F /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
544F0DC3196F86EF0092FC6F /* libprocessing.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FAFB4F9C18BC8DD700315438 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
FAFB4FAE18BC8DD700315438 /* encDemo */,
|
||||
FAFB4FA718BC8DD700315438 /* Frameworks */,
|
||||
FAFB4FA618BC8DD700315438 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FAFB4FA618BC8DD700315438 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
FAFB4FA518BC8DD700315438 /* encDemo.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FAFB4FA718BC8DD700315438 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
544F0DB9196F85F20092FC6F /* processing.xcodeproj */,
|
||||
FAFB4FEB18BC8E8600315438 /* common.xcodeproj */,
|
||||
FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */,
|
||||
FAFB4FA818BC8DD700315438 /* Foundation.framework */,
|
||||
FAFB4FAA18BC8DD700315438 /* CoreGraphics.framework */,
|
||||
FAFB4FAC18BC8DD700315438 /* UIKit.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FAFB4FAE18BC8DD700315438 /* encDemo */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
FAFB500618BC8F2800315438 /* console */,
|
||||
FAFB4FB718BC8DD700315438 /* AppDelegate.h */,
|
||||
FAFB4FB818BC8DD700315438 /* AppDelegate.m */,
|
||||
FAFB4FBA18BC8DD700315438 /* Main_iPhone.storyboard */,
|
||||
FAFB4FBD18BC8DD700315438 /* Main_iPad.storyboard */,
|
||||
FAFB4FC018BC8DD700315438 /* ViewController.h */,
|
||||
FAFB4FC118BC8DD700315438 /* ViewController.m */,
|
||||
FAFB4FC318BC8DD700315438 /* Images.xcassets */,
|
||||
FAFB4FAF18BC8DD700315438 /* Supporting Files */,
|
||||
);
|
||||
path = encDemo;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FAFB4FAF18BC8DD700315438 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
FAA3D9DC18BD8A5600BCD52D /* layer2.cfg */,
|
||||
FAA3D9D718BD777100BCD52D /* CiscoVT2people_320x192_12fps.yuv */,
|
||||
FAA3D9D218BD729500BCD52D /* welsenc_ios.cfg */,
|
||||
FAFB4FB018BC8DD700315438 /* encDemo-Info.plist */,
|
||||
FAFB4FB118BC8DD700315438 /* InfoPlist.strings */,
|
||||
FAFB4FB418BC8DD700315438 /* main.m */,
|
||||
FAFB4FB618BC8DD700315438 /* encDemo-Prefix.pch */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FAFB4FE318BC8E7C00315438 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
FAFB4FE818BC8E7D00315438 /* libwelsenc.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FAFB4FEC18BC8E8600315438 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
FAFB4FF118BC8E8600315438 /* libcommon.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FAFB500618BC8F2800315438 /* console */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
FAFB500818BC8F4E00315438 /* inc */,
|
||||
FAFB500718BC8F4500315438 /* src */,
|
||||
);
|
||||
name = console;
|
||||
path = ../../../../../console/enc;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FAFB500718BC8F4500315438 /* src */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
FAFB502E18BCA50900315438 /* read_config.cpp */,
|
||||
FAFB500A18BC8F6C00315438 /* welsenc.cpp */,
|
||||
);
|
||||
path = src;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FAFB500818BC8F4E00315438 /* inc */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
FAFB500918BC8F6600315438 /* read_config.h */,
|
||||
);
|
||||
name = inc;
|
||||
path = ../common/inc;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
FAFB4FA418BC8DD700315438 /* encDemo */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = FAFB4FDA18BC8DD700315438 /* Build configuration list for PBXNativeTarget "encDemo" */;
|
||||
buildPhases = (
|
||||
FAFB4FA118BC8DD700315438 /* Sources */,
|
||||
FAFB4FA218BC8DD700315438 /* Frameworks */,
|
||||
FAFB4FA318BC8DD700315438 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
544F0DC0196F86EF0092FC6F /* PBXTargetDependency */,
|
||||
FAFB500218BC8EB200315438 /* PBXTargetDependency */,
|
||||
FAFB4FFE18BC8EAA00315438 /* PBXTargetDependency */,
|
||||
);
|
||||
name = encDemo;
|
||||
productName = encDemo;
|
||||
productReference = FAFB4FA518BC8DD700315438 /* encDemo.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
FAFB4F9D18BC8DD700315438 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0510;
|
||||
ORGANIZATIONNAME = video;
|
||||
};
|
||||
buildConfigurationList = FAFB4FA018BC8DD700315438 /* Build configuration list for PBXProject "encDemo" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
Base,
|
||||
);
|
||||
mainGroup = FAFB4F9C18BC8DD700315438;
|
||||
productRefGroup = FAFB4FA618BC8DD700315438 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectReferences = (
|
||||
{
|
||||
ProductGroup = FAFB4FEC18BC8E8600315438 /* Products */;
|
||||
ProjectRef = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 544F0DBA196F85F20092FC6F /* Products */;
|
||||
ProjectRef = 544F0DB9196F85F20092FC6F /* processing.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = FAFB4FE318BC8E7C00315438 /* Products */;
|
||||
ProjectRef = FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */;
|
||||
},
|
||||
);
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
FAFB4FA418BC8DD700315438 /* encDemo */,
|
||||
);
|
||||
};
|
||||
/* 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;
|
||||
path = libwelsenc.a;
|
||||
remoteRef = FAFB4FE718BC8E7D00315438 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
FAFB4FF118BC8E8600315438 /* libcommon.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libcommon.a;
|
||||
remoteRef = FAFB4FF018BC8E8600315438 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
/* End PBXReferenceProxy section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
FAFB4FA318BC8DD700315438 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
FAFB4FBF18BC8DD700315438 /* Main_iPad.storyboard in Resources */,
|
||||
FAA3D9D318BD729500BCD52D /* welsenc_ios.cfg in Resources */,
|
||||
FAFB4FC418BC8DD700315438 /* Images.xcassets in Resources */,
|
||||
FAFB4FBC18BC8DD700315438 /* Main_iPhone.storyboard in Resources */,
|
||||
FAA3D9DD18BD8A5600BCD52D /* layer2.cfg in Resources */,
|
||||
FAA3D9D818BD777100BCD52D /* CiscoVT2people_320x192_12fps.yuv in Resources */,
|
||||
FAFB4FB318BC8DD700315438 /* InfoPlist.strings in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
FAFB4FA118BC8DD700315438 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
FAFB4FC218BC8DD700315438 /* ViewController.m in Sources */,
|
||||
FAFB502F18BCA50900315438 /* read_config.cpp in Sources */,
|
||||
FAFB500B18BC8F6C00315438 /* welsenc.cpp in Sources */,
|
||||
FAFB4FB918BC8DD700315438 /* AppDelegate.m in Sources */,
|
||||
FAFB4FB518BC8DD700315438 /* main.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
544F0DC0196F86EF0092FC6F /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = processing;
|
||||
targetProxy = 544F0DBF196F86EF0092FC6F /* PBXContainerItemProxy */;
|
||||
};
|
||||
FAFB4FFE18BC8EAA00315438 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = common;
|
||||
targetProxy = FAFB4FFD18BC8EAA00315438 /* PBXContainerItemProxy */;
|
||||
};
|
||||
FAFB500218BC8EB200315438 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = welsenc;
|
||||
targetProxy = FAFB500118BC8EB200315438 /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
FAFB4FB118BC8DD700315438 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
FAFB4FB218BC8DD700315438 /* en */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FAFB4FBA18BC8DD700315438 /* Main_iPhone.storyboard */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
FAFB4FBB18BC8DD700315438 /* Base */,
|
||||
);
|
||||
name = Main_iPhone.storyboard;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FAFB4FBD18BC8DD700315438 /* Main_iPad.storyboard */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
FAFB4FBE18BC8DD700315438 /* Base */,
|
||||
);
|
||||
name = Main_iPad.storyboard;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
FAFB4FD818BC8DD700315438 /* 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;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
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;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
FAFB4FD918BC8DD700315438 /* 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;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
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;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
FAFB4FDB18BC8DD700315438 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/../../../../api/svc\"",
|
||||
"\"$(SRCROOT)/../../../../common/inc\"",
|
||||
"\"$(SRCROOT)/../../../../processing/interface\"",
|
||||
"\"$(SRCROOT)/../../../../encoder/core/inc\"",
|
||||
);
|
||||
INFOPLIST_FILE = "encDemo/encDemo-Info.plist";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
FAFB4FDC18BC8DD700315438 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/../../../../api/svc\"",
|
||||
"\"$(SRCROOT)/../../../../common/inc\"",
|
||||
"\"$(SRCROOT)/../../../../processing/interface\"",
|
||||
"\"$(SRCROOT)/../../../../encoder/core/inc\"",
|
||||
);
|
||||
INFOPLIST_FILE = "encDemo/encDemo-Info.plist";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
FAFB4FA018BC8DD700315438 /* Build configuration list for PBXProject "encDemo" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
FAFB4FD818BC8DD700315438 /* Debug */,
|
||||
FAFB4FD918BC8DD700315438 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
FAFB4FDA18BC8DD700315438 /* Build configuration list for PBXNativeTarget "encDemo" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
FAFB4FDB18BC8DD700315438 /* Debug */,
|
||||
FAFB4FDC18BC8DD700315438 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = FAFB4F9D18BC8DD700315438 /* Project object */;
|
||||
}
|
@ -1,39 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface AppDelegate : UIResponder <UIApplicationDelegate>
|
||||
|
||||
@property (strong, nonatomic) UIWindow* window;
|
||||
|
||||
@end
|
@ -1,63 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
#import "AppDelegate.h"
|
||||
|
||||
@implementation AppDelegate
|
||||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)applicationWillResignActive:(UIApplication *)application
|
||||
{
|
||||
}
|
||||
|
||||
- (void)applicationDidEnterBackground:(UIApplication *)application
|
||||
{
|
||||
}
|
||||
|
||||
- (void)applicationWillEnterForeground:(UIApplication *)application
|
||||
{
|
||||
}
|
||||
|
||||
- (void)applicationDidBecomeActive:(UIApplication *)application
|
||||
{
|
||||
}
|
||||
|
||||
- (void)applicationWillTerminate:(UIApplication *)application
|
||||
{
|
||||
}
|
||||
|
||||
@end
|
@ -1,52 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="4510" systemVersion="12F45" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" initialViewController="BYZ-38-t0r">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3742"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--View Controller-->
|
||||
<scene sceneID="tne-QT-ifu">
|
||||
<objects>
|
||||
<viewController id="BYZ-38-t0r" customClass="ViewController" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="AP8-8w-0De"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="c8g-3k-wFn"/>
|
||||
</layoutGuides>
|
||||
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zxO-df-3Nm">
|
||||
<rect key="frame" x="205" y="483" width="142" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<state key="normal" title="Simple Encoder Test">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="buttonPressed:" destination="BYZ-38-t0r" eventType="touchUpInside" id="pzf-mY-PCn"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Status:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Mpw-Vf-v58">
|
||||
<rect key="frame" x="205" y="401" width="221" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="statusText" destination="Mpw-Vf-v58" id="BbS-da-1lz"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
</scene>
|
||||
</scenes>
|
||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||
<simulatedStatusBarMetrics key="statusBar" statusBarStyle="blackOpaque"/>
|
||||
<simulatedOrientationMetrics key="orientation"/>
|
||||
<simulatedScreenMetrics key="destination"/>
|
||||
</simulatedMetricsContainer>
|
||||
</document>
|
@ -1,52 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="4510" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="vXZ-lx-hvc">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3742"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--View Controller-->
|
||||
<scene sceneID="ufC-wZ-h7g">
|
||||
<objects>
|
||||
<viewController id="vXZ-lx-hvc" customClass="ViewController" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="DZT-bO-vZS"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="mJc-f0-9sv"/>
|
||||
</layoutGuides>
|
||||
<view key="view" contentMode="scaleToFill" id="kh9-bI-dsS">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Status:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HvX-56-M19">
|
||||
<rect key="frame" x="93" y="336" width="55" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="SXI-db-Dpk">
|
||||
<rect key="frame" x="93" y="379" width="136" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<state key="normal" title="Simple Encode Test">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="buttonPressed:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="1uY-7J-edO"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="statusText" destination="HvX-56-M19" id="KxK-QZ-DTo"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="x5A-6p-PRh" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
</scene>
|
||||
</scenes>
|
||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||
<simulatedStatusBarMetrics key="statusBar"/>
|
||||
<simulatedOrientationMetrics key="orientation"/>
|
||||
<simulatedScreenMetrics key="destination" type="retina4"/>
|
||||
</simulatedMetricsContainer>
|
||||
</document>
|
@ -1,53 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "40x40",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "29x29",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "29x29",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "40x40",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "40x40",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "76x76",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "76x76",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
@ -1,51 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"orientation" : "portrait",
|
||||
"idiom" : "iphone",
|
||||
"extent" : "full-screen",
|
||||
"minimum-system-version" : "7.0",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"orientation" : "portrait",
|
||||
"idiom" : "iphone",
|
||||
"subtype" : "retina4",
|
||||
"extent" : "full-screen",
|
||||
"minimum-system-version" : "7.0",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"orientation" : "portrait",
|
||||
"idiom" : "ipad",
|
||||
"extent" : "full-screen",
|
||||
"minimum-system-version" : "7.0",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"orientation" : "landscape",
|
||||
"idiom" : "ipad",
|
||||
"extent" : "full-screen",
|
||||
"minimum-system-version" : "7.0",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"orientation" : "portrait",
|
||||
"idiom" : "ipad",
|
||||
"extent" : "full-screen",
|
||||
"minimum-system-version" : "7.0",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"orientation" : "landscape",
|
||||
"idiom" : "ipad",
|
||||
"extent" : "full-screen",
|
||||
"minimum-system-version" : "7.0",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
@ -1,44 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface ViewController : UIViewController {
|
||||
UILabel* statusText_;
|
||||
}
|
||||
|
||||
@property (retain, nonatomic) IBOutlet UILabel* statusText;
|
||||
|
||||
- (IBAction) buttonPressed: (id)sender;
|
||||
|
||||
|
||||
@end
|
@ -1,89 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
extern int EncMain(int argc, char **argv);
|
||||
|
||||
#import "ViewController.h"
|
||||
|
||||
|
||||
@interface ViewController ()
|
||||
|
||||
@end
|
||||
|
||||
@implementation ViewController
|
||||
@synthesize statusText=statusText_;
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
statusText_.text = @"Status: Ready for Go";
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning
|
||||
{
|
||||
[super didReceiveMemoryWarning];
|
||||
}
|
||||
|
||||
- (IBAction) buttonPressed:(id)sender
|
||||
{
|
||||
NSBundle * bundle = [NSBundle mainBundle];
|
||||
NSString * encCfg = [bundle pathForResource:@"welsenc_ios" ofType:@"cfg"];
|
||||
NSString * dlayerCfg = [bundle pathForResource:@"layer2" ofType:@"cfg"];
|
||||
NSString * yuvFile = [bundle pathForResource:@"CiscoVT2people_320x192_12fps" ofType:@"yuv"];
|
||||
NSString * bsfile = [NSString stringWithFormat:@"%@/%@", [self getPathForWrite], @"test.264"];
|
||||
NSLog(@"WELS_INFO: enc config file: %@, yuv file %@", encCfg, yuvFile);
|
||||
const char * argv[] = {
|
||||
"dummy",
|
||||
[encCfg UTF8String],
|
||||
"-org",
|
||||
[yuvFile UTF8String],
|
||||
"-bf",
|
||||
[bsfile UTF8String],
|
||||
"-numl",
|
||||
"1",
|
||||
"-lconfig",
|
||||
"0",
|
||||
[dlayerCfg UTF8String],
|
||||
};
|
||||
NSLog(@"WELS_INFO: enc config file: %@", encCfg);
|
||||
EncMain(sizeof(argv)/sizeof(argv[0]), (char**)&argv[0]);
|
||||
statusText_.text = @"Status: Test Over";
|
||||
}
|
||||
|
||||
- (NSString*) getPathForWrite {
|
||||
NSArray * pathes = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
|
||||
NSString * documentDirectory = [pathes objectAtIndex:0];
|
||||
return documentDirectory;
|
||||
}
|
||||
|
||||
|
||||
@end
|
@ -1,2 +0,0 @@
|
||||
/* Localized versions of Info.plist keys */
|
||||
|
@ -1,49 +0,0 @@
|
||||
<?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>CFBundleDisplayName</key>
|
||||
<string>${PRODUCT_NAME}</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>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
<string>Main_iPhone</string>
|
||||
<key>UIMainStoryboardFile~ipad</key>
|
||||
<string>Main_iPad</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
@ -1,175 +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.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#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;
|
||||
}
|
||||
}
|
||||
}
|
||||
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]));
|
||||
}
|
||||
}
|
@ -1,657 +0,0 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
0D6970BE1CA5BCFB001D88F8 /* paraset_strategy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0D6970BC1CA5BCFB001D88F8 /* paraset_strategy.cpp */; };
|
||||
0DD32A961B4A478B009181A1 /* wels_task_base.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0DD32A951B4A478B009181A1 /* wels_task_base.cpp */; };
|
||||
0DD32A991B4A4997009181A1 /* wels_task_management.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0DD32A981B4A4997009181A1 /* wels_task_management.cpp */; };
|
||||
0DD32A9C1B4A4E8F009181A1 /* wels_task_encoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0DD32A9B1B4A4E8F009181A1 /* wels_task_encoder.cpp */; };
|
||||
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 */; };
|
||||
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 */; };
|
||||
4CE4471118BC605C0017DF25 /* encode_mb_aux.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E018BC605C0017DF25 /* encode_mb_aux.cpp */; };
|
||||
4CE4471218BC605C0017DF25 /* encoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E118BC605C0017DF25 /* encoder.cpp */; };
|
||||
4CE4471318BC605C0017DF25 /* encoder_data_tables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E218BC605C0017DF25 /* encoder_data_tables.cpp */; };
|
||||
4CE4471418BC605C0017DF25 /* encoder_ext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E318BC605C0017DF25 /* encoder_ext.cpp */; };
|
||||
4CE4471618BC605C0017DF25 /* get_intra_predictor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E518BC605C0017DF25 /* get_intra_predictor.cpp */; };
|
||||
4CE4471818BC605C0017DF25 /* md.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E718BC605C0017DF25 /* md.cpp */; };
|
||||
4CE4471A18BC605C0017DF25 /* mv_pred.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446E918BC605C0017DF25 /* mv_pred.cpp */; };
|
||||
4CE4471B18BC605C0017DF25 /* nal_encap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446EA18BC605C0017DF25 /* nal_encap.cpp */; };
|
||||
4CE4471C18BC605C0017DF25 /* picture_handle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446EB18BC605C0017DF25 /* picture_handle.cpp */; };
|
||||
4CE4471E18BC605C0017DF25 /* ratectl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446ED18BC605C0017DF25 /* ratectl.cpp */; };
|
||||
4CE4471F18BC605C0017DF25 /* ref_list_mgr_svc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446EE18BC605C0017DF25 /* ref_list_mgr_svc.cpp */; };
|
||||
4CE4472018BC605C0017DF25 /* sample.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446EF18BC605C0017DF25 /* sample.cpp */; };
|
||||
4CE4472118BC605C0017DF25 /* set_mb_syn_cavlc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F018BC605C0017DF25 /* set_mb_syn_cavlc.cpp */; };
|
||||
4CE4472218BC605C0017DF25 /* slice_multi_threading.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F118BC605C0017DF25 /* slice_multi_threading.cpp */; };
|
||||
4CE4472318BC605C0017DF25 /* svc_base_layer_md.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F218BC605C0017DF25 /* svc_base_layer_md.cpp */; };
|
||||
4CE4472418BC605C0017DF25 /* svc_enc_slice_segment.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F318BC605C0017DF25 /* svc_enc_slice_segment.cpp */; };
|
||||
4CE4472518BC605C0017DF25 /* svc_encode_mb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F418BC605C0017DF25 /* svc_encode_mb.cpp */; };
|
||||
4CE4472618BC605C0017DF25 /* svc_encode_slice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F518BC605C0017DF25 /* svc_encode_slice.cpp */; };
|
||||
4CE4472718BC605C0017DF25 /* svc_mode_decision.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F618BC605C0017DF25 /* svc_mode_decision.cpp */; };
|
||||
4CE4472818BC605C0017DF25 /* svc_motion_estimate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F718BC605C0017DF25 /* svc_motion_estimate.cpp */; };
|
||||
4CE4472918BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F818BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp */; };
|
||||
4CE4472B18BC605C0017DF25 /* wels_preprocess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446FA18BC605C0017DF25 /* wels_preprocess.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 PBXCopyFilesBuildPhase section */
|
||||
4CE4430F18B6FFA00017DF25 /* CopyFiles */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "include/$(PRODUCT_NAME)";
|
||||
dstSubfolderSpec = 16;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* 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>"; };
|
||||
0D6970BC1CA5BCFB001D88F8 /* paraset_strategy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = paraset_strategy.cpp; sourceTree = "<group>"; };
|
||||
0D6970BF1CA5BD26001D88F8 /* paraset_strategy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = paraset_strategy.h; sourceTree = "<group>"; };
|
||||
0DD32A951B4A478B009181A1 /* wels_task_base.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wels_task_base.cpp; sourceTree = "<group>"; };
|
||||
0DD32A971B4A47D0009181A1 /* wels_task_base.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_task_base.h; sourceTree = "<group>"; };
|
||||
0DD32A981B4A4997009181A1 /* wels_task_management.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wels_task_management.cpp; sourceTree = "<group>"; };
|
||||
0DD32A9A1B4A49AC009181A1 /* wels_task_management.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_task_management.h; sourceTree = "<group>"; };
|
||||
0DD32A9B1B4A4E8F009181A1 /* wels_task_encoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wels_task_encoder.cpp; sourceTree = "<group>"; };
|
||||
0DD32A9D1B4A4E9C009181A1 /* wels_task_encoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_task_encoder.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; };
|
||||
4CE4432518B6FFA00017DF25 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
|
||||
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>"; };
|
||||
4CE446AE18BC605C0017DF25 /* deblocking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = deblocking.h; sourceTree = "<group>"; };
|
||||
4CE446AF18BC605C0017DF25 /* decode_mb_aux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decode_mb_aux.h; sourceTree = "<group>"; };
|
||||
4CE446B018BC605C0017DF25 /* dq_map.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dq_map.h; sourceTree = "<group>"; };
|
||||
4CE446B118BC605C0017DF25 /* encode_mb_aux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = encode_mb_aux.h; sourceTree = "<group>"; };
|
||||
4CE446B218BC605C0017DF25 /* encoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = encoder.h; sourceTree = "<group>"; };
|
||||
4CE446B318BC605C0017DF25 /* encoder_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = encoder_context.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>"; };
|
||||
4CE446B918BC605C0017DF25 /* md.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = md.h; sourceTree = "<group>"; };
|
||||
4CE446BB18BC605C0017DF25 /* mt_defs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mt_defs.h; sourceTree = "<group>"; };
|
||||
4CE446BC18BC605C0017DF25 /* mv_pred.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mv_pred.h; sourceTree = "<group>"; };
|
||||
4CE446BD18BC605C0017DF25 /* nal_encap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nal_encap.h; sourceTree = "<group>"; };
|
||||
4CE446BF18BC605C0017DF25 /* param_svc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = param_svc.h; sourceTree = "<group>"; };
|
||||
4CE446C018BC605C0017DF25 /* parameter_sets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parameter_sets.h; sourceTree = "<group>"; };
|
||||
4CE446C118BC605C0017DF25 /* picture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = picture.h; sourceTree = "<group>"; };
|
||||
4CE446C218BC605C0017DF25 /* picture_handle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = picture_handle.h; sourceTree = "<group>"; };
|
||||
4CE446C418BC605C0017DF25 /* rc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rc.h; sourceTree = "<group>"; };
|
||||
4CE446C518BC605C0017DF25 /* ref_list_mgr_svc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ref_list_mgr_svc.h; sourceTree = "<group>"; };
|
||||
4CE446C618BC605C0017DF25 /* sample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sample.h; sourceTree = "<group>"; };
|
||||
4CE446C718BC605C0017DF25 /* set_mb_syn_cavlc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = set_mb_syn_cavlc.h; sourceTree = "<group>"; };
|
||||
4CE446C818BC605C0017DF25 /* slice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slice.h; sourceTree = "<group>"; };
|
||||
4CE446C918BC605C0017DF25 /* slice_multi_threading.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slice_multi_threading.h; sourceTree = "<group>"; };
|
||||
4CE446CA18BC605C0017DF25 /* stat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stat.h; sourceTree = "<group>"; };
|
||||
4CE446CB18BC605C0017DF25 /* svc_base_layer_md.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_base_layer_md.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>"; };
|
||||
4CE446D018BC605C0017DF25 /* svc_enc_slice_segment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_enc_slice_segment.h; sourceTree = "<group>"; };
|
||||
4CE446D118BC605C0017DF25 /* svc_encode_mb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_encode_mb.h; sourceTree = "<group>"; };
|
||||
4CE446D218BC605C0017DF25 /* svc_encode_slice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_encode_slice.h; sourceTree = "<group>"; };
|
||||
4CE446D318BC605C0017DF25 /* svc_mode_decision.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_mode_decision.h; sourceTree = "<group>"; };
|
||||
4CE446D418BC605C0017DF25 /* svc_motion_estimate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_motion_estimate.h; sourceTree = "<group>"; };
|
||||
4CE446D518BC605C0017DF25 /* svc_set_mb_syn_cavlc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svc_set_mb_syn_cavlc.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>"; };
|
||||
4CE446DA18BC605C0017DF25 /* wels_func_ptr_def.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_func_ptr_def.h; sourceTree = "<group>"; };
|
||||
4CE446DB18BC605C0017DF25 /* wels_preprocess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_preprocess.h; sourceTree = "<group>"; };
|
||||
4CE446DD18BC605C0017DF25 /* au_set.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = au_set.cpp; sourceTree = "<group>"; };
|
||||
4CE446DE18BC605C0017DF25 /* deblocking.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = deblocking.cpp; sourceTree = "<group>"; };
|
||||
4CE446DF18BC605C0017DF25 /* decode_mb_aux.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decode_mb_aux.cpp; sourceTree = "<group>"; };
|
||||
4CE446E018BC605C0017DF25 /* encode_mb_aux.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = encode_mb_aux.cpp; sourceTree = "<group>"; };
|
||||
4CE446E118BC605C0017DF25 /* encoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = encoder.cpp; sourceTree = "<group>"; };
|
||||
4CE446E218BC605C0017DF25 /* encoder_data_tables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = encoder_data_tables.cpp; sourceTree = "<group>"; };
|
||||
4CE446E318BC605C0017DF25 /* encoder_ext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = encoder_ext.cpp; sourceTree = "<group>"; };
|
||||
4CE446E518BC605C0017DF25 /* get_intra_predictor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = get_intra_predictor.cpp; sourceTree = "<group>"; };
|
||||
4CE446E718BC605C0017DF25 /* md.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = md.cpp; sourceTree = "<group>"; };
|
||||
4CE446E918BC605C0017DF25 /* mv_pred.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mv_pred.cpp; sourceTree = "<group>"; };
|
||||
4CE446EA18BC605C0017DF25 /* nal_encap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = nal_encap.cpp; sourceTree = "<group>"; };
|
||||
4CE446EB18BC605C0017DF25 /* picture_handle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = picture_handle.cpp; sourceTree = "<group>"; };
|
||||
4CE446ED18BC605C0017DF25 /* ratectl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ratectl.cpp; sourceTree = "<group>"; };
|
||||
4CE446EE18BC605C0017DF25 /* ref_list_mgr_svc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ref_list_mgr_svc.cpp; sourceTree = "<group>"; };
|
||||
4CE446EF18BC605C0017DF25 /* sample.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sample.cpp; sourceTree = "<group>"; };
|
||||
4CE446F018BC605C0017DF25 /* set_mb_syn_cavlc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = set_mb_syn_cavlc.cpp; sourceTree = "<group>"; };
|
||||
4CE446F118BC605C0017DF25 /* slice_multi_threading.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slice_multi_threading.cpp; sourceTree = "<group>"; };
|
||||
4CE446F218BC605C0017DF25 /* svc_base_layer_md.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = svc_base_layer_md.cpp; sourceTree = "<group>"; };
|
||||
4CE446F318BC605C0017DF25 /* svc_enc_slice_segment.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = svc_enc_slice_segment.cpp; sourceTree = "<group>"; };
|
||||
4CE446F418BC605C0017DF25 /* svc_encode_mb.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = svc_encode_mb.cpp; sourceTree = "<group>"; };
|
||||
4CE446F518BC605C0017DF25 /* svc_encode_slice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = svc_encode_slice.cpp; sourceTree = "<group>"; };
|
||||
4CE446F618BC605C0017DF25 /* svc_mode_decision.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = svc_mode_decision.cpp; sourceTree = "<group>"; };
|
||||
4CE446F718BC605C0017DF25 /* svc_motion_estimate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = svc_motion_estimate.cpp; sourceTree = "<group>"; };
|
||||
4CE446F818BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = svc_set_mb_syn_cavlc.cpp; sourceTree = "<group>"; };
|
||||
4CE446FA18BC605C0017DF25 /* wels_preprocess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wels_preprocess.cpp; 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>"; };
|
||||
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>"; };
|
||||
98FE4C1A1AB0200C0031E2B4 /* golomb_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = golomb_common.h; path = ../../../common/inc/golomb_common.h; 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 */
|
||||
4CE4430E18B6FFA00017DF25 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
4CE4431518B6FFA00017DF25 /* Foundation.framework 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 */,
|
||||
4C34066A18C57D0400DFA14A /* pixel_neon.S */,
|
||||
4C34066B18C57D0400DFA14A /* reconstruct_neon.S */,
|
||||
);
|
||||
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 */,
|
||||
4CE4431318B6FFA00017DF25 /* Frameworks */,
|
||||
4CE4431218B6FFA00017DF25 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE4431218B6FFA00017DF25 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE4431118B6FFA00017DF25 /* libwelsenc.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE4431318B6FFA00017DF25 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE4431418B6FFA00017DF25 /* Foundation.framework */,
|
||||
4CE4432518B6FFA00017DF25 /* UIKit.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE446A018BC605B0017DF25 /* encoder */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE446A118BC605B0017DF25 /* core */,
|
||||
4CE446FB18BC605C0017DF25 /* plus */,
|
||||
);
|
||||
name = encoder;
|
||||
path = ../../../../encoder;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE446A118BC605B0017DF25 /* core */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CB8F2B219235FAC005D6386 /* arm64 */,
|
||||
4C34066418C57D0400DFA14A /* arm */,
|
||||
4CE446A918BC605C0017DF25 /* inc */,
|
||||
4CE446DC18BC605C0017DF25 /* src */,
|
||||
);
|
||||
path = core;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE446A918BC605C0017DF25 /* inc */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
98FE4C1A1AB0200C0031E2B4 /* golomb_common.h */,
|
||||
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 */,
|
||||
4CE446AE18BC605C0017DF25 /* deblocking.h */,
|
||||
4CE446AF18BC605C0017DF25 /* decode_mb_aux.h */,
|
||||
4CE446B018BC605C0017DF25 /* dq_map.h */,
|
||||
4CE446B118BC605C0017DF25 /* encode_mb_aux.h */,
|
||||
4CE446B218BC605C0017DF25 /* encoder.h */,
|
||||
4CE446B318BC605C0017DF25 /* encoder_context.h */,
|
||||
4CE446B518BC605C0017DF25 /* extern.h */,
|
||||
4CE446B618BC605C0017DF25 /* get_intra_predictor.h */,
|
||||
4CE446B718BC605C0017DF25 /* mb_cache.h */,
|
||||
4CE446B918BC605C0017DF25 /* md.h */,
|
||||
4CE446BB18BC605C0017DF25 /* mt_defs.h */,
|
||||
4CE446BC18BC605C0017DF25 /* mv_pred.h */,
|
||||
4CE446BD18BC605C0017DF25 /* nal_encap.h */,
|
||||
4CE446BF18BC605C0017DF25 /* param_svc.h */,
|
||||
4CE446C018BC605C0017DF25 /* parameter_sets.h */,
|
||||
0D6970BF1CA5BD26001D88F8 /* paraset_strategy.h */,
|
||||
4CE446C118BC605C0017DF25 /* picture.h */,
|
||||
4CE446C218BC605C0017DF25 /* picture_handle.h */,
|
||||
4CE446C418BC605C0017DF25 /* rc.h */,
|
||||
4CE446C518BC605C0017DF25 /* ref_list_mgr_svc.h */,
|
||||
4CE446C618BC605C0017DF25 /* sample.h */,
|
||||
4CE446C718BC605C0017DF25 /* set_mb_syn_cavlc.h */,
|
||||
4CE446C818BC605C0017DF25 /* slice.h */,
|
||||
4CE446C918BC605C0017DF25 /* slice_multi_threading.h */,
|
||||
4CE446CA18BC605C0017DF25 /* stat.h */,
|
||||
4CE446CB18BC605C0017DF25 /* svc_base_layer_md.h */,
|
||||
4CE446CD18BC605C0017DF25 /* svc_enc_frame.h */,
|
||||
4CE446CE18BC605C0017DF25 /* svc_enc_golomb.h */,
|
||||
4CE446CF18BC605C0017DF25 /* svc_enc_macroblock.h */,
|
||||
4CE446D018BC605C0017DF25 /* svc_enc_slice_segment.h */,
|
||||
4CE446D118BC605C0017DF25 /* svc_encode_mb.h */,
|
||||
4CE446D218BC605C0017DF25 /* svc_encode_slice.h */,
|
||||
4CE446D318BC605C0017DF25 /* svc_mode_decision.h */,
|
||||
4CE446D418BC605C0017DF25 /* svc_motion_estimate.h */,
|
||||
4CE446D518BC605C0017DF25 /* svc_set_mb_syn_cavlc.h */,
|
||||
4CE446D718BC605C0017DF25 /* vlc_encoder.h */,
|
||||
4CE446D818BC605C0017DF25 /* wels_common_basis.h */,
|
||||
4CE446D918BC605C0017DF25 /* wels_const.h */,
|
||||
4CE446DA18BC605C0017DF25 /* wels_func_ptr_def.h */,
|
||||
4CE446DB18BC605C0017DF25 /* wels_preprocess.h */,
|
||||
0DD32A971B4A47D0009181A1 /* wels_task_base.h */,
|
||||
0DD32A9D1B4A4E9C009181A1 /* wels_task_encoder.h */,
|
||||
0DD32A9A1B4A49AC009181A1 /* wels_task_management.h */,
|
||||
);
|
||||
path = inc;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
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 */,
|
||||
4CE446E018BC605C0017DF25 /* encode_mb_aux.cpp */,
|
||||
4CE446E118BC605C0017DF25 /* encoder.cpp */,
|
||||
4CE446E218BC605C0017DF25 /* encoder_data_tables.cpp */,
|
||||
4CE446E318BC605C0017DF25 /* encoder_ext.cpp */,
|
||||
4CE446E518BC605C0017DF25 /* get_intra_predictor.cpp */,
|
||||
4CE446E718BC605C0017DF25 /* md.cpp */,
|
||||
4CE446E918BC605C0017DF25 /* mv_pred.cpp */,
|
||||
4CE446EA18BC605C0017DF25 /* nal_encap.cpp */,
|
||||
0D6970BC1CA5BCFB001D88F8 /* paraset_strategy.cpp */,
|
||||
4CE446EB18BC605C0017DF25 /* picture_handle.cpp */,
|
||||
4CE446ED18BC605C0017DF25 /* ratectl.cpp */,
|
||||
4CE446EE18BC605C0017DF25 /* ref_list_mgr_svc.cpp */,
|
||||
4CE446EF18BC605C0017DF25 /* sample.cpp */,
|
||||
4CE446F018BC605C0017DF25 /* set_mb_syn_cavlc.cpp */,
|
||||
4CE446F118BC605C0017DF25 /* slice_multi_threading.cpp */,
|
||||
4CE446F218BC605C0017DF25 /* svc_base_layer_md.cpp */,
|
||||
4CE446F318BC605C0017DF25 /* svc_enc_slice_segment.cpp */,
|
||||
4CE446F418BC605C0017DF25 /* svc_encode_mb.cpp */,
|
||||
4CE446F518BC605C0017DF25 /* svc_encode_slice.cpp */,
|
||||
4CE446F618BC605C0017DF25 /* svc_mode_decision.cpp */,
|
||||
4CE446F718BC605C0017DF25 /* svc_motion_estimate.cpp */,
|
||||
4CE446F818BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp */,
|
||||
4CE446FA18BC605C0017DF25 /* wels_preprocess.cpp */,
|
||||
0DD32A951B4A478B009181A1 /* wels_task_base.cpp */,
|
||||
0DD32A9B1B4A4E8F009181A1 /* wels_task_encoder.cpp */,
|
||||
0DD32A981B4A4997009181A1 /* wels_task_management.cpp */,
|
||||
);
|
||||
path = src;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE446FB18BC605C0017DF25 /* plus */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE446FC18BC605C0017DF25 /* inc */,
|
||||
4CE4470218BC605C0017DF25 /* src */,
|
||||
);
|
||||
path = plus;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE446FC18BC605C0017DF25 /* inc */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
04FE0684196FD9370004D7CE /* version.h */,
|
||||
9AED664819469FAF009A3567 /* welsCodecTrace.h */,
|
||||
4CE446FE18BC605C0017DF25 /* welsEncoderExt.h */,
|
||||
);
|
||||
path = inc;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4CE4470218BC605C0017DF25 /* src */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9AED664C19469FC1009A3567 /* welsCodecTrace.cpp */,
|
||||
4CE4470418BC605C0017DF25 /* wels_enc_export.def */,
|
||||
4CE4470618BC605C0017DF25 /* welsEncoderExt.cpp */,
|
||||
);
|
||||
path = src;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
4CE4431018B6FFA00017DF25 /* welsenc */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 4CE4433418B6FFA00017DF25 /* Build configuration list for PBXNativeTarget "welsenc" */;
|
||||
buildPhases = (
|
||||
4CE4430D18B6FFA00017DF25 /* Sources */,
|
||||
4CE4430E18B6FFA00017DF25 /* Frameworks */,
|
||||
4CE4430F18B6FFA00017DF25 /* CopyFiles */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = welsenc;
|
||||
productName = welsenc;
|
||||
productReference = 4CE4431118B6FFA00017DF25 /* libwelsenc.a */;
|
||||
productType = "com.apple.product-type.library.static";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
4CE4430918B6FFA00017DF25 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0510;
|
||||
ORGANIZATIONNAME = video;
|
||||
};
|
||||
buildConfigurationList = 4CE4430C18B6FFA00017DF25 /* Build configuration list for PBXProject "welsenc" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = 4CE4430818B6FFA00017DF25;
|
||||
productRefGroup = 4CE4431218B6FFA00017DF25 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
4CE4431018B6FFA00017DF25 /* welsenc */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
4CE4430D18B6FFA00017DF25 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
4CE4472118BC605C0017DF25 /* set_mb_syn_cavlc.cpp in Sources */,
|
||||
4CE4471118BC605C0017DF25 /* encode_mb_aux.cpp in Sources */,
|
||||
4CE4472718BC605C0017DF25 /* svc_mode_decision.cpp in Sources */,
|
||||
4CE4472818BC605C0017DF25 /* svc_motion_estimate.cpp in Sources */,
|
||||
4CE4471018BC605C0017DF25 /* decode_mb_aux.cpp in Sources */,
|
||||
4CE4472018BC605C0017DF25 /* sample.cpp in Sources */,
|
||||
6CA38DA31991CACE003EAAE0 /* svc_motion_estimation.S in Sources */,
|
||||
0DD32A9C1B4A4E8F009181A1 /* wels_task_encoder.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 */,
|
||||
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 */,
|
||||
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 */,
|
||||
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 */,
|
||||
0DD32A991B4A4997009181A1 /* wels_task_management.cpp in Sources */,
|
||||
4CE4471418BC605C0017DF25 /* encoder_ext.cpp in Sources */,
|
||||
4C34067218C57D0400DFA14A /* reconstruct_neon.S in Sources */,
|
||||
0DD32A961B4A478B009181A1 /* wels_task_base.cpp in Sources */,
|
||||
F7E9994919EBD1F8009B1021 /* set_mb_syn_cabac.cpp in Sources */,
|
||||
0D6970BE1CA5BCFB001D88F8 /* paraset_strategy.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
4CE4433218B6FFA00017DF25 /* 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;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
4CE4433318B6FFA00017DF25 /* 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;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||
SDKROOT = iphoneos;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
4CE4433518B6FFA00017DF25 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
|
||||
CLANG_CXX_LIBRARY = "compiler-default";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
DSTROOT = /tmp/welsenc.dst;
|
||||
GCC_C_LANGUAGE_STANDARD = "compiler-default";
|
||||
GCC_OPTIMIZATION_LEVEL = 3;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "";
|
||||
"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)/../../../../common/inc",
|
||||
"$(SRCROOT)/../../../../processing/interface",
|
||||
"$(SRCROOT)/../../../../api/svc",
|
||||
"$(SRCROOT)/../../../../common/arm",
|
||||
"$(SRCROOT)/../../../../common/arm64",
|
||||
);
|
||||
OTHER_LDFLAGS = "-ObjC";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
4CE4433618B6FFA00017DF25 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "compiler-default";
|
||||
CLANG_CXX_LIBRARY = "compiler-default";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
DSTROOT = /tmp/welsenc.dst;
|
||||
GCC_C_LANGUAGE_STANDARD = "compiler-default";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "";
|
||||
"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)/../../../../common/inc",
|
||||
"$(SRCROOT)/../../../../processing/interface",
|
||||
"$(SRCROOT)/../../../../api/svc",
|
||||
"$(SRCROOT)/../../../../common/arm",
|
||||
"$(SRCROOT)/../../../../common/arm64",
|
||||
);
|
||||
OTHER_LDFLAGS = "-ObjC";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
4CE4430C18B6FFA00017DF25 /* Build configuration list for PBXProject "welsenc" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
4CE4433218B6FFA00017DF25 /* Debug */,
|
||||
4CE4433318B6FFA00017DF25 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
4CE4433418B6FFA00017DF25 /* Build configuration list for PBXNativeTarget "welsenc" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
4CE4433518B6FFA00017DF25 /* Debug */,
|
||||
4CE4433618B6FFA00017DF25 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 4CE4430918B6FFA00017DF25 /* Project object */;
|
||||
}
|
@ -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 */;
|
||||
}
|
@ -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 */;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user