radioman / webrtc.net Goto Github PK
View Code? Open in Web Editor NEWWebRTC for C# & C++/CLI
License: Other
WebRTC for C# & C++/CLI
License: Other
I'm curious this library is working great on my machines but it is currently causing my app to completely crash on Windows 7. I'm compiling it as a 32-bit library and running my app as a 32-bit process. I don't get anything in the eventlog or on the screen when it crashes.
Do you have any ideas? I'm going to try and install a remote debugger to see if I can figure out the issue.
how to set the audio source to the computer's audio not to the Mic ?
Or
how to set the audio source to the default output device ?
Dear,
Is there any possibility of compiling the project so it can be incorporated into .NET 3.5? We are working to implement it in Unity, unfortunately Unity still uses .NET 3.5 and the new versions are found in Beta and have stability problems.
Thank you very much!
If I want to Dispose webRtcNative object it crashes.
Hi I'm struggling to get webrtc working on both ends. Do you have any guidance? Or should I show you the code so far. I'm creating the offer and passing it over with ice candidates but only one side seems to generate the ice candidates.
Could you provide build instructions for x64? I'm having trouble linking the libvpx to the existing C++/CLI project. I follow the "gn gen" instructions, but I'm getting a lot of unresolved symbols when linking to WebRtc.NET (sse, avx etc.)
Is all that webrtc lib stuff for a windows 32-bit friendly?
How can I close video capture device without closing the application in runtime ?!
using desktop_capture module to get list of opened applications and capturing selected application
Atleast Guide me. Where can I start. Any info is appreciated.
How to compile all this stuff? Why no documentation? Is it friendly for msbuild 2013??? I have tried to compile but many errors in headers. Why? what does it mean " playdelay no overloaded function takes 2 arguments"? you have a special compiler on your machine?
AudioRender::OnData is not being called, I can't figured out why
There are vc++ specific dependencies on the project. I'd like to be able to use this with xamarin\mono.
Noticed from the rtc_main.js (webpage) that there's the ability to send local video stream to the c# code:
if (localstream) {
remotestream.addStream(localstream);
}
I would like to know whether its possible to use your library to display the local stream on the MainForm within the app? (in other words broadcasting from the page to the app).
Very much appreciate your kind reply.
Shawn
I was trying to build the native code:
Using this command :
gn gen out/ReleaseX86 --ide="vs2015" --args="is_debug=false target_cpu="x86" is_component_build=false symbol_level=0"
I got this error :
gn.py: Could not find gn executable at: \src\buildtools\win\gn.exe
Using webrtc::DesktopCapturer::CreateWindowCapturer instead of webrtc::DesktopCapturer::CreateScreenCapturer
https://github.com/radioman/WebRtc.NET/blob/master/WebRtc.NET/src/defaults.cc#L68
CreateScreenCapturer worked for me but when I use CreateWindowCapturer it crashes in CaptureFrame or in decoder
I don't know why ?
Hi!
With which gn
options do you do the native build? I tried to reproduce the libraries but those generated by this do not seem to be compatible (ignoring your x64 approach at this moment):
gn gen out/Debug --args="target_cpu=\"x86\" is_component_build=true"
I get a boringssl.dll.lib (instead of boringssl.lib) and a protobuf_lite.dll.lib (instead of protobuf_lite.lib) and when linking against those I still got some unresolved externals. Might be mainly the libvpx intrinsics because I dont get libvpx_intrinsics_*.lib files after the compilation completed, just libvpx.lib and libvpx_yasm.lib. So I guess there most be at least one more flag to control the libvpx build.
Any hints?
solved by adding more defines to X:\webrtc-checkout\src\third_party\libjpeg_turbo\jpeglibmangler.h
#define jsimd_can_huff_encode_one_block chromium_jsimd_can_huff_encode_one_block
#define jsimd_huff_encode_one_block chromium_jsimd_huff_encode_one_block
#define jsimd_can_rgb_ycc chromium_jsimd_can_rgb_ycc
#define jsimd_can_rgb_gray chromium_jsimd_can_rgb_gray
#define jsimd_can_ycc_rgb chromium_jsimd_can_ycc_rgb
#define jsimd_can_ycc_rgb565 chromium_jsimd_can_ycc_rgb565
#define jsimd_rgb_ycc_convert chromium_jsimd_rgb_ycc_convert
#define jsimd_rgb_gray_convert chromium_jsimd_rgb_gray_convert
#define jsimd_ycc_rgb_convert chromium_jsimd_ycc_rgb_convert
#define jsimd_ycc_rgb565_convert chromium_jsimd_ycc_rgb565_convert
#define jsimd_can_h2v2_downsample chromium_jsimd_can_h2v2_downsample
#define jsimd_can_h2v1_downsample chromium_jsimd_can_h2v1_downsample
#define jsimd_h2v2_downsample chromium_jsimd_h2v2_downsample
#define jsimd_h2v1_downsample chromium_jsimd_h2v1_downsample
#define jsimd_can_h2v2_upsample chromium_jsimd_can_h2v2_upsample
#define jsimd_can_h2v1_upsample chromium_jsimd_can_h2v1_upsample
#define jsimd_h2v2_upsample chromium_jsimd_h2v2_upsample
#define jsimd_h2v1_upsample chromium_jsimd_h2v1_upsample
#define jsimd_can_h2v2_fancy_upsample chromium_jsimd_can_h2v2_fancy_upsample
#define jsimd_can_h2v1_fancy_upsample chromium_jsimd_can_h2v1_fancy_upsample
#define jsimd_h2v2_fancy_upsample chromium_jsimd_h2v2_fancy_upsample
#define jsimd_h2v1_fancy_upsample chromium_jsimd_h2v1_fancy_upsample
#define jsimd_can_h2v2_merged_upsample chromium_jsimd_can_h2v2_merged_upsample
#define jsimd_can_h2v1_merged_upsample chromium_jsimd_can_h2v1_merged_upsample
#define jsimd_h2v2_merged_upsample chromium_jsimd_h2v2_merged_upsample
#define jsimd_h2v1_merged_upsample chromium_jsimd_h2v1_merged_upsample
#define jsimd_can_convsamp chromium_jsimd_can_convsamp
#define jsimd_can_convsamp_float chromium_jsimd_can_convsamp_float
#define jsimd_convsamp chromium_jsimd_convsamp
#define jsimd_convsamp_float chromium_jsimd_convsamp_float
#define jsimd_can_fdct_islow chromium_jsimd_can_fdct_islow
#define jsimd_can_fdct_ifast chromium_jsimd_can_fdct_ifast
#define jsimd_can_fdct_float chromium_jsimd_can_fdct_float
#define jsimd_can_quantize chromium_jsimd_can_quantize
#define jsimd_can_quantize_float chromium_jsimd_can_quantize_float
#define jsimd_quantize chromium_jsimd_quantize
#define jsimd_quantize_float chromium_jsimd_quantize_float
#define jsimd_can_idct_2x2 chromium_jsimd_can_idct_2x2
#define jsimd_can_idct_4x4 chromium_jsimd_can_idct_4x4
#define jsimd_idct_2x2 chromium_jsimd_idct_2x2
#define jsimd_idct_4x4 chromium_jsimd_idct_4x4
#define jsimd_can_idct_islow chromium_jsimd_can_idct_islow
#define jsimd_can_idct_ifast chromium_jsimd_can_idct_ifast
#define jsimd_can_idct_float chromium_jsimd_can_idct_float
#define jsimd_idct_float chromium_jsimd_idct_float
#define jsimd_idct_ifast chromium_jsimd_idct_ifast
#define jsimd_idct_islow chromium_jsimd_idct_islow
#define jsimd_fdct_float chromium_jsimd_fdct_float
#define jsimd_fdct_ifast chromium_jsimd_fdct_ifast
#define jsimd_fdct_islow chromium_jsimd_fdct_islow
#define jpeg_fdct_islow chromium_jpeg_fdct_islow
#define jpeg_fdct_ifast chromium_jpeg_fdct_ifast
#define jpeg_fdct_float chromium_jpeg_fdct_float
#define jpeg_idct_islow chromium_jpeg_idct_islow
#define jpeg_idct_ifast chromium_jpeg_idct_ifast
#define jpeg_idct_float chromium_jpeg_idct_float
#define jpeg_idct_7x7 chromium_jpeg_idct_7x7
#define jpeg_idct_6x6 chromium_jpeg_idct_6x6
#define jpeg_idct_5x5 chromium_jpeg_idct_5x5
#define jpeg_idct_4x4 chromium_jpeg_idct_4x4
#define jpeg_idct_3x3 chromium_jpeg_idct_3x3
#define jpeg_idct_2x2 chromium_jpeg_idct_2x2
#define jpeg_idct_1x1 chromium_jpeg_idct_1x1
#define jpeg_idct_9x9 chromium_jpeg_idct_9x9
#define jpeg_idct_10x10 chromium_jpeg_idct_10x10
#define jpeg_idct_11x11 chromium_jpeg_idct_11x11
#define jpeg_idct_12x12 chromium_jpeg_idct_12x12
#define jpeg_idct_13x13 chromium_jpeg_idct_13x13
#define jpeg_idct_14x14 chromium_jpeg_idct_14x14
#define jpeg_idct_15x15 chromium_jpeg_idct_15x15
#define jpeg_idct_16x16 chromium_jpeg_idct_16x16
#define jpeg_make_c_derived_tbl chromium_jpeg_make_c_derived_tbl
#define jpeg_gen_optimal_table chromium_jpeg_gen_optimal_table
#define jpeg_make_d_derived_tbl chromium_jpeg_make_d_derived_tbl
#define jpeg_fill_bit_buffer chromium_jpeg_fill_bit_buffer
#define jpeg_huff_decode chromium_jpeg_huff_decode
#define jpeg_fdct_islow chromium_jpeg_fdct_islow
#define jpeg_fdct_ifast chromium_jpeg_fdct_ifast
#define jpeg_fdct_float chromium_jpeg_fdct_float
#define jpeg_idct_islow chromium_jpeg_idct_islow
#define jpeg_idct_ifast chromium_jpeg_idct_ifast
#define jpeg_idct_float chromium_jpeg_idct_float
#define jinit_compress_master chromium_jinit_compress_master
#define jinit_c_master_control chromium_jinit_c_master_control
#define jinit_c_main_controller chromium_jinit_c_main_controller
#define jinit_c_prep_controller chromium_jinit_c_prep_controller
#define jinit_c_coef_controller chromium_jinit_c_coef_controller
#define jinit_color_converter chromium_jinit_color_converter
#define jinit_downsampler chromium_jinit_downsampler
#define jinit_forward_dct chromium_jinit_forward_dct
#define jinit_huff_encoder chromium_jinit_huff_encoder
#define jinit_phuff_encoder chromium_jinit_phuff_encoder
#define jinit_marker_writer chromium_jinit_marker_writer
#define jinit_master_decompress chromium_jinit_master_decompress
#define jinit_d_main_controller chromium_jinit_d_main_controller
#define jinit_d_coef_controller chromium_jinit_d_coef_controller
#define jinit_d_post_controller chromium_jinit_d_post_controller
#define jinit_input_controller chromium_jinit_input_controller
#define jinit_marker_reader chromium_jinit_marker_reader
#define jinit_huff_decoder chromium_jinit_huff_decoder
#define jinit_phuff_decoder chromium_jinit_phuff_decoder
#define jinit_inverse_dct chromium_jinit_inverse_dct
#define jinit_upsampler chromium_jinit_upsampler
#define jinit_color_deconverter chromium_jinit_color_deconverter
#define jinit_1pass_quantizer chromium_jinit_1pass_quantizer
#define jinit_2pass_quantizer chromium_jinit_2pass_quantizer
#define jinit_merged_upsampler chromium_jinit_merged_upsampler
#define jinit_memory_mgr chromium_jinit_memory_mgr
#define jdiv_round_up chromium_jdiv_round_up
#define jround_up chromium_jround_up
#define jcopy_sample_rows chromium_jcopy_sample_rows
#define jcopy_block_row chromium_jcopy_block_row
#define jzero_far chromium_jzero_far
#define jpeg_std_error chromium_jpeg_std_error
#define jpeg_CreateCompress chromium_jpeg_CreateCompress
#define jpeg_CreateDecompress chromium_jpeg_CreateDecompress
#define jpeg_destroy_compress chromium_jpeg_destroy_compress
#define jpeg_destroy_decompress chromium_jpeg_destroy_decompress
#define jpeg_stdio_dest chromium_jpeg_stdio_dest
#define jpeg_stdio_src chromium_jpeg_stdio_src
#define jpeg_set_defaults chromium_jpeg_set_defaults
#define jpeg_set_colorspace chromium_jpeg_set_colorspace
#define jpeg_default_colorspace chromium_jpeg_default_colorspace
#define jpeg_set_quality chromium_jpeg_set_quality
#define jpeg_set_linear_quality chromium_jpeg_set_linear_quality
#define jpeg_add_quant_table chromium_jpeg_add_quant_table
#define jpeg_quality_scaling chromium_jpeg_quality_scaling
#define jpeg_simple_progression chromium_jpeg_simple_progression
#define jpeg_suppress_tables chromium_jpeg_suppress_tables
#define jpeg_alloc_quant_table chromium_jpeg_alloc_quant_table
#define jpeg_alloc_huff_table chromium_jpeg_alloc_huff_table
#define jpeg_start_compress chromium_jpeg_start_compress
#define jpeg_write_scanlines chromium_jpeg_write_scanlines
#define jpeg_finish_compress chromium_jpeg_finish_compress
#define jpeg_write_raw_data chromium_jpeg_write_raw_data
#define jpeg_write_marker chromium_jpeg_write_marker
#define jpeg_write_m_header chromium_jpeg_write_m_header
#define jpeg_write_m_byte chromium_jpeg_write_m_byte
#define jpeg_write_tables chromium_jpeg_write_tables
#define jpeg_read_header chromium_jpeg_read_header
#define jpeg_start_decompress chromium_jpeg_start_decompress
#define jpeg_read_scanlines chromium_jpeg_read_scanlines
#define jpeg_skip_scanlines chromium_jpeg_skip_scanlines
#define jpeg_crop_scanline chromium_jpeg_crop_scanline
#define jpeg_finish_decompress chromium_jpeg_finish_decompress
#define jpeg_read_raw_data chromium_jpeg_read_raw_data
#define jpeg_has_multiple_scans chromium_jpeg_has_multiple_scans
#define jpeg_start_output chromium_jpeg_start_output
#define jpeg_finish_output chromium_jpeg_finish_output
#define jpeg_input_complete chromium_jpeg_input_complete
#define jpeg_new_colormap chromium_jpeg_new_colormap
#define jpeg_consume_input chromium_jpeg_consume_input
#define jpeg_calc_output_dimensions chromium_jpeg_calc_output_dimensions
#define jpeg_save_markers chromium_jpeg_save_markers
#define jpeg_set_marker_processor chromium_jpeg_set_marker_processor
#define jpeg_read_coefficients chromium_jpeg_read_coefficients
#define jpeg_write_coefficients chromium_jpeg_write_coefficients
#define jpeg_copy_critical_parameters chromium_jpeg_copy_critical_parameters
#define jpeg_abort_compress chromium_jpeg_abort_compress
#define jpeg_abort_decompress chromium_jpeg_abort_decompress
#define jpeg_abort chromium_jpeg_abort
#define jpeg_destroy chromium_jpeg_destroy
#define jpeg_resync_to_restart chromium_jpeg_resync_to_restart
#define jpeg_get_small chromium_jpeg_get_small
#define jpeg_free_small chromium_jpeg_free_small
#define jpeg_get_large chromium_jpeg_get_large
#define jpeg_free_large chromium_jpeg_free_large
#define jpeg_mem_available chromium_jpeg_mem_available
#define jpeg_open_backing_store chromium_jpeg_open_backing_store
#define jpeg_mem_init chromium_jpeg_mem_init
#define jpeg_mem_term chromium_jpeg_mem_term
#define jpeg_std_message_table chromium_jpeg_std_message_table
#define jpeg_natural_order chromium_jpeg_natural_order
Hi,
I'm experiencing an issue where remote audio sent from the page the AudioRenderer interface results in the OnData function never actually being called. As a result I cannot get the audio data from WebRTC. Am I correct in expecting this function to work similarly to the VideoRenderer OnFrame function?
Perhaps this is an issue with WebRTC itself and possibly related to this?: https://bugs.chromium.org/p/webrtc/issues/detail?id=5161
The article suggests this has now been implemented but I cannot get audio data.
Can you confirm this issue?
Thank you for all your efforts on this, it is much appreciated!
Hi,
How can I set Local media stream to particular Video or audio source? Can you please provide an example? Also, if I need to stream an image from desktop, how can i do it?
Thanks!
I've tried just about everything and the project fails to run on Windows 7
I've made sure to include DLLs and I've tried both debug and release builds. Nothing works. The native DLL is missing dependencies and when the C# application calls it, it crashes.
Faulting application name: WebRtc.NET.Demo.exe, version: 1.0.0.0, time stamp: 0x58caf309
Faulting module name: KERNELBASE.dll, version: 6.3.9600.16384, time stamp: 0x52158f2d
Exception code: 0xe0434352
Fault offset: 0x00013d67
Faulting process id: 0xca0
Faulting application start time: 0x01d29e929162ffd1
Faulting application path: C:\Users\Andrew\Documents\WebRtc.NET.Demo.exe
Faulting module path: C:\Windows\SYSTEM32\KERNELBASE.dll
Report Id: d72c34fc-0a85-11e7-8250-000c290577f8
Faulting package full name:
Faulting package-relative application ID:
Application: WebRtc.NET.Demo.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException
Stack:
at WebRtc.NET.Demo.MainForm..ctor()
at WebRtc.NET.Demo.MainForm.Main()
If you have some clearer steps that need to be taken to build for Windows 7, I'd appreciate it, as it stands only 10 and 8 seem to work.
how can I use the native "desktop_capture" module in the native code ?!
https://github.com/radioman/WebRtc.NET/tree/master/WebRtc.NET/include/webrtc/modules/desktop_capture
Is there a way to send binary data instead of DataChannelSendText there was a DataChannelSendData method?
Am I missing how to create the offer from WebRTC.net or does that part of the wrapper need some work?
Right now I have
session.WebRtc.OnSuccessOffer += WebRtc_OnSuccessOffer;
session.WebRtc.CreateOffer();
OnSuccessOffer is never called
How to improve frame rate ? I got only 5 FPS
i have differnt mic devices and it is picking up always the default device, where i can select the device which i would like to hear.
here? no idea how..
auto a = pc_factory_->CreateAudioSource(NULL);
auto audio_track = pc_factory_->CreateAudioTrack(kAudioLabel, a);
stream->AddTrack(audio_track);
Trying to use TurboJpegEncoder but the method EncodeI420 doesn't exist, only JPEG to I420 and stuff.
Can only use the DLL sadly, so if anyone can check why EncodeI420 doesnt exist and update the DLL is nececarry thank you!
When closing the web browser (chrome 57.0.2987.21 beta) The app crashes with
An unhandled exception of type 'System.AccessViolationException' occurred in WebRtc.NET.dll
Additional information: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
this is a clean build from github running on windows 10.
at WebRtc.NET.ManagedConductor.!ManagedConductor() in d:\projects\ispy\ispyuniversal\webrtc.net\webrtc.net\src\managed.cpp:line 327
at WebRtc.NET.ManagedConductor.~ManagedConductor() in d:\projects\ispy\ispyuniversal\webrtc.net\webrtc.net\src\managed.cpp:line 196
at WebRtc.NET.ManagedConductor.Dispose(Boolean A_0) in d:\projects\ispy\ispyuniversal\webrtc.net\webrtc.net\include\webrtc\media\base\yuvframegenerator.h:line 0
at WebRtc.NET.ManagedConductor.Dispose()
at WebRtc.NET.Demo.WebRTCServer.<>c__DisplayClass19_1.b__0() in D:\Projects\iSpy\iSpyUniversal\WebRtc.NET\WebRtc.NET.Demo\WebRTCServer.cs:line 227
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
at System.Threading.Tasks.Task.ExecutionContextCallback(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)
at System.Threading.Tasks.ThreadPoolTaskScheduler.LongRunningThreadWork(Object obj)
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart(Object obj)
I extracted the libs, still I get WebRtc.NET.dll is not found.
So I get Error 2 error MSB8020: The build tools for v140 (Platform Toolset = 'v140') cannot be found. To build using the v140 build tools, please install v140 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Upgrade Solution...". C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets 64 5 WebRtc.NET
Went back to v120 but get a lot of C++ does not support default int. How can make this work like on Visual Studio 2015 ๐คฃ
I've downloade the v6 release and when I try to run the sample app I get the following error
Additional information: Could not load file or assembly 'WebRtc.NET.dll' or one of its dependencies. is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
WebRtc.net is being built for Win32 while the other projects are set to x86.
Any idea what's wrong ?
I want to get a list of all available sources for Audio or Video:
ex :
How to select specific device?
Thanks :)
Thanks for adding the 64 bit build! I'm starting to prototype with it but hit these build errors on a fresh clone...
1>------ Build started: Project: WebRtc.NET.Utils, Configuration: Debug Any CPU ------
1> WebRtc.NET.Utils -> \WebRtc.NET.Utils\bin\Debug\WebRtc.NET.Utils.dll
2>------ Build started: Project: WebRtc.NET, Configuration: Debug x64 ------
2> stdafx.cpp
2>\webrtc.net\stdafx.h(9): fatal error C1083: Cannot open include file: 'webrtc/base/win32.h': No such file or directory
3>------ Build started: Project: WebRtc.NET.AppLib, Configuration: Debug Any CPU ------
3>\WebRtc.NET.AppLib\WebRTCServer.cs(286,16,286,32): error CS0246: The type or namespace name 'ManagedConductor' could not be found (are you missing a using directive or an assembly reference?)
3>\WebRtc.NET.AppLib\WebRTCServer.cs(18,29,18,45): error CS0246: The type or namespace name 'ManagedConductor' could not be found (are you missing a using directive or an assembly reference?)
3>\WebRtc.NET.AppLib\MainForm.cs(51,18,51,34): error CS0246: The type or namespace name 'TurboJpegEncoder' could not be found (are you missing a using directive or an assembly reference?)
4>------ Build started: Project: WebRtc.NET.App, Configuration: Debug x64 ------
4>CSC : error CS0006: Metadata file '\WebRtc.NET.AppLib\bin\Debug\WebRtc.NET.AppLib.dll' could not be found
========== Build: 1 succeeded, 3 failed, 0 up-to-date, 0 skipped ==========
run os:
win7 x64 ultimate (err msg "Unknown Hard Error")
win10 x64 (no err)
both run x86 build
when i built the solution I am getting this error
1.Error CS0006 Metadata file 'F:\gitfolder\webrtc\WebRtc.NET\Debug_x64\WebRtc.NET.dll' could not be found
2.Error The type or namespace name 'TurboJpegEncoder' could not be found (are you missing a using directive or an assembly reference?)
3.Error The name 'TJPF' does not exist in the current context
4.Error The name 'ManagedConductor' does not exist in the current context
5.Error Failed to locate: "CL.exe". The system cannot find the file specified.
Hi!
I tried your code on several environment. It worked on only Windows10, and
it doesn't work on Windows7, 8. (I would like to use WebRTC on Windows 8)
I use Visual Studio 2015 professional on all environment. Please let me
know your environment.
Could you kindly advise me if you have any limitation on your code?
I'm using Visual Studio 2015 Community on Windows 10 x64. I cloned the repo and opened the WebRtc.NET.sln and then did Build | Build Solution.
I'm using vs2015 win7x64 but not build. error "webrtc/base/win32.h no such dir or file" and namespace notfound.
Hi!
This is not a wrapper for all the WebRTC native APIs yet. Do you plan to complete the library or is it more a proof of concept and supply of the static c++ library?
I am trying to compile the WebRtc.Net.sln using Visual Studio 2015. I am getting linker errors. main.cc includes many libraries for example #pragma comment(lib,liblept168.lib). The linker cannot find the file liblept168.lib and many others. What am I missing? Should I follow this link http://www.webrtc.org/native-code/development and generate all the libraries ? Please clarify. Thanks.
I get this issue:
at WebRtc.NET.WebRtcNative.DeleteConductor(IntPtr p)
at WebRtc.NET.WebRtcNative.Dispose()
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
I was capturing the screen using the native module to capture the screen. I stopped capturing and on disposing webrtcNative object I got this Issue.
Now I am trying to increase screen width and screen height but I got green image
const int screenWidth = 640;
const int screenHeight = 360;
to
const int screenWidth = 1920;
const int screenHeight = 1080;
At runtime of webrtc.net.app.exe pops up a window saying webrtc.net.dll is not a valid win32 application.
What does it mean? I checked with an ldd-utils a dependencies track of this dll. You have on your platform also like that?
A command ldd.exe webrtc.net.dll that gives this output:
ntdll.dll => /c/Windows/SYSTEM32/ntdll.dll (0x77040000)
kernel32.dll => /c/Windows/system32/kernel32.dll (0x76420000)
KERNELBASE.dll => /c/Windows/system32/KERNELBASE.dll (0x752c0000)
??? => ??? (0x55b40000)
??? => ??? (0x6ee10000)
Broken I see. With interesse let's compare that litjson.dll for example:
ldd.exe litjson.dll:
ntdll.dll => /c/Windows/SYSTEM32/ntdll.dll (0x77040000)
kernel32.dll => /c/Windows/system32/kernel32.dll (0x76420000)
KERNELBASE.dll => /c/Windows/system32/KERNELBASE.dll (0x752c0000)
MSCOREE.DLL => /c/Windows/SYSTEM32/MSCOREE.DLL (0x6ee10000)
ADVAPI32.dll => /c/Windows/system32/ADVAPI32.dll (0x767c0000)
msvcrt.dll => /c/Windows/system32/msvcrt.dll (0x75fa0000)
sechost.dll => /c/Windows/SYSTEM32/sechost.dll (0x76100000)
RPCRT4.dll => /c/Windows/system32/RPCRT4.dll (0x76cd0000)
SHLWAPI.dll => /c/Windows/system32/SHLWAPI.dll (0x77230000)
GDI32.dll => /c/Windows/system32/GDI32.dll (0x768f0000)
USER32.dll => /c/Windows/system32/USER32.dll (0x76500000)
LPK.dll => /c/Windows/system32/LPK.dll (0x75f90000)
USP10.dll => /c/Windows/system32/USP10.dll (0x76060000)
IMM32.DLL => /c/Windows/system32/IMM32.DLL (0x76870000)
MSCTF.dll => /c/Windows/system32/MSCTF.dll (0x76120000)
mscoreei.dll => /c/Windows/Microsoft.NET/Framework/v4.0.30319/mscoreei.dll (0x6a250000)
We see all is in place. Why webrtc.net.dll sucks I don't understand.
Let's look at webrtc.net.applib.dll:
ldd.exe webrtc.net.applib.dll:
ntdll.dll => /c/Windows/SYSTEM32/ntdll.dll (0x77040000)
kernel32.dll => /c/Windows/system32/kernel32.dll (0x76420000)
KERNELBASE.dll => /c/Windows/system32/KERNELBASE.dll (0x752c0000)
MSCOREE.DLL => /c/Windows/SYSTEM32/MSCOREE.DLL (0x6ee10000)
ADVAPI32.dll => /c/Windows/system32/ADVAPI32.dll (0x767c0000)
msvcrt.dll => /c/Windows/system32/msvcrt.dll (0x75fa0000)
sechost.dll => /c/Windows/SYSTEM32/sechost.dll (0x76100000)
RPCRT4.dll => /c/Windows/system32/RPCRT4.dll (0x76cd0000)
mscoreei.dll => /c/Windows/Microsoft.NET/Framework/v4.0.30319/mscoreei.dll (0x6a250000)
Also in place all. But what's wrong with webrtc.net.dll?
Now I am trying to build cross platform dll to use it in Xamarin what changes should I do ?
Please implement custom audio source equivalent to VideoCapturer, so far google group suggest to implement audio device module.
At least some guide would to good
Hello,
I am working on a client for PeerJS in .NET using your implementation.
I have had good progress, unfortunately when it comes time to create and open the data channel, this does not work.
Is the data channel implementation working?
Thanks !!
I miss the Debug libraries in the current build. It's recommendet when experimenting with webrtc.
Hi, I am trying to run the example in Visual Studio 2017 and it is not working. When I it Run and the project compiles it says that the WebRtc.NET.dll is not found, but before compiling it was there. Can someone please tell me how to Run this example.
Thanks
'D:\charp_webrtc\WebRtc.NET-master\WebRtc.NET\Debug_x64\WebRtc.NET.dll' could not be found
Very cool project - I'm getting errors building the main dll file (in visual studio 2015), any ideas?
decltype(std::declval().data()
Error C2228 left of '.data' must have class/struct/union WebRtc.NET D:\Projects\WebRtc.NET-master\WebRtc.NET\include\webrtc\base\type_traits.h 27
After starting streaming and setting SetVideoCapturer(width,height) I want to change the height and width before pushing new frame during streaming ?!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.