OMNet++ 6: How to read real UDP video stream from internet? - omnet++

I have been trying to create Hardware in the Loop simulation, in which I want to get video stream from real devices into my simulation and then move those packets further into my network. Is there any existing example of this? or any way in which I can achieve this task?

Check the showcases/emulation/videostreaming folder in your INET instrallation. The text is available online.

Related

Sending images using i2c

I have a question. I would like to know if it is possible to send images from one device to another using I2C communication.
Someone can help me, please?
I am actually using a camera with a WiFi module to transfer data, but I need to separate the photo capture and transmission to do it with 2 devices to reduction size of capturing device. So, I am searching how send the data saved in a SD card in one device to another device and that's the reason to asking if it is possible to send images through I2C.

How can I capture microphone data and route it to a virtual microphone device?

Recently, I wanted to get my hands dirty with Core Audio, so I started working on a simple desktop app that will apply effects (eg. echo) on the microphone data in real-time and then the processed data can be used on communication apps (eg. Skype, Zoom, etc).
To do that, I figured that I have to create a virtual microphone, to be able to send processed (with the applied effects) data over communication apps. For example, the user will need to select this new microphone (virtual) device as Input Device in a Zoom call so that the other users in the call can hear her with her voiced being processed.
My main concern is that I need to find a way to "route" the voice data captured from the physical microphone (eg. the built-in mic) to the virtual microphone. I've spent some time reading the book "Learning Core Audio" by Adamson and Avila, and in Chapter 8 the author explains how to write an app that a) uses an AUHAL in order to capture data from the system's default input device and b) then sends the data to the system's default output using an AUGraph. So, following this example, I figured that I also need to do create an app that captures the microphone data only when it's running.
So, what I've done so far:
I've created the virtual microphone, for which I followed the NullAudio driver example from Apple.
I've created the app that captures the microphone data.
For both of the above "modules" I'm certain that they work as expected independently, since I've tested them with various ways. The only missing piece now is how to "connect" the physical mic with the virtual mic. I need to connect the output of the physical microphone with the input of the virtual microphone.
So, my questions are:
Is this something trivial that can be achieved using the AUGraph approach, as described in the book? Should I just find the correct way to configure the graph in order to achieve this connection between the two devices?
The only related thread I found is this, where the author states that the routing is done by
sending this audio data to driver via socket connection So other apps that request audio from out virtual mic in fact get this audio from user-space application that listen for mic at the same time (so it should be active)
but I'm not quite sure how to even start implementing something like that.
The whole process I did for capturing data from the microphone seems quite long and I was thinking if there's a more optimal way to do this. The book seems to be from 2012 with some corrections done in 2014. Has Core Audio changed dramatically since then and this process can be achieved more easily with just a few lines of code?
I think you'll get more results by searching for the term "play through" instead of "routing".
The Adamson / Avila book has an ideal play through example that unfortunately for you only works for when both input and output are handled by the same device (e.g. the built in hardware on most mac laptops and iphone/ipad devices).
Note that there is another audio device concept called "playthru" (see kAudioDevicePropertyPlayThru and related properties) which seems to be a form of routing internal to a single device. I wish it were a property that let you set a forwarding device, but alas, no.
Some informal doco on this: https://lists.apple.com/archives/coreaudio-api/2005/Aug/msg00250.html
I've never tried it but you should be able to connect input to output on an AUGraph like this. AUGraph is however deprecated in favour of AVAudioEngine which last time I checked did not handle non default input/output devices well.
I instead manually copy buffers from the input device to the output device via a ring buffer (TPCircularBuffer works well). The devil is in the detail, and much of the work is deciding on what properties you want and their consequences. Some common and conflicting example properties:
minimal lag
minimal dropouts
no time distortion
In my case, if output is lagging too much behind input, I brutally dump everything bar 1 or 2 buffers. There is some dated Apple sample code called CAPlayThrough which elegantly speeds up the output stream. You should definitely check this out.
And if you find a simpler way, please tell me!
Update
I found a simpler way:
create an AVCaptureSession that captures from your mic
add an AVCaptureAudioPreviewOutput that references your virtual device
When routing from microphone to headphones, it sounded like it had a few hundred milliseconds' lag, but if AVCaptureAudioPreviewOutput and your virtual device handle timestamps properly, that lag may not matter.

Wireshark show only packets that haven't been found yet

I'm reading packets with wireshark and most of these packets are repeating multiple times per second (identical). I don't want to see those. They're too many to manually filter (thousands).
So what I'd like is some filter like:
This packet was already captured/displayed, I won't display it again.
Is this possible using wireshark or is any other software (linux) available for this? I definitely need this feature in live capture so doing some magic with a dump file is not an option.

NIC teaming and video streaming

I am currently making a client PC which has Windows 10 on it and it is receiving a video stream over IP. I would like to have redundancy because of the nature of the system so I've created aggregated connection. I've done that by using Powershell cmdlet New-NetLbfoTeam with default settings (dynamic load balancing with switch independent teaming mode, tried LACP too) on two identical NICs which are onboard. After that Windows made a new connection and I can access the network without any problem.
I am using only one switch in this setup.
Now to the problem description - when I am using both NICs, there is lots of block noise in my stream. In some cases there is no video what so ever - just black screen. Tried playing the stream with several tools like VLC etc. no changes. When I disconnect a cable from one of the NICs, there are no problems what so ever. I would like to have redundancy on the network without current issues so I am looking for some tips in fine tuning the NIC teaming.
Any help is appreciated.

at commands to send image/ audio clip though sms

i have used AT commands previously to send a simple text message from PC to mobile via gsm modem. this is the link i referred to. However, I was wondering if is it possible to send images or short audio clips using AT commands. I have searched a lot but couldn't find any source. Any kind of help will be appreciated.
I don't think it's possible for a GSM modem. You may need a GPRS modem instead. But I wonder if there's a standard for sending MMS, although it's clear that some manufacturers have their own AT commands set. On my putal modem the commands are AT^UPLOADFILE, AT^MMSSEND and AT+EMMSEXE. You could refer to your own modem's dev manual.

Resources