├── WebRtc.Mono.Droid ├── lib │ ├── ViEAndroidJavaAPI.jar │ ├── audio_device_module_java.jar │ ├── video_capture_module_java.jar │ ├── video_render_module_java.jar │ └── armeabi-v7a │ │ └── libwebrtc-video-demo-jni.so ├── Resources │ ├── Drawable │ │ └── logo.png │ ├── Layout │ │ ├── send.xml │ │ ├── row.xml │ │ ├── tabhost.xml │ │ ├── both.xml │ │ ├── vconfig.xml │ │ ├── aconfig.xml │ │ └── main.xml │ ├── AboutResources.txt │ ├── Values │ │ └── strings.xml │ └── Resource.Designer.cs ├── src │ ├── video_engine │ │ └── test │ │ │ └── android │ │ │ ├── res │ │ │ ├── drawable │ │ │ │ └── logo.png │ │ │ ├── layout │ │ │ │ ├── send.xml │ │ │ │ ├── row.xml │ │ │ │ ├── tabhost.xml │ │ │ │ ├── both.xml │ │ │ │ ├── vconfig.xml │ │ │ │ ├── aconfig.xml │ │ │ │ └── main.xml │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ ├── libs │ │ │ ├── audio_device_module_java.jar │ │ │ ├── video_render_module_java.jar │ │ │ ├── video_capture_module_java.jar │ │ │ └── armeabi-v7a │ │ │ │ └── libwebrtc-video-demo-jni.so │ │ │ ├── gen │ │ │ ├── org │ │ │ │ └── webrtc │ │ │ │ │ └── videoengineapp │ │ │ │ │ ├── BuildConfig.java │ │ │ │ │ └── R.java │ │ │ └── R.java.d │ │ │ ├── project.properties │ │ │ ├── src │ │ │ └── org │ │ │ │ └── webrtc │ │ │ │ ├── videoengineapp │ │ │ │ ├── IViEAndroidCallback.java │ │ │ │ └── ViEAndroidJavaAPI.java │ │ │ │ └── videoengine │ │ │ │ └── ViEMediaCodecDecoder.java │ │ │ ├── AndroidManifest.xml │ │ │ ├── build.xml │ │ │ └── jni │ │ │ └── org_webrtc_videoengineapp_vie_android_java_api.h │ └── modules │ │ ├── video_render │ │ └── android │ │ │ └── java │ │ │ └── src │ │ │ └── org │ │ │ └── webrtc │ │ │ └── videoengine │ │ │ ├── ViERenderer.java │ │ │ ├── ViESurfaceRenderer.java │ │ │ └── ViEAndroidGLES20.java │ │ ├── audio_device │ │ └── android │ │ │ └── java │ │ │ └── src │ │ │ └── org │ │ │ └── webrtc │ │ │ └── voiceengine │ │ │ ├── AudioManagerAndroid.java │ │ │ └── WebRTCAudioDevice.java │ │ └── video_capture │ │ └── android │ │ └── java │ │ └── src │ │ └── org │ │ └── webrtc │ │ └── videoengine │ │ ├── VideoCaptureDeviceInfoAndroid.java │ │ └── VideoCaptureAndroid.java ├── Properties │ ├── AndroidManifest.xml │ └── AssemblyInfo.cs ├── Assets │ └── AboutAssets.txt ├── DateTimeHelperClass.cs └── WebRtc.Mono.Droid.csproj ├── Org.Webrtc.Videoengineapp ├── Jars │ ├── ViEAndroidJavaAPI.jar │ └── AboutJars.txt ├── Transforms │ ├── Metadata.xml │ ├── EnumMethods.xml │ └── EnumFields.xml ├── Properties │ └── AssemblyInfo.cs ├── Additions │ └── AboutAdditions.txt └── Org.Webrtc.Videoengineapp.csproj ├── Org.Webrtc.Videoengine ├── Jars │ ├── video_render_module_java.jar │ ├── video_capture_module_java.jar │ └── AboutJars.txt ├── Transforms │ ├── Metadata.xml │ ├── EnumMethods.xml │ └── EnumFields.xml ├── Properties │ └── AssemblyInfo.cs ├── Additions │ └── AboutAdditions.txt └── Org.Webrtc.Videoengine.csproj ├── Org.Webrtc.Voiceengine ├── Jars │ ├── audio_device_module_java.jar │ └── AboutJars.txt ├── Transforms │ ├── Metadata.xml │ ├── EnumMethods.xml │ └── EnumFields.xml ├── Properties │ └── AssemblyInfo.cs ├── Additions │ └── AboutAdditions.txt └── Org.Webrtc.Voiceengine.csproj ├── README.md ├── LICENSE ├── .gitignore └── WebRtc.Mono.sln /WebRtc.Mono.Droid/lib/ViEAndroidJavaAPI.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenneththorman/webrtc-app-mono/HEAD/WebRtc.Mono.Droid/lib/ViEAndroidJavaAPI.jar -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/Resources/Drawable/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenneththorman/webrtc-app-mono/HEAD/WebRtc.Mono.Droid/Resources/Drawable/logo.png -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/lib/audio_device_module_java.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenneththorman/webrtc-app-mono/HEAD/WebRtc.Mono.Droid/lib/audio_device_module_java.jar -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/lib/video_capture_module_java.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenneththorman/webrtc-app-mono/HEAD/WebRtc.Mono.Droid/lib/video_capture_module_java.jar -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/lib/video_render_module_java.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenneththorman/webrtc-app-mono/HEAD/WebRtc.Mono.Droid/lib/video_render_module_java.jar -------------------------------------------------------------------------------- /Org.Webrtc.Videoengineapp/Jars/ViEAndroidJavaAPI.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenneththorman/webrtc-app-mono/HEAD/Org.Webrtc.Videoengineapp/Jars/ViEAndroidJavaAPI.jar -------------------------------------------------------------------------------- /Org.Webrtc.Videoengine/Jars/video_render_module_java.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenneththorman/webrtc-app-mono/HEAD/Org.Webrtc.Videoengine/Jars/video_render_module_java.jar -------------------------------------------------------------------------------- /Org.Webrtc.Voiceengine/Jars/audio_device_module_java.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenneththorman/webrtc-app-mono/HEAD/Org.Webrtc.Voiceengine/Jars/audio_device_module_java.jar -------------------------------------------------------------------------------- /Org.Webrtc.Videoengine/Jars/video_capture_module_java.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenneththorman/webrtc-app-mono/HEAD/Org.Webrtc.Videoengine/Jars/video_capture_module_java.jar -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/lib/armeabi-v7a/libwebrtc-video-demo-jni.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenneththorman/webrtc-app-mono/HEAD/WebRtc.Mono.Droid/lib/armeabi-v7a/libwebrtc-video-demo-jni.so -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | webrtc-app-mono 2 | ========================= 3 | 4 | Goal: 5 | - Porting WebRTC demo app (https://code.google.com/p/webrtc/source/browse/trunk/webrtc) to C# - Mono.Android (Xamarin) 6 | 7 | 8 | -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/src/video_engine/test/android/res/drawable/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenneththorman/webrtc-app-mono/HEAD/WebRtc.Mono.Droid/src/video_engine/test/android/res/drawable/logo.png -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/src/video_engine/test/android/libs/audio_device_module_java.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenneththorman/webrtc-app-mono/HEAD/WebRtc.Mono.Droid/src/video_engine/test/android/libs/audio_device_module_java.jar -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/src/video_engine/test/android/libs/video_render_module_java.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenneththorman/webrtc-app-mono/HEAD/WebRtc.Mono.Droid/src/video_engine/test/android/libs/video_render_module_java.jar -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/src/video_engine/test/android/libs/video_capture_module_java.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenneththorman/webrtc-app-mono/HEAD/WebRtc.Mono.Droid/src/video_engine/test/android/libs/video_capture_module_java.jar -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/src/video_engine/test/android/libs/armeabi-v7a/libwebrtc-video-demo-jni.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenneththorman/webrtc-app-mono/HEAD/WebRtc.Mono.Droid/src/video_engine/test/android/libs/armeabi-v7a/libwebrtc-video-demo-jni.so -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/src/video_engine/test/android/gen/org/webrtc/videoengineapp/BuildConfig.java: -------------------------------------------------------------------------------- 1 | /** Automatically generated file. DO NOT MODIFY */ 2 | package org.webrtc.videoengineapp; 3 | 4 | public final class BuildConfig { 5 | public final static boolean DEBUG = true; 6 | } -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/Properties/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Org.Webrtc.Videoengine/Transforms/Metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | -------------------------------------------------------------------------------- /Org.Webrtc.Voiceengine/Transforms/Metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | -------------------------------------------------------------------------------- /Org.Webrtc.Videoengineapp/Transforms/Metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | -------------------------------------------------------------------------------- /Org.Webrtc.Videoengine/Transforms/EnumMethods.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | -------------------------------------------------------------------------------- /Org.Webrtc.Voiceengine/Transforms/EnumMethods.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | -------------------------------------------------------------------------------- /Org.Webrtc.Videoengineapp/Transforms/EnumMethods.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/Resources/Layout/send.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 11 | 12 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/src/video_engine/test/android/res/layout/send.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 11 | 12 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/src/video_engine/test/android/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system use, 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-19 15 | -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/Assets/AboutAssets.txt: -------------------------------------------------------------------------------- 1 | Any raw assets you want to be deployed with your application can be placed in 2 | this directory (and child directories) and given a Build Action of "AndroidAsset". 3 | 4 | These files will be deployed with you package and will be accessible using Android's 5 | AssetManager, like this: 6 | 7 | public class ReadAsset : Activity 8 | { 9 | protected override void OnCreate (Bundle bundle) 10 | { 11 | base.OnCreate (bundle); 12 | 13 | InputStream input = Assets.Open ("my_asset.txt"); 14 | } 15 | } 16 | 17 | Additionally, some Android functions will automatically load asset files: 18 | 19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); -------------------------------------------------------------------------------- /Org.Webrtc.Videoengine/Transforms/EnumFields.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | -------------------------------------------------------------------------------- /Org.Webrtc.Voiceengine/Transforms/EnumFields.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | -------------------------------------------------------------------------------- /Org.Webrtc.Videoengineapp/Transforms/EnumFields.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/Resources/Layout/row.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 18 | 19 | -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/src/video_engine/test/android/res/layout/row.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 18 | 19 | -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/src/video_engine/test/android/src/org/webrtc/videoengineapp/IViEAndroidCallback.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | package org.webrtc.videoengineapp; 12 | 13 | public interface IViEAndroidCallback { 14 | public int updateStats(int frameRateI, int bitRateI, 15 | int packetLoss, int frameRateO, 16 | int bitRateO); 17 | 18 | public int newIncomingResolution(int width, int height); 19 | } 20 | -------------------------------------------------------------------------------- /Org.Webrtc.Videoengine/Jars/AboutJars.txt: -------------------------------------------------------------------------------- 1 | This directory is for Android .jars. 2 | 3 | There are 2 types of jars that are supported: 4 | 5 | == Input Jar == 6 | 7 | This is the jar that bindings should be generated for. 8 | 9 | For example, if you were binding the Google Maps library, this would 10 | be Google's "maps.jar". 11 | 12 | Set the build action for these jars in the properties page to "InputJar". 13 | 14 | 15 | == Reference Jars == 16 | 17 | These are jars that are referenced by the input jar. C# bindings will 18 | not be created for these jars. These jars will be used to resolve 19 | types used by the input jar. 20 | 21 | NOTE: Do not add "android.jar" as a reference jar. It will be added automatically 22 | based on the Target Framework selected. 23 | 24 | Set the build action for these jars in the properties page to "ReferenceJar". -------------------------------------------------------------------------------- /Org.Webrtc.Voiceengine/Jars/AboutJars.txt: -------------------------------------------------------------------------------- 1 | This directory is for Android .jars. 2 | 3 | There are 2 types of jars that are supported: 4 | 5 | == Input Jar == 6 | 7 | This is the jar that bindings should be generated for. 8 | 9 | For example, if you were binding the Google Maps library, this would 10 | be Google's "maps.jar". 11 | 12 | Set the build action for these jars in the properties page to "InputJar". 13 | 14 | 15 | == Reference Jars == 16 | 17 | These are jars that are referenced by the input jar. C# bindings will 18 | not be created for these jars. These jars will be used to resolve 19 | types used by the input jar. 20 | 21 | NOTE: Do not add "android.jar" as a reference jar. It will be added automatically 22 | based on the Target Framework selected. 23 | 24 | Set the build action for these jars in the properties page to "ReferenceJar". -------------------------------------------------------------------------------- /Org.Webrtc.Videoengineapp/Jars/AboutJars.txt: -------------------------------------------------------------------------------- 1 | This directory is for Android .jars. 2 | 3 | There are 2 types of jars that are supported: 4 | 5 | == Input Jar == 6 | 7 | This is the jar that bindings should be generated for. 8 | 9 | For example, if you were binding the Google Maps library, this would 10 | be Google's "maps.jar". 11 | 12 | Set the build action for these jars in the properties page to "InputJar". 13 | 14 | 15 | == Reference Jars == 16 | 17 | These are jars that are referenced by the input jar. C# bindings will 18 | not be created for these jars. These jars will be used to resolve 19 | types used by the input jar. 20 | 21 | NOTE: Do not add "android.jar" as a reference jar. It will be added automatically 22 | based on the Target Framework selected. 23 | 24 | Set the build action for these jars in the properties page to "ReferenceJar". -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/DateTimeHelperClass.cs: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------------------------------------- 2 | // Copyright © 2007 - 2013 Tangible Software Solutions Inc. 3 | // This class can be used by anyone provided that the copyright notice remains intact. 4 | // 5 | // This class is used to replace calls to Java's System.currentTimeMillis with the C# equivalent. 6 | // Unix time is defined as the number of seconds that have elapsed since midnight UTC, 1 January 1970. 7 | //--------------------------------------------------------------------------------------------------------- 8 | namespace WebRtc.Mono.Droid 9 | { 10 | internal static class DateTimeHelperClass 11 | { 12 | private static readonly System.DateTime Jan1st1970 = new System.DateTime(1970, 1, 1, 0, 0, 0, System.DateTimeKind.Utc); 13 | internal static long CurrentUnixTimeMillis() 14 | { 15 | return (long)(System.DateTime.UtcNow - Jan1st1970).TotalMilliseconds; 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/src/video_engine/test/android/gen/R.java.d: -------------------------------------------------------------------------------- 1 | /home/user1/WebRTCDemo/trunk/webrtc/video_engine/test/android/gen/org/webrtc/videoengineapp/R.java \ 2 | : /home/user1/WebRTCDemo/trunk/webrtc/video_engine/test/android/res/drawable/logo.png \ 3 | /home/user1/WebRTCDemo/trunk/webrtc/video_engine/test/android/res/values/strings.xml \ 4 | /home/user1/WebRTCDemo/trunk/webrtc/video_engine/test/android/res/layout/aconfig.xml \ 5 | /home/user1/WebRTCDemo/trunk/webrtc/video_engine/test/android/res/layout/main.xml \ 6 | /home/user1/WebRTCDemo/trunk/webrtc/video_engine/test/android/res/layout/tabhost.xml \ 7 | /home/user1/WebRTCDemo/trunk/webrtc/video_engine/test/android/res/layout/vconfig.xml \ 8 | /home/user1/WebRTCDemo/trunk/webrtc/video_engine/test/android/res/layout/row.xml \ 9 | /home/user1/WebRTCDemo/trunk/webrtc/video_engine/test/android/res/layout/send.xml \ 10 | /home/user1/WebRTCDemo/trunk/webrtc/video_engine/test/android/res/layout/both.xml \ 11 | /home/user1/WebRTCDemo/trunk/webrtc/video_engine/test/android/bin/AndroidManifest.xml \ 12 | -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/Resources/Layout/tabhost.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 14 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/src/video_engine/test/android/res/layout/tabhost.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 14 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | using Android.App; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("WebRtc.Mono.Droid")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("WebRtc.Mono.Droid")] 14 | [assembly: AssemblyCopyright("Copyright © 2013")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | [assembly: ComVisible(false)] 18 | 19 | // Version information for an assembly consists of the following four values: 20 | // 21 | // Major Version 22 | // Minor Version 23 | // Build Number 24 | // Revision 25 | // 26 | // You can specify all the values or you can default the Build and Revision Numbers 27 | // by using the '*' as shown below: 28 | // [assembly: AssemblyVersion("1.0.*")] 29 | [assembly: AssemblyVersion("1.0.0.0")] 30 | [assembly: AssemblyFileVersion("1.0.0.0")] 31 | 32 | // Add some common permissions, these can be removed if not needed 33 | [assembly: UsesPermission(Android.Manifest.Permission.Internet)] 34 | [assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] 35 | -------------------------------------------------------------------------------- /Org.Webrtc.Videoengine/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | using Android.App; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("Org.Webrtc.Videoengine")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("Org.Webrtc.Videoengine")] 14 | [assembly: AssemblyCopyright("Copyright © 2013")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | [assembly: ComVisible(false)] 18 | 19 | // Version information for an assembly consists of the following four values: 20 | // 21 | // Major Version 22 | // Minor Version 23 | // Build Number 24 | // Revision 25 | // 26 | // You can specify all the values or you can default the Build and Revision Numbers 27 | // by using the '*' as shown below: 28 | // [assembly: AssemblyVersion("1.0.*")] 29 | [assembly: AssemblyVersion("1.0.0.0")] 30 | [assembly: AssemblyFileVersion("1.0.0.0")] 31 | 32 | // Add some common permissions, these can be removed if not needed 33 | [assembly: UsesPermission(Android.Manifest.Permission.Internet)] 34 | [assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] 35 | -------------------------------------------------------------------------------- /Org.Webrtc.Voiceengine/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | using Android.App; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("Org.Webrtc.Voiceengine")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("Org.Webrtc.Voiceengine")] 14 | [assembly: AssemblyCopyright("Copyright © 2013")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | [assembly: ComVisible(false)] 18 | 19 | // Version information for an assembly consists of the following four values: 20 | // 21 | // Major Version 22 | // Minor Version 23 | // Build Number 24 | // Revision 25 | // 26 | // You can specify all the values or you can default the Build and Revision Numbers 27 | // by using the '*' as shown below: 28 | // [assembly: AssemblyVersion("1.0.*")] 29 | [assembly: AssemblyVersion("1.0.0.0")] 30 | [assembly: AssemblyFileVersion("1.0.0.0")] 31 | 32 | // Add some common permissions, these can be removed if not needed 33 | [assembly: UsesPermission(Android.Manifest.Permission.Internet)] 34 | [assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] 35 | -------------------------------------------------------------------------------- /Org.Webrtc.Videoengineapp/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | using Android.App; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("Org.Webrtc.Videoengineapp")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("Org.Webrtc.Videoengineapp")] 14 | [assembly: AssemblyCopyright("Copyright © 2013")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | [assembly: ComVisible(false)] 18 | 19 | // Version information for an assembly consists of the following four values: 20 | // 21 | // Major Version 22 | // Minor Version 23 | // Build Number 24 | // Revision 25 | // 26 | // You can specify all the values or you can default the Build and Revision Numbers 27 | // by using the '*' as shown below: 28 | // [assembly: AssemblyVersion("1.0.*")] 29 | [assembly: AssemblyVersion("1.0.0.0")] 30 | [assembly: AssemblyFileVersion("1.0.0.0")] 31 | 32 | // Add some common permissions, these can be removed if not needed 33 | [assembly: UsesPermission(Android.Manifest.Permission.Internet)] 34 | [assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] 35 | -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/src/video_engine/test/android/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011, The WebRTC project authors. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in 12 | the documentation and/or other materials provided with the 13 | distribution. 14 | 15 | * Neither the name of Google nor the names of its contributors may 16 | be used to endorse or promote products derived from this software 17 | without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /Org.Webrtc.Videoengine/Additions/AboutAdditions.txt: -------------------------------------------------------------------------------- 1 | Additions allow you to add arbitrary C# to the generated classes 2 | before they are compiled. This can be helpful for providing convenience 3 | methods or adding pure C# classes. 4 | 5 | == Adding Methods to Generated Classes == 6 | 7 | Let's say the library being bound has a Rectangle class with a constructor 8 | that takes an x and y position, and a width and length size. It will look like 9 | this: 10 | 11 | public partial class Rectangle 12 | { 13 | public Rectangle (int x, int y, int width, int height) 14 | { 15 | // JNI bindings 16 | } 17 | } 18 | 19 | Imagine we want to add a constructor to this class that takes a Point and 20 | Size structure instead of 4 ints. We can add a new file called Rectangle.cs 21 | with a partial class containing our new method: 22 | 23 | public partial class Rectangle 24 | { 25 | public Rectangle (Point location, Size size) : 26 | this (location.X, location.Y, size.Width, size.Height) 27 | { 28 | } 29 | } 30 | 31 | At compile time, the additions class will be added to the generated class 32 | and the final assembly will a Rectangle class with both constructors. 33 | 34 | 35 | == Adding C# Classes == 36 | 37 | Another thing that can be done is adding fully C# managed classes to the 38 | generated library. In the above example, let's assume that there isn't a 39 | Point class available in Java or our library. The one we create doesn't need 40 | to interact with Java, so we'll create it like a normal class in C#. 41 | 42 | By adding a Point.cs file with this class, it will end up in the binding library: 43 | 44 | public class Point 45 | { 46 | public int X { get; set; } 47 | public int Y { get; set; } 48 | } -------------------------------------------------------------------------------- /Org.Webrtc.Voiceengine/Additions/AboutAdditions.txt: -------------------------------------------------------------------------------- 1 | Additions allow you to add arbitrary C# to the generated classes 2 | before they are compiled. This can be helpful for providing convenience 3 | methods or adding pure C# classes. 4 | 5 | == Adding Methods to Generated Classes == 6 | 7 | Let's say the library being bound has a Rectangle class with a constructor 8 | that takes an x and y position, and a width and length size. It will look like 9 | this: 10 | 11 | public partial class Rectangle 12 | { 13 | public Rectangle (int x, int y, int width, int height) 14 | { 15 | // JNI bindings 16 | } 17 | } 18 | 19 | Imagine we want to add a constructor to this class that takes a Point and 20 | Size structure instead of 4 ints. We can add a new file called Rectangle.cs 21 | with a partial class containing our new method: 22 | 23 | public partial class Rectangle 24 | { 25 | public Rectangle (Point location, Size size) : 26 | this (location.X, location.Y, size.Width, size.Height) 27 | { 28 | } 29 | } 30 | 31 | At compile time, the additions class will be added to the generated class 32 | and the final assembly will a Rectangle class with both constructors. 33 | 34 | 35 | == Adding C# Classes == 36 | 37 | Another thing that can be done is adding fully C# managed classes to the 38 | generated library. In the above example, let's assume that there isn't a 39 | Point class available in Java or our library. The one we create doesn't need 40 | to interact with Java, so we'll create it like a normal class in C#. 41 | 42 | By adding a Point.cs file with this class, it will end up in the binding library: 43 | 44 | public class Point 45 | { 46 | public int X { get; set; } 47 | public int Y { get; set; } 48 | } -------------------------------------------------------------------------------- /Org.Webrtc.Videoengineapp/Additions/AboutAdditions.txt: -------------------------------------------------------------------------------- 1 | Additions allow you to add arbitrary C# to the generated classes 2 | before they are compiled. This can be helpful for providing convenience 3 | methods or adding pure C# classes. 4 | 5 | == Adding Methods to Generated Classes == 6 | 7 | Let's say the library being bound has a Rectangle class with a constructor 8 | that takes an x and y position, and a width and length size. It will look like 9 | this: 10 | 11 | public partial class Rectangle 12 | { 13 | public Rectangle (int x, int y, int width, int height) 14 | { 15 | // JNI bindings 16 | } 17 | } 18 | 19 | Imagine we want to add a constructor to this class that takes a Point and 20 | Size structure instead of 4 ints. We can add a new file called Rectangle.cs 21 | with a partial class containing our new method: 22 | 23 | public partial class Rectangle 24 | { 25 | public Rectangle (Point location, Size size) : 26 | this (location.X, location.Y, size.Width, size.Height) 27 | { 28 | } 29 | } 30 | 31 | At compile time, the additions class will be added to the generated class 32 | and the final assembly will a Rectangle class with both constructors. 33 | 34 | 35 | == Adding C# Classes == 36 | 37 | Another thing that can be done is adding fully C# managed classes to the 38 | generated library. In the above example, let's assume that there isn't a 39 | Point class available in Java or our library. The one we create doesn't need 40 | to interact with Java, so we'll create it like a normal class in C#. 41 | 42 | By adding a Point.cs file with this class, it will end up in the binding library: 43 | 44 | public class Point 45 | { 46 | public int X { get; set; } 47 | public int Y { get; set; } 48 | } -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/Resources/AboutResources.txt: -------------------------------------------------------------------------------- 1 | Images, layout descriptions, binary blobs and string dictionaries can be included 2 | in your application as resource files. Various Android APIs are designed to 3 | operate on the resource IDs instead of dealing with images, strings or binary blobs 4 | directly. 5 | 6 | For example, a sample Android app that contains a user interface layout (main.xml), 7 | an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) 8 | would keep its resources in the "Resources" directory of the application: 9 | 10 | Resources/ 11 | drawable-hdpi/ 12 | icon.png 13 | 14 | drawable-ldpi/ 15 | icon.png 16 | 17 | drawable-mdpi/ 18 | icon.png 19 | 20 | layout/ 21 | main.xml 22 | 23 | values/ 24 | strings.xml 25 | 26 | In order to get the build system to recognize Android resources, set the build action to 27 | "AndroidResource". The native Android APIs do not operate directly with filenames, but 28 | instead operate on resource IDs. When you compile an Android application that uses resources, 29 | the build system will package the resources for distribution and generate a class called 30 | "Resource" that contains the tokens for each one of the resources included. For example, 31 | for the above Resources layout, this is what the Resource class would expose: 32 | 33 | public class Resource { 34 | public class drawable { 35 | public const int icon = 0x123; 36 | } 37 | 38 | public class layout { 39 | public const int main = 0x456; 40 | } 41 | 42 | public class strings { 43 | public const int first_string = 0xabc; 44 | public const int second_string = 0xbcd; 45 | } 46 | } 47 | 48 | You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main 49 | to reference the layout/main.xml file, or Resource.strings.first_string to reference the first 50 | string in the dictionary file values/strings.xml. -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/Resources/Values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | WebRTC 4 | Error 5 | Camera Error 6 | Choose a codec type 7 | Video Engine Android Demo 8 | Codec Type 9 | Codec Size 10 | Remote IP address 11 | Loopback 12 | Stats 13 | Start Listen 14 | Start Send 15 | Start Both 16 | Voice 17 | Video Receive 18 | Video Send 19 | Global Settings 20 | Video Settings 21 | Video Tx Port 22 | Video Rx Port 23 | Audio Tx Port 24 | Audio Rx Port 25 | AGC 26 | VAD 27 | AECM 28 | NS 29 | NACK 30 | SwitchToFront 31 | SwitchToBack 32 | StartCall 33 | StopCall 34 | Exit 35 | Speaker 36 | APMRecord 37 | rtpdump 38 | SurfaceView 39 | MediaCodec Decoder/Renderer 40 | OpenGL 41 | 42 | -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/src/video_engine/test/android/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | WebRTC 4 | Error 5 | Camera Error 6 | Choose a codec type 7 | Video Engine Android Demo 8 | Codec Type 9 | Codec Size 10 | Remote IP address 11 | Loopback 12 | Stats 13 | Start Listen 14 | Start Send 15 | Start Both 16 | Voice 17 | Video Receive 18 | Video Send 19 | Global Settings 20 | Video Settings 21 | Video Tx Port 22 | Video Rx Port 23 | Audio Tx Port 24 | Audio Rx Port 25 | AGC 26 | VAD 27 | AECM 28 | NS 29 | NACK 30 | SwitchToFront 31 | SwitchToBack 32 | StartCall 33 | StopCall 34 | Exit 35 | Speaker 36 | APMRecord 37 | rtpdump 38 | SurfaceView 39 | MediaCodec Decoder/Renderer 40 | OpenGL 41 | 42 | -------------------------------------------------------------------------------- /WebRtc.Mono.Droid/Resources/Layout/both.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 14 | 15 | 20 |