TV To Application Communication Protocol - windows

I wish to develop a windows application that can steam video media to a TV. What protocol/interface allows two-way communication between a TV and a Computer?
I'm aware that HDMI is one-way communication (from the source to the TV) so the computers application cannot query what the current volume or current source is which is not useful. Is there a protocol that allows 2 way communication?
Also using HDMI is it possible to:
Change a TV's source? For example change to/from HDMI, AV1, AV2, etc.?
Change a TV's volume?
Or is it only possible to use HDMI to transmit video/audio data?

HDMI wont be able to control other aspects of tv like changing the vole or source. You can just stream via HDMI. If you wish to manage other things i would prefer you do it with chromecast or apple tv or roku. Chromecast is easy to start off.

Related

MJPEG stream via URL to webcam device on Mac

I have a video device that exposes an MJPEG stream via a URL. For windows there are utility apps that can "create" a system webcam device useable by Skype or any other application based on the URL this video device exposes.
Example: smart phone is broadcasting MJPEG URL. Windows computer can run a utility app to "create" a system webcam based off of the MJPEG stream and then that webcam be used via Skype. The video shown is what the phone is broadcasting.
I'm trying to do the same but for my Mac. I can't seem to find any utility that creates a system webcam from an MJPEG stream. Googling isn't helping either, I'm just not finding a solid solution or anything I recognize as a solution.
Thanks!
I've had success with obs-studio and its vlc and virtual camera plugins.
You can add a "Vlc Video Source" and then click "Start Virtual Camera".
If you want to use it as a web-cam I just recommend that you reduce the "Network Caching (ms)" setting in the vlc video source settings as much as possible.
The hard-coded minimal value is 100ms, you can reduce it by changing this line: https://github.com/obsproject/obs-studio/blob/7217671eb0812681a9f83858bb02065b671673e7/plugins/vlc-video/vlc-video-source.c#L1079
There is still significant delay with this method regardless, but it's better than not having it working at all.

How to implement airplay for mac application to change sound output source while streaming?

I am new to mac development,currently I am working an app that streams video and audio files hosted on the web.How can I implement airplay feature to change the sound output source ? I am using JKAudioManager to get all the airplay devices and AudioStreamer to stream the files.
How can I switch between different devices using these two api's ? Is there any other way to do this also?

locate media source of playing medie wp

does Anybody know if it is possible to capture the media you are playing on windows phone, so you can stream it to another source,
Just like apple does with airplay
No, it is not possible to write a 3rd party app that can capture audio or video from other apps and stream it somewhere else.
Airplay on iOS is a system level service that apps can use.
The closest thing Windows Phone has is Play To, which allows you to pick existing media on the phone (pictures, music, video, etc) and share it to a compatible device. Currently, this technology isn't available to developers.

Hide USB Audio device on MAC OS X using custom kext

I am developing an application which does custom audio processing and sends the processed audio to the USB headset. My requirement is that the USB headset should not be visible to the user in the list of Audio output devices in System Preferences. Using "SampleUSBAudioOverrideDriver" code-less kext sample code from Apple, I'm able to change the interface name but I really need to hide it.
Is subclassing AppleUSBAudioDevice an option?
The recommended way to do pre-processing of a USB audio device's input and output streams in kernel space is to use the AppleUSBAudioPlugin API. This kext does not appear in the list of devices because it isn't an instance of IOAudioEngine, so there is no "hiding" involved.

Selecting input mic for Mac Audio Queue Services?

I am currently using the Mac OS X Audio Queue Services API for audio recording and sound analysis. Works fine using the default mic input.
If there is more than one microphone plugged into the Mac (USB, headset jack, etc.), is there a way to programmatically enumerate and select which mic is to be used for audio input within an application? (e.g. not have to send the user to the system preferences panel, which may affect a users other audio applications.) If so, which APIs should be used to select the mic input.
To enumerate available input devices please see my answer to AudioObjectGetPropertyData to get a list of input devices.
Once you've determined the input device you'd like to use, you can set the kAudioQueueProperty_CurrentDevice property to the device's UID.
I fear, no, because AQ is hard-coded to use default input (to my best knowledge). AQ is fairly limited and only iOS gives more control via AutoSessions. However, you can use AUHAL to record from an arbitrary device:
http://developer.apple.com/library/mac/#technotes/tn2091/_index.html
You won't need listing 4 from above because you'll use the AudioDeviceID for the device you have chosen (presumably by getting the list of devices using AudioObjectGetPropertyDataSize and picking the one you want).
FWIW: if you decide that's too much, you can presumably still use AudioHardwareSetProperty to set kAudioHardwarePropertyDefaultInputDevice from your code - not what you wanted but certainly less work...
If you set up the Audio Queue to read from the default input device, then it will read from the mic that is selected as default in the System Preferences->Soubd->Input tab.

Resources