Comments (9)
hello,
I strongly suggest you use qtcreator on windows for the time being. There is visual studio support on some level (though it's not public yet) but i haven't tested the code at all so I don't know how well it works.
I will push the new code to github and create qtcreator project file for the examples so that they are easier to use. I admit the linking instructions for windows may seem a little convoluted but here's an example on how to link against kvzrtp on windows: https://github.com/ultravideo/kvazzup/blob/master/Kvazzup.pro#L250
from uvgrtp.
Basically you need a .lib file to link it in visual studio (or just include the whole library in the project..). The .a library works only in the mingw build.
Hopefully we can get the experimental visual studio support pushed here soon, that should fix those errors, but it's not 100% tested as @altonen mentioned.
from uvgrtp.
@altonen Thanks for your quick reply. I have read the marked .pro file. It's too difficult. I have tried to edit a .pro file. Still have errors, it seems the way to add static lib is still wrong. Can u give me some clear(for me) advices?
The Path F:\kva\build-kvzrtp-Desktop_Qt_5_14_2_MinGW_64_bit-Debug\debug is where libkvzrtp.a generated, by QtCreator. And there are aslo many .o files in the same folder.
The Path F:\kva\kvzRTP\src is the subfoler of the repo.
Here's my .pro file:
`TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES +=
main.cpp
INCLUDEPATH += F:/kva/kvzRTP/src
win32: LIBS += F:/kva/build-kvzrtp-Desktop_Qt_5_14_2_MinGW_64_bit-Debug/debug/libkvzrtp.a`
from uvgrtp.
hello,
there are two problems in your project file:
the includepath is wrong because kvzrtp uses includes like "#include <kvzrtp/lib.hh>". You can fix this by creating a following folder structure:
mkdir F:/kva/kvzrtp
mkdir F:/kva/kvzrtp/formats
cp F:/kva/kvzRTP/src/*.hh F:/kva/kvzrtp
cp F:/kva/kvzRTP/src/formats/*.hh F:/kva/kvzrtp/formats
and then setting INCLUDEPATH = F:/kva/kvzrtp
Try using the following for the library options:
LIBS += -LF:/kva/build-kvzrtp-Desktop_Qt_5_14_2_MinGW_64_bit-Debug/debug/ -lkvzrtp
These may work but if not, await my update. I will add a step by step guide on how to get the examples working. It's actually quite tedious and I have to figure out how to make it simpler
from uvgrtp.
hello,
github now includes all the latest changes, including support for msvc.
I have also added instruction to examples/README.md about the examples. I was able to get sending.cc working on Windows 7 following them so they should describe the right things in right order.
Recap: first run the prepare.bat which creates two folders lib/ and include/. These folders should be in the same folder with benchmarks/, examples/ and src/. If not, the script was ran from wrong folder. The include directory contains folder kvzrtp which in turn contains the header files and a formats folder for format headers.
When you have compiled kvzrtp, copy the library file (libkvzrtp.a) from the Qt build directory to the lib/ directory at the root. For you, this would mean that you copy the file from F:/kva/build-kvzrtp-Desktop_Qt_5_14_2_MinGW_64_bit-Debug/debug/libkvzrtp.a to F:/kva/kvzRTP/lib
When that is done, open the example.pro file which contains the necessary instructions for building sending.cc. If you wish to try other example codes, just change sending.cc with the name of the file you want to test.
Then build and run example.pro. Note: the Qt build directory for example.pro MUST be in the same directory as lib/, include/, and benchmarks. It should've been created there automatically but if it's not there, you need to update the INCLUDEPATH and LIB variables in the example.pro to point to correct folders.
Remember that you must also have the posix threads available
from uvgrtp.
@altonen
Hi,
Thanks for your reply. I have followed your instruction, and got some errors. Perhaps, the right INCLUDEPATH is the parrent folder of kvzrtp. I tried F:/kva/kvzrtp, and errors "no such files" appeared.
Secondly, after INCLUDEPATH corrected, I got same errors like before.
If I delete the line "LIB += ...", these errors also appear. I think the source of the errors is the configuration of static library generated.
By the way, I have tried complie kvzrtp on Ubuntu16.04, I got errors in frame.hh about getrandom. the compiler can't find random.h by <sys/random.h> , so I changed it to </usr/include/linux/random.h>. Then another error, getrandom is not declared in this scope. I have searched on stackflows and someone got same error, and fixed it by using syscall(getrandom, ...).
I'm excited about your work, kvzrtp and kvazzup. If it's just some bugs of configuration but not some logical errors, I hope it could be fixed up as soon.
Thank you.
from uvgrtp.
hello @HikariS97 ,
The errors your image shows seem valid. There was a lot of API changes a while back and create_writer/create_reader was replaced with create_stream. I'm not sure what the ULONG error is about. If you are still interested in trying, I'd recommend you to delete everything, reclone the repository, rebuild the library from scratch and follow steps I described in my last message. It should work out of the box
About that ubuntu error. It should be present because getrandom() was added in release 3.17 [0] and Ubuntu 16.04 had version 4.4 [1] of the kernel. Unfortunately I cannot help you with that because sys/random.h is present on my computer and looking at the provided documentation, it should be present on your computer too.
I'm quite certain these are just configuration errors because the library has been working on multiple OSs and computers. I've attached tree /f output of the correct folder structure. If all else fails, you can try to mimic that and it should work.
▒ ▒▒build-kvzrtp-Desktop_Qt_5_14_0_MinGW_64_bit-Debug
▒ libkvzrtp.a
▒
▒▒▒▒kvz-rtplib
▒▒▒▒build-example-Desktop_Qt_5_14_0_MinGW_64_bit-Debug
▒ .qmake.stash
▒ example.exe
▒ Makefile
▒ sending.o
▒
▒▒▒▒examples
▒ binding.cc
▒ example.pro
▒ example.pro.user
▒ prepare.bat
▒ README.md
▒ sending.cc
▒
▒▒▒▒include
▒ ▒▒▒▒kvzrtp
▒ ▒ clock.hh
▒ ▒ crypto.hh
▒ ▒ debug.hh
▒ ▒ dispatch.hh
▒ ▒ frame.hh
▒ ▒ hostname.hh
▒ ▒ lib.hh
▒ ▒ media_stream.hh
▒ ▒ mingw_inet.hh
▒ ▒ multicast.hh
▒ ▒ poll.hh
▒ ▒ queue.hh
▒ ▒ random.hh
▒ ▒ receiver.hh
▒ ▒ rtcp.hh
▒ ▒ rtp.hh
▒ ▒ runner.hh
▒ ▒ send.hh
▒ ▒ sender.hh
▒ ▒ session.hh
▒ ▒ socket.hh
▒ ▒ srtp.hh
▒ ▒ util.hh
▒ ▒ zrtp.hh
▒ ▒
▒ ▒▒▒▒formats
▒ generic.hh
▒ hevc.hh
▒ opus.hh
▒
▒▒▒▒lib
▒ libkvzrtp.a
▒
[0] http://man7.org/linux/man-pages/man2/getrandom.2.html
[1] https://wiki.ubuntu.com/XenialXerus/ReleaseNotes
from uvgrtp.
I delete all files and redownload the repo, and success.
Maybe I have deleted some files accidentally. I remember that some .o files are not generated. e.g. session.o
I'm not sure. But as least, everything works fine now. Thanks very much for your help !
from uvgrtp.
Good to hear, closing this issue
from uvgrtp.
Related Issues (20)
- Multiplexing packets based on protocol HOT 3
- Streaming 4K H264 video through Wireguard VPN HOT 9
- Compilation on Nanopi board HOT 3
- RTCP interval issues HOT 2
- A mistake for APP packet payload copying HOT 1
- Python API HOT 1
- Failed to flush the message queue HOT 15
- RTP header extension HOT 2
- uint8 overflow in a test HOT 2
- H264 Failed to flush the message queue HOT 16
- H265 Failed to flush the message queue HOT 3
- Streaming H264 video HOT 2
- Visual Studio Library Linking Documentation HOT 2
- Not Receiving RTP Packets from FFmpeg HOT 5
- H26x: Aggregation causes NAL units to be sent in different order HOT 5
- H26x incorrectly detected start code if preceded by 0x1 HOT 1
- H26x 00 01 00 detected as start code at certain alignments HOT 3
- bug in reception_flow.cc HOT 3
- error in uvgrtp::formats::h26x::packet_handler HOT 2
- [Android] Library fails to compile (at least for old SDK level 21) HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from uvgrtp.