Project idea : Sync audio with remote devices (Play audio on remote controls)

  Thread Rating:
  • 3 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
[email protected] Offline
Junior Member
Posts: 29
Joined: May 2013
Reputation: 0
Location: France
Post: #16
(2015-03-05 18:37)topfs2 Wrote:  
(2015-03-05 12:50)RockerC Wrote:  
(2015-03-04 23:31)topfs2 Wrote:  And I added a very generic trial code for it using JSON RPC. It was based on zeromq which I tbh think we don't need for it, so one could make a PR based on mine but using TCP jsonrpc instead. Which would be awesome.
is this the your branch for that work? https://github.com/topfs2/xbmc/tree/zeromq

Everything contained within that single branch or?

Oooops, I just remember I never pushed it since I wanted to do more on it (check viability etc) before I made any noise Smile
However, I can put it up as soon as I am near my home computer. I mostly started on the abstraction, highlighting were it could be hooked in. And I got it working sending audio from kodi to another process through it. The other way around didnt work (possibly due to me doing something wrong with AE).

So in general I think it would be a good starting point for this project, and there is still lots and lots to do (I didn't have time to investigate the actual latency calculations, which is needed for sending audio over eth or wifi). But it should be very doable I think. And a feature I would personally love to have in kodi Smile

Thank you for pointing out your work. Yes, this could indeed be a good starting point, even though we may not need zeromq. The rest seems feasible, given enough time.

(2015-03-05 19:03)RockerC Wrote:  
(2015-03-05 17:07)natethomas Wrote:  Edit: I'm reviewing the conversation and I may be missing why Bluetooth is being brought up. The proposal appears to be about sending over wifi as well.
It was only mentioned so that it is kept in mind just in case, so that if the implementation is properly abstracted then the code could perhaps be reused for these types of Bluetooth remotes too.
As far as I know, this kind of setup is already quite possible using bluez, if the media center has a bluetooth dongle.

I need to improve my English skills, feel free to correct me ;-)
My GSOC 2014 post CANCELLED 2015 one
find quote
keith Offline
Team-Kodi Member
Posts: 1,438
Joined: Sep 2007
Reputation: 17
Location: SF, CA
Post: #17
I know when Roku switched to having headphones support in the remote, their remotes went from being Bluetooth to Wifi-direct.
find quote
Dark_Slayer Offline
Fan
Posts: 309
Joined: Nov 2012
Reputation: 9
Post: #18
(2015-03-05 19:03)RockerC Wrote:  
(2015-03-05 17:07)natethomas Wrote:  Edit: I'm reviewing the conversation and I may be missing why Bluetooth is being brought up
It was only mentioned so that it is kept in mind just in case, so that if the implementation is properly abstracted then the code could perhaps be reused for these types of Bluetooth remotes too.

Not to speak for everyone, but I had mentioned Bluetooth for an entirely different reason

Kodi Bluetooth support may already be possible in a lot of ways, but WiFi is much more ubiquitous

My thoughts were if you have a new Bluetooth headset for your phone or tablet. The phone/tablet already handles a lot of Bluetooth device compatibility. This project would just get audio to the phone or tablet via WiFi. From the phone/tablet you typically have three options . . . headphone jack, bluetooth, and the internal speaker

That's how I thought it would expand bluetooth options, bit clearly there is more potential beyond that. WiFi audio alone would be amazing though
find quote
topfs2 Offline
Team-Kodi Developer
Posts: 4,548
Joined: Dec 2007
Reputation: 17
Post: #19
The problem with Bluetooth and the audio profiles is that in the wild its generally very unidirectional. I.e. phones does not broadcast themselves as receivers of audio. And this is something that you can't just easily add. You need to rewrite the entire a2dp stack on top the rfcomm stack, and that's assuming that you don't need something more than that.

Its not a limitation of Bluetooth, its just not something that phones now support. Perhaps the next android or the next after that will add it and then it can be used instead. But for now I think we need to do this over WiFi to get the best possible ground for success.

If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

[Image: badge.gif]

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
find quote
Tolriq Offline
Banned
Posts: 3,077
Joined: Jun 2009
Location: France
Post: #20
And do not forget that most Kodi client do not have Bluetooth while they all have network connectivity Smile

If they have Bluetooth they can already use applications to get audio.

Anyway not 100% related but if implementation can take care of also possibly send video it would be cool, as there is demand also for livetv / addons streaming.
While pure streaming of those without being played require more complex things as an other internal player to stream, having a way to stream what is currently playing with video would be cool.

And I suppose that if this is keep in mind even if not done in this project if the code is think to allow that it would be easy to add support later.
find quote
topfs2 Offline
Team-Kodi Developer
Posts: 4,548
Joined: Dec 2007
Reputation: 17
Post: #21
(2015-03-06 10:03)Tolriq Wrote:  And do not forget that most Kodi client do not have Bluetooth while they all have network connectivity Smile

If they have Bluetooth they can already use applications to get audio.

Anyway not 100% related but if implementation can take care of also possibly send video it would be cool, as there is demand also for livetv / addons streaming.
While pure streaming of those without being played require more complex things as an other internal player to stream, having a way to stream what is currently playing with video would be cool.

And I suppose that if this is keep in mind even if not done in this project if the code is think to allow that it would be easy to add support later.

Yeah video could be interesting also, however I think it is better to do that as a seperate project. Our audio handling is far easier to follow, due to the cleanup with AE. Also it feels immediately more useful Smile

If you send video you most probably want audio too, then a more generic transcode is probably better.

If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

[Image: badge.gif]

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
find quote
natethomas Offline
XBMC Chief and Kodi Project Manager
Posts: 6,259
Joined: Apr 2008
Reputation: 131
Location: Kansas
Post: #22
(2015-03-06 16:21)topfs2 Wrote:  Yeah video could be interesting also, however I think it is better to do that as a seperate project. Our audio handling is far easier to follow, due to the cleanup with AE. Also it feels immediately more useful Smile

Yup. This remains a summer project for a single student. Asking for the moon probably isn't the best idea.
find quote
mkortstiege Offline
Team-Kodi Developer
Posts: 4,145
Joined: Jan 2008
Reputation: 41
Location: Muenster, Germany
Post: #23
While we're at it. Complete rewrite in HTML5 Smile Hah ..

Always read the online manual (wiki), FAQ (wiki) and search the forum before posting.
Do not PM or e-mail Team-Kodi members directly asking for support. Read/follow the forum rules (wiki).
Please read the pages on troubleshooting (wiki) and bug reporting (wiki) before reporting issues.
find quote
Paxxi Offline
Team-Kodi Member
Posts: 248
Joined: May 2009
Reputation: 9
Location: Sweden
Post: #24
Can't this be implemented with upnp? The remote would act as a renderer and kodi as the controller and server. Not sure how it would work with syncing the playback though.

One benefit of using upnp is that it would make the feature usable with a lot of stuff besides our remotes.

The janitor, cleaner of cruft, defender of style. Also known as the unfunny guy that doesn't understand signatures.
find quote
Tolriq Offline
Banned
Posts: 3,077
Joined: Jun 2009
Location: France
Post: #25
Upnp does not work over internet Smile Upnp is bad Smile

Upnp is badly supported by most things todays.

Upnp should die in fire.
find quote
natethomas Offline
XBMC Chief and Kodi Project Manager
Posts: 6,259
Joined: Apr 2008
Reputation: 131
Location: Kansas
Post: #26
(2015-03-06 22:24)Tolriq Wrote:  Upnp does not work over internet Smile Upnp is bad Smile

Upnp is badly supported by most things todays.

Upnp should die in fire.

Not sure why support over the internet would be important?

Beyond that, I tenuously agree upnp doesn't make a ton of sense, if only because that'd just add another layer to trying to get video and audio synched that doesn't need to be there. At a guess most UPnP receivers would fail on audio synching pretty much immediately if they weren't expecting the need, resulting in a terrible user experience.
find quote
Tolriq Offline
Banned
Posts: 3,077
Joined: Jun 2009
Location: France
Post: #27
(2015-03-06 22:47)natethomas Wrote:  
(2015-03-06 22:24)Tolriq Wrote:  Upnp does not work over internet Smile Upnp is bad Smile

Upnp is badly supported by most things todays.

Upnp should die in fire.

Not sure why support over the internet would be important?

Beyond that, I tenuously agree upnp doesn't make a ton of sense, if only because that'd just add another layer to trying to get video and audio synched that doesn't need to be there. At a guess most UPnP receivers would fail on audio synching pretty much immediately if they weren't expecting the need, resulting in a terrible user experience.

Not for audio to remote for now playing Smile

But streaming over internet is a very very high demand feature for Kodi.
find quote
natethomas Offline
XBMC Chief and Kodi Project Manager
Posts: 6,259
Joined: Apr 2008
Reputation: 131
Location: Kansas
Post: #28
(2015-03-07 00:49)Tolriq Wrote:  Not for audio to remote for now playing Smile

But streaming over internet is a very very high demand feature for Kodi.

Alright, then I'd guess not super relevant to this idea. For GSOC students, keeping the scope as narrow as possible is really important.
find quote
AchimTuran Offline
Team-Kodi Member
Posts: 561
Joined: Jan 2014
Reputation: 14
Location: Germany
Post: #29
Hi @ll,

the idea with a WiFi sink is very awesome.

@[email protected]
I don't know if you have seen our ADSP-System, but if you implement it as a AESink I think it would be possible to do audio signal processing at the server side and stream the samples through the WiFi client.
Also a multizone audio setup is possible. Blush
Or with my adsp.xconvolver addon to do 3D audio through headphones. This would be really great, because the calculation is still at server side and the client could be a low budget device (Raspbery Pi, Android Phone,...).

Latest news about AudioDSP and my libraries are available on Twitter.

Developers can follow me on Github.
find quote
topfs2 Offline
Team-Kodi Developer
Posts: 4,548
Joined: Dec 2007
Reputation: 17
Post: #30
Upnp has been used successfully with pulseaudio before, so that could also be a possible path.http://askubuntu.com/questions/187086/how-do-i-set-up-live-audio-streams-to-a-dlna-compliant-device

Personally I think that doing it in JSON RPC is probably easier. And someone could duplicate the code to do it for upnp too.

If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

[Image: badge.gif]

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
find quote