shithub: openh264

Download patch

ref: 65c7168d8d509bf4e6c666f2ee1cb2c3c623aa72
parent: b20728cc8c15b9308dd7b7f17c099a58f642e81b
author: Licai Guo <guolicai@gmail.com>
date: Thu Feb 20 05:08:37 EST 2014

Add iOS support for decoder.

--- /dev/null
+++ b/codec/build/iOS/dec/demo/demo.xcodeproj/project.pbxproj
@@ -1,0 +1,423 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		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 */; };
+		F0E663841810F01D000C888E /* libwelsdec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F0E663831810F012000C888E /* libwelsdec.a */; };
+		F0E663B5181117B9000C888E /* DEMOViewControllerShowResource.m in Sources */ = {isa = PBXBuildFile; fileRef = F0E663B4181117B9000C888E /* DEMOViewControllerShowResource.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		F0E663821810F012000C888E /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F0E6637E1810F012000C888E /* h264svcdec.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC07E0554694100DB518D;
+			remoteInfo = h264svcdec;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		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; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+		F0E663571810EFA5000C888E /* demo-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "demo-Prefix.pch"; 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; path = read_config.h; sourceTree = "<group>"; };
+		F0E663761810EFF7000C888E /* d3d9_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = d3d9_utils.cpp; sourceTree = "<group>"; };
+		F0E663771810EFF7000C888E /* h264dec.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = h264dec.cpp; sourceTree = "<group>"; };
+		F0E663791810EFF7000C888E /* read_config.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = read_config.cpp; sourceTree = "<group>"; };
+		F0E6637E1810F012000C888E /* h264svcdec.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = h264svcdec.xcodeproj; path = ../h264svcdec/h264svcdec.xcodeproj; 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 = (
+				F0E663841810F01D000C888E /* libwelsdec.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 */
+		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 = (
+				F0E6637E1810F012000C888E /* h264svcdec.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 */,
+				F0E663571810EFA5000C888E /* demo-Prefix.pch */,
+				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>";
+		};
+		F0E6637F1810F012000C888E /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				F0E663831810F012000C888E /* libwelsdec.a */,
+			);
+			name = Products;
+			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 = (
+			);
+			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 = F0E6637F1810F012000C888E /* Products */;
+					ProjectRef = F0E6637E1810F012000C888E /* h264svcdec.xcodeproj */;
+				},
+			);
+			projectRoot = "";
+			targets = (
+				F0E663451810EFA5000C888E /* demo */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+		F0E663831810F012000C888E /* libwelsdec.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libwelsdec.a;
+			remoteRef = F0E663821810F012000C888E /* 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 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.1;
+				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.1;
+				OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+				SDKROOT = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		F0E6636D1810EFA5000C888E /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				GCC_C_LANGUAGE_STANDARD = "compiler-default";
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "demo/demo-Prefix.pch";
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					APPLE_IOS,
+				);
+				HEADER_SEARCH_PATHS = (
+					"\"$(SRCROOT)/../../../../api/svc\"",
+					"\"$(SRCROOT)/../../../../common\"",
+				);
+				INFOPLIST_FILE = "demo/demo-Info.plist";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				WRAPPER_EXTENSION = app;
+			};
+			name = Debug;
+		};
+		F0E6636E1810EFA5000C888E /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				GCC_C_LANGUAGE_STANDARD = "compiler-default";
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "demo/demo-Prefix.pch";
+				GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
+				HEADER_SEARCH_PATHS = (
+					"\"$(SRCROOT)/../../../../api/svc\"",
+					"\"$(SRCROOT)/../../../../common\"",
+				);
+				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 */;
+}
--- /dev/null
+++ b/codec/build/iOS/dec/demo/demo/DEMOAppDelegate.h
@@ -1,0 +1,39 @@
+/*!
+ * \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
--- /dev/null
+++ b/codec/build/iOS/dec/demo/demo/DEMOAppDelegate.m
@@ -1,0 +1,68 @@
+/*!
+ * \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
--- /dev/null
+++ b/codec/build/iOS/dec/demo/demo/DEMOViewController.h
@@ -1,0 +1,49 @@
+/*!
+ * \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
--- /dev/null
+++ b/codec/build/iOS/dec/demo/demo/DEMOViewController.m
@@ -1,0 +1,187 @@
+/*!
+ * \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
--- /dev/null
+++ b/codec/build/iOS/dec/demo/demo/DEMOViewControllerShowResource.h
@@ -1,0 +1,38 @@
+/*!
+ * \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
--- /dev/null
+++ b/codec/build/iOS/dec/demo/demo/DEMOViewControllerShowResource.m
@@ -1,0 +1,93 @@
+/*!
+ * \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 files /dev/null b/codec/build/iOS/dec/demo/demo/Default-568h@2x.png differ
binary files /dev/null b/codec/build/iOS/dec/demo/demo/Default.png differ
binary files /dev/null b/codec/build/iOS/dec/demo/demo/Default@2x.png differ
--- /dev/null
+++ b/codec/build/iOS/dec/demo/demo/demo-Info.plist
@@ -1,0 +1,51 @@
+<?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>
--- /dev/null
+++ b/codec/build/iOS/dec/demo/demo/demo-Prefix.pch
@@ -1,0 +1,46 @@
+/*!
+ * \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.
+ *
+ *     Prefix header for all source files of the 'demo' target in the 'demo' project
+ */
+
+#import <Availability.h>
+
+#ifndef __IPHONE_5_0
+#warning "This project uses features only available in iOS SDK 5.0 and later."
+#endif
+
+#ifdef __OBJC__
+    #import <UIKit/UIKit.h>
+    #import <Foundation/Foundation.h>
+#endif
+
+//For linking welsdec.a
+#define _STATIC_LINK_DECODER_LIB_
\ No newline at end of file
--- /dev/null
+++ b/codec/build/iOS/dec/demo/demo/en.lproj/InfoPlist.strings
@@ -1,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
--- /dev/null
+++ b/codec/build/iOS/dec/demo/demo/en.lproj/MainStoryboard_iPad.storyboard
@@ -1,0 +1,163 @@
+<?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>
\ No newline at end of file
--- /dev/null
+++ b/codec/build/iOS/dec/demo/demo/en.lproj/MainStoryboard_iPhone.storyboard
@@ -1,0 +1,162 @@
+<?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>
\ No newline at end of file
--- /dev/null
+++ b/codec/build/iOS/dec/demo/demo/main.m
@@ -1,0 +1,42 @@
+/*!
+ * \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"
+
+int main(int argc, char *argv[])
+{
+    @autoreleasepool {
+        return UIApplicationMain(argc, argv, nil, NSStringFromClass([DEMOAppDelegate class]));
+    }
+}
--- /dev/null
+++ b/codec/build/iOS/dec/h264svcdec/h264svcdec.xcodeproj/project.pbxproj
@@ -1,0 +1,637 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		4CE43B5218AB0EBD0017DF25 /* codec_api.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43B5018AB0EBD0017DF25 /* codec_api.h */; };
+		4CE43B5318AB0EBD0017DF25 /* codec_app_def.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43B5118AB0EBD0017DF25 /* codec_app_def.h */; };
+		4CE43BDF18AB0EF50017DF25 /* dec_frame.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43BDA18AB0EF50017DF25 /* dec_frame.h */; };
+		4CE43BE018AB0EF50017DF25 /* dec_golomb.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43BDB18AB0EF50017DF25 /* dec_golomb.h */; };
+		4CE43BE118AB0EF50017DF25 /* decode_slice.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43BDC18AB0EF50017DF25 /* decode_slice.h */; };
+		4CE43BE218AB0EF50017DF25 /* decoder_core.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43BDD18AB0EF50017DF25 /* decoder_core.h */; };
+		4CE43BE318AB0EF50017DF25 /* manage_dec_ref.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43BDE18AB0EF50017DF25 /* manage_dec_ref.h */; };
+		4CE43BF818AB0F060017DF25 /* au_parser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BE418AB0F060017DF25 /* au_parser.cpp */; };
+		4CE43BF918AB0F060017DF25 /* bit_stream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BE518AB0F060017DF25 /* bit_stream.cpp */; };
+		4CE43BFA18AB0F060017DF25 /* deblocking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BE618AB0F060017DF25 /* deblocking.cpp */; };
+		4CE43BFB18AB0F060017DF25 /* decode_mb_aux.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BE718AB0F060017DF25 /* decode_mb_aux.cpp */; };
+		4CE43BFC18AB0F060017DF25 /* decode_slice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BE818AB0F060017DF25 /* decode_slice.cpp */; };
+		4CE43BFD18AB0F060017DF25 /* decoder_core.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BE918AB0F060017DF25 /* decoder_core.cpp */; };
+		4CE43BFE18AB0F060017DF25 /* decoder_data_tables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BEA18AB0F060017DF25 /* decoder_data_tables.cpp */; };
+		4CE43BFF18AB0F060017DF25 /* decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BEB18AB0F060017DF25 /* decoder.cpp */; };
+		4CE43C0018AB0F060017DF25 /* expand_pic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BEC18AB0F060017DF25 /* expand_pic.cpp */; };
+		4CE43C0118AB0F060017DF25 /* fmo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BED18AB0F060017DF25 /* fmo.cpp */; };
+		4CE43C0218AB0F060017DF25 /* get_intra_predictor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BEE18AB0F060017DF25 /* get_intra_predictor.cpp */; };
+		4CE43C0318AB0F060017DF25 /* manage_dec_ref.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BEF18AB0F060017DF25 /* manage_dec_ref.cpp */; };
+		4CE43C0418AB0F060017DF25 /* mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BF018AB0F060017DF25 /* mc.cpp */; };
+		4CE43C0518AB0F060017DF25 /* mem_align.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BF118AB0F060017DF25 /* mem_align.cpp */; };
+		4CE43C0618AB0F060017DF25 /* memmgr_nal_unit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BF218AB0F060017DF25 /* memmgr_nal_unit.cpp */; };
+		4CE43C0718AB0F060017DF25 /* mv_pred.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BF318AB0F060017DF25 /* mv_pred.cpp */; };
+		4CE43C0818AB0F060017DF25 /* parse_mb_syn_cavlc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BF418AB0F060017DF25 /* parse_mb_syn_cavlc.cpp */; };
+		4CE43C0918AB0F060017DF25 /* pic_queue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BF518AB0F060017DF25 /* pic_queue.cpp */; };
+		4CE43C0A18AB0F060017DF25 /* rec_mb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BF618AB0F060017DF25 /* rec_mb.cpp */; };
+		4CE43C0B18AB0F060017DF25 /* utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43BF718AB0F060017DF25 /* utils.cpp */; };
+		4CE43C0E18AB0F140017DF25 /* welsCodecTrace.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43C0C18AB0F140017DF25 /* welsCodecTrace.h */; };
+		4CE43C0F18AB0F140017DF25 /* welsDecoderExt.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43C0D18AB0F140017DF25 /* welsDecoderExt.h */; };
+		4CE43C1218AB0F1D0017DF25 /* welsCodecTrace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43C1018AB0F1D0017DF25 /* welsCodecTrace.cpp */; };
+		4CE43C1318AB0F1D0017DF25 /* welsDecoderExt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43C1118AB0F1D0017DF25 /* welsDecoderExt.cpp */; };
+		4CE43C3B18AB0FCE0017DF25 /* cpu_core.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43C2018AB0FCE0017DF25 /* cpu_core.h */; };
+		4CE43C3C18AB0FCE0017DF25 /* cpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43C2118AB0FCE0017DF25 /* cpu.cpp */; };
+		4CE43C3D18AB0FCE0017DF25 /* cpu.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43C2218AB0FCE0017DF25 /* cpu.h */; };
+		4CE43C3F18AB0FCE0017DF25 /* crt_util_safe_x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43C2418AB0FCE0017DF25 /* crt_util_safe_x.cpp */; };
+		4CE43C4018AB0FCE0017DF25 /* crt_util_safe_x.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43C2518AB0FCE0017DF25 /* crt_util_safe_x.h */; };
+		4CE43C4218AB0FCE0017DF25 /* deblocking_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43C2718AB0FCE0017DF25 /* deblocking_common.cpp */; };
+		4CE43C4318AB0FCE0017DF25 /* deblocking_common.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43C2818AB0FCE0017DF25 /* deblocking_common.h */; };
+		4CE43C4418AB0FCE0017DF25 /* expand_picture_common.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43C2918AB0FCE0017DF25 /* expand_picture_common.h */; };
+		4CE43C4618AB0FCE0017DF25 /* logging.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43C2B18AB0FCE0017DF25 /* logging.cpp */; };
+		4CE43C4718AB0FCE0017DF25 /* logging.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43C2C18AB0FCE0017DF25 /* logging.h */; };
+		4CE43C4818AB0FCE0017DF25 /* ls_defines.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43C2D18AB0FCE0017DF25 /* ls_defines.h */; };
+		4CE43C4918AB0FCE0017DF25 /* macros.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43C2E18AB0FCE0017DF25 /* macros.h */; };
+		4CE43C4C18AB0FCE0017DF25 /* mc_common.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43C3118AB0FCE0017DF25 /* mc_common.h */; };
+		4CE43C4E18AB0FCE0017DF25 /* measure_time.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43C3318AB0FCE0017DF25 /* measure_time.h */; };
+		4CE43C5018AB0FCE0017DF25 /* typedefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43C3618AB0FCE0017DF25 /* typedefs.h */; };
+		4CE43C5218AB0FCE0017DF25 /* WelsThreadLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE43C3818AB0FCE0017DF25 /* WelsThreadLib.cpp */; };
+		4CE43C5318AB0FCE0017DF25 /* WelsThreadLib.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE43C3918AB0FCE0017DF25 /* WelsThreadLib.h */; };
+		AA747D9F0F9514B9006C5449 /* h264svcdec_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* h264svcdec_Prefix.pch */; };
+		AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; };
+		F028856A13D2839000DFCF37 /* as264_common.h in Headers */ = {isa = PBXBuildFile; fileRef = F02884F213D2839000DFCF37 /* as264_common.h */; };
+		F028856B13D2839000DFCF37 /* au_parser.h in Headers */ = {isa = PBXBuildFile; fileRef = F02884F313D2839000DFCF37 /* au_parser.h */; };
+		F028856C13D2839000DFCF37 /* bit_stream.h in Headers */ = {isa = PBXBuildFile; fileRef = F02884F413D2839000DFCF37 /* bit_stream.h */; };
+		F028857213D2839000DFCF37 /* deblocking.h in Headers */ = {isa = PBXBuildFile; fileRef = F02884FA13D2839000DFCF37 /* deblocking.h */; };
+		F028857313D2839000DFCF37 /* decode_mb_aux.h in Headers */ = {isa = PBXBuildFile; fileRef = F02884FB13D2839000DFCF37 /* decode_mb_aux.h */; };
+		F028857413D2839000DFCF37 /* decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = F02884FC13D2839000DFCF37 /* decoder.h */; };
+		F028857513D2839000DFCF37 /* decoder_context.h in Headers */ = {isa = PBXBuildFile; fileRef = F02884FD13D2839000DFCF37 /* decoder_context.h */; };
+		F028857613D2839000DFCF37 /* error_code.h in Headers */ = {isa = PBXBuildFile; fileRef = F02884FE13D2839000DFCF37 /* error_code.h */; };
+		F028857713D2839000DFCF37 /* expand_pic.h in Headers */ = {isa = PBXBuildFile; fileRef = F02884FF13D2839000DFCF37 /* expand_pic.h */; };
+		F028857813D2839000DFCF37 /* fmo.h in Headers */ = {isa = PBXBuildFile; fileRef = F028850013D2839000DFCF37 /* fmo.h */; };
+		F028857913D2839000DFCF37 /* get_intra_predictor.h in Headers */ = {isa = PBXBuildFile; fileRef = F028850113D2839000DFCF37 /* get_intra_predictor.h */; };
+		F028858013D2839000DFCF37 /* mb_cache.h in Headers */ = {isa = PBXBuildFile; fileRef = F028850813D2839000DFCF37 /* mb_cache.h */; };
+		F028858113D2839000DFCF37 /* mc.h in Headers */ = {isa = PBXBuildFile; fileRef = F028850913D2839000DFCF37 /* mc.h */; };
+		F028858313D2839000DFCF37 /* mem_align.h in Headers */ = {isa = PBXBuildFile; fileRef = F028850B13D2839000DFCF37 /* mem_align.h */; };
+		F028858413D2839000DFCF37 /* memmgr_nal_unit.h in Headers */ = {isa = PBXBuildFile; fileRef = F028850C13D2839000DFCF37 /* memmgr_nal_unit.h */; };
+		F028858513D2839000DFCF37 /* mv_pred.h in Headers */ = {isa = PBXBuildFile; fileRef = F028850D13D2839000DFCF37 /* mv_pred.h */; };
+		F028858613D2839000DFCF37 /* nal_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = F028850E13D2839000DFCF37 /* nal_prefix.h */; };
+		F028858713D2839000DFCF37 /* nalu.h in Headers */ = {isa = PBXBuildFile; fileRef = F028850F13D2839000DFCF37 /* nalu.h */; };
+		F028858813D2839000DFCF37 /* parameter_sets.h in Headers */ = {isa = PBXBuildFile; fileRef = F028851013D2839000DFCF37 /* parameter_sets.h */; };
+		F028858913D2839000DFCF37 /* parse_mb_syn_cavlc.h in Headers */ = {isa = PBXBuildFile; fileRef = F028851113D2839000DFCF37 /* parse_mb_syn_cavlc.h */; };
+		F028858A13D2839000DFCF37 /* pic_queue.h in Headers */ = {isa = PBXBuildFile; fileRef = F028851213D2839000DFCF37 /* pic_queue.h */; };
+		F028858B13D2839000DFCF37 /* picture.h in Headers */ = {isa = PBXBuildFile; fileRef = F028851313D2839000DFCF37 /* picture.h */; };
+		F028858C13D2839000DFCF37 /* rec_mb.h in Headers */ = {isa = PBXBuildFile; fileRef = F028851413D2839000DFCF37 /* rec_mb.h */; };
+		F028858E13D2839000DFCF37 /* slice.h in Headers */ = {isa = PBXBuildFile; fileRef = F028851613D2839000DFCF37 /* slice.h */; };
+		F028859513D2839000DFCF37 /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = F028851D13D2839000DFCF37 /* utils.h */; };
+		F028859613D2839000DFCF37 /* vlc_decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = F028851E13D2839000DFCF37 /* vlc_decoder.h */; };
+		F028859713D2839000DFCF37 /* wels_common_basis.h in Headers */ = {isa = PBXBuildFile; fileRef = F028851F13D2839000DFCF37 /* wels_common_basis.h */; };
+		F028859813D2839000DFCF37 /* wels_const.h in Headers */ = {isa = PBXBuildFile; fileRef = F028852013D2839000DFCF37 /* wels_const.h */; };
+		F02885C913D2840600DFCF37 /* codec_def.h in Headers */ = {isa = PBXBuildFile; fileRef = F02885C613D2840600DFCF37 /* codec_def.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		4CE43B5018AB0EBD0017DF25 /* codec_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = codec_api.h; sourceTree = "<group>"; };
+		4CE43B5118AB0EBD0017DF25 /* codec_app_def.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = codec_app_def.h; sourceTree = "<group>"; };
+		4CE43BDA18AB0EF50017DF25 /* dec_frame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dec_frame.h; sourceTree = "<group>"; };
+		4CE43BDB18AB0EF50017DF25 /* dec_golomb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dec_golomb.h; sourceTree = "<group>"; };
+		4CE43BDC18AB0EF50017DF25 /* decode_slice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decode_slice.h; sourceTree = "<group>"; };
+		4CE43BDD18AB0EF50017DF25 /* decoder_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoder_core.h; sourceTree = "<group>"; };
+		4CE43BDE18AB0EF50017DF25 /* manage_dec_ref.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = manage_dec_ref.h; sourceTree = "<group>"; };
+		4CE43BE418AB0F060017DF25 /* au_parser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = au_parser.cpp; sourceTree = "<group>"; };
+		4CE43BE518AB0F060017DF25 /* bit_stream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bit_stream.cpp; sourceTree = "<group>"; };
+		4CE43BE618AB0F060017DF25 /* deblocking.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = deblocking.cpp; sourceTree = "<group>"; };
+		4CE43BE718AB0F060017DF25 /* decode_mb_aux.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decode_mb_aux.cpp; sourceTree = "<group>"; };
+		4CE43BE818AB0F060017DF25 /* decode_slice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decode_slice.cpp; sourceTree = "<group>"; };
+		4CE43BE918AB0F060017DF25 /* decoder_core.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoder_core.cpp; sourceTree = "<group>"; };
+		4CE43BEA18AB0F060017DF25 /* decoder_data_tables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoder_data_tables.cpp; sourceTree = "<group>"; };
+		4CE43BEB18AB0F060017DF25 /* decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decoder.cpp; sourceTree = "<group>"; };
+		4CE43BEC18AB0F060017DF25 /* expand_pic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = expand_pic.cpp; sourceTree = "<group>"; };
+		4CE43BED18AB0F060017DF25 /* fmo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fmo.cpp; sourceTree = "<group>"; };
+		4CE43BEE18AB0F060017DF25 /* get_intra_predictor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = get_intra_predictor.cpp; sourceTree = "<group>"; };
+		4CE43BEF18AB0F060017DF25 /* manage_dec_ref.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = manage_dec_ref.cpp; sourceTree = "<group>"; };
+		4CE43BF018AB0F060017DF25 /* mc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mc.cpp; sourceTree = "<group>"; };
+		4CE43BF118AB0F060017DF25 /* mem_align.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mem_align.cpp; sourceTree = "<group>"; };
+		4CE43BF218AB0F060017DF25 /* memmgr_nal_unit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memmgr_nal_unit.cpp; sourceTree = "<group>"; };
+		4CE43BF318AB0F060017DF25 /* mv_pred.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mv_pred.cpp; sourceTree = "<group>"; };
+		4CE43BF418AB0F060017DF25 /* parse_mb_syn_cavlc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parse_mb_syn_cavlc.cpp; sourceTree = "<group>"; };
+		4CE43BF518AB0F060017DF25 /* pic_queue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pic_queue.cpp; sourceTree = "<group>"; };
+		4CE43BF618AB0F060017DF25 /* rec_mb.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rec_mb.cpp; sourceTree = "<group>"; };
+		4CE43BF718AB0F060017DF25 /* utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = utils.cpp; sourceTree = "<group>"; };
+		4CE43C0C18AB0F140017DF25 /* welsCodecTrace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = welsCodecTrace.h; sourceTree = "<group>"; };
+		4CE43C0D18AB0F140017DF25 /* welsDecoderExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = welsDecoderExt.h; sourceTree = "<group>"; };
+		4CE43C1018AB0F1D0017DF25 /* welsCodecTrace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsCodecTrace.cpp; sourceTree = "<group>"; };
+		4CE43C1118AB0F1D0017DF25 /* welsDecoderExt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsDecoderExt.cpp; sourceTree = "<group>"; };
+		4CE43C2018AB0FCE0017DF25 /* cpu_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cpu_core.h; path = ../common/cpu_core.h; sourceTree = "<group>"; };
+		4CE43C2118AB0FCE0017DF25 /* cpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cpu.cpp; path = ../common/cpu.cpp; sourceTree = "<group>"; };
+		4CE43C2218AB0FCE0017DF25 /* cpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cpu.h; path = ../common/cpu.h; sourceTree = "<group>"; };
+		4CE43C2418AB0FCE0017DF25 /* crt_util_safe_x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = crt_util_safe_x.cpp; path = ../common/crt_util_safe_x.cpp; sourceTree = "<group>"; };
+		4CE43C2518AB0FCE0017DF25 /* crt_util_safe_x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = crt_util_safe_x.h; path = ../common/crt_util_safe_x.h; sourceTree = "<group>"; };
+		4CE43C2718AB0FCE0017DF25 /* deblocking_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = deblocking_common.cpp; path = ../common/deblocking_common.cpp; sourceTree = "<group>"; };
+		4CE43C2818AB0FCE0017DF25 /* deblocking_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = deblocking_common.h; path = ../common/deblocking_common.h; sourceTree = "<group>"; };
+		4CE43C2918AB0FCE0017DF25 /* expand_picture_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = expand_picture_common.h; path = ../common/expand_picture_common.h; sourceTree = "<group>"; };
+		4CE43C2B18AB0FCE0017DF25 /* logging.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = logging.cpp; path = ../common/logging.cpp; sourceTree = "<group>"; };
+		4CE43C2C18AB0FCE0017DF25 /* logging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = logging.h; path = ../common/logging.h; sourceTree = "<group>"; };
+		4CE43C2D18AB0FCE0017DF25 /* ls_defines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ls_defines.h; path = ../common/ls_defines.h; sourceTree = "<group>"; };
+		4CE43C2E18AB0FCE0017DF25 /* macros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = macros.h; path = ../common/macros.h; sourceTree = "<group>"; };
+		4CE43C3118AB0FCE0017DF25 /* mc_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mc_common.h; path = ../common/mc_common.h; sourceTree = "<group>"; };
+		4CE43C3318AB0FCE0017DF25 /* measure_time.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = measure_time.h; path = ../common/measure_time.h; sourceTree = "<group>"; };
+		4CE43C3618AB0FCE0017DF25 /* typedefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = typedefs.h; path = ../common/typedefs.h; sourceTree = "<group>"; };
+		4CE43C3818AB0FCE0017DF25 /* WelsThreadLib.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WelsThreadLib.cpp; path = ../common/WelsThreadLib.cpp; sourceTree = "<group>"; };
+		4CE43C3918AB0FCE0017DF25 /* WelsThreadLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WelsThreadLib.h; path = ../common/WelsThreadLib.h; sourceTree = "<group>"; };
+		AA747D9E0F9514B9006C5449 /* h264svcdec_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = h264svcdec_Prefix.pch; sourceTree = SOURCE_ROOT; };
+		AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		D2AAC07E0554694100DB518D /* libwelsdec.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libwelsdec.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		F02884F213D2839000DFCF37 /* as264_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = as264_common.h; sourceTree = "<group>"; };
+		F02884F313D2839000DFCF37 /* au_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = au_parser.h; sourceTree = "<group>"; };
+		F02884F413D2839000DFCF37 /* bit_stream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bit_stream.h; sourceTree = "<group>"; };
+		F02884FA13D2839000DFCF37 /* deblocking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = deblocking.h; sourceTree = "<group>"; };
+		F02884FB13D2839000DFCF37 /* decode_mb_aux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decode_mb_aux.h; sourceTree = "<group>"; };
+		F02884FC13D2839000DFCF37 /* decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoder.h; sourceTree = "<group>"; };
+		F02884FD13D2839000DFCF37 /* decoder_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoder_context.h; sourceTree = "<group>"; };
+		F02884FE13D2839000DFCF37 /* error_code.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = error_code.h; sourceTree = "<group>"; };
+		F02884FF13D2839000DFCF37 /* expand_pic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = expand_pic.h; sourceTree = "<group>"; };
+		F028850013D2839000DFCF37 /* fmo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fmo.h; sourceTree = "<group>"; };
+		F028850113D2839000DFCF37 /* get_intra_predictor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = get_intra_predictor.h; sourceTree = "<group>"; };
+		F028850813D2839000DFCF37 /* mb_cache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mb_cache.h; sourceTree = "<group>"; };
+		F028850913D2839000DFCF37 /* mc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mc.h; sourceTree = "<group>"; };
+		F028850B13D2839000DFCF37 /* mem_align.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mem_align.h; sourceTree = "<group>"; };
+		F028850C13D2839000DFCF37 /* memmgr_nal_unit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memmgr_nal_unit.h; sourceTree = "<group>"; };
+		F028850D13D2839000DFCF37 /* mv_pred.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mv_pred.h; sourceTree = "<group>"; };
+		F028850E13D2839000DFCF37 /* nal_prefix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nal_prefix.h; sourceTree = "<group>"; };
+		F028850F13D2839000DFCF37 /* nalu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nalu.h; sourceTree = "<group>"; };
+		F028851013D2839000DFCF37 /* parameter_sets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parameter_sets.h; sourceTree = "<group>"; };
+		F028851113D2839000DFCF37 /* parse_mb_syn_cavlc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parse_mb_syn_cavlc.h; sourceTree = "<group>"; };
+		F028851213D2839000DFCF37 /* pic_queue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pic_queue.h; sourceTree = "<group>"; };
+		F028851313D2839000DFCF37 /* picture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = picture.h; sourceTree = "<group>"; };
+		F028851413D2839000DFCF37 /* rec_mb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rec_mb.h; sourceTree = "<group>"; };
+		F028851613D2839000DFCF37 /* slice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slice.h; sourceTree = "<group>"; };
+		F028851D13D2839000DFCF37 /* utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = "<group>"; };
+		F028851E13D2839000DFCF37 /* vlc_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vlc_decoder.h; sourceTree = "<group>"; };
+		F028851F13D2839000DFCF37 /* wels_common_basis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_common_basis.h; sourceTree = "<group>"; };
+		F028852013D2839000DFCF37 /* wels_const.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wels_const.h; sourceTree = "<group>"; };
+		F028855313D2839000DFCF37 /* wels_dec_export.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = wels_dec_export.def; sourceTree = "<group>"; };
+		F02885C613D2840600DFCF37 /* codec_def.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = codec_def.h; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D2AAC07C0554694100DB518D /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		034768DFFF38A50411DB9C8B /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC07E0554694100DB518D /* libwelsdec.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		0867D691FE84028FC02AAC07 /* h264svcdec */ = {
+			isa = PBXGroup;
+			children = (
+				F02885C513D2840600DFCF37 /* svc */,
+				F02884D713D2839000DFCF37 /* decoder */,
+				08FB77AEFE84172EC02AAC07 /* Classes */,
+				32C88DFF0371C24200C91783 /* Other Sources */,
+				0867D69AFE84028FC02AAC07 /* Frameworks */,
+				034768DFFF38A50411DB9C8B /* Products */,
+			);
+			name = h264svcdec;
+			sourceTree = "<group>";
+		};
+		0867D69AFE84028FC02AAC07 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				AACBBE490F95108600F1A2B1 /* Foundation.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		08FB77AEFE84172EC02AAC07 /* Classes */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Classes;
+			sourceTree = "<group>";
+		};
+		32C88DFF0371C24200C91783 /* Other Sources */ = {
+			isa = PBXGroup;
+			children = (
+				AA747D9E0F9514B9006C5449 /* h264svcdec_Prefix.pch */,
+			);
+			name = "Other Sources";
+			sourceTree = "<group>";
+		};
+		4CE43C1E18AB0FB20017DF25 /* common */ = {
+			isa = PBXGroup;
+			children = (
+				4CE43C2018AB0FCE0017DF25 /* cpu_core.h */,
+				4CE43C2118AB0FCE0017DF25 /* cpu.cpp */,
+				4CE43C2218AB0FCE0017DF25 /* cpu.h */,
+				4CE43C2418AB0FCE0017DF25 /* crt_util_safe_x.cpp */,
+				4CE43C2518AB0FCE0017DF25 /* crt_util_safe_x.h */,
+				4CE43C2718AB0FCE0017DF25 /* deblocking_common.cpp */,
+				4CE43C2818AB0FCE0017DF25 /* deblocking_common.h */,
+				4CE43C2918AB0FCE0017DF25 /* expand_picture_common.h */,
+				4CE43C2B18AB0FCE0017DF25 /* logging.cpp */,
+				4CE43C2C18AB0FCE0017DF25 /* logging.h */,
+				4CE43C2D18AB0FCE0017DF25 /* ls_defines.h */,
+				4CE43C2E18AB0FCE0017DF25 /* macros.h */,
+				4CE43C3118AB0FCE0017DF25 /* mc_common.h */,
+				4CE43C3318AB0FCE0017DF25 /* measure_time.h */,
+				4CE43C3618AB0FCE0017DF25 /* typedefs.h */,
+				4CE43C3818AB0FCE0017DF25 /* WelsThreadLib.cpp */,
+				4CE43C3918AB0FCE0017DF25 /* WelsThreadLib.h */,
+			);
+			name = common;
+			sourceTree = "<group>";
+		};
+		F02884D713D2839000DFCF37 /* decoder */ = {
+			isa = PBXGroup;
+			children = (
+				4CE43C1E18AB0FB20017DF25 /* common */,
+				F02884D813D2839000DFCF37 /* core */,
+				F028854613D2839000DFCF37 /* plus */,
+			);
+			name = decoder;
+			path = ../../../../decoder;
+			sourceTree = SOURCE_ROOT;
+		};
+		F02884D813D2839000DFCF37 /* core */ = {
+			isa = PBXGroup;
+			children = (
+				F02884F113D2839000DFCF37 /* inc */,
+				F028852513D2839000DFCF37 /* src */,
+			);
+			path = core;
+			sourceTree = "<group>";
+		};
+		F02884F113D2839000DFCF37 /* inc */ = {
+			isa = PBXGroup;
+			children = (
+				4CE43BDA18AB0EF50017DF25 /* dec_frame.h */,
+				4CE43BDB18AB0EF50017DF25 /* dec_golomb.h */,
+				4CE43BDC18AB0EF50017DF25 /* decode_slice.h */,
+				4CE43BDD18AB0EF50017DF25 /* decoder_core.h */,
+				4CE43BDE18AB0EF50017DF25 /* manage_dec_ref.h */,
+				F02884F213D2839000DFCF37 /* as264_common.h */,
+				F02884F313D2839000DFCF37 /* au_parser.h */,
+				F02884F413D2839000DFCF37 /* bit_stream.h */,
+				F02884FA13D2839000DFCF37 /* deblocking.h */,
+				F02884FB13D2839000DFCF37 /* decode_mb_aux.h */,
+				F02884FC13D2839000DFCF37 /* decoder.h */,
+				F02884FD13D2839000DFCF37 /* decoder_context.h */,
+				F02884FE13D2839000DFCF37 /* error_code.h */,
+				F02884FF13D2839000DFCF37 /* expand_pic.h */,
+				F028850013D2839000DFCF37 /* fmo.h */,
+				F028850113D2839000DFCF37 /* get_intra_predictor.h */,
+				F028850813D2839000DFCF37 /* mb_cache.h */,
+				F028850913D2839000DFCF37 /* mc.h */,
+				F028850B13D2839000DFCF37 /* mem_align.h */,
+				F028850C13D2839000DFCF37 /* memmgr_nal_unit.h */,
+				F028850D13D2839000DFCF37 /* mv_pred.h */,
+				F028850E13D2839000DFCF37 /* nal_prefix.h */,
+				F028850F13D2839000DFCF37 /* nalu.h */,
+				F028851013D2839000DFCF37 /* parameter_sets.h */,
+				F028851113D2839000DFCF37 /* parse_mb_syn_cavlc.h */,
+				F028851213D2839000DFCF37 /* pic_queue.h */,
+				F028851313D2839000DFCF37 /* picture.h */,
+				F028851413D2839000DFCF37 /* rec_mb.h */,
+				F028851613D2839000DFCF37 /* slice.h */,
+				F028851D13D2839000DFCF37 /* utils.h */,
+				F028851E13D2839000DFCF37 /* vlc_decoder.h */,
+				F028851F13D2839000DFCF37 /* wels_common_basis.h */,
+				F028852013D2839000DFCF37 /* wels_const.h */,
+			);
+			path = inc;
+			sourceTree = "<group>";
+		};
+		F028852513D2839000DFCF37 /* src */ = {
+			isa = PBXGroup;
+			children = (
+				4CE43BE418AB0F060017DF25 /* au_parser.cpp */,
+				4CE43BE518AB0F060017DF25 /* bit_stream.cpp */,
+				4CE43BE618AB0F060017DF25 /* deblocking.cpp */,
+				4CE43BE718AB0F060017DF25 /* decode_mb_aux.cpp */,
+				4CE43BE818AB0F060017DF25 /* decode_slice.cpp */,
+				4CE43BE918AB0F060017DF25 /* decoder_core.cpp */,
+				4CE43BEA18AB0F060017DF25 /* decoder_data_tables.cpp */,
+				4CE43BEB18AB0F060017DF25 /* decoder.cpp */,
+				4CE43BEC18AB0F060017DF25 /* expand_pic.cpp */,
+				4CE43BED18AB0F060017DF25 /* fmo.cpp */,
+				4CE43BEE18AB0F060017DF25 /* get_intra_predictor.cpp */,
+				4CE43BEF18AB0F060017DF25 /* manage_dec_ref.cpp */,
+				4CE43BF018AB0F060017DF25 /* mc.cpp */,
+				4CE43BF118AB0F060017DF25 /* mem_align.cpp */,
+				4CE43BF218AB0F060017DF25 /* memmgr_nal_unit.cpp */,
+				4CE43BF318AB0F060017DF25 /* mv_pred.cpp */,
+				4CE43BF418AB0F060017DF25 /* parse_mb_syn_cavlc.cpp */,
+				4CE43BF518AB0F060017DF25 /* pic_queue.cpp */,
+				4CE43BF618AB0F060017DF25 /* rec_mb.cpp */,
+				4CE43BF718AB0F060017DF25 /* utils.cpp */,
+			);
+			path = src;
+			sourceTree = "<group>";
+		};
+		F028854613D2839000DFCF37 /* plus */ = {
+			isa = PBXGroup;
+			children = (
+				F028854713D2839000DFCF37 /* inc */,
+				F028854E13D2839000DFCF37 /* src */,
+			);
+			path = plus;
+			sourceTree = "<group>";
+		};
+		F028854713D2839000DFCF37 /* inc */ = {
+			isa = PBXGroup;
+			children = (
+				4CE43C0C18AB0F140017DF25 /* welsCodecTrace.h */,
+				4CE43C0D18AB0F140017DF25 /* welsDecoderExt.h */,
+			);
+			path = inc;
+			sourceTree = "<group>";
+		};
+		F028854E13D2839000DFCF37 /* src */ = {
+			isa = PBXGroup;
+			children = (
+				4CE43C1018AB0F1D0017DF25 /* welsCodecTrace.cpp */,
+				4CE43C1118AB0F1D0017DF25 /* welsDecoderExt.cpp */,
+				F028855313D2839000DFCF37 /* wels_dec_export.def */,
+			);
+			path = src;
+			sourceTree = "<group>";
+		};
+		F02885C513D2840600DFCF37 /* svc */ = {
+			isa = PBXGroup;
+			children = (
+				4CE43B5018AB0EBD0017DF25 /* codec_api.h */,
+				4CE43B5118AB0EBD0017DF25 /* codec_app_def.h */,
+				F02885C613D2840600DFCF37 /* codec_def.h */,
+			);
+			name = svc;
+			path = ../../../../api/svc;
+			sourceTree = SOURCE_ROOT;
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC07A0554694100DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				AA747D9F0F9514B9006C5449 /* h264svcdec_Prefix.pch in Headers */,
+				4CE43BDF18AB0EF50017DF25 /* dec_frame.h in Headers */,
+				4CE43C0F18AB0F140017DF25 /* welsDecoderExt.h in Headers */,
+				F028856A13D2839000DFCF37 /* as264_common.h in Headers */,
+				4CE43BE318AB0EF50017DF25 /* manage_dec_ref.h in Headers */,
+				F028856B13D2839000DFCF37 /* au_parser.h in Headers */,
+				F028856C13D2839000DFCF37 /* bit_stream.h in Headers */,
+				4CE43BE018AB0EF50017DF25 /* dec_golomb.h in Headers */,
+				4CE43C3B18AB0FCE0017DF25 /* cpu_core.h in Headers */,
+				F028857213D2839000DFCF37 /* deblocking.h in Headers */,
+				F028857313D2839000DFCF37 /* decode_mb_aux.h in Headers */,
+				F028857413D2839000DFCF37 /* decoder.h in Headers */,
+				4CE43C4018AB0FCE0017DF25 /* crt_util_safe_x.h in Headers */,
+				4CE43C4718AB0FCE0017DF25 /* logging.h in Headers */,
+				4CE43C3D18AB0FCE0017DF25 /* cpu.h in Headers */,
+				4CE43C4E18AB0FCE0017DF25 /* measure_time.h in Headers */,
+				F028857513D2839000DFCF37 /* decoder_context.h in Headers */,
+				4CE43BE218AB0EF50017DF25 /* decoder_core.h in Headers */,
+				F028857613D2839000DFCF37 /* error_code.h in Headers */,
+				F028857713D2839000DFCF37 /* expand_pic.h in Headers */,
+				4CE43BE118AB0EF50017DF25 /* decode_slice.h in Headers */,
+				4CE43B5218AB0EBD0017DF25 /* codec_api.h in Headers */,
+				F028857813D2839000DFCF37 /* fmo.h in Headers */,
+				F028857913D2839000DFCF37 /* get_intra_predictor.h in Headers */,
+				4CE43C0E18AB0F140017DF25 /* welsCodecTrace.h in Headers */,
+				4CE43C4918AB0FCE0017DF25 /* macros.h in Headers */,
+				F028858013D2839000DFCF37 /* mb_cache.h in Headers */,
+				F028858113D2839000DFCF37 /* mc.h in Headers */,
+				F028858313D2839000DFCF37 /* mem_align.h in Headers */,
+				F028858413D2839000DFCF37 /* memmgr_nal_unit.h in Headers */,
+				4CE43B5318AB0EBD0017DF25 /* codec_app_def.h in Headers */,
+				F028858513D2839000DFCF37 /* mv_pred.h in Headers */,
+				4CE43C4818AB0FCE0017DF25 /* ls_defines.h in Headers */,
+				F028858613D2839000DFCF37 /* nal_prefix.h in Headers */,
+				F028858713D2839000DFCF37 /* nalu.h in Headers */,
+				F028858813D2839000DFCF37 /* parameter_sets.h in Headers */,
+				4CE43C5018AB0FCE0017DF25 /* typedefs.h in Headers */,
+				4CE43C4418AB0FCE0017DF25 /* expand_picture_common.h in Headers */,
+				F028858913D2839000DFCF37 /* parse_mb_syn_cavlc.h in Headers */,
+				F028858A13D2839000DFCF37 /* pic_queue.h in Headers */,
+				F028858B13D2839000DFCF37 /* picture.h in Headers */,
+				4CE43C5318AB0FCE0017DF25 /* WelsThreadLib.h in Headers */,
+				F028858C13D2839000DFCF37 /* rec_mb.h in Headers */,
+				F028858E13D2839000DFCF37 /* slice.h in Headers */,
+				4CE43C4C18AB0FCE0017DF25 /* mc_common.h in Headers */,
+				F028859513D2839000DFCF37 /* utils.h in Headers */,
+				F028859613D2839000DFCF37 /* vlc_decoder.h in Headers */,
+				F028859713D2839000DFCF37 /* wels_common_basis.h in Headers */,
+				4CE43C4318AB0FCE0017DF25 /* deblocking_common.h in Headers */,
+				F028859813D2839000DFCF37 /* wels_const.h in Headers */,
+				F02885C913D2840600DFCF37 /* codec_def.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC07D0554694100DB518D /* h264svcdec */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "h264svcdec" */;
+			buildPhases = (
+				D2AAC07A0554694100DB518D /* Headers */,
+				D2AAC07B0554694100DB518D /* Sources */,
+				D2AAC07C0554694100DB518D /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = h264svcdec;
+			productName = h264svcdec;
+			productReference = D2AAC07E0554694100DB518D /* libwelsdec.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		0867D690FE84028FC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0500;
+			};
+			buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "h264svcdec" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 1;
+			knownRegions = (
+				English,
+				Japanese,
+				French,
+				German,
+			);
+			mainGroup = 0867D691FE84028FC02AAC07 /* h264svcdec */;
+			productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				D2AAC07D0554694100DB518D /* h264svcdec */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC07B0554694100DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				4CE43C0218AB0F060017DF25 /* get_intra_predictor.cpp in Sources */,
+				4CE43C0918AB0F060017DF25 /* pic_queue.cpp in Sources */,
+				4CE43BFB18AB0F060017DF25 /* decode_mb_aux.cpp in Sources */,
+				4CE43BFF18AB0F060017DF25 /* decoder.cpp in Sources */,
+				4CE43C0318AB0F060017DF25 /* manage_dec_ref.cpp in Sources */,
+				4CE43C0418AB0F060017DF25 /* mc.cpp in Sources */,
+				4CE43C1318AB0F1D0017DF25 /* welsDecoderExt.cpp in Sources */,
+				4CE43C0118AB0F060017DF25 /* fmo.cpp in Sources */,
+				4CE43C0818AB0F060017DF25 /* parse_mb_syn_cavlc.cpp in Sources */,
+				4CE43BFA18AB0F060017DF25 /* deblocking.cpp in Sources */,
+				4CE43C0018AB0F060017DF25 /* expand_pic.cpp in Sources */,
+				4CE43C3F18AB0FCE0017DF25 /* crt_util_safe_x.cpp in Sources */,
+				4CE43BFD18AB0F060017DF25 /* decoder_core.cpp in Sources */,
+				4CE43C5218AB0FCE0017DF25 /* WelsThreadLib.cpp in Sources */,
+				4CE43BFE18AB0F060017DF25 /* decoder_data_tables.cpp in Sources */,
+				4CE43C0518AB0F060017DF25 /* mem_align.cpp in Sources */,
+				4CE43C1218AB0F1D0017DF25 /* welsCodecTrace.cpp in Sources */,
+				4CE43BF818AB0F060017DF25 /* au_parser.cpp in Sources */,
+				4CE43C4618AB0FCE0017DF25 /* logging.cpp in Sources */,
+				4CE43C3C18AB0FCE0017DF25 /* cpu.cpp in Sources */,
+				4CE43BFC18AB0F060017DF25 /* decode_slice.cpp in Sources */,
+				4CE43C4218AB0FCE0017DF25 /* deblocking_common.cpp in Sources */,
+				4CE43C0A18AB0F060017DF25 /* rec_mb.cpp in Sources */,
+				4CE43C0B18AB0F060017DF25 /* utils.cpp in Sources */,
+				4CE43C0618AB0F060017DF25 /* memmgr_nal_unit.cpp in Sources */,
+				4CE43C0718AB0F060017DF25 /* mv_pred.cpp in Sources */,
+				4CE43BF918AB0F060017DF25 /* bit_stream.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB921F08733DC00010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = YES;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DSTROOT = /tmp/h264svcdec.dst;
+				GCC_C_LANGUAGE_STANDARD = "compiler-default";
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 3;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = h264svcdec_Prefix.pch;
+				GCC_PREPROCESSOR_DEFINITIONS = "";
+				"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = (
+					APPLE_IOS,
+					HAVE_NEON,
+				);
+				"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*][arch=*]" = APPLE_IOS;
+				GCC_VERSION = "";
+				HEADER_SEARCH_PATHS = "";
+				INSTALL_PATH = /usr/local/lib;
+				IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+				ONLY_ACTIVE_ARCH = YES;
+				PRODUCT_NAME = welsdec;
+				TARGETED_DEVICE_FAMILY = "1,2";
+			};
+			name = Debug;
+		};
+		1DEB922008733DC00010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = YES;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				DSTROOT = /tmp/h264svcdec.dst;
+				GCC_C_LANGUAGE_STANDARD = "compiler-default";
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 3;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = h264svcdec_Prefix.pch;
+				GCC_PREPROCESSOR_DEFINITIONS = "";
+				"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = (
+					APPLE_IOS,
+					HAVE_NEON,
+				);
+				"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*][arch=*]" = APPLE_IOS;
+				GCC_VERSION = "";
+				HEADER_SEARCH_PATHS = "";
+				INSTALL_PATH = /usr/local/lib;
+				IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+				ONLY_ACTIVE_ARCH = YES;
+				PRODUCT_NAME = welsdec;
+				TARGETED_DEVICE_FAMILY = "1,2";
+			};
+			name = Release;
+		};
+		1DEB922308733DC00010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_C_LANGUAGE_STANDARD = c99;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_VERSION = com.apple.compilers.llvmgcc42;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				OTHER_LDFLAGS = "-ObjC";
+				PREBINDING = NO;
+				SDKROOT = iphoneos;
+			};
+			name = Debug;
+		};
+		1DEB922408733DC00010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_C_LANGUAGE_STANDARD = c99;
+				GCC_VERSION = com.apple.compilers.llvmgcc42;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_LDFLAGS = "-ObjC";
+				PREBINDING = NO;
+				SDKROOT = iphoneos;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "h264svcdec" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB921F08733DC00010E9CD /* Debug */,
+				1DEB922008733DC00010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "h264svcdec" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB922308733DC00010E9CD /* Debug */,
+				1DEB922408733DC00010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
+}
--- /dev/null
+++ b/codec/build/iOS/dec/h264svcdec/h264svcdec_Prefix.pch
@@ -1,0 +1,7 @@
+//
+// Prefix header for all source files of the 'CocoaTouchStaticLibrary' target in the 'CocoaTouchStaticLibrary' project.
+//
+
+#ifdef __OBJC__
+    #import <Foundation/Foundation.h>
+#endif
--- a/codec/console/dec/src/h264dec.cpp
+++ b/codec/console/dec/src/h264dec.cpp
@@ -299,7 +299,7 @@
   }
 }
 
-#if defined(ANDROID_NDK)
+#if (defined(ANDROID_NDK)||defined(APPLE_IOS))
 int32_t DecMain(int32_t iArgC, char* pArgV[]) {
 #else
 int32_t main (int32_t iArgC, char* pArgV[]) {